SML Smiles.com.br

API Smiles: busca de passagens em milhas (PLP)

Envie origem, destino, data de ida e passageiros para consultar ofertas da Smiles. Receba offers e cheapestOffer com companhia, horários, escalas e opções tarifárias em fareOptions: milhas, componente em dinheiro e taxas quando disponíveis. Inclua returnDate para uma busca de ida e volta.

GeckoAPI é uma API independente e não é afiliada, patrocinada ou endossada por Smiles.com.br.

Não precisa de cartão de crédito.

API Smiles API voos Smiles API passagens aéreas dados Smiles flight search API

Use target: "smiles.com.br" e type: "plp". from, to e departureDate são obrigatórios; returnDate e passageiros são opcionais. Os campos url e page não são aceitos. Cada consulta custa 5 créditos.

// busca_de_passagens_plp

Consulte a rota e as datas; receba as ofertas em milhas

O endpoint smiles.com.br:plp recebe parâmetros estruturados de busca. Use códigos IATA de três letras para origem e destino e datas no formato YYYY-MM-DD. Com returnDate, a busca é de ida e volta; sem esse campo, é somente ida.

Cada consulta custa 5 créditos. Em algumas execuções, esta API pode levar até 1 minuto para responder. Isso é normal para este endpoint. Aguarde a conclusão da requisição. Os exemplos de resposta são ilustrativos: ofertas, milhas e taxas dependem da busca e da disponibilidade informada pela Smiles.

Campos aceitos na requisição

CampoUsoRegra
urlNão aceitoURL manual não é suportada. Informe from, to, departureDate, returnDate opcional e passageiros; o backend monta a busca suportada.
fromObrigatórioCódigo IATA do aeroporto de origem com 3 letras (ex: GRU).
toObrigatórioCódigo IATA do aeroporto de destino com 3 letras (ex: GIG).
departureDateObrigatórioData de ida no formato YYYY-MM-DD.
returnDateOpcionalData de volta no formato YYYY-MM-DD. Deve ser maior ou igual a departureDate. Quando omitida, a busca é one-way.
numAdultsOpcionalQuantidade de adultos. Deve ser inteiro entre 1 e 9.
numChildrenOpcionalQuantidade de crianças. Deve ser inteiro entre 0 e 9.
numInfantsOpcionalQuantidade de bebês de colo. Deve ser inteiro entre 0 e 9 e menor ou igual a numAdults.
targetObrigatórioSempre obrigatório e deve ser smiles.com.br.
typeObrigatórioSempre obrigatório e deve ser plp.
pageNão aceitoPaginação manual não é suportada para esta busca.

Somente ida: omita returnDate

Exemplo de corpo JSON para POST /v1/extract. Ajuste a rota, a data e os passageiros antes de enviar.

Smiles PLP · somente ida
{
  "target": "smiles.com.br",
  "type": "plp",
  "from": "CGH",
  "to": "SDU",
  "departureDate": "2026-11-14",
  "numAdults": 2,
  "numChildren": 0,
  "numInfants": 0
}

// sample_response

Prévia da resposta do endpoint

Versão resumida do JSON retornado pela API de Smiles.com.br, mostrando só os campos mais úteis para entender o formato da resposta. Alguns atributos opcionais podem vir como null.

