세계 최고의 쿼리 기반 항공편 추적 및 항공편 상태 API

AeroAPI(이전의 FlightXML)는 REST/JSON을 사용하는 모든 애플리케이션에 대한 수백만 개의 항공편 상태 입력 데이터를 찾는 개발자에게 맞춤형 액세스를 제공합니다.

애플리케이션을 강화하기 위한 쿼리를 시작하세요. 티어 지금 비교

주요 기능

  • 통합하기 쉽고 유연하며 확장 가능
  • 현대적 REST 기반
  • 모든 프로그래밍 언어와의 호환성
  • 포괄적인 개발자 문서 및 대화형 포털
  • 99.5% 가동 시간 보장 가능
  • 고유한 애플리케이션 요구 사항을 충족하는 맞춤형 항공 데이터
  • 현재 및 이력 항공편 데이터
  • 실시간 및 구성 가능한 비행 이벤트 경보
  • Foresight에서 제공하는 예측 ETA

온디맨드 비행 데이터 쿼리

AeroAPI는 소프트웨어 개발자에게 다양한 FlightAware 비행 데이터에 대한 액세스를 제공하는 간단한 쿼리 기반 API입니다. 사용자는 현재 또는 과거 데이터를 얻을 수 있습니다. AeroAPI는 정확하고 실행 가능한 항공 데이터를 제공하는 RESTful API입니다. FlightAware Foresight의 도입으로 고객은 미국 내 예측 항공 ETA의 절반 이상을 지원하는 데이터에 액세스할 수 있습니다.

다음을 포함한 속성 조합을 기반으로 항공편에 대한 AeroAPI 쿼리

  • 항공편 또는 테일 번호
  • 출발지 및/또는 도착지 공항
  • 항공기 유형
  • 고도의 저-고 범위
  • 지상 속도의 저-고 범위

다음을 포함하는 AeroAPI를 통해 항공편 데이터 검색:

  • 항공편 또는 테일 번호
  • 항공기 유형
  • 출발지 및/또는 도착지 공항
  • 마지막 위치가 수신된 시간
  • 경도, 위도, 지상 속도 및 고도
  • Foresight, FlightAware의 예측 ETA
  • 이력 항공편 상태 및 추적 New!
  • 기타 추가

다음을 포함하여 API를 통해 공항 중심 데이터 얻기:

  • 예정된 항공편
  • 출발한 항공편
  • 경로 중 항공편
  • 도착한 항공편

AeroAPI 코드 스니펫

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;
            }
        }
    }
}

더 자세한 AeroAPI 예시는 여기에서 볼 수 있습니다.

AeroAPI 쿼리 요금

단일 쿼리는 호출 유형과 제공된 입력 매개변수에 따라 일대다 결과를 반환할 수 있습니다. 가격 책정 용도로 '결과 세트'는 15개의 결과(레코드)로 정의됩니다. 가격은 결과 세트별로 책정됩니다.가격은 변경될 수 있습니다.

참고: max_pages 입력 매개변수는 반환될 결과 집합의 수를 제한/제어하는 데 사용할 수 있으며, 한 페이지는 하나의 결과 집합과 동일합니다.

오늘 쿼리를 시작하세요! 티어 비교

Volume Discounting

모든 프리미엄 및 표준 티어 계정은 볼륨 할인을 받을 수 있습니다. 매월 처음 $1,000의 사용량은 항상 정가로 청구되며, 사용량이 증가할 때마다 더 높은 수준으로 할인됩니다. 월 사용량이 $64,000 이상인 경우 할인율은 94%이어서 회원님은 계속해서 애플리케이션을 확장하고 월별 총 비용의 변동을 최소화하면서 새로운 기능을 최대한 활용할 수 있습니다.

3년 또는 4년 약정에 대해 제공되는 추가 할인에 대한 자세한 내용은 FlightAware에 문의하세요.

전세계 조직에서 사용

자주 묻는 질문

API가 하나의 쿼리에 대해 여러 결과를 반환하는 경우 요금은 어떻게 부과되나요?

일반적으로 쿼리당 한 번 청구됩니다. 그러나 여러 페이지의 결과를 반환할 수 있는 쿼리의 경우(최대 15개의 결과 세트로 정의됨) 반환된 총 페이지 수에 대한 요금이 부과됩니다(쿼리당 요금에 반환된 페이지 수를 곱하여 계산됨). 사용자는 하나의 쿼리에 대해 API가 반환하는 최대 페이지 수를 제어할 수 있습니다. "max_pages" 매개변수를 설정하는 방법에 대한 자세한 내용은 API 설명서를 참조하세요.

내 AeroAPI 결제 상태를 어떻게 볼 수 있습니까?

기존 고객은 AeroAPI 포털을 방문하여 누적 요금을 확인할 수 있습니다.

버전 4의 새로운 기능은 무엇인가요?

버전 4는 항공편 쿼리 및 푸시 경보에 대한 보다 자세한 결과를 제공하므로 더 적은 수의 호출로 동일하거나 더 많은 정보를 얻을 수 있습니다. RESTful 인터페이스를 사용하기 더 쉽게 제공하기 위해 API를 재설계했습니다. 완전히 새로운 대화형 웹 포털을 사용하면 코드를 작성하지 않고도 API를 탐색하고 사용해 볼 수 있습니다. 99.5% 가동 시간 보장도 현재 제공됩니다.

AeroAPI 버전 2 또는 버전 3을 사용하고 있습니다. 이 제품의 향후 전망은 어떤가요?

AeroAPI의 버전 2 및 버전 3은 2023년 10월 31일까지 기존 고객에게 계속 제공되며 해당 가격은 변경되지 않습니다. 이러한 레거시 제품은 더 이상 신규 가입에 사용할 수 없습니다. 기존 AeroAPI 고객은 2023년 이전 제품의 단종으로 인한 영향을 받지 않도록 가까운 장래에 새 버전의 AeroAPI를 채택할 계획을 세우는 것이 좋습니다. 또한 새 버전의 AeroAPI를 사용하는 고객은 새 제품으로 변경하지 않고도 AeroAPI의 향후 업데이트에 액세스할 수 있습니다.

AeroAPI 버전 2 또는 버전 3을 사용하고 있습니다. 버전 4로 전환하려면 어떻게 해야 하나요?

지금 온라인으로 가입하기만 하면 새 버전의 AeroAPI를 시작할 수 있습니다. 기존 AeroAPI 고객으로서 2023년 7월 1일 이전에 가입하는 경우 표준 또는 프리미엄 티어의 새 V4 구독 첫 달에 대한 월 최소 요금을 면제해 드립니다.

문서

비행 상태, 항공편 추적 및 항공 데이터를 위한 FlightAware의 API는 REST를 통해 액세스할 수 있으며 API는 모든 프로그래밍 언어를 사용하여 액세스할 수 있습니다.

지원

일반적인 질문에 대한 답변을 찾으려면 FAQ를 방문하시고, 자세한 정보는 토론 포럼을 확인해 주십시오.

로그인

계정을 가지고 계십니까? 사용자 정의된 기능, 비행 경보 및 더 많은 정보를 위해 지금(무료) 등록하세요!
FlightAware 항공편 추적이 광고로 지원된다는 것을 알고 계셨습니까?
FlightAware.com의 광고를 허용하면 FlightAware를 무료로 유지할 수 있습니다. Flightaware에서는 훌륭한 경험을 제공할 수 있도록 관련성있고 방해되지 않는 광고를 유지하기 위해 열심히 노력하고 있습니다. FlightAware에서 간단히 광고를 허용 하거나 프리미엄 계정을 고려해 보십시오..
종료