クエリーベースのフライト追跡/フライトステータスAPIの世界最高峰
AeroAPI®(旧FlightXML)は、何百万件というフライトステータスの膨大なデータから目的のデータを探す開発者に、REST/JSONベースのどのアプリケーションにも対応可能な専用アクセスを提供します。
AeroAPI®(旧FlightXML)は、何百万件というフライトステータスの膨大なデータから目的のデータを探す開発者に、REST/JSONベースのどのアプリケーションにも対応可能な専用アクセスを提供します。
AeroAPIは、ソフトウェア開発者にFlightAwareの様々なフライトデータへのアクセスを許可するシンプルなクエリーベースのAPIです。ユーザーは、現在のデータや履歴データを入手できます。AeroAPIは、正確かつ実用的な航空データを提供するRESTful APIです。FlightAware Foresightの導入により、お客様は米国における半数以上の航空会社の到着予定時刻の予測に活用されるデータにアクセスできます。
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;
}
}
}
}
呼び出しタイプ、入力パラメーターにより、1回のクエリーで大量の結果が返される場合があります。料金の関係上、1つの「結果セット」は15件と定義されています。料金は結果セット1つの料金です。料金は変更される場合があります。
注意:入力パラメーター「max_pages」は、1ページを結果セットの1セットとし、結果セットのセット数を限定/制御することができます。
プレミアムおよびスタンダードの各種アカウントはすべて量的割引の対象です。最初の$1,000/月の利用分は正規料金が請求され、利用量の増加に伴って割引率が高くなります。月額利用料が$64,000以上の場合は94%の割引率が適用されており、毎月の総コストの変動を最小限に抑えながら、アプリケーションを継続的に拡張し、新機能を最大限に活用することができます。
3年または4年の契約に関する追加割引情報については、FlightAwareにお問い合わせください。
一般的に、クエリー毎に課金されます。しかし、複数ページの結果が返された場合(1セット最大15件と定義されています)、ページ数分課金されます(1回のクエリー料金×結果のページ数)。1回のクエリーでAPIにより返される最大ページ数を設定できます。"max_pages"パラメーターの設定方法についてはAPI資料をご参照ください。
既存のお客様は、AeroAPIポータルで正確な料金をご確認いただけます。