Ver schema completo
Exemplo ilustrativo da documentação · Smiles PLP (resumido)
{
  "data": {
    "source": "smiles.com.br",
    "type": "plp",
    "searchType": "ROUND_TRIP",
    "from": "GRU",
    "to": "GIG",
    "departureDate": "2026-11-09",
    "returnDate": "2026-11-16",
    "totalOffers": 2,
    "listedOffers": 2,
    "cheapestOffer": {
      "airline": "G3",
      "cabin": "ECONOMIC",
      "stops": 0,
      "departureAirport": "GRU",
      "departureTime": "2026-11-09T09:00:00",
      "arrivalAirport": "GIG",
      "arrivalTime": "2026-11-09T10:10:00",
      "flightNumbers": [
        "1001"
      ],
      "legs": [
        {
          "flightNumber": "1001",
          "marketingAirline": "G3",
          "operatingAirline": "G3",
          "cabin": "ECONOMIC",
          "departureAirport": "GRU",
          "departureTime": "2026-11-09T09:00:00",
          "arrivalAirport": "GIG",
          "arrivalTime": "2026-11-09T10:10:00"
        }
      ],
      "baggage": {
        "free": false,
        "quantity": 0
      },
      "priceHint": 12500,
      "fareOptions": [
        {
          "fareType": "SMILES_CLUB",
          "miles": 12500,
          "money": 0,
          "costTax": 39.9
        }
      ]
    },
    "offers": [
      {
        "airline": "G3",
        "cabin": "ECONOMIC",
        "stops": 0,
        "departureAirport": "GRU",
        "departureTime": "2026-11-09T09:00:00",
        "arrivalAirport": "GIG",
        "arrivalTime": "2026-11-09T10:10:00",
        "flightNumbers": [
          "1001"
        ],
        "legs": [
          {
            "flightNumber": "1001",
            "marketingAirline": "G3",
            "operatingAirline": "G3",
            "cabin": "ECONOMIC",
            "departureAirport": "GRU",
            "departureTime": "2026-11-09T09:00:00",
            "arrivalAirport": "GIG",
            "arrivalTime": "2026-11-09T10:10:00"
          }
        ],
        "baggage": {
          "free": false,
          "quantity": 0
        },
        "priceHint": 12500,
        "fareOptions": [
          {
            "fareType": "SMILES_CLUB",
            "miles": 12500,
            "money": 0,
            "costTax": 39.9
          }
        ]
      },
      {
        "airline": "G3",
        "cabin": "ECONOMIC",
        "stops": 1,
        "departureAirport": "GRU",
        "departureTime": "2026-11-09T13:20:00",
        "arrivalAirport": "GIG",
        "arrivalTime": "2026-11-09T16:05:00",
        "flightNumbers": [
          "1201",
          "1202"
        ],
        "legs": [
          {
            "flightNumber": "1201",
            "marketingAirline": "G3",
            "operatingAirline": "G3",
            "cabin": "ECONOMIC",
            "departureAirport": "GRU",
            "departureTime": "2026-11-09T13:20:00",
            "arrivalAirport": "CNF",
            "arrivalTime": "2026-11-09T14:30:00"
          },
          {
            "flightNumber": "1202",
            "marketingAirline": "G3",
            "operatingAirline": "G3",
            "cabin": "ECONOMIC",
            "departureAirport": "CNF",
            "departureTime": "2026-11-09T14:55:00",
            "arrivalAirport": "GIG",
            "arrivalTime": "2026-11-09T16:05:00"
          }
        ],
        "baggage": {
          "free": true,
          "quantity": 1
        },
        "priceHint": 15800,
        "fareOptions": [
          {
            "fareType": "SMILES",
            "miles": 15800,
            "money": 0,
            "costTax": 39.9
          }
        ]
      }
    ]
  }
}

// para_quem_serve

Para quem serve

Comparação de tarifas

Acompanhe ofertas Smiles por rota, data e composição de passageiros.

Travel apps e metabusca

Integre resultados de passagens e milhas em produtos de viagem sem manter scraping próprio.

Alertas de preço

Monitore menor oferta em pontos por rota e envie notificações quando houver mudança.

BI de aviação

Analise oferta, horários, escalas, taxas e distribuição de pontos em JSON padronizado.

Agentes de viagem com IA

Use MCP para responder perguntas sobre ofertas Smiles com dados atuais e verificáveis.

Automação operacional

Alimente dashboards, ETLs e rotinas internas com ofertas de voo estruturadas.

// como_funciona

Como funciona

01

Crie sua conta

Acesse o dashboard e gere sua chave de API.

02

Chame a API

Envie POST /v1/extract com target "smiles.com.br", type "plp", from, to e departureDate. Inclua returnDate e passageiros quando necessário. Não envie url nem page.

03

Receba JSON

Leia data.offers e data.cheapestOffer. Cada oferta pode incluir fareOptions com miles, money e costTax, além de números dos voos, companhias por conexão, horários e bagagem informada na busca.

Smiles PLP · busca de ida e volta
curl -X POST 'https://api.geckoapi.com.br/v1/extract' \
  -H 'Authorization: Bearer SUA_CHAVE' \
  -H 'Content-Type: application/json' \
  -d '{
  "target": "smiles.com.br",
  "type": "plp",
  "from": "GRU",
  "to": "GIG",
  "departureDate": "2026-11-14",
  "returnDate": "2026-11-21",
  "numAdults": 1,
  "numChildren": 0,
  "numInfants": 0
}'

// integracao_ia

Integre com IA (MCP)

