Download OpenAPI specification:Download
Flight Track APIs, part of the FlightStats APIs, give you access to information on an active flight, including position (lat/long), altitude, bearing, speed and route.
Cirium provides the best available position for active flights, either ASDI from the FAA or ADS-B from transceivers located around the globe. In cases where the flight is out of range of either of these systems -- such as ocean crossings -- Cirium derives the position based on the last known location and its destination. With a sourceType of 'derived', the API automatically returns the best available position. Users also have the option of requesting the 'raw' data (either ASDI or ADS-B) or 'all' which will return both derived and raw in the same payload.
Flight Track provides positional information needed to create flight tracking applications and answers questions such as
Initial flight plans and aircraft positions are made available when they are received (often roughly 24 hours in advance for flight plans) until roughly seven days after arrival.
The categories of Flight Track APIs include:
Flight Track by flight APIs are standard APIs and included in our Commercial and Contract plans.
Flight Track by route and airport, and Flights Near are premium APIs and only available in the Contract plan.
A breakdown of the available plans is available on Get evaluation account
Click the download button at the top of this document to download the OpenApi spec for this API. Other schemas:
By Flight long term support
By Flight extended fields
By Airport long term support
By Airport extended Fields
Flights Near long term support
Flights Near extended fields
FlightStats Flight Tracker - Single Flight - Status by Flight number
Flight Data (Laminar Data Hub) - Status and positional data appropriate for geospatial-aware applciations
Flight Status - Current flight information for flights about three days in advance of departure until about seven days after arrival
Returns the positional tracks of active flights having the specified arrival airport. Flight plans may be optionally included. "Active" flights are those for which positional data are available, and which have not yet landed. To narrow down to only the freshest data, you may optionally limit the age (in minutes) and/or number of positions per track.
format required | string Enum: "json" "jsonp" "xml" Example: json The response format |
airport required | string Example: MCI Arrival airport code |
carrier | string Example: carrier=WN Filter results to include only the carrier indicated |
includeFlightPlan | boolean Default: false Enum: true false Set to true to return the published flight plan |
maxPositions | integer <int64> >= 1 Example: maxPositions=2 Maximum number of positions in each track (per source) |
maxPositionAgeMinutes | integer <int64> >= 1 Example: maxPositionAgeMinutes=15 Maximum age (in minutes) for positions to include |
sourceType | string Default: "derived" Enum: "raw" "derived" "all" Positional source type |
codeType | string Enum: "IATA" "ICAO" "FS" Example: codeType=FS Type of airport code. If not specified, all domains will be searched in the order: IATA, ICAO, FS. |
maxFlights | integer <int64> >= 1 Example: maxFlights=5 The maximum number of unique flights to return tracks for, if missing all flights are returned |
extendedOptions | Array of strings Items Enum: "useHttpErrors" "useInlinedReferences" "includeNewFields" "languageCode:en" "languageCode:ar" "languageCode:de" "languageCode:es" "languageCode:fr" "languageCode:ja" "languageCode:ko" "languageCode:pt" "languageCode:zh" Extended options for modifying standard API behavior to fit special use cases |
Returns the positional tracks of active flights having the specified departure airport. Flight plans may be optionally included. "Active" flights are those for which positional data are available, and which have not yet landed. To narrow down to only the freshest data, you may optionally limit the age (in minutes) and/or number of positions per track.
format required | string Enum: "json" "jsonp" "xml" Example: json The response format |
airport required | string Example: MCI Departure airport code |
carrier | string Example: carrier=WN Filter results to include only the carrier indicated |
includeFlightPlan | boolean Default: false Enum: true false Set to true to return the published flight plan |
maxPositions | integer <int64> >= 1 Example: maxPositions=2 Maximum number of positions in each track (per source) |
maxPositionAgeMinutes | integer <int64> >= 1 Example: maxPositionAgeMinutes=15 Maximum age (in minutes) for positions to include |
sourceType | string Default: "derived" Enum: "raw" "derived" "all" Positional source type |
codeType | string Enum: "IATA" "ICAO" "FS" Example: codeType=FS Type of airport code. If not specified, all domains will be searched in the order: IATA, ICAO, FS. |
maxFlights | integer <int64> >= 1 The maximum number of unique flights to return tracks for, if missing all flights are returned |
extendedOptions | Array of strings Items Enum: "useHttpErrors" "useInlinedReferences" "includeNewFields" "languageCode:en" "languageCode:ar" "languageCode:de" "languageCode:es" "languageCode:fr" "languageCode:ja" "languageCode:ko" "languageCode:pt" "languageCode:zh" Extended options for modifying standard API behavior to fit special use cases |
Returns the positional tracks of flights, with a given carrier and flight number, arriving or having arrived on the given date. If 'hourOfDay' is specified, results will be limited to the given hour, unless 'numHours' is also specified. Arrival airport may optionally be specified. Flight plans may be optionally included. To narrow down to only the freshest data, you may optionally limit the age (in minutes) and/or number of positions per track.
format required | string Enum: "json" "jsonp" "xml" Example: json The response format |
carrier required | string Example: AS Carrier (airline) code |
flight required | string Example: 412 Flight number |
year required | string Example: 2021 Four-digit year |
month required | integer <int64> [ 1 .. 12 ] Example: 12 Month |
day required | integer <int64> [ 1 .. 31 ] Example: 1 Day of month |
hourOfDay required | integer <int64> [ 0 .. 23 ] Example: hourOfDay=14 Hour of day |
utc | boolean Default: false Enum: true false Time given as UTC instead of local |
numHours | integer <int64> [ 1 .. 24 ] Example: numHours=6 Number of hours worth of arrivals to include |
includeFlightPlan | boolean Default: false Enum: true false Set to true to return the published flight plan |
airport | string Example: airport=SEA Optional arrival airport code |
maxPositions | integer <int64> >= 1 Example: maxPositions=5 Maximum number of positions in each track (per source) |
maxPositionAgeMinutes | integer <int64> >= 1 Example: maxPositionAgeMinutes=15 Maximum age (in minutes) for positions to include |
sourceType | string Default: "derived" Enum: "raw" "derived" "all" Positional source type |
codeType | string Enum: "IATA" "ICAO" "FS" Example: codeType=FS Type of airport code. If not specified, all domains will be searched in the order: IATA, ICAO, FS. |
extendedOptions | Array of strings Items Enum: "useHttpErrors" "useInlinedReferences" "includeNewFields" "languageCode:en" "languageCode:ar" "languageCode:de" "languageCode:es" "languageCode:fr" "languageCode:ja" "languageCode:ko" "languageCode:pt" "languageCode:zh" Extended options for modifying standard API behavior to fit special use cases |
Returns the positional tracks of flights, with a given carrier and flight number, departing or having departed on the given date. If 'hourOfDay' is specified, results will be limited to the given hour, unless 'numHours' is also specified. Departure airport may optionally be specified. Flight plans may be optionally included. To narrow down to only the freshest data, you may optionally limit the age (in minutes) or number of positions per track.
format required | string Enum: "json" "jsonp" "xml" Example: json The response format |
carrier required | string Example: AS Carrier (airline) code |
flight required | string Example: 412 Flight number |
year required | string Example: 2021 Four-digit year |
month required | integer <int64> [ 1 .. 12 ] Example: 12 Month |
day required | integer <int64> [ 1 .. 31 ] Example: 1 Day of month |
hourOfDay required | integer <int64> [ 0 .. 23 ] Example: hourOfDay=14 Hour of day |
utc | boolean Default: false Enum: true false Time given as UTC instead of local |
numHours | integer <int64> [ 1 .. 24 ] Example: numHours=12 Number of hours worth of departures to include. |
includeFlightPlan | boolean Default: false Enum: true false Set to true to return the published flight plan |
airport | string Example: airport=PDX Optional departure airport code |
maxPositions | integer <int64> >= 1 Maximum number of positions in each track (per source) |
maxPositionAgeMinutes | integer <int64> >= 1 Maximum age (in minutes) for positions to include |
sourceType | string Default: "derived" Enum: "raw" "derived" "all" Positional source type |
codeType | string Enum: "IATA" "ICAO" "FS" Example: codeType=FS Type of airport code. If not specified, all domains will be searched in the order: IATA, ICAO, FS. |
extendedOptions | Array of strings Items Enum: "useHttpErrors" "useInlinedReferences" "includeNewFields" "languageCode:en" "languageCode:ar" "languageCode:de" "languageCode:es" "languageCode:fr" "languageCode:ja" "languageCode:ko" "languageCode:pt" "languageCode:zh" Extended options for modifying standard API behavior to fit special use cases |
Returns the positional track for a specific flight, specified by flight ID. Flight plan may be optionally included. To narrow down to only the freshest data, you may optionally limit the age (in minutes) and/or number of positions returned. You can obtain a candidate Flight ID using the other Flight Status API's
format required | string Enum: "json" "jsonp" "xml" Example: json The response format |
flightId required | integer <int64> Example: 110223 FlightStats' Flight ID number for the desired flight |
includeFlightPlan | boolean Default: false Enum: true false Set to true to return the published flight plan |
maxPositions | integer <int64> >= 1 Example: maxPositions=2 Maximum number of positions in each track (per source) |
maxPositionAgeMinutes | integer <int64> >= 1 Example: maxPositionAgeMinutes=45 Maximum age (in minutes) for positions to include |
sourceType | string Default: "derived" Enum: "raw" "derived" "all" Example: Positional source type |
extendedOptions | Array of strings Items Enum: "useHttpErrors" "useInlinedReferences" "includeNewFields" "languageCode:en" "languageCode:ar" "languageCode:de" "languageCode:es" "languageCode:fr" "languageCode:ja" "languageCode:ko" "languageCode:pt" "languageCode:zh" Extended options for modifying standard API behavior to fit special use cases |
Flights Near provides access to positional information on active flights in a requested geographic area including all available carrier, flight number, call sign, tail number, position (lat/long), altitude, bearing, and speed data. Get all flights with current positions inside a specified bounding box. Bounding box coordinates are specified in degrees of latitude/longitude. Sides of box must not exceed 5 degrees in length.
format required | string Enum: "json" "jsonp" "xml" Example: json The response format |
topLat required | number <float> [ -85 .. 85 ] Example: 22.235 Latitude for top of bounding box |
leftLon required | number <float> [ -180 .. 180 ] Example: -159.8085 Latitude for left of bounding box |
bottomLat required | number <float> [ -85 .. 85 ] Example: 21.8383 Latitude for bottom of bounding box |
rightLon required | number <float> [ -180 .. 180 ] Example: -159.261 Latitude for right of bounding box |
maxFlights | integer <int64> >= 1 Example: maxFlights=5 The maximum number of unique flights to return tracks for, if missing all flights are returned |
sourceType | string Default: "derived" Enum: "raw" "derived" "all" Positional source type |
extendedOptions | Array of strings Items Enum: "useHttpErrors" "useInlinedReferences" "includeNewFields" "languageCode:en" "languageCode:ar" "languageCode:de" "languageCode:es" "languageCode:fr" "languageCode:ja" "languageCode:ko" "languageCode:pt" "languageCode:zh" Extended options for modifying standard API behavior to fit special use cases |
Flights Near gets flights centered around a particular point, within a given radius. The area searched is a square (not circle); the radius specifies the distance from the center of the square to one of its corners. Center point is specified in degrees of latitude and longitude; radius is specified in miles.
format required | string Enum: "json" "jsonp" "xml" Example: json The response format |
lat required | number <float> [ -85 .. 85 ] Example: 39.6476 Latitude for center point |
lon required | number <float> [ -180 .. 180 ] Example: -80.858 Longitude for center point |
miles required | integer <int32> [ 1 .. 200 ] Example: 100 Radius within which to include flights |
maxFlights | integer <int64> >= 1 Example: maxFlights=5 The maximum number of unique flights to return tracks for, if missing all flights are returned |
sourceType | string Default: "derived" Enum: "raw" "derived" "all" Positional source type |
extendedOptions | Array of strings Items Enum: "useHttpErrors" "useInlinedReferences" "includeNewFields" "languageCode:en" "languageCode:ar" "languageCode:de" "languageCode:es" "languageCode:fr" "languageCode:ja" "languageCode:ko" "languageCode:pt" "languageCode:zh" Extended options for modifying standard API behavior to fit special use cases |