全世界最好的基于查询的航班跟踪和飞行状态API
AeroAPI(原FlightXML)可为开发人员提供定制访问,借助上百万航班状态输入为任何使用REST/JSON的应用程序提供数据。
AeroAPI(原FlightXML)可为开发人员提供定制访问,借助上百万航班状态输入为任何使用REST/JSON的应用程序提供数据。
AeroAPI是一个简单、基于查询的API,供软件开发人员用于访问FlightAware的各种航班数据。用户可以获取当前或历史数据。AeroAPI是一个RESTful API,可提供准确、可付诸行动的航空数据。通过纳入ForesightTM,客户还可以使用作为美国半数以上预测性航班ETA的基础的数据。
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;
}
}
}
}
单个查询可能返回一对多的结果,这取决于调用的类型和提供的输入参数。出于定价的目的,“结果集”定义为每条记录15个结果。按结果集定价。
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.
All Premium and Standard tier accounts are eligible for volume discounting. The first $1000 of usage per month is always billed at list price, followed by each incremental level of usage being discounted at a more generous level. For monthly usage above $64,000 the discount is set at 94% off, which will enable you to continue to grow your applications and take full advantage of new features with minimal variance in total monthly cost.
Please contact FlightAware for more information regarding additional discounting available with 3 or 4 year term commitments.
通常一个查询只收费一次。不过,对于可能返回多页结果的查询(定义为最多15个结果),则将按返回的总页数收费(按单次查询费乘以返回的页数计算)。您可以控制API为一个查询返回的最大页数。有关如何设置“max_pages”参数的详细信息,请参阅API文档。
现有客户可访问AeroAPI门户,查看应计费用。