Moblix
Referência da API

Hotéis

Busca de hospedagem com disponibilidade em tempo real

Hotéis (Hotels)

Busque hotéis e hospedagens com disponibilidade e preços em tempo real.

Fluxo Completo

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

  1. Buscar destinos — Use o autocomplete para encontrar o código da cidade
  2. Buscar hotéis — Pesquise hotéis disponíveis com o código da cidade e datas
  3. Criar reserva — Use os dados do hotel retornado na busca para criar a reserva via API de Reservas

Os resultados da busca têm validade limitada (~20 minutos). Crie a reserva logo após a busca para garantir preço e disponibilidade.


Buscar Destinos (Autocomplete)

GET /api/public/hotels/destinations

Busca cidades/destinos disponíveis por nome. Este endpoint é público e não requer autenticação. O código da cidade retornado (code) deve ser usado como cityCode na busca de hotéis.

Query Parameters

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

Exemplo de Requisição

curl -X GET "https://app.moblix.co/api/public/hotels/destinations?q=rio+de+janeiro&limit=5"
const response = await fetch(
  'https://app.moblix.co/api/public/hotels/destinations?q=rio+de+janeiro&limit=5'
);

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

response = requests.get(
    'https://app.moblix.co/api/public/hotels/destinations',
    params={'q': 'rio de janeiro', 'limit': 5}
)

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

Resposta

{
  "destinations": [
    {
      "code": "75",
      "label": "Rio de Janeiro, Brasil",
      "city": "Rio de Janeiro",
      "country": "Brasil",
      "countryCode": "BR",
      "value": "75 - Rio de Janeiro"
    },
    {
      "code": "1234",
      "label": "Rio Branco, Brasil",
      "city": "Rio Branco",
      "country": "Brasil",
      "countryCode": "BR",
      "value": "1234 - Rio Branco"
    }
  ],
  "count": 2,
  "query": "rio de janeiro"
}

Campos da Resposta

CampoTipoDescrição
codestringCódigo da cidade (usar como cityCode na busca)
labelstringNome formatado para exibição
citystringNome da cidade
countrystringNome do país
countryCodestringCódigo do país (ISO 2)
valuestringValor combinado código + nome

Buscar Hotéis

POST /api/v1/hotels/search

Realiza uma busca de hotéis disponíveis para as datas especificadas.

Parâmetros

{
  "cityCode": "75",
  "checkIn": "2026-03-15",
  "checkOut": "2026-03-20",
  "adults": 2,
  "children": 0,
  "rooms": 1,
  "nationality": "BR"
}
CampoTipoObrigatórioDescrição
cityCodestringSimCódigo da cidade (obtido via autocomplete de destinos)
checkInstringSimData de entrada no formato YYYY-MM-DD
checkOutstringSimData de saída no formato YYYY-MM-DD
adultsnumberSimNúmero total de adultos (1-9)
childrennumberNãoNúmero total de crianças (padrão: 0)
roomsnumberNãoNúmero de quartos (1-5, padrão: 1)
nationalitystringNãoNacionalidade dos hóspedes, código ISO 2 letras (padrão: BR)

O campo cityCode é um código numérico do fornecedor, não o nome da cidade. Use o endpoint de Buscar Destinos para obter o código correto.

Exemplo de Requisição

curl -X POST https://app.moblix.co/api/v1/hotels/search \
  -H "Authorization: Bearer mbx_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "cityCode": "75",
    "checkIn": "2026-03-15",
    "checkOut": "2026-03-20",
    "adults": 2,
    "rooms": 1
  }'
const response = await fetch('https://app.moblix.co/api/v1/hotels/search', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer mbx_live_sua_chave_aqui',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    cityCode: '75',
    checkIn: '2026-03-15',
    checkOut: '2026-03-20',
    adults: 2,
    rooms: 1
  })
});

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

response = requests.post(
    'https://app.moblix.co/api/v1/hotels/search',
    headers={
        'Authorization': 'Bearer mbx_live_sua_chave_aqui',
        'Content-Type': 'application/json'
    },
    json={
        'cityCode': '75',
        'checkIn': '2026-03-15',
        'checkOut': '2026-03-20',
        'adults': 2,
        'rooms': 1
    }
)

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

Resposta

{
  "data": {
    "hotels": [
      {
        "id": "bestbuy:12345",
        "name": "Copacabana Palace",
        "location": {
          "address": "Av. Atlântica, 1702 - Copacabana",
          "city": "75",
          "country": "BR",
          "coordinates": {
            "latitude": -22.9671,
            "longitude": -43.1795
          }
        },
        "rating": 5,
        "stars": 5,
        "images": [
          "https://images.example.com/hotel/main.jpg",
          "https://images.example.com/hotel/thumb.jpg"
        ],
        "amenities": [],
        "price": {
          "amount": 900.00,
          "currency": "BRL",
          "perNight": true,
          "total": 4500.00
        },
        "availability": {
          "checkIn": "2026-03-15",
          "checkOut": "2026-03-20",
          "nights": 5,
          "roomsAvailable": 3
        },
        "description": "Hotel de luxo à beira-mar",
        "provider": "BestBuy",
        "offersCount": 3,
        "searchSessionId": "uuid-da-sessao"
      }
    ],
    "summary": {
      "totalResults": 45,
      "minPrice": 250.00,
      "maxPrice": 2400.00,
      "duration": 3500
    },
    "searchSessionId": "uuid-da-sessao",
    "meta": {
      "searchParams": {
        "cityCode": "75",
        "checkIn": "2026-03-15",
        "checkOut": "2026-03-20",
        "adults": 2,
        "children": 0,
        "rooms": 1,
        "nationality": "BR"
      },
      "teamId": "uuid-do-time"
    }
  },
  "timestamp": "2026-01-26T10:30:00Z"
}

Estrutura da Resposta

Hotel

CampoTipoDescrição
idstringID único no formato provider:hotelId
namestringNome do hotel
locationLocationEndereço e coordenadas
ratingnumberCategoria em estrelas (1-5)
starsnumberEstrelas do hotel (1-5)
imagesstring[]URLs das imagens do hotel
amenitiesstring[]Lista de comodidades (pode estar vazia)
pricePriceInformações de preço
availabilityAvailabilityDisponibilidade e datas
descriptionstringDescrição ou observações do hotel
providerstringNome do fornecedor
offersCountnumberNúmero de ofertas/quartos disponíveis
searchSessionIdstringID da sessão de busca

Location

CampoTipoDescrição
addressstringEndereço do hotel
citystringCódigo da cidade
countrystringCódigo do país
coordinatesobjectlatitude e longitude

Price

CampoTipoDescrição
amountnumberPreço por diária (melhor oferta)
currencystringMoeda (BRL)
perNightbooleanSempre true — indica que amount é por diária
totalnumberPreço total da estadia (melhor oferta)

Availability

CampoTipoDescrição
checkInstringData de check-in
checkOutstringData de check-out
nightsnumberNúmero de diárias
roomsAvailablenumberQuantidade de ofertas disponíveis

Summary

CampoTipoDescrição
totalResultsnumberTotal de hotéis encontrados
minPricenumberMenor preço por diária
maxPricenumberMaior preço por diária
durationnumberTempo da busca em milissegundos

Notas Importantes

A busca de hotéis retorna apenas propriedades com disponibilidade para as datas especificadas. Os preços exibidos são da melhor oferta (menor preço) de cada hotel.

Os preços podem variar dependendo da demanda. A sessão de busca (searchSessionId) expira em aproximadamente 20 minutos. Crie a reserva dentro desse período.

Rate Limit

EndpointLimite
/hotels/search30 req/min

On this page