Qatar Airways Flight Scraper
Pricing
from $2.00 / 1,000 flight options
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.
Maintained by CommunityActor 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-boundX-acf-sensor-datasensor token and returnsto any headless client (on every proxy type and TLS fingerprint). So403 Access Deniedschedulesmode 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.flightStatusmode 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
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | schedules | schedules = dated lowest-fare calendar (economy). flightStatus = live status for a route/date or one flight. |
origin | string | DOH | Origin airport IATA code. |
destination | string | LHR | Destination airport IATA code. |
departureDate | string | – | Date, or a relative value like "30 days". Schedules: empty = +30 days. Status: empty = today. |
returnDate | string | – | Schedules only. Set for a round trip. Empty = one way. |
adults | integer | 1 | Number of adult passengers. |
currency | string | USD | 3-letter currency code for fares. |
includeCalendar | boolean | true | Schedules only. Emit one record per date from the lowest-fare calendar (the reliable fare signal). Set false to skip it. |
flightNumber | string | – | Flight-status only. One flight, e.g. QR11. Empty = every flight on the route/date. |
maxItems | integer | 100 | 0 = all results. |
proxyConfiguration | object | RESIDENTIAL | The 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-datasensor 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).