Skip to Content
Busca de VoosBuscar voos

Buscar voos

Busca voos em um programa de fidelidade ou companhia aérea, em tempo real.

POST /flights/search

Headers obrigatórios

HeaderValor
x-api-keysua-api-key
Content-Typeapplication/json

Request Body

CampoTipoObrigatórioDescrição
airlineLoyaltystring[]✅O programa de fidelidade (milhas) ou companhia aérea (dinheiro) da busca, como um array de um único valor: ["SMILES"]. Valores aceitos dependem de priceType.
priceTypestringNãoTipo da busca: MILES (milhas, padrão) ou CASH (dinheiro)
tripTypestring✅Tipo de viagem: ONE_WAY ou ROUND_TRIP
cabinTypestring✅Classe da cabine: ECONOMY ou BUSINESS
originstring✅Código IATA do aeroporto de origem (3 letras maiúsculas, ex: GRU)
destinationstring✅Código IATA do aeroporto de destino (3 letras maiúsculas, ex: MIA)
departureDatestring✅Data de ida no formato YYYY-MM-DD
returnDatestringCondicionalData de volta (YYYY-MM-DD). Obrigatório se tripType = ROUND_TRIP
passengersobject✅Objeto com a quantidade de passageiros (ver abaixo)
responseFormatstringNãoRAW (bruto, padrão) ou PARSED (normalizado). Ver Formato da resposta.

Valores aceitos em airlineLoyalty por priceType

priceTypeValores aceitos em airlineLoyalty
MILESSMILES, LATAM, AZUL, AZUL_INTERLINE, COPA, DELTA, TURKISH, AADVANTAGE
CASHLATAM, AZUL, GOL

Para comparar programas, dispare uma requisição por programa, em paralelo, e renderize cada resposta assim que ela chegar. Ver Comparando vários programas.

Objeto passengers

CampoTipoObrigatórioValidaçãoDescrição
adultsint✅1–9Número de adultos
childrenintNão0–8 (padrão: 0)Número de crianças
infantsintNão0–4 (padrão: 0)Número de bebês

Regras de validação

  • airlineLoyalty deve conter um único valor — o programa desta busca.
  • O valor de airlineLoyalty deve ser válido para o priceType escolhido. Caso contrário, a API retorna 422 Unprocessable Entity.
  • adults + children não pode exceder 9.
  • infants não pode exceder o número de adults.
  • origin e destination devem ser diferentes.
  • returnDate deve ser posterior a departureDate.
  • returnDate é obrigatório quando tripType = ROUND_TRIP.
  • responseFormat, quando enviado, deve ser exatamente RAW ou PARSED. Qualquer outro valor retorna 422 Unprocessable Entity.

Response 200 OK (formato RAW — padrão)

{ "results": [ { "airline": "SMILES", "success": true, "data": { ... } } ], "summary": { "totalAirlinesRequested": 1, "successfulSearches": 1, "failedSearches": 0 } }

Quando a companhia falha, a requisição continua sendo 200 OK — a falha é reportada dentro do item:

{ "results": [ { "airline": "AZUL", "success": false, "error": { "message": "Failed to fetch data from AZUL", "providerStatusCode": 503 }, "data": null } ], "summary": { "totalAirlinesRequested": 1, "successfulSearches": 0, "failedSearches": 1 } }

No formato RAW (padrão) o campo data contém a resposta original e bruta da API da companhia, sem normalização — a estrutura varia entre programas e entre buscas em milhas e em dinheiro. Se preferir dados já tratados e num formato único, use responseFormat: "PARSED".

Estrutura de cada item em results (formato RAW)

CampoTipoDescrição
airlinestringPrograma/companhia (SMILES, LATAM, AZUL, AZUL_INTERLINE, COPA, DELTA, TURKISH, AADVANTAGE, GOL)
successbooleantrue se a busca foi bem-sucedida
dataobjectResposta original e bruta da API da companhia. null em caso de erro
errorobjectPresente apenas em caso de falha (ver abaixo)

Objeto error (por companhia)

CampoTipoDescrição
messagestringMensagem de erro legível
providerStatusCodeintStatus HTTP retornado pelo provedor da companhia

Tempo limite. Uma busca que não responder em 29 segundos volta como falha do programa, com providerStatusCode: 504. Ou seja: uma companhia travada nunca deixa a sua requisição sem resposta — você sempre recebe um 200 OK bem-formado.

Objeto summary

CampoTipoDescrição
totalAirlinesRequestedintQuantidade de companhias solicitadas
successfulSearchesintQuantidade de buscas com sucesso
failedSearchesintQuantidade de buscas que falharam
Last updated on