Qatar Airways Flight Scraper avatar

Qatar Airways Flight Scraper

Pricing

from $2.00 / 1,000 flight options

Go to Apify Store
Qatar Airways Flight Scraper

Qatar Airways Flight Scraper

Scrapes Qatar Airways economy cash fares and fare families, a dated fare calendar, and live flight status, straight from the Qatar Airways mobile API. Read-only public travel data.

Pricing

from $2.00 / 1,000 flight options

Rating

0.0

(0)

Developer

R.L.

R.L.

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Qatar Airways Flight Scraper ✈️ — dated lowest fares & live flight status

ℹ️ Fare coverage note (September 2026)

Qatar Airways moved per-flight cash fares (POST /flight-search/flight-offers) behind Akamai Bot Manager: it now needs a device-bound X-acf-sensor-data sensor token and returns

403 Access Denied
to any headless client (on every proxy type and TLS fingerprint). So schedules mode now returns Qatar's dated lowest-fare calendar — real economy fares from the same API, one row per day — instead of per-flight cash fares. flightStatus mode is unaffected. If Qatar drops the sensor requirement, per-flight fares resume automatically with no change.

Qatar Airways Flight Scraper reads Qatar Airways' own mobile API directly, so it's fast, reliable and complete — no flaky HTML parsing, no headless browser. Read-only public travel data. Export to JSON, CSV, Excel, or an API.

Two modes

schedules (default) — Qatar Airways' dated lowest-fare calendar (economy) for a route around your date: one record per day with the lowest available fare and any promo discount. The calendar is returned by default. (Per-flight cash fares with fare families are attempted too, but Qatar now serves that specific endpoint behind Akamai Bot Manager — see Good to know — so it is best-effort and usually returns nothing; the lowest-fare calendar is the reliable fare signal.)

flightStatus — live operational status, one record per flight: arrived / on-time / delayed, aircraft type, and scheduled, estimated and actual departure/arrival times. Set origin + destination + departureDate for every flight on a route/date, or set flightNumber (e.g. QR11) to track a single flight. An empty date means today.

// dated lowest fares DOH -> LHR (calendar is on by default)
{ "origin": "DOH", "destination": "LHR" }
// live status of every DOH -> LHR flight today
{ "mode": "flightStatus", "origin": "DOH", "destination": "LHR" }
// one specific flight
{ "mode": "flightStatus", "flightNumber": "QR11" }

Every row — flight, calendar and status — shares one flat schema, so a mixed export stays a single table; fields that don't apply to a row type are null.

Timestamps

Times keep their original UTC offsets (e.g. 2026-10-06T01:10:00+03:00), so local times are unambiguous and no timezone is assumed on your behalf.

⚙️ Input

FieldTypeDefaultDescription
modestringschedulesschedules = dated lowest-fare calendar (economy). flightStatus = live status for a route/date or one flight.
originstringDOHOrigin airport IATA code.
destinationstringLHRDestination airport IATA code.
departureDatestringDate, or a relative value like "30 days". Schedules: empty = +30 days. Status: empty = today.
returnDatestringSchedules only. Set for a round trip. Empty = one way.
adultsinteger1Number of adult passengers.
currencystringUSD3-letter currency code for fares.
includeCalendarbooleantrueSchedules only. Emit one record per date from the lowest-fare calendar (the reliable fare signal). Set false to skip it.
flightNumberstringFlight-status only. One flight, e.g. QR11. Empty = every flight on the route/date.
maxItemsinteger1000 = all results.
proxyConfigurationobjectRESIDENTIALThe Akamai edge blocks datacenter IPs; a residential proxy is set by default.

📤 Output

A flat record per flight / calendar date / status. Flight rows carry flight_numbers, aircraft, departure_time/arrival_time, duration_minutes, stops, fare_family, price_base, price_total, currency, available_seats and a fare_offers array (every fare family with its total and seat count). Calendar rows carry calendar_date / calendar_lowest_price / calendar_discount_code. Status rows carry status, status_detail and scheduled/estimated/actual departure & arrival times.

📌 Good to know

  • Economy only. Qatar's mobile fare API serves economy on this channel; Business/First return a gateway error and are not offered rather than shipped as an option that fails.
  • Cash per-flight fares are behind Akamai Bot Manager. As of app v26.10.x, Qatar's mobile fare-offers endpoint requires a device-bound X-acf-sensor-data sensor token and returns HTTP 403 "Access Denied" to any client without it (on every residential/mobile exit and TLS fingerprint) — so per-flight cash fares and fare families are not available headlessly. The actor returns the dated lowest-fare calendar instead (real economy fares, still from Qatar's own API), and flight status is unaffected. If Qatar removes the sensor requirement, per-flight fares resume automatically with no change.
  • No login, no booking, no PNR lookup — read-only public search, exactly what the app shows a signed-out user. There is no request signing, API key or OAuth on this surface.
  • Fare availability and prices are point-in-time and market/currency-scoped.

💰 Pricing — pay per result

Charged per record returned (flight option, calendar date or status row).