Booking.com Hotel Scraper - Guest Score & Reviews
Pricing
from $5.10 / 1,000 results
Booking.com Hotel Scraper - Guest Score & Reviews
Get any Booking.com property by its URL or slug: guest score with the full subscore breakdown, address, description, lead photo, and up to ten featured guest reviews. No Booking.com account needed.
Pricing
from $5.10 / 1,000 results
Rating
0.0
(0)
Developer
The Netaji
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Booking.com Hotel Scraper
The Actor retrieves one Booking.com property by its slug and returns a structured record: guest score with its full subscore breakdown, address, description, lead photo, and up to ten featured guest reviews. It accepts either the bare slug or a full Booking.com hotel URL; a pasted URL is reduced to the slug automatically.
Accepted input
| Field | Type | Default | Description |
|---|---|---|---|
slug | string | required | The property slug from its Booking.com URL: the part after /hotel/<country>/ and before .html. A full https://www.booking.com/hotel/us/... URL is accepted too. |
country_code | string | us | The two-letter country code from the same URL, e.g. the us in /hotel/us/luma-san-francisco.html. Part of the address, not a preference. |
{"slug": "luma-san-francisco","country_code": "us"}
Response fields
| Field | Contents |
|---|---|
slug | The slug that was fetched, echoed back |
country_code | The country code that was fetched, echoed back |
name | The property name |
url | The property's page on Booking.com |
description | Booking's own description of the property |
image | The property's lead photo |
price_range | schema.org priceRange, frequently null |
address | Structured postal address: street_address, locality, region, postal_code, country |
rating | Guest score, out of ten |
rating_scale_max | Top of the rating scale, always 10 |
review_count | Exact total review count the score is computed over |
subscores | The rating broken down by category (staff, cleanliness, comfort, location, facilities, value), each out of ten |
reviews | Up to ten featured guest reviews, each with author, country, and text |
review_sample_size | How many reviews are in reviews |
reviews_note | What reviews is and is not |
{"slug": "luma-san-francisco","country_code": "us","name": "LUMA Hotel San Francisco","rating": 9.1,"rating_scale_max": 10,"review_count": 1019,"review_sample_size": 10}
Behaviour on an unknown property
A slug that does not exist for the given country_code is not treated as an error; Booking answers such a lookup with no data at all, and the run finishes with an empty dataset rather than failing. A slug looked up under the wrong country behaves the same way, since the country code is part of the address rather than a filter: /hotel/fr/luma-san-francisco is a different path from /hotel/us/luma-san-francisco, and one existing does not imply the other does.
Frequently asked questions
Why is rating a number like 9.1 rather than out of five?
Booking's own guest score is out of ten. rating_scale_max states this on every response rather than leaving it to documentation, because Yelp and TripAdvisor scores in the same catalogue are out of five, and treating 9.1 as a five-point score would be wrong by a factor of two.
Why does reviews only contain ten entries when review_count is in the thousands?
reviews is the curated sample of featured reviews Booking renders into the property page itself, not the full review list. A property with 1,019 reviews still returns the same ten featured ones, and they are neither the most recent ten nor a random sample. The complete list is not reachable through this endpoint: Booking's fragment review endpoint answers 404, and the property page itself makes no further review request. reviews_note restates this on every response so an empty or short sample does not read as a failed fetch.
Why is price_range usually empty?
Booking prices a stay, not a hotel; a property page states no price band without specific dates attached. The Booking.com Search Scraper, with checkin and checkout set, returns real, dated prices per property.
What happens if a run is interrupted partway through? The Actor produces exactly one row per run. A run resumed after being interrupted before that row reached the dataset fetches and saves it as normal. A run resumed after the row was already saved finishes immediately without repeating it.
Related
Booking.com Search Scraper searches Booking.com by destination and returns every property found, with star rating, guest review score, coordinates, and, when checkin/checkout are set, real prices for the stay. Each result row carries the slug and country_code this Actor takes as input, so a search feeds directly into it once a specific property is of interest.