全世界最好的基于查询的航班跟踪和飞行状态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门户,查看应计费用。
第4版的航班查询和推送提醒可提供更详细的结果,以便您可以通过更少的调用获得相同或更多的信息。我们对API进行了重新设计,以提供更易于使用的RESTful接口。我们全新的交互式门户网站可帮助您了解并体验该API,无需编写任何代码。我们现在还提供99.5%的正常运行时间保证。
现有客户可继续使用AeroAPI的第2版和第3版,直至2023年10月31日,同时价格保持不变。新注册用户将不能选择这些旧版产品。我们鼓励旧版AeroAPI客户尽早计划并采用新版AeroAPI,以免因旧版产品在2023年淘汰而受到影响。此外,使用新版AeroAPI的客户可以使用AeroAPI未来的更新,无需改用新的产品。
您现在就可以开始使用新版本的AeroAPI,只需点此在线注册。作为现有AeroAPI客户,选择新版标准或高级订阅可免除前三个月的每月最低费用,以帮助您上手使用。