// docs

Hoteis.com Review

Extrai avaliacoes de hotel do Hoteis.com com paginacao e ordenacao.

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 '{
  "url": "https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil",
  "target": "hoteis.com",
  "type": "review",
  "page": 0
}'

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_review

Auth

Bearer ou X-API-Key

hoteis_com_review tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "hoteis_com_review",
    "arguments": {
      "url": "https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil",
      "page": 0,
      "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
url
URL alvo da extração. Para alguns PLPs pode ser omitida quando a API monta a URL a partir de outros campos.
string (URL) Obrigatório Obrigatorio para Hoteis.com Review. - https://www.mercadolivre.com.br/p/MLB123456
sort
Ordenacao para OLX PLP, Booking Review e Hoteis Review. OLX: relevance/date/price/biggest_price/price_relevance. Booking/Hoteis Review: most_relevant/newest_first/oldest_first/score_desc/score_asc.
"relevance" | "date" | "price" | "biggest_price" | "price_relevance" | "most_relevant" | "newest_first" | "oldest_first" | "score_desc" | "score_asc" Opcional Ordenacao das reviews: most_relevant, newest_first, oldest_first, score_desc ou score_asc. O backend traduz isso para o sortBy interno do GraphQL do Hoteis.com. most_relevant date
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 review. - pdp
page
Paginacao. Em PLP inicia em 1; em review (MercadoLivre, Booking e Hoteis) inicia em 0.
integer Opcional Pagina da listagem de reviews (inteiro >= 0). Inicia em 0. 0 2

Exemplos de request

Reviews por URL

Primeira pagina com ordenacao padrao (mais relevantes).

Reviews por URL
{
  "url": "https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil",
  "target": "hoteis.com",
  "type": "review",
  "page": 0
}

Reviews mais recentes

Pagina 4 com ordenacao por reviews mais recentes.

Reviews mais recentes
{
  "url": "https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil",
  "target": "hoteis.com",
  "type": "review",
  "sort": "newest_first",
  "page": 4
}

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.propertyId": "string",
  "data.page": "number",
  "data.resultsPerPage": "number",
  "data.offset": "number",
  "data.sort": "string",
  "data.sortLabel": "string",
  "data.totalReviews": "number",
  "data.overallRating": "number",
  "data.overallRatingText": "string",
  "data.summaryLabel": "string",
  "data.availableSorters[].label": "string",
  "data.availableSorters[].value": "string",
  "data.availableSorters[].isSelected": "boolean",
  "data.availableSorters[].isDefault": "boolean",
  "data.availableTravelerTypes[].label": "string",
  "data.availableTravelerTypes[].value": "string",
  "data.availableTravelerTypes[].isSelected": "boolean",
  "data.availableTravelerTypes[].isDefault": "boolean",
  "data.supportsPhotosFilter": "boolean",
  "data.ratingScores[].title": "string",
  "data.ratingScores[].value": "number",
  "data.ratingScores[].percent": "number",
  "data.hasNextPage": "boolean",
  "data.nextPage": "number",
  "data.nextPageUrl": "string",
  "data.reviews[].reviewId": "string",
  "data.reviews[].reviewScore": "number",
  "data.reviews[].reviewScoreText": "string",
  "data.reviews[].reviewScoreLabel": "string",
  "data.reviews[].author": "string",
  "data.reviews[].travelerType": "string",
  "data.reviews[].reviewDate": "string",
  "data.reviews[].reviewDateIso": "string (YYYY-MM-DD)",
  "data.reviews[].tripSummary": "string",
  "data.reviews[].title": "string",
  "data.reviews[].text": "string",
  "data.reviews[].verified": "boolean",
  "data.reviews[].sentiments[]": "string",
  "data.reviews[].photos[].url": "string",
  "data.reviews[].photos[].description": "string",
  "data.reviews[].managementResponses[].title": "string",
  "data.reviews[].managementResponses[].text": "string"
}

Exemplo de response

