全世界最好的以查詢為基礎的航班跟蹤和飛行狀態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 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 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> 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(
contentStream,
new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
}
);
}
else
{
Console.Error.WriteLine( "API call failed: " + response );
return null;
}
return flightResult.Flights;
}
}
}
}
單個查詢可能返回一對多的結果,這取決於呼叫的類型和提供的輸入參數。出於定價的目的,「結果集」定義為每條記錄15個結果。按結果集定價。
For Foresight pricing details, please contact us.
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.
通常一個查詢只收費一次。不過,對於可能返回多頁結果的查詢(定義為最多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客戶,選擇新版標準或高級訂閱可免除前三個月的每月最低費用,以幫助您開始使用。