Booking Reviews Scraper - Guest Reviews & Scores avatar

Booking Reviews Scraper - Guest Reviews & Scores

Pricing

from $0.90 / 1,000 guest reviews

Go to Apify Store
Booking Reviews Scraper - Guest Reviews & Scores

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

Data Forge

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

10 days ago

Last modified

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:

CapabilityThis actor (Data Forge)Typical competitor
Target a hotel byBooking.com URL, name, or slugURL only
Guest-segment filter4 segments: couples, families, solo, groupsNot available
Score-band filter5 bands: Superb (9+) down to Very poor (1-3)Not available
Season-of-stay filter4 seasons: Mar-May, Jun-Aug, Sep-Nov, Dec-FebNot available
Keyword search inside reviewsYes, free-text matchNot available
Sort orderNewest first, oldest first, or most relevantFixed order
Liked vs disliked text2 separate columnsBlended into 1 field
Hotel partner replyCaptured per reviewNot available
PricingPay per review, error rows freePer 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 the data payload)

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

FieldWhat it does
HotelBooking.com hotel URL (most reliable), hotel name, or slug. Optional if you use Start URLs.
Start URLsPaste 2 or more Booking.com hotel URLs to pull reviews for each.
Max reviewsCap per hotel, up to 5000. The actor paginates Booking.com (up to 25/page) to reach it.
SortMost relevant, newest first, or oldest first.
Reviews per pageHow many reviews to request per upstream page (1-25).
FiltersGuest 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_text and negative_text columns, 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.

Part of the Data Forge Booking.com and reviews suite:

Support

Built and maintained by Data Forge. I personally support each customer - reach out on any channel for help, higher limits, or custom scraping.

Telegram WhatsApp Email