Skip to Content
Busca de VoosFormato da resposta

Formato da resposta (responseFormat)

O campo opcional responseFormat, no corpo da requisição, define o que cada item de results carrega.

ValorCampo retornadoConteúdo
RAWdataResposta original e bruta da API da companhia (padrão)
PARSEDflightsModelo normalizado da Economilha, idêntico para todos os programas
  • Omitir responseFormat equivale a RAW. Integrações existentes continuam funcionando exatamente como hoje, sem nenhuma alteração.
  • Os dois formatos são mutuamente exclusivos: em PARSED o campo data não é retornado, e em RAW o campo flights não é retornado. Não existe um formato que devolva ambos.
  • O consumo de quota é idêntico nos dois formatos: 1 unidade por companhia solicitada.

Por que usar PARSED

Com RAW, cada cliente precisa escrever e manter um parser por programa de fidelidade — e acompanhar toda mudança que as companhias fizerem nas suas APIs. Com PARSED, esse trabalho fica do lado da Economilha: todos os programas devolvem a mesma estrutura, e mudanças no formato dos provedores são absorvidas por nós, sem alteração no contrato desta API.

Como bônus, a resposta em PARSED é muito menor, já que o payload bruto da companhia não é transmitido.

Response 200 OK (formato PARSED)

{ "results": [ { "airline": "LATAM", "success": true, "flights": [ { "id": "ba2b7811-9117-4825-a0aa-3d7ea50997a0", "airlineLoyalty": "LATAM", "origin": "POA", "destination": "MAD", "departureDate": "2026-11-22T19:40:00", "arrivalDate": "2026-11-23T13:35:00", "cabinType": "ECONOMY", "tripType": "ONE_WAY", "direction": "OUTBOUND", "stops": 1, "durationMinutes": 835, "flightCode": "LA3987", "availableSeats": null, "equipment": "789", "fareSource": null, "fares": [ { "fareType": "LATAM_LIGHT", "miles": 82104, "money": 0.0, "taxes": 111.67, "fees": 0.0, "totalMoney": 111.67, "baseMiles": null, "classOfService": null, "productClass": "LIGHT" } ], "legs": [ { "airlineCode": "LA", "flightNumber": "3987", "cabinType": "ECONOMY", "departureAirport": "POA", "arrivalAirport": "GRU", "departureDate": "2026-11-22T19:40:00", "arrivalDate": "2026-11-22T21:30:00", "equipment": "320", "classOfService": null, "durationMinutes": 110, "isConnection": false }, { "airlineCode": "LA", "flightNumber": "8066", "cabinType": "ECONOMY", "departureAirport": "GRU", "arrivalAirport": "MAD", "departureDate": "2026-11-22T23:35:00", "arrivalDate": "2026-11-23T13:35:00", "equipment": "789", "classOfService": null, "durationMinutes": 600, "isConnection": true } ] } ] }, { "airline": "AZUL", "success": false, "error": { "message": "Failed to fetch data from AZUL", "providerStatusCode": 503 }, "flights": null } ], "summary": { "totalAirlinesRequested": 2, "successfulSearches": 1, "failedSearches": 1 } }

Estrutura de cada item em results (formato PARSED)

CampoTipoDescrição
airlinestringPrograma/companhia
successbooleantrue se a busca na companhia foi bem-sucedida
flightsarrayVoos normalizados. [] quando não há disponibilidade; null em caso de erro
errorobjectPresente apenas quando success = false
parseErrorobjectPresente apenas quando a busca funcionou mas o tratamento do dado falhou

flights: [] significa nenhum voo disponível para a busca. flights: null significa que nenhum dado foi obtido — verifique error (falha na companhia) ou parseError (falha no tratamento).

Objeto flights[]

CampoTipoDescrição
idstringIdentificador do voo válido apenas dentro desta resposta. Não é estável entre chamadas nem serve para reserva. Use-o para deduplicar ou como chave de lista.
airlineLoyaltystringPrograma/companhia do voo
originstringIATA da origem do trecho
destinationstringIATA do destino do trecho
departureDatestringData/hora da partida — hora local do aeroporto (ver atenção abaixo)
arrivalDatestringData/hora da chegada — hora local do aeroporto
cabinTypestringECONOMY ou BUSINESS
tripTypestringONE_WAY ou ROUND_TRIP (o tipo da busca)
directionstringOUTBOUND (ida) ou RETURN (volta)
stopsintNúmero de paradas
durationMinutesintDuração total do trecho em minutos
flightCodestringCódigo do voo principal (ex: LA3987)
availableSeatsintAssentos disponíveis. null quando a companhia não informa
equipmentstringModelo da aeronave. null quando a companhia não informa
fareSourcestringAWARD ou COMERCIAL. null na maioria dos programas
faresarrayOpções de preço do voo (ver abaixo). Sempre com ao menos 1 item
legsarrayTrechos operados do voo (ver abaixo). Sempre com ao menos 1 item

Objeto fares[]

CampoTipoDescrição
fareTypestringTipo da tarifa no programa (ex: LATAM_LIGHT, SMILES_CLUB)
milesintMilhas/pontos necessários. 0 em tarifas pagas em dinheiro
moneyfloatValor em dinheiro da tarifa (fora taxas)
taxesfloatTaxas
feesfloatTarifas adicionais
totalMoneyfloatTotal a pagar em dinheiro (money + taxes + fees)
baseMilesintMilhas antes de bônus/descontos, quando a companhia informa
classOfServicestringClasse tarifária (ex: O), quando a companhia informa
productClassstringNome comercial da tarifa (ex: LIGHT), quando a companhia informa

Objeto legs[]

CampoTipoDescrição
airlineCodestringCódigo IATA da companhia que opera o trecho
flightNumberstringNúmero do voo
cabinTypestringCabine do trecho
departureAirportstringIATA do aeroporto de partida
arrivalAirportstringIATA do aeroporto de chegada
departureDatestringPartida — hora local do aeroporto
arrivalDatestringChegada — hora local do aeroporto
equipmentstringModelo da aeronave
classOfServicestringClasse tarifária do trecho
durationMinutesintDuração do trecho em minutos
isConnectionbooleantrue quando o trecho é uma conexão (não é o primeiro)

Objeto parseError

CampoTipoDescrição
messagestringDescrição legível da falha

Quando a busca na companhia funciona mas o tratamento do dado falha, o item vem com success: true, flights: null e parseError preenchido. Nesse caso, repetir a mesma busca com responseFormat: "RAW" devolve o payload bruto da companhia.

Dois pontos de atenção

1. Datas e horários são hora local do aeroporto, sem fuso.

Os campos departureDate e arrivalDate (tanto do voo quanto dos trechos) vêm no formato YYYY-MM-DDTHH:mm:ss, sem offset de fuso horário. O valor é o horário do relógio no aeroporto correspondente, exatamente como a companhia informa. Não interprete esses valores como UTC nem aplique conversão de fuso.

2. Em ROUND_TRIP, ida e volta vêm como itens separados.

A lista flights é plana: os voos de ida (direction: "OUTBOUND") e de volta (direction: "RETURN") aparecem como itens independentes, sem pareamento. A API não devolve combinações ida+volta já precificadas. Se o seu produto precisa exibir o preço da viagem completa, a combinação e a soma são responsabilidade do cliente — e, em alguns programas, o preço real da combinação pode diferir da soma das duas pontas.

Last updated on