The World’s Best Query-Based Flight Tracking and Flight Status API

AeroAPI (formerly FlightXML) delivers customized access to developers seeking data from millions of flight status inputs for any application using REST/JSON.

Start making queries to power your application. قارن ما بين مستويات الوصول الآن

ميزات رئيسية

  • Easy to integrate, flexible, and scalable
  • Modern REST-based
  • Real-time and configurable flight event alerts
  • Comprehensive developer documentation and interactive portal
  • Predictive ETAs, powered by ForesightTM
  • Customizable aviation data to meet your unique application needs
  • 99.5% uptime guarantee available
  • Compatible with all programming languages

الاستعلام عن بيانات الرحلة الجوية عند الطلب

AeroAPI هي واجهة برمجة تطبيقات بسيطة مستندة إلى الاستعلام تمنح مطوري البرمجيات إمكانية الوصول إلى مجموعة متنوعة من بيانات الرحلات الجوية لموقع FlightAware. بإمكان المستخدمين الحصول على البيانات الحالية، أو البيانات القديمة. AeroAPI هي واجهة برمجة تطبيقات RESTful تقدم بيانات طيران دقيقة وقابلة للتنفيذ. مع طرح ForesightTM، يصبح لدى العملاء إمكانية الوصول إلى البيانات التي تعمل على تسيير أكثر من نصف الأوقات المقدرة للوصول الخاصة بشركات الخطوط الجوية في الولايات المتحدة.

Query AeroAPI for Flights Based on a Combination Of Properties Including

  • رقم رحلة الطيران أو ذيل الطائرة
  • مطار المكان الأصلي، و/ أو مطار الواجهة
  • نوع الطائرة
  • النطاق من المستوى المنخفض-إلى- المستوى العالي للارتفاع
  • النطاق من المستوى المنخفض-إلى- المستوى العالي للسرعة الأرضية

Retrieve Flight Data Through AeroAPI Including:

  • Flight or tail number
  • Aircraft type
  • Origin and/or destination airport
  • Time last position was received
  • خط الطول، خط العرض، السرعة الأرضية، والارتفاع
  • ForesightTM, FlightAware’s predictive ETAs
  • And more

احصل على بيانات المطار- المركزية عبر واجهة برمجة التطبيقات، بما في ذلك:

  • Scheduled flights
  • الرحلات المغادرة
  • الرحلات الجوية المحلقة في الجو
  • الرحلات الجوية التي وصلت

نماذج تعليمات برمجية 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 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;
            }
        }
    }
}

يمكن كذلك استخدام AeroAPI مع لغات البرمجات Python، وRuby، وJava، وNET واللغات الأخرى.

رسوم استعلام AeroAPI

قد يعود الاستعلام المفرد بنتيجة واحدة-إلى- أكثر من نتيجة، يتوقف ذلك على نوع المكالمة التي يتم إجرائها، ومعلمات الإدخال الواردة. لأغراض تتعلق بالأسعار، يتم تحديد "مجموعة النتائج" باعتبارها 15 نتيجة/ سجل. السعر لكل مجموعة نتائج.

ملاحظة: معلمة الإدخال max_pages (أقصى_الصفحات) يمكن استخدامها من أجل تقييد/ التحكم في عدد مجموعات النتائج التي سيتم إرجاعها، مع صفحة واحدة تعد متكافئة لمجموعة إدخال مفردة.

ملاحظة: معلمة الإدخال max_pages (أقصى_الصفحات) يمكن استخدامها من أجل تقييد/ التحكم في عدد مجموعات النتائج التي سيتم إرجاعها، مع صفحة واحدة تعد متكافئة لمجموعة إدخال مفردة.

ابدأ إجراء الاستعلامات اليوم! مقارنة مستويات الوصول

استخدامها من قبل كل المؤسسات في كافة أنحاء العالم

الأسئلة المتداولة

How am I charged when the API returns multiple results for one query?

In general, you are charged once per query. However, for queries that may return multiple pages of results (defined as sets of up to 15 results), you will be charge for the total number of pages returned (calculated as the per-query fee times the number of pages returned). You can control the maximum number of pages returned by the API for one query. Please refer to the API documentation for details on how to set the "max_pages" parameter.

كيف يمكني عرض فاتورة AeroAPI الخاصة بي؟

Existing customers can visit the AeroAPI portal to see accrued charges.

What is new in version 4?

Version 4 features more detailed results on flight queries and push alerts so you get the same or more information with fewer calls. We redesigned the API to provide an easier to use RESTful interface. The all-new interactive web portal allows you to explore the API and try it without writing any code. A 99.5% uptime guarantee is also now available.

I use version 2 or version 3 of AeroAPI, what is the future of these products?

Version 2 and version 3 of AeroAPI will continue to be available to existing customers until October 31, 2023 and their respective pricing is unchanged. These legacy products are no longer available for new sign-ups. We encourage legacy AeroAPI customers to plan to adopt the new version of AeroAPI in the near future so that they will not be impacted by the end-of-life of the old products in 2023. Additionally, customers on the new version of AeroAPI will receive access to future updates of AeroAPI without changing to a new product.

I use version 2 or version 3 of AeroAPI, how can I switch to version 4?

You can get started with the new version of AeroAPI today, just sign-up on-line. As an existing AeroAPI customer, the monthly minimum fee is waived for the first 3 months of your new subscription at the Standard or Premium tier to help you get started.

المستندات

FlightAware's API for flight status, flight tracking and aviation data can be accessed via REST and the API can be accessed using any programming language.

Support

الرجاء التفضل بزيارة قسم الأسئلة المتداولة لدينا للبحث عن إجابات عن الأسئلة العامة، أو التحقق من منتدى المناقشات لمعرفة معلومات أكثر عمقاً.

تسجيل الدخول

ليس لديك حساب؟ سجل الآن (مجانا) لتستمع بمميزات مخصصة، وتنبيهات الرحلات، وغير ذلك الكثير!
يستخدم موقع الويب هذا ملفات تعريف الارتباط. باستخدام موقع الويب هذا وعمل المزيد من عمليات التنقل خلاله، يعني هذا قبولك لملفات تعريف الارتباط.
استبعد
هل علمت بأن خاصية تتبع الرحلة التابعة لـFlightAware مدعومة بواسطة الإعلانات؟
يمكنك مساعدتنا بالإبقاء على موقع FlightAware مجاني بدون مقابل من خلال السماح بالإعلانات من موقع FlightAware.com. نحن نعمل بكل كد لجعل إعلاناتنا ملائمة ومناسبة وأن تكون هذه الإعلانات غير ملحوظة من أجل إنشاء تجربة رائعة. يمكن بكل سرعة وسهولة السماح لـإعلانات القائمة البيضاء الموجودة على FlightAware، أو الرجاء مراجعة الحسابات المميزة الخاصة بنا.
استبعد