Booking.com Reviews Scraper
Pricing
from $1.49 / 1,000 results
Booking.com Reviews Scraper
Extract Booking.com reviews at scale with precision. Automate review collection, sentiment analysis, and competitive intelligence. Perfect for hospitality businesses, OTAs, and market researchers. Supports bulk scraping with filtering by rating, date, and language.
Pricing
from $1.49 / 1,000 results
Rating
5.0
(4)
Developer
Shahid Irfan
Maintained by CommunityActor stats
2
Bookmarked
10
Total users
3
Monthly active users
a day ago
Last modified
Categories
Share
What does Booking Reviews Scraper do?
Booking Reviews Scraper is a Booking.com hotel review scraper that collects public guest reviews from one hotel page and saves them as structured records in an Apify dataset. Enter one direct hotel URL, choose the maximum number of reviews, and receive review text, scores, dates, traveler information, hotel details, photos, and partner replies when Booking.com makes them available.
The Actor is useful for hotel reputation monitoring, competitor research, hospitality analysis, travel content, and customer-experience workflows. Results can be downloaded as JSON, CSV, Excel, or XML, connected to other services, or read through the Apify API.
Why use Booking Reviews Scraper?
- Create a review dataset quickly - Collect many reviews from one hotel without manually copying each page.
- Monitor hotel reputation - Compare ratings, positive comments, negative comments, and recurring service issues over time.
- Analyze competing properties - Build comparable datasets for hotels in the same market, destination, or price segment.
- Preserve traveler context - Keep available language, country, traveler type, room type, stay dates, and number of nights with each review.
- Support automated workflows - Send completed runs to spreadsheets, databases, dashboards, sentiment analysis tools, or internal applications.
- Control collection size - Set
results_wantedto limit the number of unique review records saved in a run.
What data can you extract from Booking.com hotel reviews?
Each dataset item represents one review. Empty values are omitted from saved records, so fields that Booking.com does not publish for a particular review may be absent.
| Field | Type | Description |
|---|---|---|
hotelName | String | Hotel name associated with the review. |
hotelUrl | String | Booking.com hotel page used for the collection. |
reviewId | String or Number | Review identifier when available. |
reviewUrl | String | Direct Booking.com URL for the review when available. |
reviewTitle | String | Review headline or title. |
reviewText | String | Combined positive and negative review text. |
positive | String | Positive comment supplied by the guest. |
negative | String | Negative comment supplied by the guest. |
rating | Number or String | Guest score for the stay. |
publishedAt | String | Review publication date in YYYY-MM-DD format when available. |
language | String | Review language code or language name. |
stayDate | String | Month of stay in YYYY-MM format when available. |
roomType | String | Booked room type. |
travelerType | String | Traveler category, such as couple, family, or solo traveler. |
reviewerName | String | Reviewer display name. |
reviewerCountry | String | Reviewer country name. |
reviewerCountryCode | String | Reviewer country code. |
reviewerAvatarColor | String | Avatar color value when available. |
reviewerAvatarUrl | String | Reviewer avatar URL when available. |
reviewerAnonymous | Boolean | Indicates whether the reviewer is anonymous. |
reviewerShowCountryFlag | Boolean | Indicates whether Booking.com displays the country flag. |
helpfulVotesCount | Number | Number of helpful votes when available. |
isApproved | Boolean | Review approval status when provided. |
isTranslatable | Boolean | Indicates whether the review can be translated. |
textTrivialFlag | Boolean or String | Booking.com text classification value when available. |
partnerReply | String | Hotel or partner response to the review. |
checkinDate | String | Check-in date when available. |
checkoutDate | String | Check-out date when available. |
numNights | Number | Number of nights stayed. |
stayStatus | String | Stay status supplied by Booking.com. |
roomTypeId | String or Number | Room identifier when available. |
customerType | String | Booking customer type when available. |
photos | Array | Review photos with available IDs, labels, sizes, and URLs. |
photoCount | Number | Number of review photos included in the record. |
How to scrape Booking.com reviews
- Open Booking Reviews Scraper in Apify Console.
- Enter a direct Booking.com hotel page in
startUrl. - Set
results_wantedto the maximum number of unique reviews you want. - Add proxy settings if your run needs them.
- Start the Actor and wait for the dataset to finish.
- Preview the records, then download or connect the dataset to your workflow.
The Actor processes one hotel per run. To collect several hotels, create separate runs or schedule a workflow that starts one run for each hotel URL.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | Yes | https://www.booking.com/hotel/gb/nobu-hotel-london-portman-square.html | Direct Booking.com hotel page URL. The Actor opens the hotel's review area automatically. |
results_wanted | Integer | No | 20 | Maximum number of unique reviews to save. Values greater than zero are accepted. |
proxyConfiguration | Object | No | Not set | Apify proxy configuration. Residential proxy access can help maintain reliable collection on protected public pages. |
Usage Examples
Basic hotel review collection
Collect up to 20 reviews from one Booking.com hotel page.
{"startUrl": "https://www.booking.com/hotel/gb/nobu-hotel-london-portman-square.html","results_wanted": 20}
Larger review dataset
Increase the limit when you need a broader sample for competitor analysis or reputation monitoring.
{"startUrl": "https://www.booking.com/hotel/gb/nobu-hotel-london-portman-square.html","results_wanted": 100}
Collection with residential proxy access
Use Apify Residential proxies when a larger or repeated collection needs additional connection reliability.
{"startUrl": "https://www.booking.com/hotel/gb/nobu-hotel-london-portman-square.html","results_wanted": 50,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
The following example shows one realistic review record. Optional fields are included only when the source provides them.
{"hotelName": "Nobu Hotel London Portman Square","hotelUrl": "https://www.booking.com/hotel/gb/nobu-hotel-london-portman-square.html#tab-reviews","reviewId": "123456789","reviewUrl": "https://www.booking.com/reviews/gb/hotel/nobu-hotel-london-portman-square.html","reviewTitle": "Excellent stay in a prime location","reviewText": "Positive: Great location and very clean room.\nNegative: Breakfast options were limited.","positive": "Great location and very clean room.","negative": "Breakfast options were limited.","rating": 8.9,"publishedAt": "2026-03-24","language": "en-gb","stayDate": "2026-03","roomType": "Deluxe King Room","travelerType": "couple","reviewerName": "Emma","reviewerCountry": "United Kingdom","reviewerCountryCode": "gb","reviewerAnonymous": false,"reviewerShowCountryFlag": true,"helpfulVotesCount": 4,"isApproved": true,"isTranslatable": true,"partnerReply": "Thank you for sharing your feedback with us.","checkinDate": "2026-03-10","checkoutDate": "2026-03-13","numNights": 3,"stayStatus": "completed","customerType": "couple","photos": [],"photoCount": 0}
Tips for best results
- Use a direct hotel URL - Start with the property's Booking.com hotel page, not a search results page or a campaign link.
- Test with a small limit - Begin with
results_wanted: 20so you can confirm the hotel URL and dataset shape quickly. - Increase the limit gradually - Larger runs take longer and depend on the number of public reviews available for the property.
- Use residential proxy access when needed - This can improve consistency for repeated runs or pages that are harder to access.
- Review optional fields carefully - Missing room, traveler, date, or profile details usually mean that Booking.com did not publish them for that review.
- Schedule repeat runs for monitoring - Compare new datasets with earlier runs to track changes in ratings and guest feedback.
Integrations and export formats
- Google Sheets - Export CSV or Excel results for sorting, filtering, and team review.
- Airtable - Build a searchable hotel feedback database.
- Make and Zapier - Start sentiment, reporting, or notification workflows after a run completes.
- Webhooks - Send run events or dataset information to an internal service.
- Apify API - Retrieve run status and dataset records programmatically.
| Format | Useful for |
|---|---|
| JSON | APIs, applications, and data engineering workflows |
| CSV | Spreadsheets, reporting, and business intelligence tools |
| Excel | Business analysis and sharing with non-technical teams |
| XML | Systems that require XML-based data exchange |
Frequently Asked Questions
Can I collect reviews from multiple hotels in one run?
No. Each run accepts one hotel URL. Run the Actor separately for each property, or automate multiple runs through the Apify API or a schedule.
How many Booking.com reviews can I collect?
You choose the maximum with results_wanted. The final count can be lower when the hotel has fewer public reviews or some reviews are unavailable.
Are duplicate reviews removed?
Yes. The dataset keeps unique review records and stops when it reaches the requested result limit.
Why is a field missing from a review?
Booking.com does not publish every attribute for every review. Optional fields such as room type, stay dates, photos, partner replies, and reviewer details may therefore be absent.
Can I export Booking.com reviews to CSV or Excel?
Yes. Apify datasets support JSON, CSV, Excel, XML, and other export options available in Apify Console.
Can I run this Actor on a schedule?
Yes. Create an Apify schedule to collect updated reviews hourly, daily, weekly, or at another interval that fits your monitoring needs.
Is a proxy required?
No, it is optional. Residential proxy access is recommended for repeated collection and for improving reliability on protected public pages.
Is it legal to collect Booking.com reviews?
Public data collection may be subject to website terms, contracts, privacy rules, and local law. You are responsible for using this Actor lawfully, respecting Booking.com policies, and handling reviewer information appropriately.
Support
For bugs, feature requests, or reports that a Booking.com page has changed, use the Issues section on the Actor page or contact the developer through Apify Console. Include the input URL, run ID, and a short description of the result when requesting help.
Legal Notice
This Actor is intended for legitimate research, monitoring, and analytics involving publicly available Booking.com review data. Users are responsible for complying with applicable laws, Booking.com terms, privacy requirements, and any restrictions on storing or redistributing review content.