Booking Reviews Scraper avatar

Booking Reviews Scraper

Pricing

from $1.66 / 1,000 review saveds

Go to Apify Store
Booking Reviews Scraper

Booking Reviews Scraper

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

Pricing

from $1.66 / 1,000 review saveds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

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?

FieldDescription
hotelUrlSource Booking.com hotel or review URL.
hotelNameHotel or page title found on Booking.com.
reviewIdStable review row identifier when available or generated from the source URL.
reviewUrlDirect review URL when available.
reviewTitleReview title when visible.
reviewTextCombined public guest review text.
positiveTextPositive part of the review when Booking.com separates it.
negativeTextNegative part of the review when Booking.com separates it.
scoreReview score when visible.
maxScoreMaximum score scale, usually 10.
reviewDateDate the review was published.
stayDateStay month/date shown by Booking.com.
roomTypeRoom type mentioned on the review.
travelerTypeTraveler type or trip context.
reviewerNameReviewer name when visible.
reviewerCountryReviewer country when visible.
languageLocale hint used for the run.
hotelReplyHotel response when visible.
scrapedAtISO timestamp when the review was saved.

Input configuration

SettingJSON keyUse it forExample
Booking.com URLsstartUrlsPublic hotel or review pages to scrape.[{"url":"https://www.booking.com/hotel/us/the-new-yorker.html"}]
Maximum reviewsmaxReviewsCap saved reviews and control spend.10
Sort ordersortPrefer source default, recent, or score-based ordering when available.source
Language / localelanguageLocale hint for Booking.com review pages.en-US
Proxy configurationproxyConfigurationUse Apify Proxy; residential is recommended for Booking.com.{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}

Pricing

TierRun startReview saved
Free$0.010$0.00318
Bronze$0.010$0.00276
Silver$0.010$0.00216
Gold$0.010$0.00166
Platinum$0.010$0.00111
Diamond$0.010$0.00077

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.

FAQ

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.

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