// docs

Hoteis.com PLP

Extrai listagem de hospedagens do Hoteis.com por localizacao, datas e ocupacao (adultos, criancas e quartos), com paginação.

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.

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": "hoteis.com",
  "type": "plp",
  "location": "Sao Paulo",
  "checkinDate": "2026-03-09",
  "checkoutDate": "2026-03-11",
  "numAdults": 2,
  "numChildren": 0,
  "numRooms": 1,
  "page": 1
}'

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

hoteis_com_plp

Auth

Bearer ou X-API-Key

hoteis_com_plp tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "hoteis_com_plp",
    "arguments": {
      "location": "Sao Paulo",
      "checkinDate": "2026-03-09",
      "checkoutDate": "2026-03-11",
      "numAdults": 2,
      "numChildren": 0,
      "numRooms": 1,
      "page": 1,
      "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
location
Localizacao textual usada no Glassdoor PLP e no Hoteis.com PLP (ex.: Brasil, Curitiba, Sao Paulo).
string Obrigatório Localizacao textual da busca (cidade, estado ou regiao). - Brasil
target
Fonte alvo da extração.
enum Obrigatório Sempre obrigatorio e deve ser hoteis.com. - mercadolivre.com.br
type
Tipo da extração: pdp, idp, plp, review ou places.
enum Obrigatório Sempre obrigatorio e deve ser plp. - pdp
page
Paginacao. Em PLP inicia em 1; em review (MercadoLivre, Booking e Hoteis) inicia em 0.
integer Opcional Pagina da listagem (inteiro >= 1). 1 2
checkinDate
Data de check-in para Booking PDP/PLP e Hoteis.com PDP/PLP.
string (YYYY-MM-DD) Obrigatório Data de check-in no formato YYYY-MM-DD. - 2026-03-01
checkoutDate
Data de check-out para Booking PDP/PLP e Hoteis.com PDP/PLP. Deve ser maior que checkinDate.
string (YYYY-MM-DD) Obrigatório Data de check-out no formato YYYY-MM-DD e maior que checkinDate. - 2026-03-02
numAdults
Quantidade de adultos para Booking, Airbnb e Hoteis.com PDP/PLP.
integer (1-30) Obrigatório Quantidade de adultos (inteiro entre 1 e 30). - 2
numChildren
Quantidade de crianças para Booking e Hoteis.com PDP/PLP.
integer (0-30) Opcional Quantidade de criancas (inteiro entre 0 e 30). 0 0
numRooms
Quantidade de quartos para Booking e Hoteis.com PDP/PLP.
integer (1-15) Obrigatório Quantidade de quartos (inteiro entre 1 e 15). - 1

Exemplos de request

Busca em Sao Paulo

Busca com ocupacao padrao e primeira pagina.

Busca em Sao Paulo
{
  "target": "hoteis.com",
  "type": "plp",
  "location": "Sao Paulo",
  "checkinDate": "2026-03-09",
  "checkoutDate": "2026-03-11",
  "numAdults": 2,
  "numChildren": 0,
  "numRooms": 1,
  "page": 1
}

Busca em Vitoria pagina 2

Busca com paginação para coletar os proximos resultados.

Busca em Vitoria pagina 2
{
  "target": "hoteis.com",
  "type": "plp",
  "location": "Vitoria",
  "checkinDate": "2026-03-12",
  "checkoutDate": "2026-03-14",
  "numAdults": 2,
  "numChildren": 1,
  "numRooms": 1,
  "page": 2
}

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.location": "string",
  "data.checkinDate": "string (YYYY-MM-DD)",
  "data.checkoutDate": "string (YYYY-MM-DD)",
  "data.numAdults": "number",
  "data.numChildren": "number",
  "data.numRooms": "number",
  "data.destination.name": "string",
  "data.destination.regionId": "string",
  "data.searchId": "string",
  "data.totalResults": "number",
  "data.primaryResults": "number",
  "data.page": "number",
  "data.resultsPerPage": "number",
  "data.offset": "number",
  "data.nextPage": "number",
  "data.nextPageUrl": "string",
  "data.items[].position": "number",
  "data.items[].id": "string",
  "data.items[].propertyId": "string",
  "data.items[].url": "string",
  "data.items[].name": "string",
  "data.items[].city": "string",
  "data.items[].neighborhood": "string",
  "data.items[].image": "string",
  "data.items[].gallery[]": "string",
  "data.items[].reviewScore": "number",
  "data.items[].reviewCount": "number",
  "data.items[].reviewLabel": "string",
  "data.items[].starRating": "number",
  "data.items[].leadPrice.amount": "number",
  "data.items[].leadPrice.currency": "string",
  "data.items[].leadPrice.display": "string",
  "data.items[].strikePrice.amount": "number",
  "data.items[].strikePrice.currency": "string",
  "data.items[].strikePrice.display": "string",
  "data.items[].taxesAndFees": "string",
  "data.items[].freeCancellation": "boolean",
  "data.items[].badges[]": "string",
  "data.items[].amenities[]": "string",
  "data.items[].sponsored": "boolean"
}

