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. Confronta livelli adesso

Caratteristiche chiave

  • Facile da integrare, flessibile e scalabile
  • Modern REST-based
  • Allarmi di eventi di volo configurabili e in tempo reale
  • Documentazione dello sviluppatore completa e portale interattivo
  • ETA predittivi, elaborati da ForesightTM
  • Dati aviazione personalizzabili per soddisfare le necessità esclusive della tua richiesta
  • Disponibile garanzia di funzionamento al 99,5%
  • Compatibile con tutti i linguaggi di programmazione

Dati di volo su richiesta

AeroAPI is a simple, query-based API that gives software developers access to a variety of FlightAware's flight data. Users can obtain current or historical data. AeroAPI is a RESTful API delivering accurate and actionable aviation data. With the introduction of ForesightTM, customers have access to the data that powers over half of the predictive airline ETAs in the US.

Query AeroAPI for Flights Based on a Combination Of Properties Including

  • Numero di matricola o volo
  • Aeroporto di origine e/o destinazione
  • Tipo aeromobile
  • Un range di altitudine da basso ad alto
  • Un range di velocità al suolo da basso ad alto

Recupera dati volo attraverso AeroAPI incluso:

  • Flight or tail number
  • Aircraft type
  • Origin and/or destination airport
  • Orario in cui è stata ricevuta l'ultima posizione
  • Longitudine, latitudine, velocità al suolo e altitudine
  • ForesightTM, ETA predittivi di FlightAware
  • Molto di più!

Ottieni dati centrati sull'aeroporto attraverso l'API, inclusi:

  • Scheduled flights
  • Voli partiti
  • Voli in viaggio
  • Voli arrivati

Esempi di codici 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;
            }
        }
    }
}

Aero API può anche essere usato con Python, Ruby, Java, .NET e altri linguaggi.

AeroAPI Query Fees

A single Query may return one-to-many results, dependent upon the type of call being made and the input parameters provided. For pricing purposes, a ‘result set’ is defined as 15 results/records. Pricing is per result set.

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.

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.

Comincia a fare richieste oggi! Confronta livelli

Usato da organizzazioni in tutto il mondo

Domande frequenti (FAQ)

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.

Come posso vedere il mio stato di fatturazione di AeroAPI?

I clienti già registrati possono visitare il portale AeroAPI per vedere le spese da pagare.

Cosa c'è di nuovo nella versione 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.

Utilizzo la versione 2 o la versione 3 di AroAPI, qual è il futuro di questi prodotti?

La versione 2 e la versione 3 di AeroAPI continueranno a essere disponibili per i clienti già esistenti fino al 31 ottobre 2023 e i loro relativi prezzi non cambiano. Questi prodotti obsoleti non sono più disponibili per i nuovi utenti. Consigliamo ai clienti AeroAPI con prodotti obsoleti di pianificare l'adozione della nuova versione di AeroAPI appena possibile per non essere coinvolti dalla scadenza di questi vecchi prodotti nel 2023. Inoltre, i clienti passati alla nuova versione di AeroAPI avranno l'accesso agli aggiornamenti futuri di AeroAPI senza dover cambiare prodotto.

Utilizzo la versione 2 o la versione 3 di AeroAPI, come posso passare alla versione 4?

Puoi cominciare con la nuova versione di AeroAPI oggi, è sufficiente eseguire l'accesso. In quanto cliente esistente di AeroAPI, l'importo minimo mensile è annullato per i primi 3 mesi del nuovo abbonamento di livello Standard o Premium per aiutarti a cominciare.

Documentazione

È possibile accedere all'API di FlightAware per status di voli, tracciatura voli e dati avionici attraverso REST ed è possibile accedere all'API usando un qualsiasi linguaggio di programmazione.

Support

Visita la sezione delle FAQ per trovare le risposte alle domande più frequenti o controlla sul nostro forum per informazioni più approfondite.

Accedi

Non hai un account? Registrati adesso (è gratis) per usufruire di funzioni personalizzate, allarmi voli e molto altro!
Questo sito web utilizza cookie. Continuando a usare e a navigare su questo sito, accetti l'utilizzo dei cookie.
Chiudi
Sapevi che il tracking dei voli di FlightAware è supportato dalla pubblicità?
Puoi aiutarci a mantenere FlightAware gratuito accettando gli annunci pubblicitari di FlightAware.com. Ci impegniamo per far sì che i nostri annunci siano pertinenti e discreti per offrire la migliore esperienza. Aggiungere gli annunci ammessi su FlightAware è facile e veloce oppure puoi prendere in considerazione i nostri account premium.
Chiudi