// docs

Azul Flights Search

Extrai disponibilidade, itinerarios e tarifas da Azul por aeroporto de origem/destino, datas e passageiros em JSON estruturado. A API retorna viagens, jornadas, segmentos, familias tarifarias, menor tarifa e calendario flexivel.

Tempo de resposta: Em algumas execucoes, esta API pode levar ate 1 minuto para responder. Isso e normal para este endpoint. Aguarde a conclusao da requisicao e tenha paciencia.

Nota importante: alguns campos podem retornar null em produção, dependendo da página de origem. Nesta documentação, os exemplos de output são preenchidos intencionalmente com valores não nulos para facilitar integração.

Quando a entidade consultada não existe na origem, o extract e a tool MCP retornam 200 com data: null e notFound: true. Esse caso é tratado como resposta concluída, não como erro de servidor.

Chamada HTTP

cURL
curl -X POST https://api.geckoapi.com.br/v1/extract \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "target": "voeazul.com.br",
  "type": "plp",
  "from": "CNF",
  "to": "VCP",
  "departureDate": "2026-06-27",
  "numAdults": 1,
  "numChildren": 0,
  "numInfants": 0,
  "currency": "BRL"
}'

Chamada MCP

A mesma seam também aparece no MCP hospedado como uma tool dedicada. Os argumentos reaproveitam os campos do extract, mas target e type já ficam fixos pela tool.

Ver guia completo do MCP

Endpoint

POST /v1/mcp

Tool name

voeazul_com_br_plp

Auth

Bearer ou X-API-Key

voeazul_com_br_plp tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "voeazul_com_br_plp",
    "arguments": {
      "from": "CNF",
      "to": "VCP",
      "departureDate": "2026-06-27",
      "numAdults": 1,
      "numChildren": 0,
      "numInfants": 0,
      "currency": "BRL",
      "executionId": "exec_example_123"
    }
  }
}

Possibilidades de input

Campos suportados nesta API do POST /v1/extract, com regras específicas de obrigatoriedade e condicionais.

Campo Tipo Status Regra Default Exemplo
from
Codigo IATA do aeroporto de origem para busca PLP da Decolar, GOL, Azul, LATAM, KAYAK, MaxMilhas e 123Milhas.
string (IATA 3 letras) Obrigatório Codigo IATA do aeroporto de origem com 3 letras (ex: CNF). - GRU
to
Codigo IATA do aeroporto de destino para busca PLP da Decolar, GOL, Azul, LATAM, KAYAK, MaxMilhas e 123Milhas.
string (IATA 3 letras) Obrigatório Codigo IATA do aeroporto de destino com 3 letras (ex: VCP). - GIG
departureDate
Data de saida para busca PLP da ClickBus, Decolar, GOL, Azul, LATAM, KAYAK, MaxMilhas e 123Milhas.
string (YYYY-MM-DD) Obrigatório Data de ida no formato YYYY-MM-DD. - 2026-05-17
returnDate
Data de retorno opcional para busca PLP da ClickBus, Decolar, GOL, Azul, LATAM, KAYAK, MaxMilhas e 123Milhas.
string (YYYY-MM-DD) Opcional Data de volta no formato YYYY-MM-DD. Deve ser maior ou igual a departureDate. - 2026-05-20
target
Fonte alvo da extração.
enum Obrigatório Sempre obrigatorio e deve ser voeazul.com.br. - mercadolivre.com.br
type
Tipo da extração: pdp, idp, plp, quote, review ou places.
enum Obrigatório Sempre obrigatorio e deve ser plp. - pdp
numAdults
Quantidade de adultos para Booking, Airbnb, Hoteis.com, Decolar, GOL, Azul e LATAM.
integer (1-30) Opcional Quantidade de adultos. Deve ser inteiro entre 1 e 9. 1 2
numChildren
Quantidade de criancas para Booking, Hoteis.com, Decolar, GOL, Azul e LATAM.
integer (0-30) Opcional Quantidade de criancas. Deve ser inteiro entre 0 e 9. 0 0
numInfants
Quantidade de bebes para GOL, Azul e LATAM PLP. Deve ser menor ou igual a quantidade de adultos.
integer (0-9) Opcional Quantidade de bebes. Deve ser inteiro entre 0 e 9 e menor ou igual a numAdults. 0 0
currency
Moeda para Booking e Azul (default no backend: BRL).
string (ISO 4217) Opcional Moeda ISO 4217 usada na busca. O default e BRL. BRL BRL

