Booking Reviews Scraper · Scores, Feedback & Contacts avatar

Booking Reviews Scraper · Scores, Feedback & Contacts

Pricing

$10.00/month + usage

Go to Apify Store
Booking Reviews Scraper · Scores, Feedback & Contacts

Booking Reviews Scraper · Scores, Feedback & Contacts

Paste a Booking.com search or hotel URL — get guest reviews: scores, positive and negative feedback, reviewer details. Filter by keyword, language, traveler type. Export-ready dataset. No login needed.

Pricing

$10.00/month + usage

Rating

0.0

(0)

Developer

Corentin Robert

Corentin Robert

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

9 days ago

Last modified

Share

Booking.com Reviews Scraper

Paste a Booking.com search or hotel URL — get guest reviews: scores, positive and negative feedback, reviewer details, keyword detection, and auto-detected themes. Export-ready dataset, no login needed.

Built for: Sentiment analysis · Hospitality quality audits · B2B lead generation · Competitive benchmarking

No login needed. No API key required.


What does it extract?

CategoryFields
HotelName, city, address, stars, avg score, total reviews
Review signalMatched keywords, where they appeared (positive/negative/title), auto-detected themes
ReviewScore, title, positive points, negative points, date, nights stayed, traveler type, room type, hotel reply
ReviewerName, country, language
Contact (optional)Company name, email, phone, registration number, legal address

Quick start

  1. Go to booking.com, search for a city, apply filters (stars, dates, price…)
  2. Copy the URL from your browser
  3. Paste it into Search URL(s) in the Actor input
  4. Set Reviews per hotel — 1 page ≈ 10 reviews (default: 2 pages)
  5. Add keywords to focus on specific feedback (e.g. noise, bed, cleanliness) — or leave empty to collect all
  6. Click Start — results appear in the dataset within seconds

Input parameters

ParameterTypeDefaultDescription
searchUrlsArrayBooking.com search results page URLs
hotelUrlsArray[]Direct hotel page URLs (bypasses search step)
maxHotelsInteger0Stop after this many hotels (0 = no limit)
maxReviewPagesInteger2Pages of reviews per hotel (~10 reviews/page)
reviewLangString""Filter by review language: en, fr, de, es, it, nl, pt, pl, ru, zh, ja, ar — empty = all languages
orderStringcompleted_descSort: newest first, oldest first, highest/lowest rated, featured
keywordFilterArray[]Only keep reviews mentioning these words (whole-word, accent-insensitive)
enrichWithProHostContactDetailsBooleanfalseAdd email, phone, SIRET and company name to each row

Input example — search mode

{
"searchUrls": ["https://www.booking.com/searchresults.fr.html?ss=Paris&checkin=2026-05-01&checkout=2026-05-02"],
"maxHotels": 20,
"maxReviewPages": 3,
"reviewLang": "fr",
"keywordFilter": ["bruit", "literie", "propreté", "noise", "bed", "cleanliness"]
}

Input example — hotel URLs mode

{
"hotelUrls": [
"https://www.booking.com/hotel/fr/moxy-paris-bastille.html",
"https://www.booking.com/hotel/fr/sofitel-arc-de-triomphe.html"
],
"maxReviewPages": 10,
"order": "score_asc",
"enrichWithProHostContactDetails": true
}

Keyword filtering

Enter keywords — a review is kept if any keyword appears as a whole word in the positive points, negative points, or title.

  • Accent-insensitive: "decor" matches "décor"
  • Whole-word only: "lit" matches "le lit" but not "literie" or "accessibility"
  • Mix French and English for multilingual coverage
  • Leave empty to collect all reviews

Output sample

{
"hotel_id": "moxy-paris-bastille",
"hotel_url": "https://www.booking.com/hotel/fr/moxy-paris-bastille.html",
"hotel_name": "Moxy Paris Bastille",
"hotel_city": "Paris",
"hotel_stars": 4,
"hotel_avg_score": "8.5",
"hotel_total_reviews": 2847,
"matched_keywords": "literie, lit",
"keyword_matched_in": "positive",
"themes": "chambre; rapport qualité-prix",
"score": 9,
"title": "Très bon séjour",
"positive_points": "La literie est excellente, le lit très confortable.",
"negative_points": "Rien à signaler.",
"review_date": "2026-04",
"stay_nights": 2,
"traveler_type": "Couple",
"room_type": "Chambre Double Supérieure",
"lang": "fr",
"reviewer_name": "Marie",
"reviewer_location": "France",
"partner_reply": "Merci pour votre retour ! Nous sommes ravis que la literie vous ait plu.",
"scrape_date": "2026-04-15"
}

Pricing (Pay Per Event)

EventPrice
1 review collected$0.002
1 review with contact enrichment$0.012

The run stops automatically when your spending limit is reached.


Important / Limitations

  • Review dates are YYYY-MM format — Booking.com does not expose the exact day in public review listings
  • Contact enrichment relies on publicly available hotel page data — not all properties publish SIRET or email
  • Language filter affects which reviews are returned, not the language of your keyword list — use keywords in both languages for best coverage

Local development

npm install
apify run --input-file=./input.json

Results are saved to storage/datasets/default/. A output.csv file (Excel-compatible, BOM-encoded) is generated in the project root.

input.json example:

{
"searchUrls": ["https://www.booking.com/searchresults.fr.html?ss=Nîmes&dest_id=-1455068&dest_type=city"],
"maxHotels": 3,
"maxReviewPages": 1,
"keywordFilter": ["literie", "bruit", "bed", "noise"]
}

Support

Contact corentin@outreacher.fr for custom scrapers, bulk runs, or tailored automation.