



Storage and distribution of derivative works for personal or academic purposes only.
Storage and distribution of derivative works for business or business-to-consumer purposes. Everything in Personal tier plus:
Storage and distribution of derivative works for business, business-to-consumer commercial purposes, and all Business-to-Business commercial purposes. Everything in Standard tier plus:
Personal | Standard | Premium | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Included APIs | |||||||||||
| Not included in Personal | Included in Standard | Included in Premium | |||||||||
FlightAware Foresight* | Not included in Personal | Not included in Standard | Included in Premium | ||||||||
Aireon Space-Based ADS-B* | Not included in Personal | Not included in Standard | Included in Premium | ||||||||
Historical Flight Data | Not included in Personal | Included in Standard | Included in Premium | ||||||||
| Included in Personal | Included in Standard | Included in Premium | |||||||||
| * Contact us to enable this feature. Some restrictions for use apply. | |||||||||||
Pricing Details | |||||||||||
Pricing (View Per-Query Fees) | Per-query usage fees (up to $5 free per month, or $10 free per month for ADS-B feeders) | Standard includes:Per-query usage fees (subject to monthly minimum) | Premium includes:Per-query usage fees (subject to monthly minimum) | ||||||||
Monthly minimum fee | Personal includes:No minimum | Standard includes:$100/month | Premium includes:$1,000/month | ||||||||
Result set rate limit | Personal includes:10 result sets/minute | Standard includes:5 result sets/second | Premium includes:100 result sets/second | ||||||||
History Results set rate limit | Not included in Personal | Standard includes:500,000 result sets/month | Premium includes:500,000 result sets/month | ||||||||
Volume Discounting | Not included in Personal | Included in Standard | Included in Premium | ||||||||
Authorized Users | |||||||||||
Overview | Personal includes:Storage and distribution of derivative works for personal or academic purposes only. | Standard includes:Storage and distribution of derivative works for business or business-to-consumer purposes. | Premium includes:Storage and distribution of derivative works for business, business-to-consumer commercial purposes, and all Business-to-Business commercial purposes. | ||||||||
Internal Use for Business | Not included in Personal | Included in Standard | Included in Premium | ||||||||
Commercialization for Business to Consumer (B2C) | Not included in Personal | Included in Standard | Included in Premium | ||||||||
Commercialization for Business to Business (B2B) | Not included in Personal | Not included in Standard | Included in Premium | ||||||||
Internal Use for Personal | Included in Personal | Included in Standard | Included in Premium | ||||||||
Academic | Included in Personal | Included in Standard | Included in Premium | ||||||||
General | |||||||||||
Up-time guarantee | Not included in Personal | Not included in Standard | Premium includes:99.5% | ||||||||
E-mail Support | Not included in Personal | Included in Standard | Included in Premium | ||||||||
Phone Support | Not included in Personal | Not included in Standard | Included in Premium | ||||||||
Invoicing Available | Not included in Personal | Not included in Standard | Included in Premium | ||||||||
| GET /flights/search Search for flights $0.005/result set |
| GET /flights/search/positions Search for flight positions $0.005/result set |
| GET /flights/search/count Get count of flights matching search parameters $0.002/result set |
| GET /flights/search/advanced Search for flights using advanced syntax $0.005/result set |
| GET /flights/{ident} Get information for a flight $0.001/result set |
| GET /flights/{ident}/canonical Get the canonical ident of a flight $0.000/result set |
| POST /flights/{ident}/intents Submit a Flight Intent $0.000/result set |
| GET /flights/{id}/position Get flight's current position $0.001/result set |
| GET /flights/{id}/track Get flight's track $0.001/result set |
| GET /flights/{id}/route Get flight's filed route $0.001/result set |
| GET /flights/{id}/map Get an image of a flight's track on a map $0.003/result set |
| GET /foresight/flights/{ident} Get information for a flight, including Foresight data $0.002/result set |
| GET /foresight/flights/search/advanced Search for flights, responses include Foresight data $0.006/result set |
| GET /foresight/flights/{id}/position Get flight's current position, including Foresight data $0.002/result set |
| GET /airports Get all airports $0.001/result set |
| GET /airports/nearby Get airports near a location $0.000/result set |
| GET /airports/delays Get delay information for all airports with delays $0.005/result set |
| GET /airports/{id} Get static information about an airport $0.002/result set |
| GET /airports/{id}/canonical Get the canonical code of an airport $0.000/result set |
| GET /airports/{id}/nearby Get airports near an airport $0.000/result set |
| GET /airports/{id}/delays Get airport delay information $0.001/result set |
| GET /airports/{id}/flights Get all flights for a given airport $0.002/result set |
| GET /airports/{id}/flights/arrivals Get flights that have recently arrived at an airport $0.001/result set |
| GET /airports/{id}/flights/departures Get flights that have recently departed from an airport $0.001/result set |
| GET /airports/{id}/flights/scheduled_departures Get future flights departing from an airport $0.001/result set |
| GET /airports/{id}/flights/scheduled_arrivals Get future flights arriving at an airport $0.001/result set |
| GET /airports/{id}/flights/to/{dest_id} Get flights with a specific origin and destination $0.005/result set |
| GET /airports/{id}/flights/counts Get flight counts for an airport $0.010/result set |
| GET /airports/{id}/weather/observations Get weather conditions for given airport $0.000/result set |
| GET /airports/{id}/weather/forecast Get weather forecast for given airport $0.000/result set |
| GET /airports/{id}/routes/{dest_id} Get routes between 2 airports $0.002/result set |
| GET /operators Get all operators. $0.000/result set |
| GET /operators/{id} Get static information for an operator. $0.002/result set |
| GET /operators/{id}/canonical Get the canonical code of an operator for API usage. $0.000/result set |
| GET /operators/{id}/flights Get all of an operator's flights $0.003/result set |
| GET /operators/{id}/flights/scheduled Get scheduled flights $0.001/result set |
| GET /operators/{id}/flights/arrivals Get arrived flights $0.001/result set |
| GET /operators/{id}/flights/enroute Get en route flights $0.001/result set |
| GET /operators/{id}/flights/counts Get flight counts for operator $0.010/result set |
| Push Alert Delivery Alert delivery callback from FlightAware $0.002/result set |
| GET /alerts Get all configured alerts $0.000/result set |
| POST /alerts Create new alert $0.000/result set |
| GET /alerts/{id} Get specific alert $0.000/result set |
| PUT /alerts/{id} Modify specific alert $0.000/result set |
| DELETE /alerts/{id} Delete specific alert $0.000/result set |
| GET /alerts/endpoint Get configured alert callback URL $0.000/result set |
| PUT /alerts/endpoint Set alert callback URL $0.000/result set |
| DELETE /alerts/endpoint Remove and disable default account-wide alert callback URL $0.000/result set |
| GET /history/flights/{ident} Get information for a historical flight $0.002/result set |
| GET /history/flights/{id}/track Get historical information for a flight's track $0.006/result set |
| GET /history/flights/{id}/map Get an image of a historical flight's track on a map $0.014/result set |
| GET /history/flights/{id}/route Get historical flight's filed route $0.004/result set |
| GET /history/airports/{id}/flights/arrivals Get historical flights that were planned to arrive at an airport $0.002/result set |
| GET /history/airports/{id}/flights/departures Get historical flights that were planned to depart from an airport $0.002/result set |
| GET /history/airports/{id}/flights/to/{dest_id} Get historical flights with a specific origin and destination $0.012/result set |
| GET /history/aircraft/{registration}/last_flight Get aircraft's last known flight $0.020/result set |
| GET /history/operators/{id}/flights Get historical flights for a given operator $0.002/result set |
| GET /aircraft/{ident}/blocked Check if a given ident is blocked $0.002/result set |
| GET /aircraft/{ident}/owner Get the owner of an aircraft $0.000/result set |
| GET /aircraft/types/{type} Get information about an aircraft type $0.010/result set |
| GET /schedules/{date_start}/{date_end} Get scheduled flights $0.002/result set |
| GET /disruption_counts/{entity_type} Get global flight disruption statistics $0.002/result set |
| GET /disruption_counts/{entity_type}/{id} Get flight disruption statistics for a particular entity $0.002/result set |
| GET /account/usage Get AeroAPI usage statistics for account $0.000/result set |
Note: The max_pages input parameter can be used to limit/control how many result sets will be returned, with one page being equivalent to one result set.
| $0 - $1,000 / month No Discount |
| $1,000 - $2,000 30% Discount |
| $2,000 - $4,000 51% Discount |
| $4,000 - $8,000 65% Discount |
| $8,000 - $16,000 76% Discount |
| $16,000 - $32,000 83% Discount |
| $32,000 - $64,000 88% Discount |
| Above $64,000 94% Discount |
Please contact FlightAware for more information regarding additional discounting available with 3 or 4 year term commitments.
Query Flight Data on Demand with AeroAPI
AeroAPI is a RESTful API that lets developers query live and historical flight data. From flight positions to predictive ETAs powered by FlightAware Foresight, it delivers the data you need to build aviation-ready applications.
import requests
apiKey = input("API Key: ")
apiUrl = "https://aeroapi.flightaware.com/aeroapi/"
airport = 'KSFO'
payload = {'max_pages': 2}
auth_header = {'x-apikey':apiKey}
response = requests.get(apiUrl + f"airports/{airport}/flights",
params=payload, headers=auth_header)
if response.status_code == 200:
print(response.json())
else:
print("Error executing request")
String YOUR_API_KEY = "API_KEY_HERE";
String apiUrl = "https://aeroapi.flightaware.com/aeroapi/";
String airport = "KSFO";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(apiUrl + "airports/" + airport + "/flights"))
.headers("x-apikey", YOUR_API_KEY)
.build();
HttpResponse<String> response = client.send(request, BodyHandlers.ofString());
if (response.statusCode() == 200) {
System.out.println("responseBody: " + response.body());
}
<?php
$apiKey = "YOUR_API_KEY";
$fxmlUrl = "https://aeroapi.flightaware.com/aeroapi/";
$ident = 'SWA45';
$queryParams = array(
'max_pages' => 2
);
$url = $fxmlUrl . 'flights/' . $ident . '?' . http_build_query($queryParams);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('x-apikey: ' . $apiKey));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
if ($result = curl_exec($ch)) {
curl_close($ch);
echo $result;
}
?>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace AeroApi4Sample
{
public class FlightsResult
{
public List<Flight> Flights { get; set; }
}
public class Flight
{
public string Ident { get; set; }
[JsonPropertyName("fa_flight_id")]
public string FaFlightId { get; set; }
[JsonPropertyName("scheduled_out")]
public DateTime ScheduledOut { get; set; }
[JsonPropertyName("actual_out")]
public DateTime? ActualOut { get; set; }
}
public class Program
{
static void Main( string[] args )
{
Console.Write( "API Key: " );
var strApiKey = Console.ReadLine();
Console.Write( "Ident to look up (e.g., UAL47): " );
var strIdentToLookUp = Console.ReadLine();
var flights = GetFlights( strApiKey, strIdentToLookUp ).Result;
if( flights == null )
{
return;
}
var nextFlightToDepart = flights.Where(
f => f.ActualOut == null
).OrderBy( f => f.ScheduledOut ).First();
Console.WriteLine(
string.Format(
"Next departure of {0} is {1} at {2}",
strIdentToLookUp,
nextFlightToDepart.FaFlightId,
nextFlightToDepart.ScheduledOut
)
);
}
private static async Task<List<Flight>> GetFlights( string strApiKey, string strIdent )
{
using( var client = new HttpClient() )
{
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue( "application/json" )
);
client.DefaultRequestHeaders.Add(
"x-apikey",
strApiKey
);
FlightsResult flightResult = null;
var response = await client.GetAsync(
"https://aeroapi.flightaware.com/aeroapi/flights/" + strIdent
);
var contentStream = await response.Content.ReadAsStreamAsync();
if( response.IsSuccessStatusCode )
{
flightResult = await JsonSerializer.DeserializeAsync<FlightsResult>(
contentStream,
new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
}
);
}
else
{
Console.Error.WriteLine( "API call failed: " + response );
return null;
}
return flightResult.Flights;
}
}
}
}
