Booking Reviews Scraper

Export public Booking.com guest reviews with ratings, dates, room details, traveler type, reviewer country, positives, negatives, and replies.

Data fields

FieldTypeDescription
hotelUrlstringValue exported as hotelUrl.
hotelNamestring | nullValue exported as hotelName.
reviewIdstring | nullValue exported as reviewId.
reviewUrlstring | nullValue exported as reviewUrl.
reviewTitlestring | nullValue exported as reviewTitle.
reviewTextstringValue exported as reviewText.
positiveTextstring | nullValue exported as positiveText.
negativeTextstring | nullValue exported as negativeText.

Input preview

startUrlsBooking.com hotel or review URLs *
maxReviewsMaximum reviews
sortSort order
languageLanguage / locale
proxyConfigurationProxy configuration

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Export public Booking.com guest reviews from hotel and destination review pages to CSV, JSON, Excel, or API workflows.

Use this Actor to monitor hotel reputation, analyze guest feedback, compare traveler sentiment, or feed public Booking.com reviews into BI and support workflows.

Who is it for?

  • Hotel operators tracking guest satisfaction and recurring issues.
  • Travel reputation teams exporting public guest feedback for reporting.
  • OTAs, tourism researchers, and analysts comparing review signals by property or market.
  • Automation teams feeding Booking.com review datasets into dashboards, alerts, or LLM workflows.

Input recipes

  • Smoke test: one Booking.com hotel URL, maxReviews: 10.
  • Hotel monitoring: add one or more public Booking.com hotel pages and schedule repeat runs.
  • Destination research: add public Booking.com review pages for a city or market and cap saved reviews.

Example input

{
  "startUrls": [
    { "url": "https://www.booking.com/hotel/us/the-new-yorker.html" }
  ],
  "maxReviews": 10,
  "sort": "source",
  "language": "en-US",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}

Example output

{
  "hotelUrl": "https://www.booking.com/hotel/us/the-new-yorker.html",
  "hotelName": "The New Yorker, Whitefish (updated prices 2026)",
  "reviewId": "https://www.booking.com/hotel/us/the-new-yorker.html#review-1",
  "reviewTitle": null,
  "reviewText": "Guest review text from Booking.com...",
  "score": 9.0,
  "reviewerName": null,
  "reviewerCountry": null,
  "scrapedAt": "2026-07-12T08:30:00.000Z"
}

What data can you extract?

Field Description
hotelUrl Source Booking.com hotel or review URL.
hotelName Hotel or page title found on Booking.com.
reviewId Stable review row identifier when available or generated from the source URL.
reviewUrl Direct review URL when available.
reviewTitle Review title when visible.
reviewText Combined public guest review text.
positiveText Positive part of the review when Booking.com separates it.
negativeText Negative part of the review when Booking.com separates it.
score Review score when visible.
maxScore Maximum score scale, usually 10.
reviewDate Date the review was published.
stayDate Stay month/date shown by Booking.com.
roomType Room type mentioned on the review.
travelerType Traveler type or trip context.
reviewerName Reviewer name when visible.
reviewerCountry Reviewer country when visible.
language Locale hint used for the run.
hotelReply Hotel response when visible.
scrapedAt ISO timestamp when the review was saved.

Tips and limits

  • Start with maxReviews: 10 for the first run.
  • Use only public Booking.com pages; the Actor does not use accounts, cookies, or private credentials.
  • Large runs may need residential proxy bandwidth, so scale gradually after checking output quality.

API usage

Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/booking-reviews-scraper').call({
  startUrls: [{ url: 'https://www.booking.com/hotel/us/the-new-yorker.html' }],
  maxReviews: 10,
});
console.log(run.defaultDatasetId);

Python:

from apify_client import ApifyClient
client = ApifyClient('APIFY_TOKEN')
run = client.actor('fetch_cat/booking-reviews-scraper').call(run_input={
    'startUrls': [{'url': 'https://www.booking.com/hotel/us/the-new-yorker.html'}],
    'maxReviews': 10,
})
print(run['defaultDatasetId'])

cURL:

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~booking-reviews-scraper/runs?token=APIFY_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"startUrls":[{"url":"https://www.booking.com/hotel/us/the-new-yorker.html"}],"maxReviews":10}'

MCP / agent usage

Use the Apify MCP server with ?tools=fetch_cat/booking-reviews-scraper to let agents run Booking.com review exports and retrieve datasets.

Claude CLI add command:

claude mcp add apify-booking-reviews https://mcp.apify.com/?tools=fetch_cat/booking-reviews-scraper

JSON config block:

{
  "mcpServers": {
    "apify-booking-reviews": {
      "url": "https://mcp.apify.com/?tools=fetch_cat/booking-reviews-scraper"
    }
  }
}

Example prompts:

  • "Run Booking Reviews Scraper for this Booking.com hotel URL and summarize low-score complaints."
  • "Export 25 public Booking.com reviews and return the dataset URL."

Legality and responsible use

This Actor extracts publicly available Booking.com review information. Use it responsibly, respect Booking.com terms, avoid collecting personal data you do not need, and comply with privacy laws and internal retention policies.

Support

Questions or issues? Open an issue on the Actor page in Apify Console and include:

  • run ID
  • input JSON
  • reproducible public URL
  • expected output
  • actual output

Common questions

Questions and answers reused from the canonical actor README.

Do I need a Booking.com login?

No. This Actor is designed for public pages only.

Can I export the data?

Yes. Apify datasets export to CSV, JSON, Excel, XML, and API.

Why use a proxy?

Booking.com may challenge direct traffic; Apify Proxy helps runs behave like normal browsing sessions.