Datapika / Places & travel
Hotel & Rental Scraper
Hotel and rental prices from nine booking sites. One schema for every site: price per night and total, a 0 to 10 rating plus the site's own, reviews, photos, amenities, coordinates and a booking link.
Apify store response · 2026-10-30. Usage counts do not measure output accuracy.
· Build 1.0.14 · 18 rows reviewed. Previewing 5 below.
Swipe the table to inspect more fields →
| site | name | pricePerNight | priceTotal | currency |
|---|---|---|---|---|
| agoda | EPIC SANA Marquês Hotel | 230.71 | 461.41 | USD |
| agoda | EPIC SANA Lisboa Hotel | 209.64 | 419.28 | USD |
| vrbo | Dom Luis I Prestige Flat 18 | 313 | 626 | USD |
| vrbo | Traditional Alfama apartment in Lisbon Center. | 140 | 280 | USD |
| expedia | Meliá Lisboa Aeroporto | 171 | 380 | USD |
Selected public fields from one recorded run. Text may be shortened to 20 words and non-HTTPS links are omitted. Missing values are preserved; this sample does not establish complete source coverage. Two rows per site from a 184-row scheduled check run for Lisbon; Booking.com returned a free hint row instead of results in that run. Downloads contain all reviewed rows and selected fields. CSV text cells are escaped for spreadsheet safety.
Inspect the first JSON record
{
"site": "agoda",
"name": "EPIC SANA Marquês Hotel",
"pricePerNight": 230.71,
"priceTotal": 461.41,
"currency": "USD",
"rating": 9.3,
"reviewsCount": 4654,
"propertyType": "Hotel",
"url": "https://www.agoda.com/sana-lisboa-hotel/hotel/lisbon-pt.html",
"type": "stay"
}02 / Run your own query
From a console, code or agent.
Use Apify's input form, or start a run with your own API token. The small starter input below was checked against build 1.0.14's published input schema on October 28, 2026. Recorded samples can use different inputs or older builds.
curl -X POST \
"https://api.apify.com/v2/acts/openclawai~hotel-rental-scraper/runs?maxTotalChargeUsd=1" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"location":"Lisbon, Portugal","checkIn":"30 days","nights":2,"adults":2,"sites":["airbnb","google_hotels","vrbo"],"maxResultsPerSite":10,"currency":"USD"}'This starts an asynchronous paid run with a $1 total run cap. Use the returned defaultDatasetId to retrieve results after the run succeeds. Never put your API token in public frontend code.
03 / Field reference
Plan your data model.
Selected documented fields from build 1.0.14, reviewed October 28, 2026. Availability varies by mode and source. Missing and null values stay visible in the recorded samples.
| Field | Type | Meaning |
|---|---|---|
| site | string | null | Source site: airbnb, booking, google_hotels, expedia, hotels_com, vrbo, agoda, hostelworld or tripadvisor. |
| type | string | null | stay, experience, or hint (a free status row). |
| name | string | null | Property or experience name. |
| url | string | null | Listing link on the source site, with your dates and guests where the site supports it. |
| propertyType | string | null | Hotel, Apartment, Hostel, Vacation rental and so on. |
| pricePerNight | number | null | Price per night for your dates. |
| priceTotal | number | null | Total price for the stay. |
| priceTotalWithTaxes | number | null | All-in total including taxes and fees, when the site shows them. |
| currency | string | null | Currency of the prices; one currency per run. |
| rating | number | null | Guest rating normalised to 0 to 10 so every site compares side by side. |
| ratingOriginal | string | null | Rating on the site's own scale, for example 4.9/5 or 8.6/10. |
| reviewsCount | integer | null | Number of guest reviews. |
| freeCancellation | boolean | null | Free cancellation offered. |
| latitude | number | null | Latitude. |
| longitude | number | null | Longitude. |
| photos | array | null | Photo URLs, up to 30. |
| otherSitePrices | array | null | Google Hotels only: the cheapest nightly price on each other booking site, with links. |
| searchLocation | string | null | The place you searched. |
04 / Know before you run
Coverage, without the guesswork.
Not a booking API: prices are observations for the searched dates. Sites are searched independently, and one that blocks or times out returns a free hint row instead of results.
How much does it cost to compare hotel prices across sites?
Each property, experience or tour row is one $0.005 result event, so 1,000 rows cost $5.00 at the list price; hint rows are free and there is no start fee. In seven daily check runs for Lisbon with 20 results per site and things to do on (October 21 to 27, 2026), each run returned 163 to 200 charged rows in 143 to 241 seconds.
Can I search several cities in one run?
Yes. The locations field takes up to 10 places. Every site runs for every place in parallel, a property found for two overlapping places is returned and charged once, and each row's searchLocation tells you which place it came from. For five or more places, raise the run timeout.
How do ratings compare across booking sites?
Airbnb rates out of 5, Booking.com out of 10 and Hostelworld out of 100. The rating field puts every site on a 0 to 10 scale and ratingOriginal keeps the site's own number, so one table can be sorted by rating.
What happens when a booking site blocks the search?
Each site runs independently with retries and a browser fallback. If a site still cannot be reached in time, you get every other site's rows plus a free hint row naming that site, so one slow site never fails the run.