Trick or treat! (Boo!!) 

Flight Tracking and Flight Status API

Harness FlightAware's flight data using FlightXML, the world’s most robust flight tracking API.

Start making queries today! View Pricing

Key Features

  • Access and leverage all of FlightAware's flight data sources through our easy to use API
  • Real-time configurable flight event alerts
  • Volume-based pricing on API queries
  • Access to FlightAware Foresight, the industry standard for predictive aviation data
  • Numerous code examples in over a dozen programming languages

Push and Pull Flight Data

FlightXML 2.0 is a simple, query-based API that gives programs access to any of FlightAware’s flight data. Users can obtain current or historical data and the API is compatible with any application that supports SOAP/WSDL or REST/JSON. With the introduction of Foresight into the API, customers have access to the data that powers over half of the predictive times in the U.S.

Query the API for flights based on a combination of properties:

  • Flight or tail number
  • Origin and/or destination airport
  • Aircraft type
  • A low-to-high range of altitude
  • A low-to-high range of groundspeed

Retrieve flight data through the API including:

  • The flight or tail number
  • The aircraft type
  • Origin and destination
  • Time the last position was received
  • Longitude, latitude, groundspeed and altitude

Airports can also obtain a list of flight data via the API, including:

  • Scheduled flights
  • Flights that have departed
  • Flights that are enroute to the airport
  • Flights that have arrived at the airport

FlightXML 2.0 Code Examples

import requests

username = "YOUR_USERNAME"
apiKey = "YOUR_API_KEY"
fxmlUrl = "https://flightxml.flightaware.com/json/FlightXML2/"

payload = {'airport':'KSFO', 'howMany':'10'}
response = requests.get(fxmlUrl + "Enroute",
	params=payload, auth=(username, apiKey))

if response.status_code == 200:
	print response.json()
else:
	print "Error executing request"
								
var Client = require('node-rest-client').Client;
var username = 'YOUR_USERNAME';
var apiKey = 'YOUR_API_KEY';
var fxmlUrl = 'https://flightxml.flightaware.com/json/FlightXML2/';
var client_options = {
	user: username,
	password: apiKey
};
var client = new Client(client_options);
client.registerMethod('airlineInfo', fxmlUrl + 'AirlineInfo', 'GET');
var airlineInfoArgs = {
	parameters: {
		airlineCode: 'UAL'
	}
};
client.methods.airlineInfo(airlineInfoArgs, function (data, response) {
	console.log(data);
});
								
<?php
$username = "YOUR_USERNAME";
$apiKey = "YOUR_API_KEY";
$fxmlUrl = "https://flightxml.flightaware.com/json/FlightXML2/";

$queryParams = array(
	'ident' => 'SWA45',
	'howMany' => 10,
	'offset' => 10
);
$url = $fxmlUrl . 'FlightInfoEx?' . http_build_query($queryParams);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $apiKey);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

if ($result = curl_exec($ch)) {
	curl_close($ch);
	echo $result;
}
?>							
string fxmlUrl = "http://flightxml.flightaware.com/json/FlightXML2";
string username = "YOUR_USERNAME";
string apiKey = "YOUR_APIKEY";
var uriBuilder = new UriBuilder(fxmlUrl);
var requestUrl = fxmlUrl
	.AppendPathSegment("AirportInfo")
	.SetQueryParams(new { airportCode = "KIAH" });
var serializer = new DataContractJsonSerializer(typeof(AirportInfoResult));
var client = new HttpClient();
var credentials = Encoding.ASCII.GetBytes(username + ":" + apiKey);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(credentials));
var streamTask = client.GetStreamAsync(apiUrl);
var airportInfo = serializer.ReadObject(await streamTask) as AirportInfoResult;
Console.WriteLine(airportInfo.AirportResult.Code);
								

FlightXML 2.0 can also be used with Python, Ruby, Java, Tcl, Perl, ASP, and other languages. View additional code examples.

