Booking.com Reviews Scraper
Pricing
Pay per event
Booking.com Reviews Scraper
Extract guest reviews from any Booking.com hotel page. Get review scores, positive/negative comments, reviewer details, stay dates, and room types. Perfect for hospitality analysis and competitor monitoring.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape guest reviews from any hotel on Booking.com. Extract reviewer names, countries, scores, positive and negative comments, stay dates, room types, traveller types, and more. Supports multiple hotels, pagination, language filtering, and custom sorting.
Features
- Multiple hotels in a single run -- provide a list of Booking.com hotel URLs
- Pagination -- automatically scrapes all reviews up to your specified limit
- Language filtering -- filter reviews by language (English, German, French, Spanish, etc.)
- Sort options -- sort reviews by relevance, newest/oldest first, or highest/lowest scores
- Rich data -- extracts 13+ fields per review including positive/negative text, room type, nights stayed
- Pay per result -- only pay for the reviews you actually scrape
- Export -- download results in JSON, CSV, Excel, or connect via API
Input
| Field | Type | Default | Description |
|---|---|---|---|
hotelUrls | Array of strings | (required) | Booking.com hotel URLs to scrape reviews from |
maxReviews | Integer | 50 | Maximum reviews per hotel (0 = unlimited) |
language | String | all | Filter reviews by language code (en, de, fr, es, it, pt, ja, zh, etc.) |
sortBy | String | most_relevant | Sort order: most_relevant, newest_first, oldest_first, highest_scores, lowest_scores |
How to get hotel URLs
- Go to Booking.com
- Search for a hotel or city
- Click on a hotel to open its page
- Copy the URL from your browser
The URL should look like: https://www.booking.com/hotel/gb/the-savoy.html
Example input
{"hotelUrls": ["https://www.booking.com/hotel/gb/the-savoy.html","https://www.booking.com/hotel/us/the-plaza.html"],"maxReviews": 50,"language": "en","sortBy": "newest_first"}
Output
Each review is output as a JSON object with the following fields:
| Field | Type | Description |
|---|---|---|
hotelName | String | Name of the hotel |
hotelUrl | String | Original Booking.com hotel URL |
reviewerName | String | Name of the reviewer |
reviewerCountry | String | Country of the reviewer |
reviewDate | String | When the review was posted (e.g., "March 22, 2026") |
score | Number | Review score from 0 to 10 |
title | String | Review title/headline |
positive | String | What the guest liked |
negative | String | What the guest disliked |
stayDate | String | Month and year of the stay (e.g., "March 2026") |
nightsStayed | Integer | Number of nights stayed |
roomType | String | Type of room booked |
travellerType | String | Solo traveller, Couple, Family, Group, etc. |
scrapedAt | String | ISO timestamp when the review was scraped |
Example output
{"hotelName": "The Savoy","hotelUrl": "https://www.booking.com/hotel/gb/the-savoy.html","reviewerName": "Cohen","reviewerCountry": "United States","reviewDate": "November 12, 2024","score": 10,"title": "Exceeded expectations and loved our stay!","positive": "Location. Gorgeous property. Wonderful staff","negative": "","stayDate": "November 2024","nightsStayed": 4,"roomType": "Superior Queen Room","travellerType": "Group","scrapedAt": "2026-03-27T04:09:54.188Z"}
How much does it cost?
The scraper uses a pay-per-result pricing model:
| Event | Price |
|---|---|
| Run started | $0.01 (one-time per run) |
| Review scraped | $0.003 per review |
Example costs:
- 50 reviews from 1 hotel: $0.01 + (50 x $0.003) = $0.16
- 100 reviews from 2 hotels: $0.01 + (100 x $0.003) = $0.31
- 500 reviews from 5 hotels: $0.01 + (500 x $0.003) = $1.51
Platform compute costs are minimal (typically under $0.01 per run) since the scraper uses lightweight HTTP requests to fetch review pages.
Use cases
Hotel market research
Compare guest satisfaction across competing hotels in the same area. Analyze what guests like and dislike about each property to identify competitive advantages.
Sentiment analysis
Feed review data into NLP tools to analyze guest sentiment trends over time. Track how renovations, management changes, or seasonal factors affect reviews.
Travel planning
Collect reviews for hotels you're considering to make informed booking decisions. Filter by language to find reviews from travellers who share your background.
Hospitality benchmarking
Monitor review scores and common complaints across your hotel portfolio. Identify properties that need attention and track improvement over time.
Content creation
Gather authentic guest feedback for travel blogs, hotel comparison sites, or recommendation engines.
Supported URL formats
The scraper accepts standard Booking.com hotel URLs:
https://www.booking.com/hotel/gb/the-savoy.htmlhttps://www.booking.com/hotel/us/the-plaza.htmlhttps://www.booking.com/hotel/fr/hotel-le-bristol-paris.htmlhttps://www.booking.com/hotel/it/hassler-roma.html?aid=12345&label=testhttps://www.booking.com/hotel/fr/hotel-le-bristol-paris.en-gb.html
The scraper extracts the country code and hotel identifier from the URL path. Query parameters and language suffixes are handled automatically.
Language codes
Common language filter values:
| Code | Language |
|---|---|
all | All languages (default) |
en | English |
de | German |
fr | French |
es | Spanish |
it | Italian |
pt | Portuguese |
ja | Japanese |
zh | Chinese |
ko | Korean |
ru | Russian |
ar | Arabic |
nl | Dutch |
pl | Polish |
sv | Swedish |
Tips
- Start small: Test with
maxReviews: 10to verify the data format meets your needs before running larger scrapes. - Use language filter: If you only need English reviews, set
language: "en"to skip reviews in other languages and reduce run time. - Sort by newest: Use
sortBy: "newest_first"to get the most recent reviews first. Useful for monitoring. - Multiple hotels: You can scrape reviews from multiple hotels in a single run. The scraper processes them sequentially.
- URL format: Make sure your URLs follow the pattern
https://www.booking.com/hotel/{country_code}/{hotel-slug}.html.
Integrations
Connect Booking.com Reviews Scraper with your existing tools:
- Google Sheets -- automatically export reviews to a spreadsheet
- Slack -- get notified when new reviews are scraped
- Zapier / Make -- build automated workflows with review data
- API -- access results programmatically via the Apify API
- Webhooks -- trigger actions when a scraping run completes
Limitations
- The scraper extracts reviews from the public Booking.com review pages. Private or removed reviews are not accessible.
- Review dates show month and year of the stay, not the exact check-in/check-out dates.
- The hotel name is derived from the URL slug. In rare cases, it may differ slightly from the official hotel name on Booking.com.
- Very high-volume scraping (thousands of reviews per hotel) may encounter rate limiting. The scraper includes polite delays between page requests.
FAQ
Q: Can I scrape reviews for any hotel on Booking.com? A: Yes, as long as you have the hotel's Booking.com URL, you can scrape its public reviews.
Q: How many reviews can I scrape?
A: There is no hard limit. Set maxReviews to 0 for unlimited. The scraper will paginate through all available reviews.
Q: Can I filter reviews by score?
A: Use the sortBy option with highest_scores or lowest_scores to prioritize reviews by score. Combined with maxReviews, this effectively filters by score range.
Q: How fresh is the data?
A: Reviews are scraped in real-time from Booking.com. The scrapedAt timestamp shows exactly when each review was collected.
Q: Can I run this on a schedule? A: Yes! Use Apify's scheduling feature to run the scraper daily, weekly, or at any interval to monitor new reviews.
Q: What happens if a hotel URL is invalid? A: The scraper logs a warning and skips invalid URLs. It continues processing the remaining valid URLs in your list.
Q: Do I need a Booking.com account? A: No. The scraper extracts publicly available review data. No login or account is required.
Q: Can I combine this with other Apify actors? A: Absolutely. Use the Booking.com Scraper to find hotel URLs, then feed them into this Reviews Scraper for detailed review data. Chain actors together using Apify's API or integration tools.