Booking Reviews Scraper avatar

Booking Reviews Scraper

Pricing

$10.00/month + usage

Go to Apify Store
Booking Reviews Scraper

Booking Reviews Scraper

Extract Booking.com hotel reviews at scale — negative feedback, scores, reviewer details — with optional contact info (email, phone, SIRET) for each property. Perfect for sentiment analysis, quality audits, and B2B outreach.

Pricing

$10.00/month + usage

Rating

0.0

(0)

Developer

Corentin Robert

Corentin Robert

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

Extract Booking.com hotel reviews at scale — negative feedback, scores, reviewer details — with optional contact info (email, phone, SIRET) for each property. Paste a search URL or a list of hotels, run, and get your data. Perfect for sentiment analysis, quality audits, and B2B outreach.

Last updated: February 22, 2026


Why Use This Scraper?

Save Time & Money

  • Process hundreds of reviews in minutes instead of hours of manual reading
  • No more copy-pasting from Booking.com pages
  • Automate review collection for multiple hotels

Get Complete Information

  • Reviewer profiles (name, location, review count)
  • Scores (0-10) and rating text (e.g., "Very Good", "Très bien")
  • Structured positive and negative feedback
  • Hotel data (name, address, price in EUR, GPS, distance from center)
  • Optional: company email, phone, SIRET for B2B prospecting

Reliable & Scalable

  • Built-in error handling and retries
  • Pagination support (1–50 pages per hotel, ~25 reviews per page)
  • Keyword filtering to focus on specific topics
  • Progressive output: reviews appear in the dataset as each hotel completes

Perfect For

  • Hoteliers & property managers – Identify improvement areas from guest feedback
  • Market researchers & analysts – Comparative analysis across hotels and destinations
  • Travel agencies & OTAs – Data-driven property recommendations
  • Real estate & property investors – Due diligence and performance assessment

How It Works

  1. Input – Provide a Booking.com search URL, single hotel URL, or list of hotel URLs
  2. Extract – The scraper visits each hotel, paginates through reviews, optionally fetches contact details
  3. Output – Structured dataset (JSON) ready for Excel, Sheets, or BI tools — data appears progressively as hotels complete

Quick Start

Paste a Booking.com search results URL – the scraper extracts hotels automatically:

{
"mode": "searchUrl",
"searchUrl": "https://www.booking.com/searchresults.fr.html?ss=Paris&checkin=2026-03-15&checkout=2026-03-16",
"maxPagesForReviews": 2,
"maxHotels": 5
}

Option 2: Hotel URL(s)

{
"mode": "hotelUrls",
"hotelUrls": [
"https://www.booking.com/hotel/fr/fesch.fr.html",
"https://www.booking.com/hotel/fr/another-hotel.fr.html"
],
"maxPagesForReviews": 5,
"order": "completed_desc"
}

What You Get

Sample output record (with hotel + contact enrichment):

{
"hotel_url": "https://www.booking.com/hotel/fr/fesch.fr.html",
"hotel_name": "Hôtel Fesch & Spa",
"hotel_price": 86.91,
"hotel_price_currency": "EUR",
"hotel_avg_score": "8.3",
"hotel_review_count": "42",
"reviewer_name": "Maevane",
"reviewer_location": "France",
"score": 8,
"score_text": "Très bien",
"traveler_type": "Couple",
"room_type": "Chambre Double Standard",
"stay_nights": 2,
"review_date": "2026-01-16",
"positive_points": "Emplacement parfait. Réservation tardive possible.",
"negative_points": "Bruyant, température ambiante médiocre",
"themes": "accueil; emplacement",
"hotel_email": "reservation@hotel-fesch.com",
"hotel_phone": "+330495516262",
"hotel_company_name": "SCI FESCH",
"hotel_registration_number": "81167178300025"
}

Output: Dataset items (JSON) — exportable as JSON, CSV, Excel, or XML directly from Apify.


Input Options

