Booking.com Reviews Scraper avatar

Booking.com Reviews Scraper

Pricing

from $2.00 / 1,000 review scrapeds

Go to Apify Store
Booking.com Reviews Scraper

Booking.com Reviews Scraper

Extract Booking.com guest reviews at scale — 24 structured fields per review (positive/negative text, score, traveler type, room, reviewer profile, owner response). Feed hotel URLs or a destination name, get ready-to-analyze JSON. MCP-ready for Claude, Cursor, ChatGPT, and AI agents.

Pricing

from $2.00 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

🏨 Booking.com Reviews Scraper — Extract Hotel Reviews with Full Reviewer Profiles

What does Booking.com Reviews Scraper do?

Booking.com Reviews Scraper extracts complete guest review data from any Booking.com hotel, apartment, or accommodation listing. Give it a hotel URL or a destination name — it returns structured review records with 24 fields per review, including review text (liked/disliked), guest scores, reviewer profiles, stay details, traveler type, and hotel owner responses.

No login required. No API key needed. Works with both direct hotel URLs and destination search queries.

Why use Booking.com Reviews Scraper?

  • 2x more data than competitors — 24 fields per review including traveler type, owner response, reviewer loyalty level, and language filter that other scrapers don't expose
  • Destination search built in — give it "Paris" or "Bali beachfront" and it finds hotels, then scrapes reviews — no need to manually collect hotel URLs first
  • 25% cheaper — $0.0015 per review vs. the leading alternative at $0.002
  • Reliable on Cloudflare — uses a full browser with stealth mode and session rotation, not brittle HTTP scraping that gets blocked
  • Smart cutoff date — combined with "Newest First" sorting, the scraper stops at your cutoff date and doesn't waste compute retrieving older reviews

What data does Booking.com Reviews Scraper extract?

FieldTypeDescription
hotel_namestringHotel / property name
hotel_urlstringDirect hotel page URL
hotel_idstringBooking.com internal property ID
hotel_ratingnumberAggregate guest rating (0–10)
review_idstringUnique review identifier
review_titlestringReview headline written by guest
review_positivestring"Liked" section — what guests praised
review_negativestring"Disliked" section — what guests criticized
review_scorenumberIndividual review score (0–10)
review_score_labelstringScore label (Superb, Very Good, etc.)
review_datestringDate review was published
date_of_staystringMonth + year guest actually stayed
length_of_stayintegerNumber of nights at property
room_typestringRoom category (e.g. Superior Double)
traveler_typestringCouple / Solo / Family / Business / Group
reviewer_namestringGuest display name
reviewer_countrystringGuest country of origin
reviewer_review_countintegerTotal reviews written by this guest
review_languagestringISO 639-1 language of the review text
helpful_votesintegerNumber of "helpful" votes on the review
owner_responsestringHotel management response text
owner_response_datestringDate management posted their response
scraped_atstringISO 8601 scrape timestamp
source_urlstringSource hotel page URL

How to use Booking.com Reviews Scraper

Mode 1: Direct hotel URLs

  1. Go to a Booking.com hotel page and copy the URL
  2. Paste it into Hotel URLs in the input form
  3. Set your review limit and filters
  4. Click Start

Example URLs:

https://www.booking.com/hotel/cz/jeromehouse.en-gb.html
https://www.booking.com/hotel/us/the-plaza.en-gb.html
https://www.booking.com/hotel/fr/le-marais.en-gb.html

You can add multiple hotel URLs to scrape reviews from several properties in one run.

  1. Type a destination in the Search Query field (e.g. "Paris", "Bali beachfront", "New York Manhattan hotels")
  2. Optionally set check-in/check-out dates to filter by availability
  3. The scraper finds up to 30 hotels matching your query, then scrapes reviews from each

Combining both modes

You can provide both startUrls and searchQuery simultaneously — the scraper will process all hotel URLs from both inputs.


