A melhor API de rastreamento e status de voo baseada em consulta do mundo

A AeroAPI (antes FlightXML) oferece acesso personalizado a desenvolvedores que buscam dados de milhões de entradas de status de voo para qualquer aplicativo que use REST/JSON.

Comece a fazer consultas para impulsionar seus aplicativos. Comparar os níveis agora

Principais recursos

  • Fácil de integrar, flexível e escalonável
  • Arquitetura moderna baseada em REST
  • Compatível com todas as linguagens de programação
  • Documentação completa para desenvolvedores e portal interativo
  • Garantia de tempo de atividade de 99,5% disponível
  • Dados de aviação personalizáveis ​​para atender às suas necessidades exclusivas
  • Current and historical flight data
  • Alertas de eventos de voo configuráveis ​​e em tempo real
  • ETAs preditivos, com tecnologia ForesightTM
  • Continuous delivery of new functionality, including new hold detection alerting and impending arrival and departure alerts New!

Consulte dados de voo sob demanda

AeroAPI é uma API simples, baseada em consultas, que possibilita aos desenvolvedores de software acesso a uma variedade de dados de voo do FlightAware. Os usuários podem obter dados atuais ou históricos. AeroAPI é uma API RESTful que fornece dados de aviação precisos e acionáveis. Com a introdução da ForesightTM, os clientes têm acesso aos dados que alimentam mais da metade dos ETAs preditivos de companhias aéreas nos EUA.

Utilize a AeroAPI para consultar voos com base em uma combinação de propriedades, incluindo

  • Voo ou prefixo
  • Aeroporto de origem e/ou destino
  • Tipo de Aeronave
  • Uma faixa de altitudes de baixa a alta
  • Uma faixa de velocidades no chão de baixa a alta

Recupere dados de voo por meio da AeroAPI, incluindo:

  • Flight or tail number
  • Aircraft type
  • Origin and/or destination airport
  • Horário em que a última posição foi recebida
  • Longitude, latitude, velocidade no chão e altitude
  • ForesightTM, os ETAs preditivos da FlightAware
  • Historical flight status and tracks New!
  • E mais

Obtenha dados centrados no aeroporto por meio da API, incluindo:

  • Scheduled flights
  • Voos que partiram
  • Aeronaves no ar
  • Voos que chegaram

Trechos de código 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;
            }
        }
    }
}

Exemplos de AeroAPI mais detalhados podem ser vistos aqui.

Taxas do AeroAPI por consulta

Uma única consulta pode retornar resultados de um para muitos, dependendo do tipo de chamada que esteja sendo feita e dos parâmetros de entrada fornecidos. Para fins de precificação, um 'conjunto de resultados' é definido como 15 resultados/registros. O preço é estabelecido por conjunto de resultados.

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.

Comece a fazer consultas hoje mesmo! Comparar os níveis

Volume Discounting

All Premium and Standard tier accounts are eligible for volume discounting. The first $1000 of usage per month is always billed at list price, followed by each incremental level of usage being discounted at a more generous level. For monthly usage above $64,000 the discount is set at 94% off, which will enable you to continue to grow your applications and take full advantage of new features with minimal variance in total monthly cost.

Please contact FlightAware for more information regarding additional discounting available with 3 or 4 year term commitments.

Utilizado por organizações em todo o mundo

Perguntas frequentes

Como sou cobrado quando a API retorna vários resultados para uma consulta?

Em geral, você é cobrado uma vez por consulta. No entanto, para consultas que retornem várias páginas de resultados (definidas como conjuntos de até 15 resultados), você será cobrado pelo número total de páginas retornadas (calculado como a taxa por consulta vezes o número de páginas retornadas). Você pode limitar o número máximo de páginas retornadas pela API por consulta. Confira a documentação da API para obter detalhes sobre como definir o parâmetro "max_pages".

Como posso consultar o status de faturamento do AeroAPI?

Os clientes atuais podem visitar o portal da AeroAPI para visualizar as cobranças acumuladas.

Documentação

A API do FlightAware para status de voo, rastreamento de voo e dados de aviação pode ser acessada via REST e através de qualquer linguagem de programação.

Support

Visite as Perguntas mais frequentes para ver as respostas a perguntas gerais ou consulte nosso Fórum de discussão para obter informações mais detalhadas.

Entrar

Não tem uma conta? Registre-se agora (gratuito) para funcionalidades personalizáveis, alertas de vôo e mais!
Você sabia que o rastreamento de voos da FlightAware é patrocinado por anúncios?
Você pode nos ajudar a manter o FlightAware gratuito, permitindo anúncios de FlightAware.com. Trabalhamos muito para manter nossa publicidade relevante e discreta para criar uma ótima experiência. É rápido e fácil permitir anúncios no FlightAware ou, caso prefira, considere nossas contas premium.
Ignorar