Booking Review Scraper
Pricing
from $0.70 / 1,000 results
Booking Review Scraper
Scrape Booking.com hotel reviews in bulk. Get rating, liked and disliked text, reviewer details, room type, stay date and length, photos, plus hotel stars, address and category scores as clean JSON. Filter by score, traveler type, language and date. No login needed.
Pricing
from $0.70 / 1,000 results
Rating
0.0
(0)
Developer
Insights Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
๐จ Booking Review Scraper: what is it and who is it for?
Booking Review Scraper is a Booking.com review scraper that collects guest reviews from hotel pages: the rating, what guests liked and disliked, who wrote the review, which room they booked, when they stayed, the hotel's reply and the hotel's category scores. Paste one hotel link or many, click Start, and download the reviews as a table, with no coding and no Booking.com account. On the Apify Free plan each run stops at 10 reviews in total, which is enough for a first test.
Who uses it:
- Hotel reputation management: see new Booking.com property reviews and your replies in one table instead of clicking through pages.
- Hotel competitor analysis: compare scores, category scores and repeated complaints across the hotels you compete with.
- Hotel review sentiment analysis: feed the liked and disliked text into a sentiment or topic model, or an AI assistant.
- Build a Booking.com hotel reviews dataset: collect structured reviews for research or machine learning.
- Find problems fast: pull only low-score reviews, or only reviews that mention a word such as "breakfast" or "noise".
- Automate research workflows: schedule runs with a "Reviews since" date so your data stays fresh.
What can Booking Review Scraper do?
You choose which reviews you need, and the booking review extractor collects only those:
- ๐ Bulk hotel links: add as many Booking.com hotel pages as you need in one run.
- ๐ฏ Filters: score band, traveler type, review language, search words and a "Reviews since" date.
- ๐ Five sort orders: newest, oldest, most relevant, highest score or lowest score first.
- โก Live results: each review appears in the Output tab as soon as it is saved.
- ๐จ Hotel facts on every review: name, stars, score, address, coordinates and category scores, plus a free Hotels table and a free Inputs table that shows the status of each link.
- ๐ฆ Export to JSON, CSV, Excel, XML or HTML.
- ๐ API and automation: run it via the Apify API, schedule runs, monitor them and connect Make, Zapier, Google Sheets and more.
๐ Booking Review Scraper data: what you can extract
Here is the Booking.com review data you get for each review. The names in the second column are the column names you will see in your export.
| Data | Fields | In plain words |
|---|---|---|
| โญ Rating and title | rating, reviewTitle | The guest's score (1 to 10) and headline |
| ๐ Review text | reviewTextParts | What the guest liked and disliked |
| ๐ Language | reviewLanguage, isTranslatable | Language of the review; isTranslatable is true when Booking.com offers a translation of it |
| ๐ Review date | reviewDate, reviewDateIso, reviewTimestamp | The same date as text, as YYYY-MM-DD, and as a number for sorting |
| ๐ค Guest | userName, userLocation, userCountryCode, userReviewCount, userJoinedDate, userIsAnonymous, userAvatarUrl | Name, country, how many reviews they wrote, when they joined, anonymous or not, profile picture |
| ๐งณ Traveler type | travelerType, travelerTypeCode | Traveler type as shown (for example "Family") and the same type as a short code |
| ๐๏ธ Room and stay | roomInfo, roomId, checkInDate, checkOutDate, nightsStayed, stayLength, stayDate, stayStatus | Room booked, dates, number of nights, and the stay status Booking.com reports |
| ๐ฌ Hotel reply and votes | hotelReply, helpfulVotes | The hotel's answer and how many people found the review helpful |
| ๐ธ Photos | photoCount, photos | Guest photos with links |
| ๐จ Hotel facts | hotelName, hotelStars, hotelScore, hotelReviewsCount, hotelCategoryScores, hotelBookingId, hotelUrl | Hotel name, stars, overall score, number of reviews, category scores, Booking.com's own number for the hotel, page link |
| ๐ Hotel location | hotelAddress, hotelCountry, hotelLatitude, hotelLongitude | Address and map position |
| ๐ Search matches | searchMatches | The words that matched your search words (only when you use them) |
| ๐ IDs and run info | id, hotelId, reviewPage, customData, scrapedAt | Review id, hotel id, page number, your own labels, time of the run |
The category scores cover staff, facilities, cleanliness, comfort, value for money, location and free Wi-Fi, as far as the hotel shows them, so you can compare hotel ratings by topic and not only by the overall score.
Note: Booking.com does not show every detail for every review. When a guest left no text,
reviewTextPartsis empty. Details Booking.com does not provide are empty (null).
What data can't Booking Review Scraper extract?
- It covers hotel stays only, not other travel reviews such as flights, car rentals, taxis or attractions.
- Hotel search results by city or dates: you need hotel page links as input.
- Reviewer contact details such as email or phone.
- Room prices and availability. It is not a general Booking.com data scraper; for hotel prices, try Google Hotels Scraper.
๐ How to scrape Booking.com reviews
You don't need any web scraping experience. Here is your first run:
- Create a free Apify account using your email.
- Open Booking Review Scraper and click Try for free.
- The input already has a sample hotel (The Langham Chicago). To test, just click Start. For your own hotel, open its page on Booking.com, copy the link from the address bar and paste it into Hotel links.
- Watch the Booking.com reviews appear in the Output tab while the run is going. The Log tab on the same run page shows progress and any problem in plain words.
- Download your data: Storage โ Datasets โ Export, then pick JSON, CSV, Excel, XML or HTML.
The link you copy from the address bar can be long, for example https://www.booking.com/hotel/us/the-langham-chicago.html?aid=...&checkin=...&group_adults=2. That works as it is: the Actor only reads the hotel part of the link. Language versions such as .de.html or .fr.html work too.
๐ฒ Booking Review Scraper pricing: how much does it cost to scrape Booking.com?
Booking Review Scraper uses pay-per-event pricing. Your bill has three parts:
- Reviews: a price for each review saved. It depends on your Apify plan (table below). Rows in the Hotels and Inputs tables are free.
- Actor start: $0.0002 per run at the default memory (4 GB). You don't need to change the memory.
- Platform usage: the computing time of the run, paid on top of the events. It depends on how many hotels and pages a run reads.
| Apify plan | Price per review | Price per 1,000 reviews |
|---|---|---|
| ๐ฒ Free | $0.001 | $1.00 (but each Free run stops at 10 reviews) |
| ๐ฒ Starter | $0.0009 | $0.90 |
| ๐ฒ Scale | $0.0008 | $0.80 |
| ๐ฒ Business and higher | $0.0007 | $0.70 |
The plan discount applies to the review price only. The start fee is the same on every plan, and platform usage is billed at your Apify plan's own rates.
Example costs:
| Example | Plan | Review charges | Start fee | Review charges + start fee | Platform usage |
|---|---|---|---|---|---|
| ๐ฒ Default input: 10 reviews from one hotel | Free | 10 ร $0.001 = $0.01 | $0.0002 | $0.0102 | see your run page |
| ๐ฒ 1,000 reviews (needs a paid plan) | Starter | 1,000 ร $0.0009 = $0.90 | $0.0002 | $0.9002 | see your run page |
| ๐ฒ 1,000 reviews (needs a paid plan) | Scale | 1,000 ร $0.0008 = $0.80 | $0.0002 | $0.8002 | see your run page |
| ๐ฒ 1,000 reviews (needs a paid plan) | Business | 1,000 ร $0.0007 = $0.70 | $0.0002 | $0.7002 | see your run page |
There is no fixed number for platform usage, so start with the default 10-review test. When it finishes, the run page shows what the run cost in total. Use that to estimate a larger job, then scale up. To cap your spend, set a maximum charge limit when you start a run; the Actor stops at the limit and keeps the reviews already saved.
See the pricing tab for the current prices.
Is scraping Booking.com free?
You can try this Apify booking reviews scraper for free. The Apify Free plan gives you $5 in monthly credit, which pays for the review charges and the platform usage together. Each Free run stops at 10 reviews in total (not per hotel). If you run the same input again, you get the same newest reviews again, because every run starts at the top of the list. To get different reviews, change the sort order, the filters or the "Reviews since" date, or use another hotel. Any paid Apify plan removes the 10-review limit.
โฌ๏ธ Input
The only required field is Hotel links. Everything else is optional, and the defaults already give you a working run.
Settings most people change
| Field | Name in JSON | What it does | Default |
|---|---|---|---|
| ๐ Hotel links | urls | One or more Booking.com hotel page links. Required. | prefilled with a sample hotel |
| ๐ Reviews per hotel | maxReviewsPerHotel | Maximum reviews per hotel. 0 removes the per-hotel cap. | 10 |
| ๐ Sort reviews by | sortReviewsBy | newest, oldest, relevant, highest or lowest | newest |
| ๐ Reviews since | cutoffDate | Keep only reviews written on or after a date | empty |
| โญ Review scores | reviewScores | ALL, superb, good, passable, poor, very_poor | ["ALL"] |
| ๐งณ Traveler types | travelerTypes | couples, families, solo, friends, business | all |
| ๐ Review languages | languages | Language codes (list below) | all |
| ๐ Search words | searchText | Only reviews that mention this word or phrase | empty |
| ๐ Proxy | proxyConfiguration | Off by default. Leave it off: if Booking.com blocks a request, the Actor switches to Apify Proxy on its own. | off |
Here's an example that collects the 10 newest reviews of one hotel (the same as the prefilled input):
{"urls": ["https://www.booking.com/hotel/us/the-langham-chicago.html"],"maxReviewsPerHotel": 10,"sortReviewsBy": "newest","reviewScores": ["ALL"]}
See the input tab for a full description of all fields.
Hotel links
Use the link of a Booking.com hotel page. Apartments, hostels and guest houses also use hotel page links, so Booking.com accommodation reviews of those work the same way.
- โ
Good:
https://www.booking.com/hotel/us/the-langham-chicago.html(long links with?aid=...also work) - โ Bad:
https://www.booking.com/searchresults.html?ss=Chicago(a search page, not a hotel page)
โ ๏ธ A link that is not a Booking.com hotel page is not scraped and is marked as "failed" in the Inputs table. A hotel listed twice is scraped once.
Via the API you can also send a link with your own label. The label comes back as customData on every review of that hotel:
{"urls": [{"url": "https://www.booking.com/hotel/us/the-langham-chicago.html","userData": { "group": "Chicago" }}]}
Review scores
Booking.com sorts every review into one of its own score bands: Superb (about 9 and up), Good (about 7 to 9), Passable (about 5 to 7), Poor (about 3 to 5) and Very poor (about 1 to 3). Booking.com decides the band for a review on the border, and the Actor uses Booking.com's bands as they are. Pick poor and very_poor to collect Booking.com negative reviews.
- โ
Good:
["poor", "very_poor"] - โ Bad:
["ALL", "poor"]
โ ๏ธ Remove
ALLwhen you choose specific bands. IfALLstays selected, every score is kept.
To collect only Booking.com positive reviews, for example for testimonials, pick superb.
Reviews since
In the Console, pick a date in the calendar, or switch to a relative period and enter for example 30 days, 6 months or 1 year back from today. In JSON, use a date such as "2026-01-31" or a period such as "30 days" or "6 months". Dates are in UTC.
Review languages
Codes: ar Arabic, bg Bulgarian, ca Catalan, zh Chinese, hr Croatian, cs Czech, da Danish, nl Dutch, en English, et Estonian, fi Finnish, fr French, de German, el Greek, he Hebrew, hu Hungarian, is Icelandic, id Indonesian, it Italian, ja Japanese, ko Korean, lv Latvian, lt Lithuanian, no Norwegian, pl Polish, pt Portuguese, ro Romanian, ru Russian, sr Serbian, sk Slovak, sl Slovenian, es Spanish, sv Swedish, th Thai, tr Turkish, uk Ukrainian, vi Vietnamese. In the Console you pick them by name.
Reviews per hotel
10 is the default. Set a higher number, or 0 for no per-hotel cap. Each saved review is charged, so big hotels can add up.
โ ๏ธ Negative numbers stop the run with an input error. Use
0for no cap.
โฌ๏ธ Output
When the run finishes, the Output tab of the run page shows three tables: Reviews (one row per review), Hotels (one row per hotel) and Inputs (one row per link you gave, with its status and number of reviews). The Reviews table has views for Overview, Review text, Guests, Stays, Photos and Hotel facts. To download, use Storage โ Datasets โ Export and pick JSON, CSV, Excel, XML or HTML. Each run gives you a ready-made Booking.com reviews dataset.
JSON example
A review from the input example above (shortened; the full row also has the guest, stay, photo and hotel fields from the data table):
{"id": "d8812a09bc6b3805","hotelId": "us/the-langham-chicago","reviewPage": 1,"userName": "Zeina","userLocation": "France","roomInfo": "Deluxe Double Room with Two Double Beds","stayDate": "October 2026","stayLength": "5 nights","reviewDate": "October 16, 2026","reviewTitle": null,"rating": 10.0,"reviewTextParts": {},"customData": {},"travelerType": "Family","hotelName": "The Langham Chicago","hotelScore": 9.4,"hotelCategoryScores": { "cleanliness": 9.8, "location": 9.8, "staff": 9.6 }}
This guest gave a score without text, so reviewTextParts is empty.
What review text looks like
When a guest writes text, it is split into what they liked and what they disliked. The format looks like this (illustrative text):
{"reviewTitle": "Great location, small room","rating": 8.0,"reviewTextParts": {"Liked": "Friendly staff and a short walk to the river.","Disliked": "The room was smaller than in the photos."},"hotelReply": "Thank you for staying with us."}
How do I export Booking.com reviews to Excel or CSV?
Open the run and go to Storage โ Datasets โ Export, choose Excel or CSV, and download. To export Booking.com reviews automatically after every run, connect Google Sheets or another app (see the integrations section below).
๐ก Tips and advanced usage
How many results can you scrape with Booking Review Scraper?
On a paid plan there is no total limit per run (other than a maximum charge limit you set), but there is one per hotel: a run checks up to about 20,000 reviews per hotel for each score and traveler filter combination, so with the default filters you get at most about 20,000 reviews per hotel per run. Booking.com may also stop showing more reviews deep in a very long list; the Actor then keeps what it collected and says so in the log. Do a quick test run on your hotels to see what you get.
Get only the newest reviews every week
For Booking.com recent reviews only, set Sort reviews by to Newest first and add a Reviews since date such as 7 days. The run stops at that date, which keeps it short. Schedule it weekly to track new Booking.com guest reviews. With Most relevant, Highest or Lowest sorting, older reviews are read and then dropped, so a date works fastest with Newest first or Oldest first.
Combining score and traveler filters
Each pair of a score band and a traveler type is collected separately, and up to 12 pairs are used per hotel. Reviews per hotel still caps the total for the hotel across all pairs. With Most relevant sorting and several pairs, reviews are grouped by pair.
If your run fails or returns nothing
- Open the Inputs table in the Output tab. It shows each link with "ok", "failed" or "skipped".
- Open the Log tab of the run. It says in plain words what happened for each hotel.
- Check that each link is a hotel page (not a search page).
- Remove filters and try again. If none of the languages, score bands or traveler types you chose exist for a hotel, that hotel fails. Values that exist are used; the others are skipped with a note in the log.
If Booking.com stops providing a detail, that field is left empty and the log tells you.
๐ Booking Review Scraper integrations and API
Can I use Booking Review Scraper as a Booking.com reviews API?
Yes. The Apify API lets you start runs, schedule them and fetch results, so you can use it as a hotel reviews API in your own apps. Use the apify-client NPM package for Node.js or the apify-client PyPI package for Python. The API tab has ready-to-use code.
How to scrape Booking.com with Python
The Python client turns this into a Booking.com scraper API call in a few lines:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>") # booking scraper Python example: 10 newest reviews of one hotelrun = client.actor("insights_data/booking-review-scraper").call(run_input={"urls": ["https://www.booking.com/hotel/us/the-langham-chicago.html"],"maxReviewsPerHotel": 10,"sortReviewsBy": "newest","reviewScores": ["ALL"],})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["hotelName"], item["rating"], item["reviewDate"])
Can I integrate Booking Review Scraper with other apps?
Yes. Connect it with almost any cloud service through Apify integrations: Make, Zapier, Slack, Google Sheets, Google Drive, Airbyte, GitHub, LangChain and more. Use webhooks to act when a run finishes. Example: a weekly scheduled run with a 7-day "Reviews since" date sends new low-score reviews of your hotel to a Google Sheet and a Slack channel.
Can I use Booking Review Scraper with AI agents (MCP)?
Yes. AI assistants such as Claude can call it like a booking reviews API through the Apify MCP server. Open the MCP tab for setup steps.
๐งญ Other travel and review scrapers
These Actors from the same author cover what this booking scraper doesn't: hotel prices, flights and product reviews.
| Actor | What it does |
|---|---|
| ๐จ Google Hotels Scraper | Hotel prices, ratings, star class, amenities, coordinates, photos and booking links for any city or hotel |
| โ๏ธ Google Flights Prices API | Live fares, schedules, stops, layovers, airlines and booking options for one-way, round-trip and multi-city routes |
| ๐๏ธ Flipkart Reviews Scraper | Flipkart product reviews, star ratings, photos and rating summaries in bulk |
| ๐ Amazon Product Scraper | Amazon products with price, rating, reviews, Best Sellers Rank, variants and offers |
โ FAQ
Is it legal to scrape Booking.com?
Web scraping is generally legal if you extract publicly available data. Booking.com customer reviews are public, but they contain personal data such as guest names, so you should respect personal data rules (for example, GDPR), only keep personal data when you have a legitimate reason, respect intellectual property, and take Booking.com's Terms of Service into account. This is not legal advice; if in doubt, ask a lawyer.
How to scrape reviews from Booking.com without coding?
Paste the hotel link into Booking Review Scraper, click Start and download the table. You don't write any code.
Do I need a Booking.com account?
No. This Booking.com scraper reads the public review list of each hotel, so you don't log in anywhere.
How does Booking Review Scraper work?
Booking Review Scraper is a Booking.com review crawler: it goes through a hotel's review list the way you would, only faster. It opens each hotel page, reads the hotel facts and the reviews with your sort order and filters, and saves each review the moment it is read. It stops at your reviews-per-hotel limit, your date, the end of the list, about 20,000 checked reviews for one score and traveler filter combination, the Free plan limit or your maximum charge limit.
How is Booking Review Scraper different from copying reviews by hand?
| Feature | Booking Review Scraper | Copying by hand |
|---|---|---|
| Many hotels at once | โ | โ |
| Filters for score, traveler type, language, words and date | โ | only one hotel at a time |
| Structured fields (room, stay dates, category scores) | โ | โ |
| Export to JSON, CSV or Excel | โ | โ |
| Scheduled runs | โ | โ |
| Price | from $0.70 per 1,000 reviews + start fee + platform usage | your time |
Why scrape Booking.com hotel reviews?
- Hotel review analysis: find what guests praise and what they complain about, by room type or traveler type.
- Benchmark competitors: compare category scores across a city or a hotel chain.
- Improve service: spot repeated issues early in Booking.com user reviews.
- Research and AI: a hotel reviews dataset with real guest text in many languages helps you train or test models.
Do I need coding skills?
No. Booking Review Scraper is a no-code hotel reviews scraper: you fill in a form and click Start. Developers can use the API and Python client described above.
Is there a free Booking.com reviews scraper?
You can use Booking Review Scraper on the Apify Free plan with its $5 monthly credit. Each Free run stops at 10 reviews in total. Paid plans remove that limit.
Why am I getting fewer results than expected?
- Free plan: each run stops at 10 reviews in total.
- Reviews per hotel: the default is 10. Raise it or set
0. - Filters: a score band, traveler type, language, search words or date can match only a few reviews. Remove filters and test again.
ALLin Review scores: if you meant to filter, removeALL.- Very large hotels: see "How many results can you scrape" above.
- Wrong link: check the Inputs table. A search page or another non-hotel link is not scraped and shows "failed".
- Maximum charge limit: the run stops when it is reached.
๐ง Support and feedback
Found a bug or have a feature request? Please create an issue on the Issues tab. Missing a field you need from a booking reviews scraper? Tell us there.
Need a custom solution, more fields or a different travel site? Contact us at hello.insights.data@gmail.com.
Built and maintained by insights_data.