Skip to content

// docs

Hoteis.com: Read reviews

Extracts hotel reviews from Hoteis.com with pagination and sorting.

hoteis.com:review · 1 credit per request

Standard credit cost. Your account pricing is shown in the sandbox.

Try this operation in the sandbox

HTTP request

cURL
curl -X POST https://api.geckoapi.com.br/v1/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -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
}'

Keep your API key on your server. See the quickstart for authentication and response handling.

MCP request

The hosted MCP tool fixes target and type for this operation. Its remaining arguments use the same input rules as Extract.

POST /v1/mcp · Bearer or X-API-Key authentication

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"
    }
  }
}

Supported inputs

Conditional fields depend on the alternatives and constraints in the rule column. Fields marked unsupported are omitted.

FieldTypeRequirementRuleDefaultExample
url
URL extraction target. For some PLPs it can be omitted when API assembles URL from other fields.
string (URL) Required Mandatory for Hoteis.com Review. - https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil
sort
Ordering for VivaReal, Chaves na Mão, OLX and Webmotors PLP, Booking Review and Hotels Review. VivaReal: relevance/date/price/biggest_price/biggest_area. Webmotors: relevance/price/biggest_price/year_desc/mileage_asc. OLX: relevance/date/price/biggest_price/price_relevance. Booking/Hotels Review: most_relevant/newest_first/oldest_first/score_desc/score_asc.
"relevance" | "date" | "price" | "biggest_price" | "biggest_area" | "price_relevance" | "most_relevant" | "newest_first" | "oldest_first" | "score_desc" | "score_asc" | "year_desc" | "mileage_asc" Optional Ordering of reviews: most_relevant, newest_first, oldest_first, score_desc or score_asc. The backend translates this to the internal sortBy from GraphQL from Hoteis.com. most_relevant newest_first
target
Target source for extraction.
enum Required Always mandatory and must be hoteis.com. - hoteis.com
type
Extraction type: pdp, idp, plp, ilp, quote, review or places.
enum Required Always mandatory and must be review. - review
page
Pagination. In PLP, including Trivago, and in Reclame AQUI ILP starts in 1; in review (MercadoLivre, Booking and Hotels) starts in 0. The Reclame AQUI ILP even accepts the page 100.
integer Optional Review listing page (entire >= 0). Starts at 0. 0 0

Request examples

Reviews by URL

First page with default ordering (most relevant).

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

Latest Reviews

Page 4 sorted by most recent reviews.

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

Response schema

Leaf paths and expected types. Field names and enum values are part of the API contract.

responseSchema
{
  "requestId": "string (uuid)",
  "executionId": "string (uuid)",
  "notFound": "boolean (optional; true when the upstream entity was not found and data is null)",
  "data.source": "string",
  "data.type": "string",
  "data.parser": "\"1.0.0\"",
  "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"
}

Example response

Illustrative response. Product names, reviews and other source content retain their original language. Missing and null values do not imply zero stock, free shipping or zero reviews.

responseExample
{
  "requestId": "99999999-1111-4111-8111-999999999999",
  "executionId": "99999999-2222-4222-8222-999999999999",
  "data": {
    "source": "hoteis.com",
    "type": "review",
    "parser": "1.0.0",
    "url": "https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil",
    "requestUrl": "https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil",
    "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!"
          }
        ]
      }
    ]
  }
}

Complete field reference

