Booking.com Reviews Scraper - Hotel Guest Reviews and Scores avatar

Booking.com Reviews Scraper - Hotel Guest Reviews and Scores

Pricing

from $0.84 / 1,000 reviews

Go to Apify Store
Booking.com Reviews Scraper - Hotel Guest Reviews and Scores

Booking.com Reviews Scraper - Hotel Guest Reviews and Scores

Booking.com reviews scraper and API alternative: extract hotel guest reviews with score, title, liked and disliked text, review date, stay month, room type, nights, traveller type, reviewer country and the hotel's reply. Sort by newest or score, filter by language and minimum score, no login.

Pricing

from $0.84 / 1,000 reviews

Rating

0.0

(0)

Developer

CrawlKit

CrawlKit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Security

Limited permissions

Share

Scrape guest reviews of Booking.com hotels: score, title, liked and disliked text, review date, stay month, room type, nights, traveller type, reviewer country and the hotel's reply. Sort by newest, most relevant or score; filter by language and minimum score. No login.

What it does

  • Takes one or more Booking.com hotel page URLs and returns one flat JSON record per guest review.
  • Reads the same JSON data the Booking.com hotel page loads for its review panel (no browser, no account).
  • Sort order: newest first (default), most relevant, highest score, lowest score or oldest first.
  • Filters: review language (two-letter code) and minimum score; maxItems applies per hotel.
  • Each review is returned once (deduplicated on its Booking.com review id). The same hotel given twice under different URLs is scraped once.
  • Reviewer names are pseudonymised (first name and last-name initial; Booking.com mostly shows first names only).

Typical uses: hotel reputation monitoring, competitor benchmarking, guest sentiment analysis, collecting hotel replies, travel research datasets.

Input

ParameterTypeRequiredDefaultDescription
hotelUrlsarray of stringsYes—Booking.com hotel page URLs, e.g. https://www.booking.com/hotel/fr/hilton-paris-opera.html. Language suffixes and query parameters are ignored.
sortBystringNonewestnewest, most_relevant, highest, lowest or oldest.
languagestringNoallOnly reviews written in this language (en, fr, de, es, it, ja...). all for every language.
minScoreintegerNo—Only reviews with a score (1-10) greater than or equal to this value.
maxItemsintegerNo50Maximum number of reviews per hotel (up to 10,000).

Example:

{
"hotelUrls": ["https://www.booking.com/hotel/fr/hilton-paris-opera.html"],
"sortBy": "newest",
"language": "en",
"maxItems": 100
}

Output

One dataset item per review. Real example (Hilton Paris Opera, lowest scores first, English):

{
"reviewId": "8c7f864b93223f73",
"hotelId": 54642,
"hotelName": "Hilton Paris Opera",
"hotelUrl": "https://www.booking.com/hotel/fr/hilton-paris-opera.html",
"score": 1.0,
"title": "They support ICE",
"positiveText": "Nothing",
"negativeText": "Everything.",
"reviewDate": "2026-01-13T04:59:20+00:00",
"stayDate": "2025-12",
"roomType": "Deluxe Room",
"nights": 4,
"travelerType": "Couple",
"reviewerCountry": "Australia",
"reviewer": "Felicity",
"language": "en",
"hotelReply": "Dear Felicity,\nWe truly appreciate your open and honest feedback about your experience at our hotel, and we would like to sincerely apologize for having disappointed you.\n...",
"helpfulVotes": 0,
"scrapedAt": "2026-10-28T06:41:13+00:00"
}
FieldDescription
reviewIdBooking.com review id (stable, unique)
hotelId, hotelName, hotelUrlReviewed property
scoreReview score, 1 to 10
title, positiveText, negativeTextReview title, "liked" and "disliked" texts as written by the guest (not translated); null when the guest left them empty
reviewDateDate the review was written (ISO 8601, UTC)
stayDateMonth of check-in (YYYY-MM)
roomType, nightsRoom booked and number of nights
travelerTypeCouple, Family, Group, Solo traveller, Business traveller
reviewerCountryCountry of the reviewer
reviewerPseudonymised name, or Anonymous
languageTwo-letter code of the review language; null when Booking.com does not identify it
hotelReplyThe property's public reply, if any
helpfulVotesNumber of "helpful" votes, when Booking.com provides it
scrapedAtExtraction time (UTC)

Pricing

Pay-per-event, no start fee: $1.40 per 1,000 reviews on the Apify Free plan, lower on paid plans.

EventFreeStarterScaleBusinessEnterprise
REVIEW$1.40$1.20$1.00$0.84$0.84

Prices in USD per 1,000 reviews. Only reviews written to the dataset are charged; failed requests and filtered-out reviews are not. The run stops cleanly when the "maximum cost per run" you set is reached.

Limitations

  • Input must be hotel page URLs (/hotel/<country>/<name>.html). Search result pages, city pages and short links (booking.com/Share-...) are not accepted.
  • Booking.com serves reviews 25 at a time, so large hotels (thousands of reviews) take one request per 25 reviews.
  • Review texts are returned in their original language; Booking.com's machine translations are not included.
  • The "most relevant" order is computed by Booking.com and shifts slightly between pages; the Actor completes it with a newest-first pass so no review is missed, which means the tail of the list is not in relevance order.
  • language is null for part of the reviews (Booking.com marks them as undetermined); those reviews still appear when you filter by a language if Booking.com counts them in it.
  • Some properties have a Booking.com page but no reviews yet; the run then ends with an explicit "No reviews found" status.
  • Data reflects what Booking.com publicly shows at run time.