Exemplos de request

Busca Azul - somente ida

Busca one-way por aeroportos IATA com adultos, criancas, bebes e moeda.

Busca Azul - somente ida
{
  "target": "voeazul.com.br",
  "type": "plp",
  "from": "CNF",
  "to": "VCP",
  "departureDate": "2026-06-27",
  "numAdults": 1,
  "numChildren": 0,
  "numInfants": 0,
  "currency": "BRL"
}

Busca Azul - ida e volta

Busca round-trip por aeroportos IATA com data de retorno.

Busca Azul - ida e volta
{
  "target": "voeazul.com.br",
  "type": "plp",
  "from": "GRU",
  "to": "REC",
  "departureDate": "2026-07-10",
  "returnDate": "2026-07-17",
  "numAdults": 2,
  "numChildren": 1,
  "numInfants": 0,
  "currency": "BRL"
}

Schema de response (leaf paths)

Mapa de paths de saída com tipo esperado para esta API.

responseSchema
{
  "requestId": "string (uuid)",
  "executionId": "string (uuid)",
  "data.source": "string",
  "data.type": "string",
  "data.parser": "string",
  "data.url": "string",
  "data.requestUrl": "string",
  "data.extractedAt": "string (iso datetime)",
  "data.searchType": "string (ONE_WAY | ROUND_TRIP)",
  "data.from": "string",
  "data.to": "string",
  "data.departureDate": "string (YYYY-MM-DD)",
  "data.returnDate": "string",
  "data.numAdults": "number",
  "data.numChildren": "number",
  "data.numInfants": "number",
  "data.currency": "string",
  "data.totalResults": "number",
  "data.trips[].position": "number",
  "data.trips[].origin": "string",
  "data.trips[].destination": "string",
  "data.trips[].date": "string",
  "data.trips[].currency": "string",
  "data.trips[].flightType": "string",
  "data.trips[].region": "string",
  "data.trips[].totalResults": "number",
  "data.trips[].journeys[].position": "number",
  "data.trips[].journeys[].id": "string",
  "data.trips[].journeys[].journeyKey": "string",
  "data.trips[].journeys[].origin": "string",
  "data.trips[].journeys[].destination": "string",
  "data.trips[].journeys[].departure": "string (iso datetime)",
  "data.trips[].journeys[].arrival": "string (iso datetime)",
  "data.trips[].journeys[].stopsCount": "number",
  "data.trips[].journeys[].available": "boolean",
  "data.trips[].journeys[].duration": "string",
  "data.trips[].journeys[].segments[].origin": "string",
  "data.trips[].journeys[].segments[].destination": "string",
  "data.trips[].journeys[].segments[].departure": "string (iso datetime)",
  "data.trips[].journeys[].segments[].arrival": "string (iso datetime)",
  "data.trips[].journeys[].segments[].duration": "string",
  "data.trips[].journeys[].segments[].stopsCount": "number",
  "data.trips[].journeys[].segments[].flight.carrierCode": "string",
  "data.trips[].journeys[].segments[].flight.flightNumber": "string",
  "data.trips[].journeys[].segments[].flight.operatedBy": "string",
  "data.trips[].journeys[].segments[].flight.equipmentName": "string",
  "data.trips[].journeys[].segments[].flight.equipmentType": "string",
  "data.trips[].journeys[].fares[].key": "string",
  "data.trips[].journeys[].fares[].productClass.code": "string",
  "data.trips[].journeys[].fares[].productClass.category": "string",
  "data.trips[].journeys[].fares[].productClass.name": "string",
  "data.trips[].journeys[].fares[].classOfService": "string",
  "data.trips[].journeys[].fares[].cabin": "string",
  "data.trips[].journeys[].fares[].lowestFare": "boolean",
  "data.trips[].journeys[].fares[].recommended": "boolean",
  "data.trips[].journeys[].fares[].total.currency": "string",
  "data.trips[].journeys[].fares[].total.amount": "number",
  "data.trips[].journeys[].cheapestFare.key": "string",
  "data.trips[].journeys[].cheapestFare.total.currency": "string",
  "data.trips[].journeys[].cheapestFare.total.amount": "number",
  "data.flexibleDays[].origin": "string",
  "data.flexibleDays[].destination": "string",
  "data.flexibleDays[].lowestFares[].date": "string",
  "data.flexibleDays[].lowestFares[].totalLowFareAmount": "number",
  "data.notifications[]": "object"
}