OptionTypeDefaultDescription
modeselectsearchUrlsearchUrl = paste a search page · hotelUrls = list of hotel pages
searchUrlstringBooking.com search URL (city + dates). Used when mode = searchUrl.
hotelUrlsarrayList of hotel page URLs. Used when mode = hotelUrls.
maxPagesForReviewsnumber2Review pages per hotel (~25 reviews/page). 1–50.
maxHotelsnumber5Max hotels from search (0 = unlimited). searchUrl mode only.
orderstringcompleted_descSort: completed_desc, completed_asc, score_desc, score_asc, featuredreviews
reviewLangstringfrFilter by language: fr, en, de, es, it, pt, etc.
customerTypestringtotalTraveler type filter: total, couple, family_with_children, etc.
enrichWithProHostContactDetailsbooleanfalseExtract email, phone, SIRET for B2B prospecting
keywordFilterarray[]Keep only reviews containing these keywords in negative or positive points
extractionQualityselectrecommendedfast (more parallel, fewer retries) · recommended · thorough (slower, more retries)
antiBlockingselectmediumlow · medium · high — adds delay between requests to reduce blocking
proxyConfigurationobjectResidential FRNative Apify proxy config. Residential recommended for best results.

Use Cases

Guest Feedback Analysis – Identify common complaints and improvement priorities from negative points.

Competitive Benchmarking – Compare scores and feedback across multiple hotels.

Market Research – Study rating trends, guest preferences, and sentiment by destination.

B2B Lead Generation – Extract hotel contact details (email, phone, SIRET) for outreach.

Trend Tracking – Monitor how ratings change over time with historical data.

Keyword-Focused Analysis – Filter reviews mentioning specific topics (e.g., cleanliness, breakfast, noise).


Complete Data Fields

Computed fields

FieldDescription
hotel_idHotel slug (e.g. ibis-budget-orly) for deduplication
hotel_avg_scoreAverage score across all collected reviews for this hotel
hotel_review_countNumber of reviews for this hotel in the dataset
stay_nightsParsed nights (e.g. "Stayed 3 nights" → 3)
themesAuto-extracted themes: propreté, accueil, petit-déjeuner, chambre, emplacement, parking, bruit, équipement, rapport qualité-prix
hotel_reviews_urlDirect link to the reviews page
scrape_dateDate of extraction (YYYY-MM-DD)

Review Data (core)

FieldDescription
hotel_urlOriginal hotel URL
reviewer_name, reviewer_location, reviewer_comments_countReviewer info
score, score_textRating (0–10 and text)
traveler_type, room_type, travel_typeStay metadata
review_dateDate review was posted
positive_points, negative_pointsFeedback content
matched_keywordsKeywords from filter found in this review
keyword_excluded_detectedFilter keywords not found in this review

Hotel Enrichment (searchUrl mode)

FieldDescription
hotel_name, hotel_address, hotel_cityIdentity
hotel_latitude, hotel_longitudeGPS
hotel_distance_center_kmDistance from city center
hotel_price, hotel_price_currencyPrice for search dates (always EUR)

Contact Enrichment (enrichWithProHostContactDetails)

FieldDescription
hotel_company_nameLegal company name
hotel_email, hotel_phoneContact
hotel_registration_numberSIRET (France) or equivalent
hotel_contact_address, hotel_contact_city, hotel_contact_postal_code, hotel_contact_countryBusiness address

Before vs. After

Without ScraperWith Scraper
2–3 hours to manually extract 50 reviews5–10 minutes for 100+ reviews
Selective, error-prone extraction16+ fields per review, structured
Copy-paste into spreadsheetsJSON/CSV/Excel directly from Apify

Costs and Optimization

Testing (no proxy, 3 hotels, 2 pages): ~$0.01
Production (residential proxy, 10 hotels, 5 pages): ~$0.35
Tip: Start with maxHotels: 5 and maxPagesForReviews: 1 to validate, then scale up.


Getting Started

  1. Prepare input: Get a Booking.com search URL (search a city with dates) or hotel URL(s)
  2. Configure: Paste URL in Apify input, set maxPagesForReviews and maxHotels as needed
  3. Run: Start the actor and monitor logs — data appears progressively per hotel
  4. Export: Download from the Dataset tab (JSON, CSV, Excel, XML)

Local Run

cd scrapers/booking-reviews-scraper
npm install
npm start

Uses input.json for configuration.


Support

For help or customization: corentin@outreacher.fr