PathTypeDescriptionExample
data.availableSorters[].isDefault boolean Field data.availableSorters[].isDefault returned in the response payload. false
data.availableSorters[].isSelected boolean Field data.availableSorters[].isSelected returned in the response payload. true
data.availableSorters[].label string Field data.availableSorters[].label returned in the response payload. Mais recentes
data.availableSorters[].value string Field data.availableSorters[].value returned in the response payload. urn:expediagroup:taxonomies:core:#e9f32feb-5946-4b19-a6f2-8206edc7a130
data.availableTravelerTypes[].isDefault boolean data.availableTravelerTypes[].isDefault field returned in the response payload. true
data.availableTravelerTypes[].isSelected boolean Field data.availableTravelerTypes[].isSelected returned in the response payload. true
data.availableTravelerTypes[].label string Field data.availableTravelerTypes[].label returned in the response payload. Todos
data.availableTravelerTypes[].value string Field data.availableTravelerTypes[].value returned in the response payload. urn:expediagroup:review_categories:trip_type:all_travelers
data.extractedAt string (iso datetime) data.extractedAt field returned in the response payload. 2026-03-06T12:00:00.000Z
data.hasNextPage boolean Field data.hasNextPage returned in the response payload. true
data.nextPage number Field data.nextPage returned in the response payload. 5
data.nextPageUrl string Field data.nextPageUrl returned in the response payload. https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil?pwaDialog=product-reviews&page=5
data.offset number Field data.offset returned in the response payload. 40
data.overallRating number Field data.overallRating returned in the response payload. 9
data.overallRatingText string Field data.overallRatingText returned in the response payload. 9,0/10 (Maravilhosa)
data.page number Field data.page returned in the response payload. 4
data.parser "1.0.0" Stable version of the API response format. 1.0.0
data.propertyId string data.propertyId field returned in the response payload. 3976043
data.ratingScores[].percent number Field data.ratingScores[].percent returned in the response payload. 92
data.ratingScores[].title string Field data.ratingScores[].title returned in the response payload. Limpeza
data.ratingScores[].value number Field data.ratingScores[].value returned in the response payload. 9.2
data.requestUrl string Same value as `data.url`; never exposes the queried internal endpoint. https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil
data.resultsPerPage number Field data.resultsPerPage returned in the response payload. 10
data.reviews[].author string Field data.reviews[].author returned in the response payload. Glaucio A S
data.reviews[].managementResponses[].text string Field data.reviews[].managementResponses[].text returned in the response payload. Obrigado pela visita!
data.reviews[].managementResponses[].title string Field data.reviews[].managementResponses[].title returned in the response payload. Resposta da gerencia
data.reviews[].photos[].description string Field data.reviews[].photos[].description returned in the response payload. Foto do quarto
data.reviews[].photos[].url string Field data.reviews[].photos[].url returned in the response payload. https://a.travel-assets.com/ugc/hotel-reviews/photo-1.jpg
data.reviews[].reviewDate string Field data.reviews[].reviewDate returned in the response payload. 28 de jan. de 2026
data.reviews[].reviewDateIso string (YYYY-MM-DD) Field data.reviews[].reviewDateIso returned in the response payload. 2026-01-28
data.reviews[].reviewId string Field data.reviews[].reviewId returned in the response payload. review-1
data.reviews[].reviewScore number Field data.reviews[].reviewScore returned in the response payload. 8
data.reviews[].reviewScoreLabel string data.reviews[].reviewScoreLabel field returned in the response payload. 8 de 10 Muito boa
data.reviews[].reviewScoreText string Field data.reviews[].reviewScoreText returned in the response payload. 8/10 (Muito boa)
data.reviews[].sentiments[] string Field data.reviews[].sentiments[] returned in the response payload. Pontos positivos: limpeza, servico e equipe de funcionarios
data.reviews[].text string Field data.reviews[].text returned in the response payload. Localizacao, equipe e cafe da manha.
data.reviews[].title string Field data.reviews[].title returned in the response payload. Localizacao, equipe e cafe da manha
data.reviews[].travelerType string data.reviews[].travelerType field returned in the response payload. Viagem com a familia
data.reviews[].tripSummary string Field data.reviews[].tripSummary returned in the response payload. Hospedou-se por 7 diarias em jan. de 2026
data.reviews[].verified boolean Field data.reviews[].verified returned in the response payload. true
data.sort string data.sort field returned in the response payload. urn:expediagroup:taxonomies:core:#e9f32feb-5946-4b19-a6f2-8206edc7a130
data.sortLabel string Field data.sortLabel returned in the response payload. Mais recentes
data.source string Field data.source returned in the response payload. hoteis.com
data.summaryLabel string Field data.summaryLabel returned in the response payload. Maravilhosa
data.supportsPhotosFilter boolean data.supportsPhotosFilter field returned in the response payload. true
data.totalReviews number Field data.totalReviews returned in the response payload. 1002
data.type string Field data.type returned in the response payload. review
data.url string Field data.url returned in the response payload. https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil
executionId string (uuid) Field executionId returned in the response payload. 99999999-2222-4222-8222-999999999999
notFound boolean (optional; true when the upstream entity was not found and data is null) Present and true when the upstream entity was not found. In this case data is null and the request still completes successfully. N/A
requestId string (uuid) Field requestId returned in the response payload. 99999999-1111-4111-8111-999999999999

Errors and missing data

When supported by this operation, an entity not found upstream can return HTTP 200 with data: null and notFound: true. Check the documented response fields before interpreting an empty result. Source-specific behavior and exceptions are described above.

HTTP statusError codeMeaning
400INVALID_PAYLOADInvalid JSON or a request that violates the documented validation rules.
401UNAUTHORIZEDMissing authorization or an invalid API key or token.
402INSUFFICIENT_CREDITSThe account has insufficient credits for this operation.
403FORBIDDENThe account does not have access, or the API is temporarily disabled.
409EXECUTION_CONFLICTThe execution identifier conflicts with an incompatible execution state.
429RATE_LIMIT_EXCEEDED / TOO_MANY_INFLIGHT_REQUESTSA rate limit or simultaneous request limit was exceeded.
5xxUPSTREAM_TIMEOUT / UPSTREAM_HTTP_ERROR / WORKER_FUNCTION_ERRORAn upstream, worker or gateway failure. Failed requests follow the platform refund policy.

Other Hoteis.com operations