Moblix
Referência da API

Voos

Busca de passagens aéreas em tempo real

Voos (Flights)

Busque passagens aéreas em tempo real com preços e disponibilidade atualizados de múltiplos fornecedores.

Fluxo Completo

Para realizar uma reserva de voo via API, siga este fluxo:

  1. Buscar aeroportos — Use o autocomplete para encontrar códigos IATA
  2. Buscar voos — Pesquise voos disponíveis com origem, destino e datas
  3. Criar reserva — Use o id do flightGroup retornado na busca para criar a reserva via API de Reservas

Os IDs dos voos retornados na busca têm validade limitada. Crie a reserva logo após a busca para garantir preço e disponibilidade.


Buscar Aeroportos (Autocomplete)

GET /api/public/airports/search

Busca aeroportos por nome da cidade, nome do aeroporto ou código IATA. Este endpoint é público e não requer autenticação.

Query Parameters

ParâmetroTipoObrigatórioDescrição
qstringSimTermo de busca (mínimo 2 caracteres). Ex: sao paulo, GRU, rio
limitnumberNãoMáximo de resultados (padrão: 10)

Exemplo de Requisição

curl -X GET "https://app.moblix.co/api/public/airports/search?q=sao+paulo&limit=5"
const response = await fetch(
  'https://app.moblix.co/api/public/airports/search?q=sao+paulo&limit=5'
);

const data = await response.json();
console.log(data.airports);
import requests

response = requests.get(
    'https://app.moblix.co/api/public/airports/search',
    params={'q': 'sao paulo', 'limit': 5}
)

data = response.json()
print(data['airports'])

Resposta

{
  "airports": [
    {
      "iata_code": "GRU",
      "name": "Aeroporto Internacional de Guarulhos",
      "city": "São Paulo",
      "state": "SP",
      "country_code": "BR",
      "is_international": true,
      "priority": 100
    },
    {
      "iata_code": "CGH",
      "name": "Aeroporto de Congonhas",
      "city": "São Paulo",
      "state": "SP",
      "country_code": "BR",
      "is_international": false,
      "priority": 90
    }
  ]
}

Campos da Resposta

CampoTipoDescrição
iata_codestringCódigo IATA de 3 letras
namestringNome do aeroporto
citystringCidade
statestringEstado (para aeroportos brasileiros)
country_codestringCódigo do país (ISO 2)
is_internationalbooleanSe é aeroporto internacional
prioritynumberPrioridade de exibição (maior = mais relevante)

Buscar Voos

POST /api/v1/flights/search

Realiza uma busca de voos em tempo real nos fornecedores integrados.

Parâmetros

{
  "origin": "GRU",
  "destination": "GIG",
  "departureDate": "2026-03-15",
  "returnDate": "2026-03-20",
  "adults": 2,
  "children": 0,
  "infants": 0,
  "cabinClass": "economy"
}
CampoTipoObrigatórioDescrição
originstringSimCódigo IATA do aeroporto de origem (ex: GRU, CGH, GIG)
destinationstringSimCódigo IATA do aeroporto de destino
departureDatestringSimData de ida no formato YYYY-MM-DD
returnDatestringNãoData de volta (omita para só ida)
adultsnumberSimNúmero de adultos (1-9)
childrennumberNãoNúmero de crianças 2-11 anos (padrão: 0)
infantsnumberNãoNúmero de bebês 0-2 anos (padrão: 0)
cabinClassstringNãoClasse: economy, premium_economy, business, first
directOnlybooleanNãoFiltrar apenas voos diretos (padrão: false)
maxStopsnumberNãoNúmero máximo de escalas (0-3)
providerstringNãoFornecedor: rextur (padrão) ou moblix

Exemplo de Requisição

curl -X POST https://app.moblix.co/api/v1/flights/search \
  -H "Authorization: Bearer mbx_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "origin": "GRU",
    "destination": "GIG",
    "departureDate": "2026-03-15",
    "returnDate": "2026-03-20",
    "adults": 2
  }'
const response = await fetch('https://app.moblix.co/api/v1/flights/search', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer mbx_live_sua_chave_aqui',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    origin: 'GRU',
    destination: 'GIG',
    departureDate: '2026-03-15',
    returnDate: '2026-03-20',
    adults: 2
  })
});

const data = await response.json();
console.log(data.flightGroups);
import requests