Exemplo de response

responseExample
{
  "requestId": "99999999-1111-4111-8111-999999999999",
  "executionId": "99999999-2222-4222-8222-999999999999",
  "data": {
    "source": "voeazul.com.br",
    "type": "plp",
    "parser": "azul_availability_json_api",
    "url": "https://www.voeazul.com.br/br/pt/home/selecao-voo?c%5B0%5D.ds=CNF&c%5B0%5D.std=06%2F27%2F2026&c%5B0%5D.as=VCP&p%5B0%5D.t=ADT&p%5B0%5D.c=1&p%5B0%5D.cp=false&f.dl=7&f.dr=7&cc=BRL",
    "requestUrl": "https://b2c-api.voeazul.com.br/reservationavailability/api/reservation/availability/v5/availability",
    "extractedAt": "2026-05-28T18:00:00.000Z",
    "searchType": "ONE_WAY",
    "from": "CNF",
    "to": "VCP",
    "departureDate": "2026-06-27",
    "returnDate": "",
    "numAdults": 1,
    "numChildren": 0,
    "numInfants": 0,
    "currency": "BRL",
    "totalResults": 1,
    "trips": [
      {
        "position": 1,
        "origin": "CNF",
        "destination": "VCP",
        "date": "2026-06-27",
        "currency": "BRL",
        "flightType": "DOMESTIC",
        "region": "BRAZIL",
        "totalResults": 1,
        "journeys": [
          {
            "position": 1,
            "id": "CNF-VCP-20260627-AD1234",
            "journeyKey": "CNF|VCP|2026-06-27|AD1234",
            "origin": "CNF",
            "destination": "VCP",
            "departure": "2026-06-27T10:00:00.000Z",
            "arrival": "2026-06-27T11:15:00.000Z",
            "stopsCount": 0,
            "available": true,
            "duration": "PT1H15M",
            "segments": [
              {
                "origin": "CNF",
                "destination": "VCP",
                "departure": "2026-06-27T10:00:00.000Z",
                "arrival": "2026-06-27T11:15:00.000Z",
                "duration": "PT1H15M",
                "stopsCount": 0,
                "flight": {
                  "carrierCode": "AD",
                  "flightNumber": "1234",
                  "operatedBy": "Azul",
                  "equipmentName": "Embraer 195",
                  "equipmentType": "E95"
                }
              }
            ],
            "fares": [
              {
                "key": "CNF-VCP-AD1234-AZUL",
                "productClass": {
                  "code": "AZUL",
                  "category": "ECONOMY",
                  "name": "Azul"
                },
                "classOfService": "P",
                "cabin": "ECONOMY",
                "lowestFare": true,
                "recommended": true,
                "total": {
                  "currency": "BRL",
                  "amount": 499.9
                }
              }
            ],
            "cheapestFare": {
              "key": "CNF-VCP-AD1234-AZUL",
              "productClass": {
                "code": "AZUL",
                "category": "ECONOMY",
                "name": "Azul"
              },
              "classOfService": "P",
              "cabin": "ECONOMY",
              "lowestFare": true,
              "recommended": true,
              "total": {
                "currency": "BRL",
                "amount": 499.9
              }
            }
          }
        ]
      }
    ],
    "flexibleDays": [
      {
        "origin": "CNF",
        "destination": "VCP",
        "lowestFares": [
          {
            "date": "2026-06-27",
            "totalLowFareAmount": 499.9
          }
        ]
      }
    ],
    "notifications": [
      {
        "code": "INFO",
        "message": "example"
      }
    ]
  }
}

