Flightradar24 - Live Aircraft, Airport Boards & Flight History
Pricing
from $1.00 / 1,000 flight records
Flightradar24 - Live Aircraft, Airport Boards & Flight History
Live aircraft positions by map area (callsign, lat/lng, altitude, speed, vertical speed, heading, squawk, registration, aircraft type, route, airline), airport departure and arrival boards, and aircraft or flight number history with times, delays and status, in one unified schema.
Pricing
from $1.00 / 1,000 flight records
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
Flightradar24 Live Flight Tracker & Airport Boards
Track aircraft in the air right now, pull any airport's departures and arrivals board, and look up the full flight history of an aircraft or a flight number. Three very different views of the same world, returned in one unified schema so you can join them without writing a mapper.
Most flight trackers on the Store do exactly one of these. This one does all three, adds a real change-detection mode for scheduled monitoring, and returns the recorded position trail that snapshot scrapers cannot give you.
What you get
| Mode | What it returns |
|---|---|
| Live positions | Every aircraft inside one or more map areas: callsign, flight number, registration, ICAO 24 bit address, latitude, longitude, altitude, ground speed, vertical speed, heading, squawk, aircraft type, airline, origin and destination, ground state |
| Airport board | An airport's departures or arrivals, walked past page 1 to the airport's own declared total: flight number, airline, route, aircraft, scheduled, estimated and actual times, terminal, gate, live status |
| Aircraft / flight history | Every past and scheduled leg for a tail number or a flight number, with full route, airports with coordinates, timings and status |
| Paste links | Give it flightradar24.com/data/... links and it resolves each one into the right mode above |
Turn on flight detail enrichment in live mode and every aircraft also gets full airport names, cities and countries, terminal and gate, scheduled, estimated and real departure and arrival times, delay, flight duration, and the recorded position trail (latitude, longitude, altitude, speed, heading and timestamp per point).
Quick start
Live traffic over western Europe, 50 aircraft:
{"mode": "live","bounds": ["55.0,45.0,-6.0,10.0"],"maxItems": 50}
Heathrow departures, the whole board:
{"mode": "airport","airports": ["LHR"],"boardMode": "departures","maxItems": 0}
Everything a particular aircraft has flown:
{"mode": "history","historyQueries": ["G-TUKR"],"fetchBy": "reg","maxItems": 0}
Approach traffic into London only, below 10,000 ft, with full detail and trails:
{"mode": "live","bounds": ["51.7,51.2,-0.6,0.3"],"maxAltitudeFt": 10000,"includeOnGround": false,"fetchDetails": true,"maxItems": 0}
Map areas
A map area is a bounding box written as north,south,west,east in decimal degrees. Add as many as
you like; each is fetched as its own scope.
| Region | Bounding box |
|---|---|
| Western Europe | 55.0,45.0,-6.0,10.0 |
| Continental USA | 49.0,24.0,-125.0,-66.0 |
| Greater London | 51.7,51.2,-0.6,0.3 |
| New York area | 41.2,40.4,-74.5,-73.4 |
| Japan | 45.6,30.9,128.5,146.0 |
| Gulf region | 27.0,22.5,50.0,57.0 |
Filters
Every filter applies to every mode, including pasted links, because URL mode resolves each link and then runs the same scrape path the other modes use.
- Flight numbers or callsigns, aircraft registrations, airlines (ICAO or IATA)
- Origin and destination airports (IATA or ICAO)
- Minimum and maximum altitude in feet
- Include aircraft on the ground and include gliders toggles
A row that cannot know a value is never dropped by that filter. An airport board row carries no altitude, so an altitude filter leaves board rows alone instead of silently turning into a mode filter.
Recurring monitoring
Two separate features, both in the Resume & recurring updates section:
- Resume from a previous run continues ONE interrupted crawl. Paste the previous run or dataset ID and already collected flights are skipped, not re-charged.
- Incremental mode is for a schedule. The first run returns everything as
NEW; later runs return onlyNEW,UPDATEDandREAPPEARED. Optional toggles addUNCHANGEDandEXPIREDrows (both bill extra rows, so both default to off).
What counts as a change
Change detection deliberately ignores position, altitude, ground speed, vertical speed and
heading. A flying aircraft reports new values for all of those every few seconds, so if they drove
change detection every row would come back UPDATED on every run, which is the same as having no
change detection at all, and you would be billed for the whole set every time.
Those values are still returned in full, with their current value, on every row. What triggers
UPDATED is a real event: a status change, a new estimated or actual time, a delay, a gate or
terminal change, a route change, or a different aircraft or airline.
EXPIRED is only ever produced after a run that genuinely finished scanning its targets. A run that
was cut short by the Max flights cap, a resumed run, a run where a target failed, and a run that
scanned nothing at all will all skip expiry detection rather than wrongly marking live flights gone.
Output
One record shape for every mode, so a table never comes back ragged. Fields a given mode cannot know
are present and null rather than missing.
{"id": "live|416346ed","recordType": "live","fr24Id": "416346ed","callsign": "TOM8HB","flightNumber": "BY733","registration": "G-TUKR","icao24": "407F96","squawk": null,"aircraftCode": "B738","aircraftModel": "Boeing 737-8K5","airlineName": "TUI","airlineIata": "X3","airlineIcao": "TUI","originIata": "AGA","originName": "Agadir Al Massira Airport","originCity": "Agadir","originCountry": "Morocco","destinationIata": "MAN","destinationName": "Manchester Airport","destinationCity": "Manchester","destinationCountry": "United Kingdom","latitude": 50.6383,"longitude": -1.4173,"altitudeFt": 36000,"groundSpeedKts": 487,"verticalSpeedFpm": 64,"headingDeg": 1,"onGround": false,"positionUpdatedAt": "2026-08-28T00:50:15Z","statusText": "Delayed 05:07","statusLive": true,"scheduledDeparture": "2026-08-27T20:55:00Z","realDeparture": "2026-08-27T22:52:21Z","scheduledArrival": "2026-08-28T00:45:00Z","estimatedArrival": "2026-08-28T01:27:28Z","etaAt": "2026-08-28T01:27:28Z","delaySeconds": 71,"trailPoints": 240,"flightUrl": "https://www.flightradar24.com/TOM8HB/416346ed","scrapedAt": "2026-08-28T00:50:30Z"}
trail holds the recorded track when detail enrichment is on:
"trail": [{ "latitude": 50.6066, "longitude": -1.4189, "altitudeFt": 36000,"groundSpeedKts": 488, "headingDeg": 1, "recordedAt": "2026-08-28T00:50:00Z" }]
In incremental mode each row also carries changeType, changedFields, firstSeenAt and
lastSeenAt.
Pricing
You are charged for:
- Flight record, charged per row returned, whichever mode produced it.
- Flight detail enrichment (lives in the Output & limits input section), charged once per flight only when you turn detail on. If the detail lookups start failing, enrichment switches itself off for the rest of the run and nothing further is charged; base rows keep flowing.
- Actor start, charged once per run.
Nothing is charged for an empty or failed run.
Connection
Apify Proxy is recommended, and the default connection works on every plan. If a particular network gives you empty results, pick another connection in the Connection section.
Notes and limits
- A run whose requests were all rejected fails rather than reporting success with zero rows, so a connection problem can never be mistaken for an empty search.
- Airport boards are walked page by page up to the airport's own declared total, bounded by your Max flights cap.
- Aircraft history does not publish a total row count, so that walk continues until the source says there are no more pages.
- Live positions are a snapshot at request time. For continuous tracking, schedule the actor and use incremental mode.
- Coverage of any given aircraft depends on receiver coverage in that area; some military and private aircraft are not broadcast at all.
Send results into your apps (MCP connectors)
Optionally pipe results straight into Notion, Linear, Airtable or any MCP server, from the Export to your apps (MCP connectors, optional) section of the input. It is a side channel only: the dataset is never changed, and a connector failure never fails the run.
Input parameters
| Parameter | What it does |
|---|---|
mcpConnectors | The MCP connectors this run exports into (Notion, Linear, Airtable, Apify). Leave it empty and nothing is exported. |
notionParentPageUrl | Notion connector only: the page under which one child page per flight is created. Required when mcpConnectors includes Notion, ignored otherwise. |
maxNotifyListings | How many items are exported to each connector in one run, default 50. Caps the export only; it never changes what the dataset returns. |