Booking.com Reviews Scraper [πŸ’™$0.5/1k] avatar

Booking.com Reviews Scraper [πŸ’™$0.5/1k]

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Booking.com Reviews Scraper [πŸ’™$0.5/1k]

Booking.com Reviews Scraper [πŸ’™$0.5/1k]

[$0.5/1k] Scrape Booking.com hotel reviews. Extract review text, ratings, reviewer information, travel type, stay date, languages, likes, management responses, and more.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

Epic Scrapers

Epic Scrapers

Maintained by Community

Actor stats

1

Bookmarked

1

Total users

0

Monthly active users

18 days ago

Last modified

Share

Booking.com Reviews Scraper: hotel guest reviews with scores, pros and cons, reviewer details and hotel replies

Booking.com Reviews Scraper turns hotel pages into a spreadsheet of guest reviews. Paste hotel URLs or IDs and you get each review's title, pros, cons, score, date, reviewer name and country, travel purpose, the room they stayed in, photos, and the hotel's reply. It is for hotel managers, revenue and reputation teams, travel researchers and anyone running sentiment or topic analysis on guest feedback.

  • Pros and cons kept apart. pros and cons are separate fields, so you can analyze what guests like and what they complain about without splitting text.
  • Stay and reviewer context. Each review has travelPurpose, reviewerType, countryCode, nightsStayed, roomName and the stay dates (checkin, checkout).
  • Hotel replies included. hotelierResponse and hotelierResponseDate show how the property answered.
  • Optional translation and topic breakdowns. Add a translation object (title, pros, cons) to each review, and one extra record per hotel with the total review count, popular topics, reviewer types, languages and time of year.
  • Pay per result, no login. No Booking.com account, cookies or API key. Export to JSON, CSV, Excel, XML or HTML, or use the Apify API.

Scope: This Actor reads Booking.com reviews. It does not search for hotels or return prices. For other travel sites, see Airbnb Reviews Scraper and Agoda Reviews Scraper.

What can you do with Booking.com Reviews Scraper?

GoalHow
Track guest sentimentSchedule a run and follow average score and the wording of pros and cons over time.
Find recurring complaintsGroup the cons text of low score reviews, by roomName or travelPurpose.
Review hotel repliesRead hotelierResponse next to the review it answers.
Compare with competitorsRun several hotel URLs and compare score and reviewerType across hotelId.
Understand who staysCount reviewerType, countryCode and travelPurpose, or use the reviewerTypes and languages metadata.
Analyze reviews in one languageTurn on includeTranslations and read translation.pros and translation.cons.
Spot room-level problemsGroup reviews by roomId and roomName.

How it compares

What you needBooking.com Reviews ScraperManual copy-pasteGeneric page scrapers
Pros and cons separatedYesBy handOften one merged text
Hotel repliesIncludedBy handVaries
Stayed room and datesIncludedBy handOften missing
TranslationsOptional, in the same rowCopy into a translatorRarely
Topic breakdownOptional record per hotelNoRarely
PricePay per resultYour timeVaries

Quick start

  1. Click Try for free and sign in to Apify.
  2. Add one or more Booking.com hotel page URLs to Hotel URLs, such as https://www.booking.com/hotel/de/riu-plaza-berlin.html. Or add numeric Hotel IDs.
  3. For a first run, keep Reviews per hotel at 20.
  4. Click Start. When the run finishes, open the Output tab and export the data.
{
"urls": ["https://www.booking.com/hotel/de/riu-plaza-berlin.html"],
"hotelIds": [],
"maxReviews": 100,
"rowsPerPage": 25,
"language": "en-us",
"includeTranslations": false,
"includeTopics": false
}

Track Booking.com reviews over time with scheduled runs

Most of the value comes from running the same reviews scrape again and comparing. Apify can run the actor for you on a schedule and send the results wherever you need them.

1. Save your input as a task

Open the actor, set your input, then click Save as a new task. A task is a saved input you can run again with one click or on a schedule.

2. Schedule the task

In Apify Console, go to Schedules, click Create new, choose how often to run (for example daily at 06:00 in your time zone), and add your task. See Schedules and How to create a schedule.

Watch how to schedule an Actor:

Or schedule a saved task:

Common schedules:

Use caseFrequencyCron expression
New review monitoringDaily0 6 * * *
Reputation reportsWeekly (Monday)0 6 * * 1
Competitor benchmarkingWeekly (Friday)0 6 * * 5
Peak season monitoringTwice a day0 6,18 * * *

3. Send the results to a spreadsheet

Connect Google in the task's Integrations tab to save every run to Google Sheets or Google Drive automatically:

4. Compare runs

Every review has reviewId, hotelId, date and scrapedAt, so runs are easy to join:

  • New reviews: reviewIds that were not in the previous run.
  • Score trend: average score per hotelId over time.
  • Recurring complaints: common themes in cons, grouped by hotelId or travelPurpose.
  • Reply tracking: reviews where hotelierResponse is still null.
  • Topic counts: totalReviews and topics from the hotelReviewMetadata record when includeTopics is on.

Input reference