Referência completa de campos

Path Tipo Descrição Exemplo
data.currency string Moeda usada na busca. BRL
data.departureDate string (YYYY-MM-DD) Data de ida enviada na requisicao. 2026-06-27
data.extractedAt string (iso datetime) Momento da extracao em ISO 8601. 2026-05-28T18:00:00.000Z
data.flexibleDays[].destination string Destino do calendario flexivel. VCP
data.flexibleDays[].lowestFares[].date string Data do calendario flexivel. 2026-06-27
data.flexibleDays[].lowestFares[].totalLowFareAmount number Menor valor do dia no calendario flexivel. 499.9
data.flexibleDays[].origin string Origem do calendario flexivel. CNF
data.from string Aeroporto IATA de origem. CNF
data.notifications[] object Notificacoes retornadas pela API upstream. {"code":"INFO","message":"example"}
data.numAdults number Quantidade de adultos usada na busca. 1
data.numChildren number Quantidade de criancas usada na busca. 0
data.numInfants number Quantidade de bebes usada na busca. 0
data.parser string Parser usado para estruturar a resposta. azul_availability_json_api
data.requestUrl string Endpoint de disponibilidade consultado no app/API da Azul. https://b2c-api.voeazul.com.br/reservationavailability/api/reservation/availability/v5/availability
data.returnDate string Data de volta enviada na requisicao, quando existir.
data.searchType string (ONE_WAY | ROUND_TRIP) ONE_WAY quando nao ha returnDate; ROUND_TRIP quando ha volta. ONE_WAY
data.source string Fonte consultada. voeazul.com.br
data.to string Aeroporto IATA de destino. VCP
data.totalResults number Quantidade total de jornadas normalizadas. 1
data.trips[].currency string Moeda das tarifas da viagem. BRL
data.trips[].date string Data da viagem. 2026-06-27
data.trips[].destination string Destino da viagem. VCP
data.trips[].flightType string Tipo de voo retornado pela Azul. DOMESTIC
data.trips[].journeys[].arrival string (iso datetime) Data/hora de chegada da jornada. 2026-06-27T11:15:00.000Z
data.trips[].journeys[].available boolean Indica se a jornada esta disponivel. true
data.trips[].journeys[].cheapestFare.key string Chave da menor tarifa da jornada. CNF-VCP-AD1234-AZUL
data.trips[].journeys[].cheapestFare.total.amount number Valor da menor tarifa. 499.9
data.trips[].journeys[].cheapestFare.total.currency string Moeda da menor tarifa. BRL
data.trips[].journeys[].departure string (iso datetime) Data/hora de partida da jornada. 2026-06-27T10:00:00.000Z
data.trips[].journeys[].destination string Destino da jornada. VCP
data.trips[].journeys[].duration string Duracao total da jornada. PT1H15M
data.trips[].journeys[].fares[].cabin string Cabine da tarifa. ECONOMY
data.trips[].journeys[].fares[].classOfService string Classe de servico. P
data.trips[].journeys[].fares[].key string Chave tecnica da tarifa. CNF-VCP-AD1234-AZUL
data.trips[].journeys[].fares[].lowestFare boolean Indica se a tarifa e a menor da jornada. true
data.trips[].journeys[].fares[].productClass.category string Categoria da familia tarifaria. ECONOMY
data.trips[].journeys[].fares[].productClass.code string Codigo da familia tarifaria. AZUL
data.trips[].journeys[].fares[].productClass.name string Nome da familia tarifaria. Azul
data.trips[].journeys[].fares[].recommended boolean Indica se a tarifa e recomendada. true
data.trips[].journeys[].fares[].total.amount number Valor total da tarifa. 499.9
data.trips[].journeys[].fares[].total.currency string Moeda do total da tarifa. BRL
data.trips[].journeys[].id string Identificador da jornada. CNF-VCP-20260627-AD1234
data.trips[].journeys[].journeyKey string Chave tecnica da jornada. CNF|VCP|2026-06-27|AD1234
data.trips[].journeys[].origin string Origem da jornada. CNF
data.trips[].journeys[].position number Posicao da jornada na viagem. 1
data.trips[].journeys[].segments[].arrival string (iso datetime) Data/hora de chegada do segmento. 2026-06-27T11:15:00.000Z
data.trips[].journeys[].segments[].departure string (iso datetime) Data/hora de partida do segmento. 2026-06-27T10:00:00.000Z
data.trips[].journeys[].segments[].destination string Destino do segmento. VCP
data.trips[].journeys[].segments[].duration string Duracao do segmento. PT1H15M
data.trips[].journeys[].segments[].flight.carrierCode string Codigo da companhia no segmento. AD
data.trips[].journeys[].segments[].flight.equipmentName string Nome da aeronave quando retornado. Embraer 195
data.trips[].journeys[].segments[].flight.equipmentType string Tipo da aeronave quando retornado. E95
data.trips[].journeys[].segments[].flight.flightNumber string Numero do voo no segmento. 1234
data.trips[].journeys[].segments[].flight.operatedBy string Operador do voo no segmento. Azul
data.trips[].journeys[].segments[].origin string Origem do segmento. CNF
data.trips[].journeys[].segments[].stopsCount number Quantidade de paradas no segmento. 0
data.trips[].journeys[].stopsCount number Quantidade de paradas ou conexoes. 0
data.trips[].origin string Origem da viagem. CNF
data.trips[].position number Posicao da viagem na resposta. 1
data.trips[].region string Regiao retornada pela Azul. BRAZIL
data.trips[].totalResults number Quantidade de jornadas na viagem. 1
data.type string Tipo da API executada. plp
data.url string URL publica canonica da busca Azul. https://www.voeazul.com.br/br/pt/home/selecao-voo?c%5B0%5D.ds=CNF&c%5B0%5D.std=06%2F27%2F2026&c%5B0%5D.as=VCP&p%5B0%5D.t=ADT&p%5B0%5D.c=1&p%5B0%5D.cp=false&f.dl=7&f.dr=7&cc=BRL
executionId string (uuid) Identificador idempotente da execucao. 99999999-2222-4222-8222-999999999999
requestId string (uuid) Identificador da requisicao no gateway da GeckoAPI. 99999999-1111-4111-8111-999999999999

Erros comuns

Respostas com notFound: true não entram nesta tabela, porque retornam sucesso HTTP 200.

Status errorCode Quando acontece
400 INVALID_PAYLOAD JSON inválido ou violação das regras de validação do payload.
401 UNAUTHORIZED Header Authorization ausente ou token/chave inválida.
402 INSUFFICIENT_CREDITS Saldo de créditos insuficiente para a API solicitada.
403 FORBIDDEN Usuário sem acesso ou API temporariamente desabilitada.
409 EXECUTION_CONFLICT executionId conflita com uma execução em estado incompatível.
429 RATE_LIMIT_EXCEEDED / TOO_MANY_INFLIGHT_REQUESTS Limite de taxa ou limite de requisições em voo excedido.
5xx UPSTREAM_TIMEOUT / UPSTREAM_HTTP_ERROR / WORKER_INVOCATION_FAILED / WORKER_FUNCTION_ERROR / WORKER_INVALID_RESPONSE / INTERNAL_ERROR Falha de servidor no worker, provider/proxy ou gateway. Nesses casos os créditos são estornados automaticamente.