Compare FlightXML Plans

Feature
Basic
Business
Commercial
Authorized Uses
Personal or B2C applications
Creating internal use applications
B2B (business) applications
Per Query Fee
Monthly Access Fee
+ Per Query Fee
Personal Use
Allowed
Not Allowed
Not Allowed
Internal Commercial Use
Not Allowed
Allowed
Allowed
Commercialization and Productization
B2C applications only
Not Allowed
Allowed
Service Level Agreement
Not Available
99.0% up-time
99.0% up-time
Support via E-mail
Not Available
Included, during FlightAware business hours
Included, during FlightAware business hours
Support via Phone
Not Available
Included, during FlightAware business hours
Included, during FlightAware business hours
Feature
Authorized Uses
Basic License
Personal or B2C applications
Business License
Creating internal use applications
Commercial License
B2B (business) applications
Basic License
Per Query Fee
Business License
Monthly Access Fee
+ Per Query Fee
Commercial License
Personal Use
Basic License
Allowed
Business License
Allowed
Commercial License
Allowed
Internal Commercial Use
Basic License
Not Allowed
Business License
Allowed
Commercial License
Allowed
Commercialization and Productization
Basic License
B2C applications only
Business License
B2C applications only
Commercial License
Allowed
Basic License
Not Available
Business License
Commercial License
Service Level Agreement
Basic License
Not Available
Business License
99.0% up-time
Commercial License
99.0% up-time
Support via E-mail
Basic License
Not Available
Business License
Included, during FlightAware business hours
Commercial License
Included, during FlightAware business hours
Support via Phone
Basic License
Not Available
Business License
Included, during FlightAware business hours
Commercial License
Included, during FlightAware business hours
Basic License
Business License
Commercial License

FlightXML Per Query Fee

Available FlightXML query methods are organized by pricing classes based on how complex or costly it is for FlightAware to deliver the result. The RegisterAlertEndpoint and SetMaximumResultSize methods are available for free.

Rates are shown as per 1000 queries for simplicity and based on your monthly usage, determined at the end of each month. You will be charged for each call, not for each 1,000 calls. Expand each class to view full volume pricing.

FlightXML Query Pricing Tiers
Detailed status and positions for flights in the last 24-hours as well as airline flight schedules and flight map images.
$12 per 1000 queries
Queries
  1. AirlineFlightSchedules
  2. AirlineInsight
  3. MapFlight
  4. MapFlightEx
  5. SearchBirdseyeInFlight
  6. SearchBirdseyePositions
# of QueriesPrice Per Query
1 - 9,999$0.0120
10,000 - 24,999$0.0070
25,000 - 49,999$0.0060
50,000 - 99,999$0.0050
100,000 - 249,999$0.0040
250,000 - 999,999$0.0030
1,000,000 - 4,999,999$0.0020
More than 5,000,000? Contact FlightAware
Airport flight information (recent arrival, departure, en route, and scheduled flights), flight route decoding, historical flight positions, recent flight lookup by ident, recently filed IFR routes, and triggered push alerts.
$7.90 per 1000 queries
Queries
  1. AirlineFlightInfo
  2. AllAirports
  3. Arrived
  4. CountAirportOperations
  5. DecodeFlightRoute
  6. DecodeRoute
  7. Departed
  8. Enroute
  9. FleetArrived
  10. FlightInfo
  11. GetHistoricalTrack
  12. GetLastTrack
  13. InFlightInfo
  14. InboundFlightInfo
  15. PushAlert
  16. RoutesBetweenAirports
  17. RoutesBetweenAirportsEx
  18. Scheduled
  19. Search
  20. SearchCount
