FlightRadar24 Scraper – Live Flights & History
Pricing
from $0.20 / 1,000 live aircraft rows
FlightRadar24 Scraper – Live Flights & History
Track live aircraft anywhere on earth: position, altitude, speed, heading, callsign, route, registration and airline. Plus flight and airframe history, airport delay stats, free-text search and recorded tracks. Tiles large regions automatically past the 1,500-aircraft per-request cap.
Pricing
from $0.20 / 1,000 live aircraft rows
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
FlightRadar24 Scraper ✈️ — Live Aircraft, Flight History & Airport Data
FlightRadar24 Scraper pulls live aircraft positions and flight data straight from FlightRadar24's own mobile API — no HTML parsing, no headless browser, no login. Sweep an area for every aircraft in the sky, look up a flight's history, trace an airframe by registration, read an airport's delay statistics, or replay a completed flight's recorded track. Export to JSON, CSV, Excel, or the Apify API.
Every aircraft over a continent, not the first 1,500 — this scraper splits large areas automatically to get past FlightRadar24's per-request cap.
❓ What does this FlightRadar24 scraper do?
It runs one of seven jobs, chosen with the What to scrape input:
| Mode | What you get |
|---|---|
| Live aircraft in an area | Every aircraft inside a bounding box — position, altitude, ground speed, vertical speed, heading, squawk, registration, aircraft type, route and airline |
| Search | Flights, airlines, airports and airframes matching free text like BA48, British Airways or G-STBA |
| Flight history by flight number | Past and scheduled operations of a flight number, with actual vs scheduled times |
| Aircraft history by registration | The airframe itself (model, country, Mode-S hex) plus the flights it has operated |
| Airport details | Name, ICAO code, coordinates, timezone and FlightRadar24's arrival/departure delay indices |
| Most-tracked flights | What FlightRadar24's own audience is watching right now, with viewer counts |
| Playback | A completed flight's recorded track — every position, altitude, speed and vertical speed |
- 🟢 No code required — pick a mode, click Start, download your data.
- 🔓 No FlightRadar24 account — the data it reads is the anonymous tier, so there is nothing to log into.
- 🗺️ Whole-continent coverage — large areas are tiled automatically (see below).
- 💸 Charged per row, plus platform usage — an aircraft seen in two overlapping tiles is billed once, and a request that returned nothing is not billed at all.
🌍 How do I get more than 1,500 aircraft?
FlightRadar24 returns at most 1,500 aircraft per request, whatever area you ask for. A request covering Europe and a request covering the entire planet both come back with 1,500 rows while the true worldwide count sits around 15,000 — and nothing in the response says it was truncated.
With Split large areas automatically on (the default), any area that comes back at the cap is divided into four and each part fetched separately, repeating until every part fits underneath it. Measured against the live API: Europe returns 1,500 aircraft as one request and 5,433 as 13 tiled requests.
Empty airspace costs nothing extra — only tiles that actually hit the cap are split. If an area is still truncated when the depth limit is reached, the run log says so explicitly rather than letting you read a capped result as a complete one.
🚀 How do I scrape live flights? (3 steps)
- Pick a mode — start with Live aircraft in an area.
- Choose the area — a ready-made region (Europe, North America, Whole world…) or a custom box via the four latitude/longitude fields.
- Run & export — click Start, then download JSON/CSV/Excel or fetch it through the Apify API.
Narrow the sweep with Only this airline (BAW, DLH, UAE…), Only this flight number (BA48) or Only this registration (G-STBA). These are applied by FlightRadar24 before the 1,500-row cap, so one airline worldwide is a single fast request rather than a tiled sweep.
📖 What do the live aircraft fields mean?
| Field | Meaning |
|---|---|
flightId | FlightRadar24's 8-character id for this flight. Feed it to Playback mode, or open flightUrl. |
hex | Mode-S / ICAO 24-bit transponder address — the airframe's hardware identity. |
callsign | What ATC calls it, e.g. BAW48Q. Often differs from the flight number. |
flightNumber | The commercial number, e.g. BA48. Empty for private and military traffic. |
altitudeFt | Barometric altitude in feet. 0 while on the ground. |
groundSpeedKts | Ground speed in knots. |
verticalSpeedFpm | Rate of climb or descent in feet per minute. Negative means descending, 0 means level. |
onGround | true when taxiing or parked. |
squawk | Transponder code. 7700 is a general emergency, 7600 radio failure, 7500 hijack. |
radar | Which receiver saw it — T-MLAT1 is multilateration, F-… a terrestrial ADS-B feeder. |
originIata / destinationIata | Route endpoints, when FlightRadar24 knows them. Empty for general aviation. |
airlineIcao | Three-letter operator code, e.g. BAW for British Airways. |
timestampIso | When the position was reported, UTC. |
Every record carries a recordType, so a run that mixes live positions with detail lookups stays easy to split.
🔍 Can I get full detail for each aircraft?
Yes — turn on Add full detail for each flight. Each aircraft then also gets a flightDetail row: full aircraft model, airline, both airports with coordinates and timezones, scheduled vs actual departure and arrival, delay in minutes, and an aircraft photo with its copyright line. Include the recent position trail adds the flight's recent track points.
This is one extra request per aircraft, so it is off by default and priced separately. FlightRadar24 rate-limits this endpoint more tightly than the others; the actor backs off per host automatically, but a large sweep with detail enabled will take noticeably longer than one without.
💵 How much does it cost?
Charged per event rather than per minute of compute:
| Event | Price | Charged for |
|---|---|---|
| Live aircraft row | USD 0.0002 | Each aircraft from an area sweep. De-duplicated: an aircraft seen in two overlapping tiles is billed once. |
| Flight row | USD 0.001 | Each search result, flight-history row, airframe record or most-tracked row. |
| Detail row | USD 0.004 | Each full flight detail, airport record or playback track — one extra request each. |
A sweep of Europe returning about 5,400 aircraft costs roughly USD 1.08 in event charges.
Apify platform usage (compute, proxy, data transfer) is billed on top of these event prices, as your plan's rates. Nothing is charged for a request that returned no usable data — a stale flight id, an airport code that matches nothing, or a blocked request all cost zero.
⚖️ Is scraping FlightRadar24 legal?
This actor reads the same public, anonymous endpoints FlightRadar24's own app uses, without signing in and without circumventing any paywall — the Pro-only depth of history simply is not returned. Aircraft position data originates from ADS-B transponder broadcasts, which are unencrypted public radio transmissions.
You are responsible for what you do with the data. Check FlightRadar24's terms before commercial redistribution, and note that some jurisdictions restrict publishing the movements of identifiable private aircraft. Scrape at a considerate rate; the defaults here are deliberately modest.
❓ FAQ
Do I need a FlightRadar24 account or API key? No. Everything this actor reads is available anonymously. There is no credential to supply.
How current are the positions? Live — each row carries the timestamp of the position report, usually a few seconds old. This is a snapshot at the moment of the run, not a stream; schedule the actor to build a time series.
Why did my area return exactly 1,500 aircraft? That is FlightRadar24's per-request cap. Turn on Split large areas automatically, or raise Max split depth if the log warns that an area is still truncated.
Why are some aircraft missing a flight number or route? Private, business and military traffic often broadcasts a callsign and nothing else. The position, altitude and registration are still there.
Can I track one aircraft over time? Yes — set Only this registration in live mode and schedule the run, or use Aircraft history by registration for flights it has already operated.
What is the difference between callsign and flight number?
The flight number is commercial (BA48); the callsign is what ATC uses on the radio (BAW48Q). They frequently differ, and airlines sometimes fly the same number under several callsigns.
Does it cover military aircraft? It returns whatever FlightRadar24 publishes. Many military aircraft do not broadcast a position at all, and some that do are filtered out upstream.
What about gliders, helicopters and ground vehicles? Included by default. Turn off Include gliders or Include ground vehicles to leave them out, and Include aircraft on the ground to get airborne traffic only.
🔌 Using it from code
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("rl1987/flightradar24-api-scraper").call(run_input={"mode": "live","region": "europe","airlineIcao": "BAW","maxItems": 500,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["callsign"], item["altitudeFt"], item["verticalSpeedFpm"])
🛠️ Support
Found a bug or need a field that is not here? Open an issue on the actor's Issues tab. Include the run id — it makes the difference between a guess and a fix.