Booking Reviews Scraper
Pricing
$10.00/month + usage
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
Actor stats
0
Bookmarked
3
Total users
2
Monthly active users
2 days ago
Last modified
Categories
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
- Input – Provide a Booking.com search URL, single hotel URL, or list of hotel URLs
- Extract – The scraper visits each hotel, paginates through reviews, optionally fetches contact details
- Output – Structured dataset (JSON) ready for Excel, Sheets, or BI tools — data appears progressively as hotels complete
Quick Start
Option 1: Search URL (Recommended)
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
| Option | Type | Default | Description |
|---|---|---|---|
mode | select | searchUrl | searchUrl = paste a search page · hotelUrls = list of hotel pages |
searchUrl | string | – | Booking.com search URL (city + dates). Used when mode = searchUrl. |
hotelUrls | array | – | List of hotel page URLs. Used when mode = hotelUrls. |
maxPagesForReviews | number | 2 | Review pages per hotel (~25 reviews/page). 1–50. |
maxHotels | number | 5 | Max hotels from search (0 = unlimited). searchUrl mode only. |
order | string | completed_desc | Sort: completed_desc, completed_asc, score_desc, score_asc, featuredreviews |
reviewLang | string | fr | Filter by language: fr, en, de, es, it, pt, etc. |
customerType | string | total | Traveler type filter: total, couple, family_with_children, etc. |
enrichWithProHostContactDetails | boolean | false | Extract email, phone, SIRET for B2B prospecting |
keywordFilter | array | [] | Keep only reviews containing these keywords in negative or positive points |
extractionQuality | select | recommended | fast (more parallel, fewer retries) · recommended · thorough (slower, more retries) |
antiBlocking | select | medium | low · medium · high — adds delay between requests to reduce blocking |
proxyConfiguration | object | Residential FR | Native 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
| Field | Description |
|---|---|
hotel_id | Hotel slug (e.g. ibis-budget-orly) for deduplication |
hotel_avg_score | Average score across all collected reviews for this hotel |
hotel_review_count | Number of reviews for this hotel in the dataset |
stay_nights | Parsed nights (e.g. "Stayed 3 nights" → 3) |
themes | Auto-extracted themes: propreté, accueil, petit-déjeuner, chambre, emplacement, parking, bruit, équipement, rapport qualité-prix |
hotel_reviews_url | Direct link to the reviews page |
scrape_date | Date of extraction (YYYY-MM-DD) |
Review Data (core)
| Field | Description |
|---|---|
hotel_url | Original hotel URL |
reviewer_name, reviewer_location, reviewer_comments_count | Reviewer info |
score, score_text | Rating (0–10 and text) |
traveler_type, room_type, travel_type | Stay metadata |
review_date | Date review was posted |
positive_points, negative_points | Feedback content |
matched_keywords | Keywords from filter found in this review |
keyword_excluded_detected | Filter keywords not found in this review |
Hotel Enrichment (searchUrl mode)
| Field | Description |
|---|---|
hotel_name, hotel_address, hotel_city | Identity |
hotel_latitude, hotel_longitude | GPS |
hotel_distance_center_km | Distance from city center |
hotel_price, hotel_price_currency | Price for search dates (always EUR) |
Contact Enrichment (enrichWithProHostContactDetails)
| Field | Description |
|---|---|
hotel_company_name | Legal company name |
hotel_email, hotel_phone | Contact |
hotel_registration_number | SIRET (France) or equivalent |
hotel_contact_address, hotel_contact_city, hotel_contact_postal_code, hotel_contact_country | Business address |
Before vs. After
| Without Scraper | With Scraper |
|---|---|
| 2–3 hours to manually extract 50 reviews | 5–10 minutes for 100+ reviews |
| Selective, error-prone extraction | 16+ fields per review, structured |
| Copy-paste into spreadsheets | JSON/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
- Prepare input: Get a Booking.com search URL (search a city with dates) or hotel URL(s)
- Configure: Paste URL in Apify input, set
maxPagesForReviewsandmaxHotelsas needed - Run: Start the actor and monitor logs — data appears progressively per hotel
- Export: Download from the Dataset tab (JSON, CSV, Excel, XML)
Local Run
cd scrapers/booking-reviews-scrapernpm installnpm start
Uses input.json for configuration.
Support
For help or customization: corentin@outreacher.fr