response = requests.post(
    'https://app.moblix.co/api/v1/flights/search',
    headers={
        'Authorization': 'Bearer mbx_live_sua_chave_aqui',
        'Content-Type': 'application/json'
    },
    json={
        'origin': 'GRU',
        'destination': 'GIG',
        'departureDate': '2026-03-15',
        'returnDate': '2026-03-20',
        'adults': 2
    }
)

data = response.json()
print(data['flightGroups'])

Resposta

{
  "searchId": "search_abc123",
  "flightGroups": [
    {
      "id": "group_xyz789",
      "provider": "rextur",
      "totalPrice": 1250.00,
      "currency": "BRL",
      "pricePerAdult": 625.00,
      "outbound": {
        "departure": {
          "airport": "GRU",
          "city": "São Paulo",
          "datetime": "2026-03-15T08:00:00"
        },
        "arrival": {
          "airport": "GIG",
          "city": "Rio de Janeiro",
          "datetime": "2026-03-15T09:05:00"
        },
        "duration": "1h 5min",
        "airline": {
          "code": "G3",
          "name": "GOL"
        },
        "flightNumber": "G3 1234",
        "stops": 0,
        "segments": [
          {
            "departure": {
              "airport": "GRU",
              "datetime": "2026-03-15T08:00:00"
            },
            "arrival": {
              "airport": "GIG",
              "datetime": "2026-03-15T09:05:00"
            },
            "airline": "G3",
            "flightNumber": "1234",
            "aircraft": "Boeing 737-800",
            "cabinClass": "economy"
          }
        ]
      },
      "inbound": {
        "departure": {
          "airport": "GIG",
          "city": "Rio de Janeiro",
          "datetime": "2026-03-20T18:00:00"
        },
        "arrival": {
          "airport": "GRU",
          "city": "São Paulo",
          "datetime": "2026-03-20T19:10:00"
        },
        "duration": "1h 10min",
        "airline": {
          "code": "G3",
          "name": "GOL"
        },
        "flightNumber": "G3 1235",
        "stops": 0,
        "segments": [...]
      },
      "baggage": {
        "included": {
          "carryOn": "1 x 10kg",
          "checked": "0"
        },
        "purchasable": true
      },
      "fareRules": {
        "refundable": false,
        "changeable": true,
        "changeFeeBRL": 200.00
      }
    }
  ],
  "searchParams": {
    "origin": "GRU",
    "destination": "GIG",
    "departureDate": "2026-03-15",
    "returnDate": "2026-03-20",
    "adults": 2,
    "children": 0,
    "infants": 0
  },
  "timestamp": "2026-01-26T10:30:00Z"
}

Estrutura da Resposta

FlightGroup

CampoTipoDescrição
idstringID único do grupo de voos (usar para reserva)
providerstringFornecedor (rextur, etc.)
totalPricenumberPreço total para todos os passageiros
currencystringMoeda (BRL)
pricePerAdultnumberPreço por adulto
outboundFlightVoo de ida
inboundFlightVoo de volta (quando aplicável)
baggageBaggageInformações de bagagem
fareRulesFareRulesRegras da tarifa

Flight (Trecho)

CampoTipoDescrição
departureLocationInformações de partida
arrivalLocationInformações de chegada
durationstringDuração total do voo
airlineAirlineCompanhia aérea
flightNumberstringNúmero do voo
stopsnumberNúmero de escalas
segmentsSegment[]Detalhes de cada segmento

Segment (Segmento/Escala)

CampoTipoDescrição
departureLocationPartida do segmento
arrivalLocationChegada do segmento
airlinestringCódigo da companhia
flightNumberstringNúmero do voo
aircraftstringModelo da aeronave
cabinClassstringClasse da cabine

Códigos IATA Comuns (Brasil)

CódigoCidadeAeroporto
GRUSão PauloGuarulhos
CGHSão PauloCongonhas
GIGRio de JaneiroGaleão
SDURio de JaneiroSantos Dumont
BSBBrasíliaInternacional
CNFBelo HorizonteConfins
SSASalvadorDeputado Luís Eduardo
RECRecifeGuararapes
FORFortalezaPinto Martins
POAPorto AlegreSalgado Filho
CWBCuritibaAfonso Pena
FLNFlorianópolisHercílio Luz

Notas Importantes

A busca de voos pode levar alguns segundos pois consulta fornecedores em tempo real.

Os preços e disponibilidade são dinâmicos. Recomendamos criar a reserva logo após a busca para garantir o preço.

Rate Limit

EndpointLimite
/flights/search30 req/min

O rate limit de busca é menor devido ao custo computacional de consultar múltiplos fornecedores.

On this page