Skip to Content
Busca de VoosExemplos completos

Exemplos completos

Todos os exemplos usam https://api.economilha.com. Substitua sua-api-key-aqui pela sua chave.

1. Busca somente ida (ONE_WAY)

curl -X POST https://api.economilha.com/flights/search \ -H "Content-Type: application/json" \ -H "Accept: application/vnd.economilha.v1+json" \ -H "x-api-key: sua-api-key-aqui" \ -d '{ "airlineLoyalty": ["SMILES"], "tripType": "ONE_WAY", "cabinType": "ECONOMY", "origin": "GRU", "destination": "REC", "departureDate": "2026-03-15", "passengers": { "adults": 1, "children": 0, "infants": 0 } }'

Response 200 OK:

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

2. Ida e volta em múltiplas companhias (ROUND_TRIP)

curl -X POST https://api.economilha.com/flights/search \ -H "Content-Type: application/json" \ -H "Accept: application/vnd.economilha.v1+json" \ -H "x-api-key: sua-api-key-aqui" \ -d '{ "airlineLoyalty": ["SMILES", "LATAM", "AZUL"], "tripType": "ROUND_TRIP", "cabinType": "ECONOMY", "origin": "GRU", "destination": "MIA", "departureDate": "2026-04-10", "returnDate": "2026-04-25", "passengers": { "adults": 2, "children": 1, "infants": 0 } }'

Response 200 OK:

{ "results": [ { "airline": "SMILES", "success": true, "data": { ... } }, { "airline": "LATAM", "success": true, "data": { "outbound": { ... }, "inbound": { ... }, "selectedOutboundOfferId": "offer-123" } }, { "airline": "AZUL", "success": true, "data": { ... } } ], "summary": { "totalAirlinesRequested": 3, "successfulSearches": 3, "failedSearches": 0 } }

Esta chamada consome 3 unidades de quota — uma por companhia solicitada — e só responde quando a mais lenta das três terminar. Para telas com usuário esperando, dispare três requisições de um programa cada, em paralelo: mesma quota, primeiros resultados em segundos. Ver Uma requisição por programa.

3. Busca em dinheiro (CASH)

curl -X POST https://api.economilha.com/flights/search \ -H "Content-Type: application/json" \ -H "Accept: application/vnd.economilha.v1+json" \ -H "x-api-key: sua-api-key-aqui" \ -d '{ "airlineLoyalty": ["LATAM", "AZUL", "GOL"], "tripType": "ONE_WAY", "cabinType": "ECONOMY", "origin": "GRU", "destination": "REC", "departureDate": "2026-04-10", "passengers": { "adults": 1, "children": 0, "infants": 0 }, "priceType": "CASH" }'

Response 200 OK:

{ "results": [ { "airline": "LATAM", "success": true, "data": { "outbound": { ... }, "inbound": null } }, { "airline": "AZUL", "success": true, "data": { ... } }, { "airline": "GOL", "success": true, "data": { "outbound": { ... }, "inbound": null } } ], "summary": { "totalAirlinesRequested": 3, "successfulSearches": 3, "failedSearches": 0 } }

O conteúdo de data para buscas em dinheiro é a resposta original e bruta da API de cada companhia.

4. Dados já tratados (responseFormat = PARSED)

curl -X POST https://api.economilha.com/flights/search \ -H "Content-Type: application/json" \ -H "Accept: application/vnd.economilha.v1+json" \ -H "x-api-key: sua-api-key-aqui" \ -d '{ "airlineLoyalty": ["LATAM", "SMILES"], "tripType": "ONE_WAY", "cabinType": "ECONOMY", "origin": "GRU", "destination": "MIA", "departureDate": "2026-04-10", "passengers": { "adults": 1, "children": 0, "infants": 0 }, "responseFormat": "PARSED" }'

Response 200 OK:

{ "results": [ { "airline": "LATAM", "success": true, "flights": [ { "id": "ba2b7811-9117-4825-a0aa-3d7ea50997a0", "airlineLoyalty": "LATAM", "origin": "GRU", "destination": "MIA", "departureDate": "2026-04-10T22:15:00", "arrivalDate": "2026-04-11T06:30:00", "cabinType": "ECONOMY", "tripType": "ONE_WAY", "direction": "OUTBOUND", "stops": 0, "durationMinutes": 495, "flightCode": "LA8084", "availableSeats": null, "equipment": "789", "fareSource": null, "fares": [ { "fareType": "LATAM_LIGHT", "miles": 45000, "money": 0.0, "taxes": 210.5, "fees": 0.0, "totalMoney": 210.5, "baseMiles": null, "classOfService": null, "productClass": "LIGHT" } ], "legs": [ { "airlineCode": "LA", "flightNumber": "8084", "cabinType": "ECONOMY", "departureAirport": "GRU", "arrivalAirport": "MIA", "departureDate": "2026-04-10T22:15:00", "arrivalDate": "2026-04-11T06:30:00", "equipment": "789", "classOfService": null, "durationMinutes": 495, "isConnection": false } ] } ] }, { "airline": "SMILES", "success": true, "flights": [] } ], "summary": { "totalAirlinesRequested": 2, "successfulSearches": 2, "failedSearches": 0 } }

Note que SMILES retornou flights: [] — a busca funcionou, mas não há disponibilidade. Isso é diferente de flights: null, que indica falha.

5. Consultar quota

curl -X GET https://api.economilha.com/quota \ -H "Accept: application/vnd.economilha.v1+json" \ -H "x-api-key: sua-api-key-aqui"

Response 200 OK:

{ "limit": 1000, "consumed": 45, "remaining": 955, "usageByCompany": [ { "airlineLoyalty": "SMILES", "consumed": 20 }, { "airlineLoyalty": "LATAM", "consumed": 15 }, { "airlineLoyalty": "AZUL", "consumed": 10 } ] }

6. Erro de validação

Request sem o campo obrigatório origin:

curl -X POST https://api.economilha.com/flights/search \ -H "Content-Type: application/json" \ -H "x-api-key: sua-api-key-aqui" \ -d '{ "airlineLoyalty": ["SMILES"], "tripType": "ONE_WAY", "cabinType": "ECONOMY", "destination": "REC", "departureDate": "2026-03-15", "passengers": { "adults": 1 } }'

Response 422 Unprocessable Entity:

{ "error": { "code": "VALIDATION_ERROR", "message": "Request validation failed", "details": { "errors": [ { "field": "body -> origin", "message": "Field required", "type": "missing" } ] }, "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" } }

7. API Key ausente

Response 401 Unauthorized:

{ "error": { "code": "HTTP_ERROR", "message": "API key is required. Please provide a valid x-api-key header.", "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" } }

8. Quota insuficiente

Response 402 Payment Required:

{ "error": { "code": "HTTP_ERROR", "message": "Insufficient quota. Required: 3, please check your remaining quota.", "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" } }

9. Media type não suportado

curl -X GET https://api.economilha.com/quota \ -H "Accept: application/xml" \ -H "x-api-key: sua-api-key-aqui"

Response 406 Not Acceptable:

{ "error": { "code": "NOT_ACCEPTABLE", "message": "The requested media type is not supported", "supportedMediaTypes": [ "application/vnd.economilha.v1+json", "application/json" ] } }
Last updated on