FieldTypeDefaultEffect
urlsArray of stringsEmptyBooking.com hotel page URLs (booking.com/hotel/...). Each is resolved to a hotel ID.
hotelIdsArray of stringsEmptyNumeric hotel IDs, used instead of or together with URLs. Provide at least one URL or ID.
maxReviewsInteger20Newest reviews saved per hotel. Minimum 1, no upper limit.
languageString"en-us"Locale sent to Booking.com, such as en-us, de, fr, es. Affects localized labels and review text where Booking.com provides it.
includeTranslationsBooleanfalseAdds a translation object to each review. Extra requests.
translationLanguageStringEmptyTarget language such as en or de. Empty means the same value as language.
includeTopicsBooleanfalseSaves one extra hotelReviewMetadata record per hotel.
rowsPerPageInteger25Reviews requested per API call, 1 to 100.
proxyConfigurationObjectEmptyProxy settings. Apify Proxy is recommended for larger runs. One sticky session is used per hotel.

Several hotels run in one go. A hotel that appears twice, for example once as a URL and once as an ID, is scraped once.

Output

Results go to the run's default dataset. Every item has a recordType: review, hotelReviewMetadata or error.

This is a real review row:

{
"recordType": "review",
"hotelId": "1377073",
"hotelUrl": "https://www.booking.com/hotel/de/riu-plaza-berlin.html",
"reviewId": "5315404858",
"reviewHash": "f6dc775e9904a976",
"title": "Riu",
"pros": "It offers good value for money.",
"cons": "The hotel didn't allow most guests to watch the football final in the guest lounge. They severely limited the number of people allowed in, so the organization was poor and the experience was disappointing.",
"score": 3.2,
"date": "2026-07-21 21:08:24",
"language": "en-us",
"countryCode": "ba",
"travelPurpose": "leisure",
"helpfulVotes": 0,
"reviewerName": "Fejzic",
"reviewerType": "solo traveller",
"reviewerAvatar": "https://lh3.googleusercontent.com/a/...",
"reviewerReviewCount": 0,
"nightsStayed": 4,
"roomId": 137707325,
"roomName": "Family Suite",
"checkin": "2026-07-17",
"checkout": "2026-07-21",
"roomPhotoUrl": "https://cf.bstatic.com/xdata/images/hotel/max500/188927768.jpg?k=...",
"photos": [],
"tags": [],
"isIncentivised": false,
"hotelierName": "Riu Plaza Berlin",
"hotelierResponse": null,
"hotelierResponseDate": null,
"scrapedAt": "2026-07-21T21:55:19.171Z"
}

With includeTranslations, a review also has translation with language, provider, title, pros and cons.

With includeTopics, each hotel gets one record before its reviews: recordType: "hotelReviewMetadata", hotelId, hotelUrl, totalReviews, and the lists topics, reviewerTypes, languages and timeOfYear, each entry with id, name and count.

If a URL can't be resolved or a hotel fails, you get a record with recordType: "error", the hotelUrl or hotelId, and an error message. The rest of the run continues.

Notes on fields

  • score is the reviewer's score out of 10, rounded to one decimal.
  • reviewId and hotelId are strings.
  • date is the review time as Booking.com returns it, without a time zone. hotelierResponseDate is an ISO timestamp in UTC.
  • title, pros, cons, reviewerName, reviewerType and hotelierResponse are null when empty. A guest who wrote only a positive or only a negative comment has the other field null.
  • checkin, checkout, nightsStayed and the room fields are null when Booking.com does not provide the stay.
  • language is the language code Booking.com reports for the review.
  • hotelUrl is null when you supplied only a hotel ID.

FAQ

How many reviews can I get?

Set maxReviews as high as you need. The Actor fetches the newest reviews first and pages through them until it reaches your limit or the hotel has no more. It does not know the total in advance unless you turn on includeTopics, which reports totalReviews.

Why did I get fewer reviews than I asked for?

The hotel may have fewer reviews than your limit. Duplicates are removed before saving.

Which URL formats work?

Hotel page URLs like https://www.booking.com/hotel/de/riu-plaza-berlin.html. If Booking.com can't resolve a URL, the Actor tries to match the hotel from the page name. If that fails, you get an error record. Use hotelIds when you already know the ID.

Does language filter reviews?

It sets the locale sent to Booking.com. To read all reviews in one language, turn on includeTranslations and set translationLanguage.

Can I scrape many hotels at once?

Yes. Add as many URLs and IDs as you like. Each hotel uses its own proxy session.

Do I need proxies, a Booking.com account or an API key?

No account, login or key. For larger runs, enable Apify Proxy in proxyConfiguration.

How is this different from Booking.com's official API?

Booking.com's partner APIs require an approved partner account and are meant for properties and affiliates. This Actor returns the public guest reviews shown on hotel pages.

The Actor collects publicly visible reviews. Reviews include reviewer names and countries, which can be personal data. You are responsible for how you use them, including Booking.com's terms and laws such as GDPR.

Does it return hotel prices or search results?

No. It returns reviews only. Give it hotel page URLs or hotel IDs. For reviews on other travel sites, see Agoda Reviews Scraper and Airbnb Reviews Scraper.

Cost

This Actor uses pay-per-event pricing, with no subscription. Prices depend on your Apify plan.

EventFreeBronzeSilverGold and aboveCharged when
Actor start$0.005$0.005$0.001$0.001The run starts (once, per GB of memory).
Result (dataset item)$0.005$0.0015$0.0012$0.0005Each item saved to the dataset.

Every saved item counts as a result, including hotelReviewMetadata and error records. The Pricing tab always shows the current prices. Set a maximum cost per run; the run stops when it is reached.

Support

Report problems or request features in the Issues tab. Include the run ID, the input and what you expected.

This Actor is not affiliated with or endorsed by Booking.com. "Booking.com" is a trademark of Booking.com B.V.