responseExample
{
  "requestId": "99999999-1111-4111-8111-999999999999",
  "executionId": "99999999-2222-4222-8222-999999999999",
  "data": {
    "source": "hoteis.com",
    "type": "review",
    "parser": "graphql_product_reviews",
    "url": "https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil",
    "requestUrl": "https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil?pwaDialog=product-reviews",
    "extractedAt": "2026-03-06T12:00:00.000Z",
    "propertyId": "3976043",
    "page": 4,
    "resultsPerPage": 10,
    "offset": 40,
    "sort": "urn:expediagroup:taxonomies:core:#e9f32feb-5946-4b19-a6f2-8206edc7a130",
    "sortLabel": "Mais recentes",
    "totalReviews": 1002,
    "overallRating": 9,
    "overallRatingText": "9,0/10 (Maravilhosa)",
    "summaryLabel": "Maravilhosa",
    "availableSorters": [
      {
        "label": "Mais recentes",
        "value": "urn:expediagroup:taxonomies:core:#e9f32feb-5946-4b19-a6f2-8206edc7a130",
        "isSelected": true,
        "isDefault": false
      },
      {
        "label": "Mais relevantes",
        "value": "urn:expediagroup:taxonomies:core:#relevant",
        "isSelected": false,
        "isDefault": true
      }
    ],
    "availableTravelerTypes": [
      {
        "label": "Todos",
        "value": "urn:expediagroup:review_categories:trip_type:all_travelers",
        "isSelected": true,
        "isDefault": true
      },
      {
        "label": "Casais",
        "value": "urn:expediagroup:review_categories:trip_type:couples",
        "isSelected": false,
        "isDefault": false
      }
    ],
    "supportsPhotosFilter": true,
    "ratingScores": [
      {
        "title": "Limpeza",
        "value": 9.2,
        "percent": 92
      },
      {
        "title": "Servico e funcionarios",
        "value": 9.2,
        "percent": 92
      }
    ],
    "hasNextPage": true,
    "nextPage": 5,
    "nextPageUrl": "https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil?pwaDialog=product-reviews&page=5",
    "reviews": [
      {
        "reviewId": "review-1",
        "reviewScore": 8,
        "reviewScoreText": "8/10 (Muito boa)",
        "reviewScoreLabel": "8 de 10 Muito boa",
        "author": "Glaucio A S",
        "travelerType": "Viagem com a familia",
        "reviewDate": "28 de jan. de 2026",
        "reviewDateIso": "2026-01-28",
        "tripSummary": "Hospedou-se por 7 diarias em jan. de 2026",
        "title": "Localizacao, equipe e cafe da manha",
        "text": "Localizacao, equipe e cafe da manha.",
        "verified": true,
        "sentiments": [
          "Pontos positivos: limpeza, servico e equipe de funcionarios"
        ],
        "photos": [
          {
            "url": "https://a.travel-assets.com/ugc/hotel-reviews/photo-1.jpg",
            "description": "Foto do quarto"
          }
        ],
        "managementResponses": [
          {
            "title": "Resposta da gerencia",
            "text": "Obrigado pela visita!"
          }
        ]
      }
    ]
  }
}

Referência completa de campos