Exemplo de response

responseExample
{
  "requestId": "11111111-2222-4333-8444-555555555555",
  "executionId": "aaaaaaaa-bbbb-4ccc-8ddd-eeeeeeeeeeee",
  "data": {
    "source": "hoteis.com",
    "type": "plp",
    "parser": "graphql_property_listing",
    "url": "https://www.hoteis.com/Hotel-Search?destination=Vitoria%2C%20Espirito%20Santo%2C%20Brasil&regionId=3711&latLong=&d1=2026-03-12&startDate=2026-03-12&d2=2026-03-14&endDate=2026-03-14&adults=2&rooms=1&sort=RECOMMENDED&theme=&userIntent=&semdtl=&categorySearch=&useRewards=false&children=1&pwaDialog=&daysInFuture=&stayLength=",
    "requestUrl": "https://www.hoteis.com/Hotel-Search?destination=Vitoria&regionId=&latLong=&d1=2026-03-12&startDate=2026-03-12&d2=2026-03-14&endDate=2026-03-14&adults=2&rooms=1&sort=RECOMMENDED&theme=&userIntent=&semdtl=&categorySearch=&useRewards=false&children=1&pwaDialog=&daysInFuture=&stayLength=",
    "extractedAt": "2026-03-05T16:10:00.000Z",
    "location": "Vitoria",
    "checkinDate": "2026-03-12",
    "checkoutDate": "2026-03-14",
    "numAdults": 2,
    "numChildren": 1,
    "numRooms": 1,
    "destination": {
      "name": "Vitoria, Espirito Santo, Brasil",
      "regionId": "3711"
    },
    "searchId": "search-id-xyz",
    "totalResults": 54,
    "primaryResults": 50,
    "page": 2,
    "resultsPerPage": 50,
    "offset": 50,
    "nextPage": 3,
    "nextPageUrl": "https://www.hoteis.com/Hotel-Search?destination=Vitoria&regionId=&latLong=&d1=2026-03-12&startDate=2026-03-12&d2=2026-03-14&endDate=2026-03-14&adults=2&rooms=1&sort=RECOMMENDED&theme=&userIntent=&semdtl=&categorySearch=&useRewards=false&children=1&pwaDialog=&daysInFuture=&stayLength=&page=3",
    "items": [
      {
        "position": 51,
        "id": "3976043",
        "propertyId": "3976043",
        "url": "https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil/?expediaPropertyId=3976043&top_dp=675&top_cur=BRL",
        "name": "Golden Tulip Porto Vitoria",
        "city": "Vitoria",
        "neighborhood": "Praia do Canto",
        "image": "https://images.example.com/3976043-1.jpg",
        "gallery": [
          "https://images.example.com/3976043-1.jpg",
          "https://images.example.com/3976043-2.jpg"
        ],
        "reviewScore": 9,
        "reviewCount": 1002,
        "reviewLabel": "Maravilhosa",
        "starRating": 4,
        "leadPrice": {
          "amount": 675,
          "currency": "BRL",
          "display": "R$ 675"
        },
        "strikePrice": {
          "amount": 710,
          "currency": "BRL",
          "display": "R$ 710"
        },
        "taxesAndFees": "inclui impostos e taxas",
        "freeCancellation": true,
        "badges": [
          "Anuncio",
          "Temos 4 disponíveis a"
        ],
        "amenities": [
          "Piscina",
          "Academia"
        ],
        "sponsored": true
      }
    ]
  }
}

Referência completa de campos