API usage

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('USERNAME/booking-reviews-scraper').call({
startUrls: [
{ url: 'https://www.booking.com/hotel/cz/jeromehouse.en-gb.html' }
],
maxReviewsPerHotel: 200,
sortReviewsBy: 'f_recent_desc',
filterByTravelerType: 'couple',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("USERNAME/booking-reviews-scraper").call(run_input={
"startUrls": [
{"url": "https://www.booking.com/hotel/cz/jeromehouse.en-gb.html"}
],
"maxReviewsPerHotel": 200,
"sortReviewsBy": "f_recent_desc",
"filterByTravelerType": "couple",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Review filter options

Sort reviews by

ValueDescription
f_relevanceMost relevant (Booking.com default)
f_recent_descNewest first — best for cutoff date
f_recent_ascOldest first
f_score_descHighest score first
f_score_ascLowest score first (find negative reviews)

Filter by score

ValueDescription
f_all_reviewsAll scores (default)
review_adj_superbSuperb: 9+
review_adj_goodGood: 7–9
review_adj_average_passablePassable: 5–7
review_adj_poorPoor: 3–5

Filter by traveler type

couple, solo_traveller, family_with_children, group_of_friends, business_traveler

Filter by language

Use ISO 639-1 codes: en, de, fr, es, it, nl, pt, ru, zh, ja, ko, ar, etc.


Use cases

Reputation monitoring — Track what guests say about your property or competitors over time. Identify recurring complaints before they compound.

Competitive intelligence — Scrape reviews from 10–30 competing hotels in a destination. Find the gaps between what they promise and what guests experience.

Sentiment analysis + AI pipelines — Feed structured review data (positive/negative text, scores, traveler types) into LLM or NLP pipelines for automated sentiment classification.

Market research — Understand what drives high scores vs. low scores in a specific hotel category or location.

Fake review detection — Cross-reference reviewer_review_count, reviewer_country, and reviewer_name patterns to flag suspicious review clusters.

OTA content aggregation — Build review dashboards that aggregate Booking.com guest feedback alongside TripAdvisor, Google, and Expedia reviews.


Pricing

This actor uses pay-per-event (PPE) pricing — you only pay for results you actually receive.

EventPrice
Actor start$0.00005 (flat fee)
Per review scraped$0.0015

Cost examples:

  • 100 reviews from 1 hotel → ~$0.15
  • 1,000 reviews from 10 hotels → ~$1.50
  • 10,000 reviews → ~$15.00

You can set a spend cap in Actor → Settings → Budget to prevent unexpected costs during development.


Tips for best results

Use "Newest First" + Cutoff Date to efficiently track only new reviews since your last run. This is the most cost-efficient approach for ongoing monitoring.

Residential proxies improve success rate on Cloudflare-protected pages. If you hit frequent blocks, switch from "Apify Proxy (datacenter)" to "Apify Proxy (residential)" in the proxy settings.

Large review counts (1000+) work fine — the scraper paginates automatically in batches of 25. For very large hotels, expect runs of 5–20 minutes.

International reviews — Use filterByLanguage to scrape only reviews in your target language, saving both time and cost.


Output sample

{
"hotel_name": "Jerome House Prague",
"hotel_url": "https://www.booking.com/hotel/cz/jeromehouse.html",
"hotel_id": "jeromehouse",
"hotel_rating": 9.1,
"review_id": "review_abc123",
"review_title": "Absolutely perfect stay",
"review_positive": "The breakfast was excellent and the staff went above and beyond. The location right in the old town was ideal for exploring Prague on foot.",
"review_negative": "The room was slightly small but perfectly functional.",
"review_score": 9.6,
"review_score_label": "Superb",
"review_date": "January 5, 2026",
"date_of_stay": "December 2025",
"length_of_stay": 3,
"room_type": "Superior Double Room",
"traveler_type": "Couple",
"reviewer_name": "Sarah K.",
"reviewer_country": "United Kingdom",
"reviewer_review_count": 14,
"review_language": "en",
"helpful_votes": 6,
"owner_response": "Thank you so much for your kind words! We're delighted you enjoyed your time with us in Prague.",
"owner_response_date": "January 7, 2026",
"scraped_at": "2026-04-13T10:30:00.000Z",
"source_url": "https://www.booking.com/hotel/cz/jeromehouse.html"
}

Integrations

Booking.com Reviews Scraper integrates with the full Apify ecosystem. Connect it with Make, Zapier, Slack, Google Sheets, Google Drive, Airtable, or any tool via webhooks and the Apify API. Export scraped data as JSON, CSV, Excel, or XML from your dataset.


This actor is intended for lawful data collection from publicly available sources. Users are responsible for compliance with applicable laws, Booking.com's Terms of Service, and data protection regulations (GDPR, CCPA, etc.). Do not use this actor to scrape personal data without a legitimate legal basis. Reviewer names and nationalities are publicly displayed on Booking.com listings. If you are unsure whether your use case is compliant, consult your legal team.