Flightradar24 Live Flights API
Our Flightradar24 API allows you to scrape live flights from the Flightradar24 map. For each flight, the API returns its flight number, callsign, airline, departure and arrival airports, aircraft type and registration, GPS coordinates, altitude, speed, and track.
Search a map area with map_bounds, filter flights by flight number, callsign, airline, registration, aircraft type, or airport (see Filtering), or combine both. Flightradar24 returns up to 1,500 flights per search.
Identical searches are served from the cache for up to 1 hour. Set no_cache to true to get the current positions of the flights.
The API endpoint is https://serpapi.com/search?engine=flightradar24
Head to the playground for a live and interactive demo.
API Parameters
Search Query
map_bounds
Optional
Parameter defines the GPS coordinates of the map area to search in, like moving the map on Flightradar24. Only flights within these bounds are returned. Its value must be 4 comma-separated numbers matching the following format:north + , + east + , + south + , + westnorth and south are latitudes, and east and west are longitudes (e.g., 51.69,0.33,51.28,-0.51 for London). An area crossing the antimeridian has a west longitude greater than its east longitude (e.g., 60,-170,40,170 around the Aleutian Islands).
When not set, flights are searched worldwide. Flightradar24 returns up to 1,500 flights per search, so narrow the map area or add filters to get every flight of a busy area.
Flight Filters
flight_number
Optional
Parameter defines the flight number to search for (e.g., BA285). Flights whose number starts with this value are returned, so BA28 also returns BA285 and BA287. Multiple flight numbers can be separated by commas (e.g., BA285,BA287).
callsign
Optional
Parameter defines the callsign to search for (e.g., BAW5L). A callsign can differ from the flight number: BA285 flies as BAW5L. Flights whose callsign starts with this value are returned. Multiple callsigns can be separated by commas (e.g., BAW5L,BAW28K).
airline
Optional
Parameter defines the airline to search for, as a 3-letter ICAO airline code (e.g., BAW for British Airways), not its 2-letter IATA code (BA). The ICAO code is shown after the IATA code when you search for the airline on Flightradar24. Multiple airlines can be separated by commas (e.g., BAW,VIR).
registration
Optional
Parameter defines the aircraft registration to search for (e.g., G-XLEK). Aircraft whose registration starts with this value are returned, so G-XLE returns the British Airways Airbus A380s, and G- returns every aircraft registered in the United Kingdom. Multiple registrations can be separated by commas (e.g., G-XLEK,G-XLEH).
aircraft_type
Optional
Parameter defines the aircraft type to search for, as an ICAO aircraft type designator (e.g., A388 for the Airbus A380-800). It's shown in the aircraft details of a flight on Flightradar24. Aircraft whose type starts with this value are returned, so B77 returns every Boeing 777 variant. Multiple aircraft types can be separated by commas (e.g., A388,B748).
Airport Filters
airport
Optional
Parameter defines the airport that flights depart from or arrive at, as a 3-letter IATA airport code (e.g., LHR for London Heathrow). You can search for it on Flightradar24 or IATA. Multiple airports can be separated by commas (e.g., LHR,LGW).
departure_id
Optional
Parameter defines the airport that flights depart from, as a 3-letter IATA airport code (e.g., LHR for London Heathrow). You can search for it on Flightradar24 or IATA. Multiple airports can be separated by commas (e.g., LHR,LGW).
arrival_id
Optional
Parameter defines the airport that flights arrive at, as a 3-letter IATA airport code (e.g., JFK for New York JFK). You can search for it on Flightradar24 or IATA. Multiple airports can be separated by commas (e.g., JFK,EWR).
Serpapi Parameters
no_cache
Optional
Parameter will force SerpApi to fetch the Flightradar24 results even if a cached version is already present. A cache is served only if the query and all parameters are exactly the same. Cache expires after 1h. Cached searches are free, and are not counted towards your searches per month. It can be set to false (default) to allow results from the cache, or true to disallow results from the cache. no_cache and async parameters should not be used together.
async
Optional
Parameter defines the way you want to submit your search to SerpApi. It can be set to false (default) to open an HTTP connection and keep it open until you got your search results, or true to just submit your search to SerpApi and retrieve them later. In this case, you'll need to use our Searches Archive API to retrieve your results. async and no_cache parameters should not be used together. async should not be used on accounts with Ludicrous Speed enabled.
zero_trace
Optional
Enterprise only. Parameter enables ZeroTrace mode. It can be set to false (default) or true. Enable this mode to skip storing search parameters, search files, and search metadata on our servers. This may make debugging more difficult.
output
Optional
Parameter defines the format of the result. It can be set to json (default) to get a structured JSON of the results, html to get the raw HTML retrieved, or md to get a markdown-formatted version optimized for LLMs and AI agents.
json_restrictor
Optional
Parameter defines the fields you want to include in the output, reducing payload size for faster response. See the JSON Restrictor documentation for more details.
API Results
JSON Results
JSON output includes structured data for Flights.
A search status is accessible through search_metadata.status.
It flows this way: Processing -> Success || Error.
If a search has failed, error will contain an error message.
search_metadata.id is the search ID inside SerpApi.
HTML Results
This API does not have a full HTML response, only text.
search_metadata.prettify_html_file contains a link to the prettified version of the result.
It is displayed in the playground.
Markdown Results
Markdown output is optimized for LLMs and AI agents. It provides most of the same informational content as JSON
in a token-efficient format using tables, markdown links, and YAML frontmatter.
To access, use the output=md parameter, the /search.md endpoint, or request header Accept: text/markdown.
API Examples
Example with map_bounds: 51.69,0.33,51.28,-0.51 (London)
map_bounds defines the GPS coordinates of the map area to search in, in the north,east,south,west format, like moving the map on Flightradar24. It can be used alone, as in this example, or together with any of the flight and airport filters. Aircraft on the ground, such as the ones parked at London Heathrow, are included, with on_ground set to true. Airport ground vehicles are included too, with aircraft_type set to GRND.
{
"search_metadata": {
"id": "6acfcaa1877a912362157741",
"status": "Success",
"json_endpoint": "https://serpapi.com/searches/hSFA3nZL7ObuNaEiDA0WNePop9GslVQzfbUaIEs3VCQ/6acfcaa1877a912362157741.json",
"markdown_endpoint": "https://serpapi.com/searches/hSFA3nZL7ObuNaEiDA0WNePop9GslVQzfbUaIEs3VCQ/6acfcaa1877a912362157741.md",
"created_at": "2026-10-14 18:32:01 UTC",
"processed_at": "2026-10-14 18:32:01 UTC",
"flightradar24_url": "https://www.flightradar24.com/51.49,-0.09/10",
"raw_html_file": "https://serpapi.com/searches/hSFA3nZL7ObuNaEiDA0WNePop9GslVQzfbUaIEs3VCQ/6acfcaa1877a912362157741.html",
"prettify_html_file": "https://serpapi.com/searches/hSFA3nZL7ObuNaEiDA0WNePop9GslVQzfbUaIEs3VCQ/6acfcaa1877a912362157741.prettify",
"total_time_taken": 0.72
},
"search_parameters": {
"engine": "flightradar24",
"map_bounds": "51.69,0.33,51.28,-0.51"
},
"flights": [
{
"flight_id": "421f58c3",
"flight_number": "LH2487",
"callsign": "DLH7CY",
"airline_icao_code": "DLH",
"departure_airport": {
"id": "LHR"
},
"arrival_airport": {
"id": "MUC"
},
"aircraft_type": "A20N",
"registration": "D-AINR",
"icao_24bit_address": "3C65D2",
"gps_coordinates": {
"latitude": 51.4647,
"longitude": -0.4957
},
"altitude": 1150,
"vertical_speed": 1664,
"ground_speed": 146,
"track": 268,
"on_ground": false,
"last_updated": "2026-10-14T18:31:59Z",
"link": "https://www.flightradar24.com/DLH7CY/421f58c3"
},
{
"flight_id": "421f5db1",
"flight_number": "BA486",
"callsign": "BAW486",
"airline_icao_code": "BAW",
"departure_airport": {
"id": "LHR"
},
"arrival_airport": {
"id": "BCN"
},
"aircraft_type": "A320",
"registration": "G-EUYT",
"icao_24bit_address": "406A3D",
"gps_coordinates": {
"latitude": 51.4718,
"longitude": -0.4862
},
"altitude": 0,
"vertical_speed": 0,
"ground_speed": 0,
"track": 270,
"on_ground": true,
"last_updated": "2026-10-14T18:31:59Z",
"link": "https://www.flightradar24.com/BAW486/421f5db1"
},
{
"flight_id": "421f5f85",
"flight_number": "BA378",
"callsign": "BAW378",
"airline_icao_code": "BAW",
"departure_airport": {
"id": "LHR"
},
"arrival_airport": {
"id": "TIA"
},
"aircraft_type": "A20N",
"registration": "G-TTNK",
"icao_24bit_address": "40792E",
"gps_coordinates": {
"latitude": 51.4736,
"longitude": -0.486
},
"altitude": 0,
"vertical_speed": 0,
"ground_speed": 0,
"track": 270,
"on_ground": true,
"last_updated": "2026-10-14T18:31:58Z",
"link": "https://www.flightradar24.com/BAW378/421f5f85"
},
...
]
}
Example with flight_number: BA285 (London to San Francisco)
Flightradar24 returns the flights whose number starts with the flight_number value, so a full flight number like BA285 usually returns a single flight, but AA280 also returns AA2802. Its link opens the flight on Flightradar24.
{
...
"flights": [
{
"flight_id": "421d95ab",
"flight_number": "BA285",
"callsign": "BAW5L",
"airline_icao_code": "BAW",
"departure_airport": {
"id": "LHR"
},
"arrival_airport": {
"id": "SFO"
},
"aircraft_type": "A388",
"registration": "G-XLEK",
"icao_24bit_address": "406EC9",
"gps_coordinates": {
"latitude": 50.9389,
"longitude": -119.3522
},
"altitude": 40000,
"vertical_speed": 0,
"ground_speed": 481,
"track": 203,
"on_ground": false,
"last_updated": "2026-10-14T18:31:59Z",
"link": "https://www.flightradar24.com/BAW5L/421d95ab"
}
]
}
JSON Structure Overview
{
...
"flights": [
{
"flight_id": "String - Flightradar24 ID of the flight.",
"flight_number": "String - Flight number. Not always present. (Ex. BA285)",
"callsign": "String - Callsign of the flight, used by air traffic control. Not always present. (Ex. BAW5L)",
"airline_icao_code": "String - ICAO code of the airline. Not always present. (Ex. BAW)",
// departure_airport is not always present
"departure_airport": {
"id": "String - IATA code of the departure airport. For an airport ground vehicle, the airport it is at. (Ex. LHR)"
},
// arrival_airport is not always present
"arrival_airport": {
"id": "String - IATA code of the arrival airport. (Ex. SFO)"
},
"aircraft_type": "String - ICAO type designator of the aircraft, or GRND for an airport ground vehicle. Not always present. (Ex. A388)",
"registration": "String - Registration of the aircraft. Not always present. (Ex. G-XLEK)",
"icao_24bit_address": "String - ICAO 24-bit address of the aircraft, in hexadecimal. Not always present. (Ex. 406EC9)",
"gps_coordinates": {
"latitude": "Float - Latitude of the aircraft.",
"longitude": "Float - Longitude of the aircraft."
},
"altitude": "Integer - Barometric altitude of the aircraft, in feet.",
"vertical_speed": "Integer - Vertical speed of the aircraft, in feet per minute. Negative when descending.",
"ground_speed": "Integer - Ground speed of the aircraft, in knots.",
"track": "Integer - Track of the aircraft, in degrees clockwise from north.",
"on_ground": "Boolean - True when the aircraft is on the ground.",
"last_updated": "String - Time of the last position of the aircraft, in ISO 8601 format. (Ex. 2026-10-14T18:31:59Z)",
"link": "String - Link to the flight on Flightradar24. Not present for flights without a callsign."
},
...
]
}