Path Tipo Descrição Exemplo
data.checkinDate string (YYYY-MM-DD) Data de check-in usada na busca. 2026-03-12
data.checkoutDate string (YYYY-MM-DD) Data de check-out usada na busca. 2026-03-14
data.destination.name string Nome do destino resolvido no Hoteis.com. Vitoria, Espirito Santo, Brasil
data.destination.regionId string Identificador interno da regiao no Hoteis.com. 3711
data.extractedAt string (iso datetime) Data/hora ISO da extração. 2026-03-05T16:10:00.000Z
data.items[].amenities[] string Amenidades principais exibidas no card. Piscina
data.items[].badges[] string Badges/textos promocionais do card. Anuncio
data.items[].city string Cidade do hotel. Vitoria
data.items[].freeCancellation boolean Indica disponibilidade de cancelamento gratis. true
data.items[].gallery[] string Galeria de imagens do hotel. https://images.example.com/3976043-1.jpg
data.items[].id string Identificador do listing retornado pelo upstream. 3976043
data.items[].image string Imagem principal do hotel. https://images.example.com/3976043-1.jpg
data.items[].leadPrice.amount number Valor numérico do preço principal. 675
data.items[].leadPrice.currency string Moeda do preço principal. BRL
data.items[].leadPrice.display string Preço principal formatado. R$ 675
data.items[].name string Nome do hotel. Golden Tulip Porto Vitoria
data.items[].neighborhood string Bairro/regiao do hotel. Praia do Canto
data.items[].position number Posicao absoluta do item dentro da busca. 51
data.items[].propertyId string Identificador da propriedade/hotel. 3976043
data.items[].reviewCount number Quantidade de avaliações. 1002
data.items[].reviewLabel string Texto resumo da avaliação. Maravilhosa
data.items[].reviewScore number Nota de avaliação. 9
data.items[].sponsored boolean Indica se o resultado parece patrocinado. true
data.items[].starRating number Classificacao por estrelas. 4
data.items[].strikePrice.amount number Valor numérico do preço riscado. 710
data.items[].strikePrice.currency string Moeda do preço riscado. BRL
data.items[].strikePrice.display string Preço riscado formatado. R$ 710
data.items[].taxesAndFees string Texto de impostos e taxas retornado no card. inclui impostos e taxas
data.items[].url string URL publica do hotel no Hoteis.com. https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil/?expediaPropertyId=3976043&top_dp=675&top_cur=BRL
data.location string Localizacao textual recebida no payload. Vitoria
data.nextPage number Proxima pagina, quando disponivel. 3
data.nextPageUrl string URL de preview para a proxima pagina. https://www.hoteis.com/Hotel-Search?destination=Vitoria&regionId=&latLong=&d1=2026-03-12&startDate=2026-03-12&d2=2026-03-14&endDate=2026-03-14&adults=2&rooms=1&sort=RECOMMENDED&theme=&userIntent=&semdtl=&categorySearch=&useRewards=false&children=1&pwaDialog=&daysInFuture=&stayLength=&page=3
data.numAdults number Quantidade de adultos usada na busca. 2
data.numChildren number Quantidade de criancas usada na busca. 1
data.numRooms number Quantidade de quartos usada na busca. 1
data.offset number Offset calculado para paginação. 50
data.page number Pagina atual da listagem. 2
data.parser string Parser utilizado para montar o resultado. graphql_property_listing
data.primaryResults number Quantidade de itens retornados na pagina atual. 50
data.requestUrl string URL inicial montada pelo gateway para a requisição. https://www.hoteis.com/Hotel-Search?destination=Vitoria&regionId=&latLong=&d1=2026-03-12&startDate=2026-03-12&d2=2026-03-14&endDate=2026-03-14&adults=2&rooms=1&sort=RECOMMENDED&theme=&userIntent=&semdtl=&categorySearch=&useRewards=false&children=1&pwaDialog=&daysInFuture=&stayLength=
data.resultsPerPage number Quantidade de resultados por pagina. 50
data.searchId string Identificador interno da busca retornado pelo upstream. search-id-xyz
data.source string Origem dos dados extraidos. hoteis.com
data.totalResults number Total de resultados encontrados. 54
data.type string Tipo da extração. plp
data.url string URL final resolvida durante a navegação da busca. https://www.hoteis.com/Hotel-Search?destination=Vitoria%2C%20Espirito%20Santo%2C%20Brasil&regionId=3711&latLong=&d1=2026-03-12&startDate=2026-03-12&d2=2026-03-14&endDate=2026-03-14&adults=2&rooms=1&sort=RECOMMENDED&theme=&userIntent=&semdtl=&categorySearch=&useRewards=false&children=1&pwaDialog=&daysInFuture=&stayLength=
executionId string (uuid) Campo executionId retornado no payload de resposta. aaaaaaaa-bbbb-4ccc-8ddd-eeeeeeeeeeee
requestId string (uuid) Campo requestId retornado no payload de resposta. 11111111-2222-4333-8444-555555555555

Erros comuns

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.
WhatsApp