Booking Reviews Scraper - Guest Reviews & Scores
Pricing
from $0.90 / 1,000 guest reviews
Booking Reviews Scraper - Guest Reviews & Scores
Scrape Booking.com guest reviews for any hotel: scores, positive/negative text, reviewer country, room type, stay length, partner replies. Real-time data, all review filters, full pagination. Pay only per review - no subscription.
Pricing
from $0.90 / 1,000 guest reviews
Rating
0.0
(0)
Developer
Data Forge
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Booking.com Reviews Scraper - Guest Reviews & Scores
Bulk-pull guest reviews for any Booking.com hotel in one run - scores, what guests liked and disliked, reviewer country, room type, length of stay, and the hotel's reply. Paste a Booking.com hotel URL (or type a hotel name), set how many reviews you want (20 for a quick sample, 200 for a deep dataset), and export clean, structured rows. No subscription, pay only per review delivered.
Why this Actor?
Most Booking review tools take a URL and hand back one blob of text. This Data Forge actor targets a hotel by URL or name and slices the reviews the way a real analyst needs them:
| Capability | This actor (Data Forge) | Typical competitor |
|---|---|---|
| Target a hotel by | Booking.com URL, name, or slug | URL only |
| Guest-segment filter | 4 segments: couples, families, solo, groups | Not available |
| Score-band filter | 5 bands: Superb (9+) down to Very poor (1-3) | Not available |
| Season-of-stay filter | 4 seasons: Mar-May, Jun-Aug, Sep-Nov, Dec-Feb | Not available |
| Keyword search inside reviews | Yes, free-text match | Not available |
| Sort order | Newest first, oldest first, or most relevant | Fixed order |
| Liked vs disliked text | 2 separate columns | Blended into 1 field |
| Hotel partner reply | Captured per review | Not available |
| Pricing | Pay per review, error rows free | Per page or monthly subscription |
What this actor does
Give it a hotel - a Booking.com URL, a hotel name, or a slug like le-bristol-paris - and it paginates the property's guest reviews, pulling the fields you need to analyze sentiment, spot patterns, and benchmark a property:
- ๐ Score - the guest review score (1-10) for each stay
- ๐ Liked / ๐ Disliked - the positive and negative free text, kept in separate columns
- ๐ Reviewer - name, country, and traveller type (couple, solo, family, group)
- ๐ Stay context - room type, number of nights, check-in date, and season
- ๐ Timing - the review date (converted from epoch to a clean
YYYY-MM-DD) - ๐ Engagement - helpful votes, and the hotel's
partner_reply(in thedatapayload)
Need reviews for several hotels at once? Paste their URLs into Start URLs - each hotel's reviews land in the same dataset, ready to compare side by side.
Input modes
Point the actor at a hotel by URL (most reliable), name, or slug, then shape the pull with optional filters. Each mode below matches a one-click example task on this actor's Apify Store page.
1. Reviews by hotel URL
A market analyst wants a 200-review baseline for a property. Paste the Booking.com hotel URL for the most reliable, fastest match - a hotel name also works, but name lookup leans on Booking.com's search and can be ambiguous for common names.
{"hotel": "https://www.booking.com/hotel/gb/the-ritz-london.html","maxReviews": 200}
2. Couples segment
A revenue manager profiling how couples rate the stay, to shape a romance-package pitch.
{"hotel": "https://www.booking.com/hotel/gb/the-ritz-london.html","customerType": "COUPLES","maxReviews": 200}
3. Newest-first monitor
A reputation team polling the 200 most recent reviews on a schedule to catch fresh feedback first.
{"hotel": "https://www.booking.com/hotel/gb/the-ritz-london.html","sort": "f_recent_desc","maxReviews": 200}
4. Superb (9+) only
A marketing lead mining top-band praise (score 9 and up) for testimonial and ad copy.
{"hotel": "https://www.booking.com/hotel/gb/the-ritz-london.html","scoreRange": "REVIEW_ADJ_SUPERB","maxReviews": 200}
5. Summer stays
An operations analyst isolating Jun-Aug stays to study peak-season sentiment against the rest of the year.
{"hotel": "https://www.booking.com/hotel/gb/the-ritz-london.html","timeOfYear": "_06_08","maxReviews": 200}
Input reference
| Field | What it does |
|---|---|
| Hotel | Booking.com hotel URL (most reliable), hotel name, or slug. Optional if you use Start URLs. |
| Start URLs | Paste 2 or more Booking.com hotel URLs to pull reviews for each. |
| Max reviews | Cap per hotel, up to 5000. The actor paginates Booking.com (up to 25/page) to reach it. |
| Sort | Most relevant, newest first, or oldest first. |
| Reviews per page | How many reviews to request per upstream page (1-25). |
| Filters | Guest type, score band, language, season of stay, and free-text search. |
Friendly-label filters (guest type, score band, season) map to Booking.com's own values for you - pick Families or Wonderful (9+), no codes to look up.
Output
One flat row per review, discriminated by row_type, with the full payload under data. The dataset ships with two ready-made table tabs - Overview and Reviews - so the data reads as a clean spreadsheet you can sort, filter and export to CSV/Excel/JSON in one click.
Common columns: score, title, positive_text, negative_text, reviewer_name, reviewer_country, traveller_type, room_type, num_nights, checkin_date, customer_type, review_date, language, helpful_votes, review_url. The data payload adds reviewer_country_code, reviewer_avatar, and the hotel's partner_reply. The customer_type column also surfaces business travelers and groups of friends when guests self-report them. Error rows carry an error_code and are free - you pay only for real reviews.
A run-summary record (OUTPUT key) reports review counts and the estimated cost. Live per-event pricing is shown on this actor's Apify Store page.
Tip: combine score band and language to isolate a segment fast - for example only the English-language "Poor (3-5)" reviews to read exactly what is going wrong.
Example output
One flat row per review. The data field carries the complete review object; the flat columns are projected from it for a clean table view.
{"hotel_query": "The Ritz London","row_type": "review","score": 9.6,"title": "Faultless London stay","positive_text": "Staff were attentive and the location by Green Park is central.","negative_text": "Breakfast was busy at 8am on a Saturday.","reviewer_name": "Marta","reviewer_country": "Spain","traveller_type": "Couple","room_type": "Deluxe King Room","num_nights": 3,"checkin_date": "2026-05-14","customer_type": "COUPLES","review_date": "2026-05-19","language": "en","helpful_votes": 4,"review_url": "rid_123456789","data": {"reviewer_country_code": "es","reviewer_avatar": "https://q-xx.bstatic.com/avatar/marta.jpg","partner_reply": "Thank you Marta, we hope to welcome you back soon."}}
Highlights
- Real-time reviews with replies - pulled live from Booking.com on each run, including the hotel's own
partner_reply, not a stale snapshot. - Liked and disliked, separated - clean
positive_textandnegative_textcolumns, ready for sentiment scoring. - 5 review filters - guest type, score band, language, season, and free-text search, plus newest-first or oldest-first sort. Friendly labels, no codes to memorize.
- One hotel or many - add Start URLs to pull several properties into 1 dataset and compare side by side.
- Spreadsheet-ready tabs - a pre-built Reviews table, not a wall of mixed columns.
- Pay for results only - error rows and your own misconfigurations are never charged.
FAQ
How fresh is the data? Reviews are pulled live from Booking.com on each run - there is no cached snapshot. Run it on demand, or on a schedule to keep a dataset current.
Is scraping Booking.com reviews allowed? The actor collects publicly visible guest reviews - text that any visitor can read without signing in. You stay responsible for using the output in line with Booking.com's terms and applicable law (for example GDPR when you handle reviewer names). If in doubt, check with your own legal counsel before large-scale collection.
Should I enter a hotel name or a URL?
Both work. A Booking.com URL or exact slug (le-bristol-paris) is the most precise. A plain name (The Ritz London) is resolved automatically - quick to type, and worth a 20-review test run first to confirm the actor locked onto the property you meant.
Can I schedule this to run automatically?
Yes. Use Apify Schedules to run the actor every day or week. Pair a schedule with sort: f_recent_desc and a modest maxReviews (for example 100) to catch new reviews as they land.
How many reviews can I pull per hotel?
Set maxReviews up to 5000. The actor paginates 25 reviews per page under the hood. Booking.com limits how deep its review panel goes, so treat the result as a deep, filtered sample rather than a guaranteed full dump.
Do I pay for errors or empty results?
No. Rows with an error_code (for example a hotel with 0 matching reviews) carry no billing event - you pay only for delivered review rows.
Can I pull reviews for several hotels at once? Yes. Paste 2 or more Booking.com hotel URLs into Start URLs and each property's reviews land in the same dataset for side-by-side comparison.
Related actors
Part of the Data Forge Booking.com and reviews suite:
- Booking.com Hotels Scraper - search any destination for hotels with live prices, review scores, and full detail pages.
- Booking.com Airport Taxis Scraper - live airport transfer quotes between 2 points, by date and passenger count.
- Tripadvisor Reviews Bulk Scraper - bulk guest reviews from Tripadvisor to cross-reference sentiment across 2 platforms.
Support
Built and maintained by Data Forge. I personally support each customer - reach out on any channel for help, higher limits, or custom scraping.