Conecte agentes de IA à GeckoAPI e seu chatbot responde com dados reais de Smiles.com.br.

// exemplos de perguntas que seu agente pode responder:

→

"Quais são as ofertas mais baratas na Smiles nessa rota?"

→

"Existe voo direto de GRU para GIG nessas datas?"

→

"Mostre pontos, taxas e horários para essa busca."

→

"Qual a menor oferta Smiles para ida e volta com 1 adulto?"

Fluxo: Chatbot → Agente MCP → GeckoAPI → Resposta com dados

Quais dados a API Smiles retorna?

As ofertas ficam em data.offers[]. As opções tarifárias de cada oferta ficam em fareOptions[]: miles informa milhas ou pontos; money, o componente em dinheiro; e costTax, as taxas, quando disponíveis. Preserve esses valores separadamente na sua integração.

data.cheapestOffer destaca a menor oferta no conjunto normalizado. Seu priceHint é usado para ordenar as ofertas por pontos; não é um preço final em reais. Campos como cabin aparecem na resposta, mas não são parâmetros de entrada documentados para este endpoint.

Campo de respostaDescrição da documentação
data.searchTypeIndica somente ida ou ida e volta. Cada oferta pertence a um trecho/itinerário; não representa um pacote com o total de ida e volta.
data.totalOffersQuantidade de ofertas normalizadas.
data.listedOffersQuantidade de ofertas incluídas no array offers.
data.offers[].airlineCompanhia aérea ou GDS associado à oferta.
data.offers[].cabinCabine associada à oferta.
data.offers[].stopsQuantidade de escalas quando disponível.
data.offers[].departureAirportAeroporto de partida.
data.offers[].departureTimeData/hora de partida.
data.offers[].arrivalAirportAeroporto de chegada.
data.offers[].arrivalTimeData/hora de chegada.
data.offers[].flightNumbersNúmeros dos voos, sem prefixo da companhia, na ordem de legs. Array vazio quando não informados; use legs para associar cada número à companhia e à conexão.
data.offers[].legs[].flightNumberNúmero do voo sem prefixo da companhia. Preserva zeros à esquerda quando recebidos; null quando não informado.
data.offers[].legs[].marketingAirlineCódigo da companhia que comercializa este voo. Pode diferir da operadora em codeshare.
data.offers[].legs[].operatingAirlineCódigo da companhia que opera este voo, quando informado pela Smiles.
data.offers[].baggageFranquia de bagagem despachada informada na busca para a oferta; null quando ausente. Não é uma validação por opção tarifária ou por passageiro: a tarifa escolhida e benefícios pessoais podem alterar a franquia. Peso, dimensões, bagagem de mão e regras completas não são retornados.
data.offers[].baggage.freeIndicação de bagagem gratuita fornecida pela Smiles. false indica explicitamente bagagem não gratuita na oferta; null significa desconhecido. Não inclui validação de benefícios pessoais do Clube/categoria.
data.offers[].baggage.quantityQuantidade de volumes de bagagem despachada informada para a oferta. Zero é uma quantidade explícita; null significa ausente ou desconhecida. Não representa peso em kg.
data.offers[].fareOptions[].fareTypeModalidade tarifária, como SMILES, SMILES_CLUB, SMILES_MONEY, SMILES_MONEY_CLUB ou MONEY. Tarifas de Clube/categoria dependem de elegibilidade na emissão; a API não autentica a conta Smiles.
data.offers[].fareOptions[].milesQuantidade de milhas da opção, por passageiro e trecho da oferta; não é o total da reserva. Crianças e bebês podem ter condições específicas.
data.offers[].fareOptions[].moneyComponente da tarifa em reais (BRL), não em centavos. Quando há milhas, é a parcela em dinheiro do Smiles & Money. Não inclui costTax; some os dois campos conhecidos para estimar o componente em dinheiro. Não é o total da reserva.
data.offers[].fareOptions[].costTaxTaxa adicional em reais (BRL), separada de money, quando informada. null significa taxa desconhecida, não zero. Não garante todas as cobranças da emissão, especialmente em companhias parceiras; confirme o total na Smiles.
data.cheapestOffer.priceHintIndicador numérico usado para ordenar ofertas em milhas. Não representa custo total em reais e não soma money ou costTax.
Ver contrato completo: parâmetros, tipos e exemplo de resposta
100 créditos iniciais

Comece a usar a API de Smiles.com.br

Crie sua conta e comece grátis. Sem cartão necessário.