# of QueriesPrice Per Query
1 - 9,999$0.0079
10,000 - 24,999$0.0046
25,000 - 49,999$0.0040
50,000 - 99,999$0.0033
100,000 - 249,999$0.0026
250,000 - 999,999$0.0020
1,000,000 - 4,999,999$0.0013
More than 5,000,000? Contact FlightAware
Weather reports/forecasts, alert set up, airline flight status, and airport metadata.
$2 per 1000 queries
Queries
  1. AircraftType
  2. AirportInfo
  3. AllAirlines
  4. BlockIdentCheck
  5. CountAllEnrouteAirlineOperations
  6. DeleteAlert
  7. FleetScheduled
  8. FlightInfoEx
  9. GetAlerts
  10. Metar
  11. NTaf
  12. SetAlert
  13. Taf
  14. TailOwner
# of QueriesPrice Per Query
1 - 9,999$0.0020
10,000 - 24,999$0.0012
25,000 - 49,999$0.0010
50,000 - 99,999$0.0008
100,000 - 249,999$0.0007
250,000 - 999,999$0.0005
1,000,000 - 4,999,999$0.0003
More than 5,000,000? Contact FlightAware
Decoded weather reports, latitude/longitude distance/heading calculations, and airline/operator metadata.
$0.80 per 1000 queries
Queries
  1. AirlineInfo
  2. GetFlightID
  3. LatLongsToDistance
  4. LatLongsToHeading
  5. MetarEx
  6. ZipcodeInfo
# of QueriesPrice Per Query
1 - 9,999$0.0008
10,000 - 24,999$0.0005
25,000 - 49,999$0.0004
50,000 - 99,999$0.0003
100,000 - 249,999$0.0003
250,000 - 999,999$0.0002
1,000,000 - 4,999,999$0.0001
More than 5,000,000? Contact FlightAware

Frequently Asked Questions

How is a pricing class determined?
The pricing class of a FlightXML method is determined by how complex or costly it is for FlightAware deliver the result. All FlightXML users are allowed to use methods from all classes without any restrictions, since these pricing classes are only used to determine the cost that will be billed for that individual request, and not to limit access. For example, requesting a list of aircraft en route to LAX ("Enroute") would be a more expensive class query than requesting the name and location of an airport ("AirportInfo"). Requesting the heading of an aircraft based on two positions ("LatLongsToHeading") would be an even less expensive class query.
How is query count determined?
The query count is determined by the number of times a FlightXML method is invoked by your application at its default number of results; each invocation will count as a single query. Many FlightXML methods return lists and limit the number of results to 15 records by default, but also have a "howMany" argument that allow you to request a larger number of results. If you specify a value for "howMany" that is greater than 15 (and have already invoked "SetMaximumResultSize" to opt-in to a larger maximum limit), then you may be returned up to the quantity specified by howMany, if possible. You will be billed for a query count equivalent to the actual number of results returned divided by 15, rounded up. For example, if you call SetMaximumResultSize with a max_size of 100, then call FlightInfo with howMany of 45, but it only returns 35 records, you will be charged the equivalent of calling FlightInfo a total of 3 times, or 1+int(35/15).
How is pricing tier determined?
The pricing tier is determined by the total query count that your account accumulates during the monthly billing period. The cost per query for all pricing classes is reduced as your account qualifies for a higher pricing tier by making a greater numbers of queries in that month. It is not necessary to choose which pricing tier you want, since it is automatically determined each month based on the actual number of queries your account has made.

Used by Organizations Across the World

Documentation

FlightAware's API for flight status, flight tracking and aviation data can be accessed via REST or SOAP and the API can be accessed using any programming language.

Support

Please visit our FAQ to find answers to general questions or check out our discussion forum for more in-depth information.

Login

Don't have an account? Register now (free) for customized features, flight alerts, and more!
This website uses cookies. By using and further navigating this website, you accept this.
Dismiss
Did you know that FlightAware flight tracking is supported by advertising?
You can help us keep FlightAware free by allowing ads from FlightAware.com. We work hard to keep our advertising relevant and unobtrusive to create a great experience. It's quick and easy to whitelist ads on FlightAware or please consider our premium accounts.
Dismiss