Flightradar24 APIflightradar24.com ↗
Access live flight tracking, airport boards, airline databases, and flight details from Flightradar24 via 6 structured JSON endpoints.
What is the Flightradar24 API?
The Flightradar24 API exposes 6 endpoints covering live flight search, airport and airline databases, real-time departure/arrival boards, detailed per-flight data, and current most-tracked flights. The get_flight_details endpoint alone returns 7 top-level objects — identification, status, aircraft, airline, airport, time, and trail — giving you a complete snapshot of any flight by its Flightradar24 ID.
curl -X GET 'https://api.parse.bot/scraper/f591f5ce-ff2a-4d8e-aa7e-6f6736de89cb/search?limit=10&query=AA100' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace flightradar24-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Flightradar24 SDK — search flights, browse airport boards, drill into details."""
from parse_apis.Flightradar24_API import Flightradar24, BoardType, FlightNotFound
fr24 = Flightradar24()
# Search for flights by keyword — limit caps total items fetched
for result in fr24.search_results.search(query="AA100", limit=5):
print(result.label, result.type, result.match)
# Get the departures board for JFK using a constructible Airport
jfk = fr24.airport(iata="JFK")
board = jfk.board(type=BoardType.DEPARTURES, limit=10)
print(board.schedule, board.aircraft_count)
# List most-tracked flights and drill into one's details
tracked = fr24.tracked_flights.list(limit=1).first()
if tracked:
print(tracked.flight, tracked.from_iata, tracked.to_iata, tracked.clicks)
try:
detail = tracked.details()
print(detail.identification, detail.airline)
for point in detail.trail:
print(point.lat, point.lng, point.alt, point.spd)
except FlightNotFound as exc:
print(f"Flight no longer tracked: {exc.flight_id}")
# List airlines
for airline in fr24.airlines.list(limit=3):
print(airline.name, airline.iata, airline.active)
print("exercised: search_results.search / airport.board / tracked_flights.list / details / airlines.list")
Full-text search across flights, airports, airlines, and aircraft by keyword. Matches against flight numbers, airport codes, airline names, and aircraft registrations. Returns categorized results with match type indicators and total counts by category. Each result includes an id usable for further lookups (flight IDs for get_flight_details, IATA codes for get_airport_board).
| Param | Type | Description |
|---|---|---|
| limit | integer | Max number of results to return. |
| queryrequired | string | Search keyword — flight number (e.g. 'AA100'), airport IATA code (e.g. 'JFK'), airline name (e.g. 'Delta'), or aircraft registration. |
{
"type": "object",
"fields": {
"stats": "object with total and count breakdowns by category (airport, operator, live, schedule, aircraft)",
"results": "array of search result objects with id, label, detail, type, match, and optionally name fields"
},
"sample": {
"data": {
"stats": {
"count": {
"live": 2,
"airport": 0,
"aircraft": 7,
"operator": 1,
"schedule": 11
},
"total": {
"all": 21,
"live": 2,
"airport": 0,
"aircraft": 7,
"operator": 1,
"schedule": 11
}
},
"results": [
{
"id": "AAL",
"name": "American Airlines",
"type": "operator",
"label": "American Airlines (AAL / AA)",
"match": "iata",
"detail": {
"iata": "AA",
"operator_id": 30
}
},
{
"id": "401fd0dd",
"type": "live",
"label": "AA1003 / AAL1003 / B738 (N858NN)",
"match": "begins",
"detail": {
"lat": 18.9,
"lon": -66.2,
"reg": "N858NN",
"route": "Basseterre (SKB) → Miami (MIA)",
"flight": "AA1003",
"ac_type": "B738",
"schd_to": "MIA",
"callsign": "AAL1003",
"operator": "AAL",
"schd_from": "SKB",
"operator_id": 30
}
}
]
},
"status": "success"
}
}About the Flightradar24 API
What the API Covers
This API surfaces flight and airport data from Flightradar24 across six endpoints. search accepts a free-text query — a flight number like AA100, an airport code like MAA, or an airline name — and returns categorized results broken down by live flights, scheduled flights, operators, aircraft, and airports. The stats field in the response shows exact counts per category so you can scope downstream requests.
Airport and Airline Databases
get_airports returns the full Flightradar24 airport database as an array of objects, each carrying iata, icao, city, lat, lon, alt, timezone, size, and countryId. get_airlines returns the airline roster with iata, icao, name, active status, and metadata including logo references. Both endpoints return a version field so you can detect when the underlying database has been updated.
Live Boards and Flight Details
get_airport_board takes an IATA code and an optional type parameter (arrivals or departures) and returns paginated flight lists under a schedule object, plus aircraftCount with ground and onGround tallies. To drill into a single flight, pass its hexadecimal Flightradar24 flight ID to get_flight_details. The response includes a trail array of position objects (lat, lng, alt, spd, ts, hd) for plotting the flight path, alongside scheduled and estimated timestamps in the time object and a plain-text status.text description.
Most-Tracked Flights
get_most_tracked requires no inputs and returns a ranked list of flights currently drawing the most viewer attention on Flightradar24. Each item includes callsign, clicks, flight, model, from_iata, to_iata, from_city, and to_city, making it straightforward to surface trending flights in a dashboard or alert system. The response also carries update_time as a Unix timestamp so you know how fresh the ranking is.
The Flightradar24 API is a managed, monitored endpoint for flightradar24.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when flightradar24.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official flightradar24.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a live departure board widget using
get_airport_boardwith a specific IATA code andtype: departures - Plot a flight's path on a map using the
trailarray fromget_flight_detailswith lat, lng, alt, and heading fields - Monitor the most-tracked flights globally and surface trending routes using
get_most_trackedclick counts - Populate an airline selector UI with IATA/ICAO codes and logos from
get_airlines - Resolve a free-text flight number or airport name to a structured ID using the
searchendpoint's categorized results - Build a flight status notification system by polling
get_flight_detailsfor live status text and estimated arrival timestamps - Enrich a travel app's airport picker with timezone, elevation, and geo coordinates from
get_airports
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Flightradar24 have an official developer API?+
What does `get_flight_details` return for a completed flight versus a live one?+
status object indicates live tracking is active, and the trail array contains recent position points. For completed flights, trail data reflects the historical path and estimated timestamps in the time object are replaced by actuals where available. The status.text field provides a human-readable description in both cases.Does `get_airport_board` include gate and terminal information?+
schedule object. Gate and terminal data are not currently exposed. You can fork this API on Parse and revise it to add an endpoint targeting that information if it becomes available.Is historical flight data accessible through any of the six endpoints?+
get_flight_details can return trail and timing data for recently completed flights when a valid flight ID is supplied, but dedicated historical flight archives are not covered. You can fork this API on Parse and revise it to add a historical lookup endpoint.How do I get a flight ID to use with `get_flight_details`?+
3f93b674) assigned by Flightradar24. You can obtain them from the results array returned by search or from the flight data arrays inside get_airport_board schedule responses.