Travel fares · Flight availability
Flight seat availability data from public booking pages
Flight availability data records whether a flight, cabin or fare can still be booked, not what it costs. Collected repeatedly from public pages, sold-out dates, seats-left counters and closing cabins become an early demand signal that official traffic statistics only confirm months later.
Pay per GB · No subscription · Prices in EUR, excl. VAT
- €2.00
- per GB on ARC Fast, excl. VAT
- −44%
- at 1 TB (€1.12 / GB)
- 185+
- countries, city targeting
- Never
- expires — no subscription
Written for
- Airline capacity and network analysts
- Airport and tourism demand analysts
- Alternative-data and nowcasting teams
- OTA inventory and operations teams
The short answer
- Availability and price are different series. Store a state per flight and cabin (open, limited, sold out, not operated) next to, not instead of, the price.
- A 'seats left' counter usually describes the seats left at the shown fare, not on the aircraft. Treat it as a fare-bucket signal, never as a load factor.
- Official load factors arrive late: US T-100 data for international flights is released three months after domestic data. Public availability fills the gap, then gets validated against it.
- Look, do not touch. Never add seats to a basket, hold seats or start a booking to probe inventory.
The problem
What goes wrong without the right IPs
Sold out, not operated or not yet on sale
An empty calendar day can mean the flight is full, the route does not run that day, or the schedule is not loaded yet. Join availability against a schedule so 'no seats' is only recorded where a flight exists.
Counters that describe a fare, not a cabin
Booking pages show urgency counters for the price on screen. When the counter disappears the cabin is often still open at a higher fare. Record the counter, the fare and the fare class together, or the series will overstate sell-outs.
Party size changes the answer
A flight can show availability for one passenger and none for four at the same fare. Fix the party size per series and keep it in the key; mixing sizes creates false sell-outs.
Calendars are cached
Low-fare calendars and month views are often served from caches and lag the live flight list. Use them to find candidate changes, then confirm on the live results page before recording a state change.
Your sampling rate sets your resolution
A flight that sells out between two weekly runs looks like it was always full. Sample the near-term window more densely, since that is where states change fastest.
What to collect
What you can collect
- Flight number, date and cabin
- The key for one availability series.
- Availability state
- Open, limited, sold out, not operated, not on sale. A small, explicit set of states.
- Seats-left counter and its wording
- Kept with the exact text, so a counter at a price is not read as seats on the aircraft.
- Lowest bookable fare and booking class
- A step to a higher class is an inventory signal even when the flight never sells out.
- Party size searched
- Availability depends on it; it belongs in the key.
- Days to departure
- Sell-out curves are read against lead time.
- Calendar vs live source
- Marks which observations were confirmed on the live results page.
- Observation time
- Lets you date the transition from open to sold out.
How it runs
How a collection run works
- 01
Load the schedule first
Build the list of operated flights per route and date from schedule pages. Only those flight-dates get an availability series, which removes most false 'sold out' rows.
- 02
Sweep calendars cheaply
Fetch month or week views per route and party size on rotating exits. Diff each sweep against the last one and queue the flight-dates whose state or lowest fare changed.
- 03
Confirm changes on the live results page
For each queued flight-date, run the logged-out search once on a short sticky session in the route's main selling market and record the state per cabin. Stop at the results or fare-detail page.
Record a state, not a price19 linesfrom enum import Enumclass State(str, Enum): OPEN = "open" LIMITED = "limited" # counter shown, e.g. "3 left at this price" SOLD_OUT = "sold_out" NOT_OPERATED = "not_operated"def classify(row) -> State: if row is None: return State.NOT_OPERATED if row.sold_out_label: return State.SOLD_OUT if row.seats_left_text: return State.LIMITED return State.OPEN# store(flight, date, cabin, party_size, classify(row), row.seats_left_text,# row.lowest_fare, row.booking_class, source="live", seen_at=now()) - 04
Build sell-out curves
For each flight, find the first observation in each state and express it as days to departure. Aggregated by route and weekday, these curves are what capacity and demand analysts actually use.
- 05
Validate against official traffic data
When load factor statistics for the period are published, compare them with your sell-out rates by route and month. The comparison tells you how far your public signal can be trusted for nowcasting.
Setup
Recommended setup
Calendar sweeps are frequent and light; live confirmation is rare and stateful. Give each its own pool.
| Plan | Role | Session | Targeting | Price |
|---|---|---|---|---|
ARC Basic Rotating ISP | Calendar and schedule sweeps High-frequency requests to month views and timetables at the lowest price per GB. Move a source to ARC Fast if it does not serve the ISP pool reliably. | Rotating | Country | €0.75 / GB €0.59 at 1 TB (−21%) |
ARC Fast Rotating residential | Live confirmation of state changes Residential exits for the search-to-results flow, used only for flight-dates the sweep flagged. | Sticky, about 5 minutes per flight check | Country of the main selling market | €2.00 / GB €1.12 at 1 TB (−44%) |
Prices are list prices in EUR, excl. VAT. Volume discounts apply automatically at checkout — full ladder on the pricing page.
Connect
One connection string per market
The country, city and sticky session are tokens in the username. Change the token, change the market; keep the session handle, keep the IP.
http://USERNAME_pool-arcfast_country-de_session-k3f9a1x2_sesstime-10:PASSWORD@proxy.arcproxies.io:8000Swap _country-de for any market you quote. The full grammar is on the residential proxies page.
Illustration
What a 120-route availability monitor costs
An illustration with round numbers — your pages, payloads and retry rate will differ. The arithmetic is the real price ladder.
Assumptions
- Routes
- 120
- Calendar sweeps
- 3 months ahead, daily, 150 KB each
- Live checks
- 30 flight-dates per route, daily
- Weight per live check
- 300 KB
- Days per month
- 30
- Bandwidth per month
- ≈ 35 GB
On ARC Fast
€64.40per month, excl. VAT
35 GB bought in one purchase at €1.84 / GB (−8% volume rung, applied automatically).
The same 35 GB on ARC Basic: €26.25 at €0.75 / GB. Move down as soon as the cheaper pool holds up.
In practice only a share of flight-dates change each day, so confirmation traffic is usually lower than this ceiling.
Bandwidth never expires, so a bigger single purchase is only ever cheaper per GB. See the ladder.
In depth
Flight availability, in depth
What seat availability signals public pages show
| Signal | Where it appears | What it means | What it does not mean |
|---|---|---|---|
| Day greyed out in a fare calendar | Low-fare calendar | No bookable fare found for that day in the cached view | Proof of a full aircraft; confirm live |
| 'Sold out' on a flight row | Live results | No seats for this party size in this cabin | That every cabin is full |
| 'N seats left at this price' | Results or fare detail | Few seats remain in the shown fare bucket | N seats left on the aircraft |
| Cabin tab disabled | Results | Cabin not bookable or not offered on that flight | Sold out, unless the cabin is normally offered |
| Lowest fare steps up | Results | A lower booking class closed | A sell-out |
Store the raw label next to your classification. Wording changes between site releases, and the label lets you re-classify history later.
Availability is a demand signal, load factor is the outcome
Load factor is the share of seats actually filled. IATA reported a record full-year passenger load factor of 83.6% for 2025. The US Bureau of Transportation Statistics publishes T-100 segment data with departures performed, available capacity and load factor per route, and international data is released three months after domestic data.
Public availability tells you something different and earlier: which flights stop selling at a given party size, and how many days before departure. Analysts use it as a leading indicator, then calibrate it against the official figures once they arrive. Fare movements are a separate signal; how often flight prices change covers that side.
Scarcity messages and consumer law
Urgency messages are regulated. Point 7 of Annex I to the EU Unfair Commercial Practices Directive lists falsely stating that a product will only be available for a very limited time, in order to elicit an immediate decision, as a practice that is always unfair. In 2018 the UK Competition and Markets Authority opened enforcement action against hotel booking sites, naming claims about how many rooms may be left among its concerns.
For a data team this has a practical side: counters are marketing text with a narrow meaning, and the meaning can change after regulatory attention. Record them verbatim and date them. Consumer researchers who audit those claims are a separate audience; travel price transparency rules covers the wider rules.
How to collect availability without disturbing inventory
- Never create a basket, hold or booking. Some booking systems reserve seats temporarily once a booking starts; probing that way removes real inventory from sale.
- Stop at results or fare detail. Everything this page describes is visible before the passenger details step.
- Sweep calendars, confirm sparingly. Live searches cost the airline the most to serve; keep them to flight-dates that changed.
- Read terms and robots.txt and follow collecting travel data responsibly.
Works with anything that takes a proxy URL
- Python requests / httpx
Playwright
- Scrapy
Crawlee
- Docker
FAQ
Questions
Something not covered? Write to contact@arcproxies.io.
Can I see how many seats are left on a flight?
Not from public pages. The counters booking sites show usually refer to seats left at the displayed fare, not on the aircraft. What you can observe over time is when fares close, when cabins stop selling and when a flight shows as sold out for a given party size.
Is flight availability data the same as fare data?
No. Fare data records what a seat costs; availability data records whether it can be booked at all, per cabin and party size. They come from the same pages, but they answer different questions and should be stored as separate series.
How early does availability signal demand?
It depends on the route, but sell-out patterns are visible as they happen, while official load factor statistics are published after the month ends; US T-100 international data comes three months after domestic data. That lead is why demand analysts collect it.
Does searching for a larger party change availability?
It can. A fare may have enough seats for one passenger and not for four, so results differ by party size. Choose the sizes your analysis needs and keep the size as part of the key. Do not start bookings to test depth.
Which proxy type suits availability monitoring?
Rotating ISP exits for frequent, light calendar and schedule sweeps, and residential exits on short sticky sessions for the live confirmations. Billing is per GB for both, so the expensive pool only pays for the checks that matter.
Sources & review
Last reviewed by the ARC Proxies team. Prices are read from the live catalog at build time.
- [1]IATA: Strong 2025 Passenger Demand Masks Ongoing Capacity Constraints (29 January 2026)
- [2]US Bureau of Transportation Statistics: Air Carrier Statistics (Form 41 Traffic): T-100 database information
- [3]EUR-Lex (Official Journal of the European Union): Directive 2005/29/EC concerning unfair business-to-consumer commercial practices (Unfair Commercial Practices Directive)
- [4]Competition and Markets Authority (GOV.UK): CMA launches enforcement action against hotel booking sites (28 June 2018)
Travel fares
More on travel fares
Get started
Buy a gigabyte and try it on your own targets.
No subscription, no sales call. Code WELCOME15 takes 15% off your first purchase, and whatever you do not use is still there next quarter.