Path Tipo Descrição Exemplo
data.availableSorters[].isDefault boolean Campo data.availableSorters[].isDefault retornado no payload de resposta. false
data.availableSorters[].isSelected boolean Campo data.availableSorters[].isSelected retornado no payload de resposta. true
data.availableSorters[].label string Campo data.availableSorters[].label retornado no payload de resposta. Mais recentes
data.availableSorters[].value string Campo data.availableSorters[].value retornado no payload de resposta. urn:expediagroup:taxonomies:core:#e9f32feb-5946-4b19-a6f2-8206edc7a130
data.availableTravelerTypes[].isDefault boolean Campo data.availableTravelerTypes[].isDefault retornado no payload de resposta. true
data.availableTravelerTypes[].isSelected boolean Campo data.availableTravelerTypes[].isSelected retornado no payload de resposta. true
data.availableTravelerTypes[].label string Campo data.availableTravelerTypes[].label retornado no payload de resposta. Todos
data.availableTravelerTypes[].value string Campo data.availableTravelerTypes[].value retornado no payload de resposta. urn:expediagroup:review_categories:trip_type:all_travelers
data.extractedAt string (iso datetime) Campo data.extractedAt retornado no payload de resposta. 2026-03-06T12:00:00.000Z
data.hasNextPage boolean Campo data.hasNextPage retornado no payload de resposta. true
data.nextPage number Campo data.nextPage retornado no payload de resposta. 5
data.nextPageUrl string Campo data.nextPageUrl retornado no payload de resposta. https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil?pwaDialog=product-reviews&page=5
data.offset number Campo data.offset retornado no payload de resposta. 40
data.overallRating number Campo data.overallRating retornado no payload de resposta. 9
data.overallRatingText string Campo data.overallRatingText retornado no payload de resposta. 9,0/10 (Maravilhosa)
data.page number Campo data.page retornado no payload de resposta. 4
data.parser string Campo data.parser retornado no payload de resposta. graphql_product_reviews
data.propertyId string Campo data.propertyId retornado no payload de resposta. 3976043
data.ratingScores[].percent number Campo data.ratingScores[].percent retornado no payload de resposta. 92
data.ratingScores[].title string Campo data.ratingScores[].title retornado no payload de resposta. Limpeza
data.ratingScores[].value number Campo data.ratingScores[].value retornado no payload de resposta. 9.2
data.requestUrl string Campo data.requestUrl retornado no payload de resposta. https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil?pwaDialog=product-reviews
data.resultsPerPage number Campo data.resultsPerPage retornado no payload de resposta. 10
data.reviews[].author string Campo data.reviews[].author retornado no payload de resposta. Glaucio A S
data.reviews[].managementResponses[].text string Campo data.reviews[].managementResponses[].text retornado no payload de resposta. Obrigado pela visita!
data.reviews[].managementResponses[].title string Campo data.reviews[].managementResponses[].title retornado no payload de resposta. Resposta da gerencia
data.reviews[].photos[].description string Campo data.reviews[].photos[].description retornado no payload de resposta. Foto do quarto
data.reviews[].photos[].url string Campo data.reviews[].photos[].url retornado no payload de resposta. https://a.travel-assets.com/ugc/hotel-reviews/photo-1.jpg
data.reviews[].reviewDate string Campo data.reviews[].reviewDate retornado no payload de resposta. 28 de jan. de 2026
data.reviews[].reviewDateIso string (YYYY-MM-DD) Campo data.reviews[].reviewDateIso retornado no payload de resposta. 2026-01-28
data.reviews[].reviewId string Campo data.reviews[].reviewId retornado no payload de resposta. review-1
data.reviews[].reviewScore number Campo data.reviews[].reviewScore retornado no payload de resposta. 8
data.reviews[].reviewScoreLabel string Campo data.reviews[].reviewScoreLabel retornado no payload de resposta. 8 de 10 Muito boa
data.reviews[].reviewScoreText string Campo data.reviews[].reviewScoreText retornado no payload de resposta. 8/10 (Muito boa)
data.reviews[].sentiments[] string Campo data.reviews[].sentiments[] retornado no payload de resposta. Pontos positivos: limpeza, servico e equipe de funcionarios
data.reviews[].text string Campo data.reviews[].text retornado no payload de resposta. Localizacao, equipe e cafe da manha.
data.reviews[].title string Campo data.reviews[].title retornado no payload de resposta. Localizacao, equipe e cafe da manha
data.reviews[].travelerType string Campo data.reviews[].travelerType retornado no payload de resposta. Viagem com a familia
data.reviews[].tripSummary string Campo data.reviews[].tripSummary retornado no payload de resposta. Hospedou-se por 7 diarias em jan. de 2026
data.reviews[].verified boolean Campo data.reviews[].verified retornado no payload de resposta. true
data.sort string Campo data.sort retornado no payload de resposta. urn:expediagroup:taxonomies:core:#e9f32feb-5946-4b19-a6f2-8206edc7a130
data.sortLabel string Campo data.sortLabel retornado no payload de resposta. Mais recentes
data.source string Campo data.source retornado no payload de resposta. hoteis.com
data.summaryLabel string Campo data.summaryLabel retornado no payload de resposta. Maravilhosa
data.supportsPhotosFilter boolean Campo data.supportsPhotosFilter retornado no payload de resposta. true
data.totalReviews number Campo data.totalReviews retornado no payload de resposta. 1002
data.type string Campo data.type retornado no payload de resposta. review
data.url string Campo data.url retornado no payload de resposta. https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil
executionId string (uuid) Campo executionId retornado no payload de resposta. 99999999-2222-4222-8222-999999999999
requestId string (uuid) Campo requestId retornado no payload de resposta. 99999999-1111-4111-8111-999999999999

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