Skip to content

// docs

Hoteis.com: Search stays

Extracts accommodation listings from Hoteis.com by location, dates and occupancy (adults, children and rooms), with pagination.

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

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

Supported inputs

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

FieldTypeRequirementRuleDefaultExample
location
Textual location used in Glassdoor PLP, Hoteis.com PLP, Trivago PLP and Tripadvisor PLP (e.g.: Brazil, Curitiba, Sao Paulo).
string Required Textual location of the search (city, state or region). - Sao Paulo
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 plp. - plp
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 Listing page (integer >= 1). 1 1
checkinDate
Check-in date for Booking PDP/PLP, Hoteis.com PDP/PLP and Trivago PDP/PLP.
string (YYYY-MM-DD) Required Check-in date in the format YYYY-MM-DD. - 2026-03-09
checkoutDate
Checkout date for Booking PDP/PLP, Hoteis.com PDP/PLP and Trivago PDP/PLP. Must be greater than checkinDate.
string (YYYY-MM-DD) Required Checkout date in the format YYYY-MM-DD and greater than checkinDate. - 2026-03-11
numAdults
Quantity of adults for Booking, Airbnb, Hoteis.com, Trivago, Decolar, GOL, Azul, LATAM and Trip.com.
integer (1-30) Required Number of adults (integer between 1 and 30). - 2
numChildren
Number of children for Booking, Hoteis.com, Trivago, Decolar, GOL, Azul, LATAM and Trip.com.
integer (0-30) Optional Number of children (integer between 0 and 30). 0 0
numRooms
Number of rooms for Booking, Hoteis.com PDP/PLP and Trivago PDP/PLP.
integer (1-15) Required Number of rooms (integer between 1 and 15). - 1

Request examples

Search in Sao Paulo

Search with default occupation and first page.

Search in 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
}

Search in Vitoria page 2

Search with pagination to collect the next results.

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

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

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": "11111111-2222-4333-8444-555555555555",
  "executionId": "aaaaaaaa-bbbb-4ccc-8ddd-eeeeeeeeeeee",
  "data": {
    "source": "hoteis.com",
    "type": "plp",
    "parser": "1.0.0",
    "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%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=",
    "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
      }
    ]
  }
}

Complete field reference

PathTypeDescriptionExample
data.checkinDate string (YYYY-MM-DD) Check-in date used in the search. 2026-03-12
data.checkoutDate string (YYYY-MM-DD) Checkout date used in the search. 2026-03-14
data.destination.name string Destination name resolved in Hoteis.com. Vitoria, Espirito Santo, Brasil
data.destination.regionId string Internal identifier of the region in Hoteis.com. 3711
data.extractedAt string (iso datetime) Extraction date/time ISO. 2026-03-05T16:10:00.000Z
data.items[].amenities[] string Main amenities shown on card. Piscina
data.items[].badges[] string Card badges/promotional texts. Anuncio
data.items[].city string City of hotel. Vitoria
data.items[].freeCancellation boolean Indicates free cancellation availability. true
data.items[].gallery[] string Hotel image gallery. https://images.example.com/3976043-1.jpg
data.items[].id string Listing identifier returned by upstream. 3976043
data.items[].image string Main image of the hotel. https://images.example.com/3976043-1.jpg
data.items[].leadPrice.amount number Numeric value of the main price. 675
data.items[].leadPrice.currency string Main price currency. BRL
data.items[].leadPrice.display string Main price formatted. R$ 675
data.items[].name string Hotel name. Golden Tulip Porto Vitoria
data.items[].neighborhood string Neighborhood/region of the hotel. Praia do Canto
data.items[].position number Absolute position of the item within the search. 51
data.items[].propertyId string Property/hotel identifier. 3976043
data.items[].reviewCount number Number of reviews. 1002
data.items[].reviewLabel string Assessment summary text. Maravilhosa
data.items[].reviewScore number Evaluation note. 9
data.items[].sponsored boolean Indicates whether the result appears sponsored. true
data.items[].starRating number Star rating. 4
data.items[].strikePrice.amount number Numeric value of the crossed out price. 710
data.items[].strikePrice.currency string Currency of the crossed out price. BRL
data.items[].strikePrice.display string Scratched price formatted. R$ 710
data.items[].taxesAndFees string Text of taxes and fees returned on the card. inclui impostos e taxas
data.items[].url string URL publishes from the hotel to Hoteis.com. https://www.hoteis.com/ho366809/golden-tulip-porto-vitoria-vitoria-brasil/?expediaPropertyId=3976043&top_dp=675&top_cur=BRL
data.location string Textual location received in the payload. Vitoria
data.nextPage number Next page, when available. 3
data.nextPageUrl string URL preview for the next page. 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 Number of adults used in the search. 2
data.numChildren number Number of children used in the search. 1
data.numRooms number Number of rooms used in the search. 1
data.offset number Calculated offset for paging. 50
data.page number Current listing page. 2
data.parser "1.0.0" Stable version of the API response format. 1.0.0
data.primaryResults number Number of items returned on the current page. 50
data.requestUrl string Same value as `data.url`; never exposes the queried internal endpoint. 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=
data.resultsPerPage number Number of results per page. 50
data.searchId string Internal search identifier returned by upstream. search-id-xyz
data.source string Source of extracted data. hoteis.com
data.totalResults number Total results found. 54
data.type string Extraction type. plp
data.url string URL final resolved during search navigation. 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) Field executionId returned in the response payload. aaaaaaaa-bbbb-4ccc-8ddd-eeeeeeeeeeee
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. 11111111-2222-4333-8444-555555555555

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