Booking Reviews Scraper · Scores, Feedback & Contacts
Pricing
$10.00/month + usage
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
Actor stats
0
Bookmarked
4
Total users
1
Monthly active users
9 days ago
Last modified
Categories
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?
| Category | Fields |
|---|---|
| Hotel | Name, city, address, stars, avg score, total reviews |
| Review signal | Matched keywords, where they appeared (positive/negative/title), auto-detected themes |
| Review | Score, title, positive points, negative points, date, nights stayed, traveler type, room type, hotel reply |
| Reviewer | Name, country, language |
| Contact (optional) | Company name, email, phone, registration number, legal address |
Quick start
- Go to booking.com, search for a city, apply filters (stars, dates, price…)
- Copy the URL from your browser
- Paste it into Search URL(s) in the Actor input
- Set Reviews per hotel — 1 page ≈ 10 reviews (default: 2 pages)
- Add keywords to focus on specific feedback (e.g.
noise,bed,cleanliness) — or leave empty to collect all - Click Start — results appear in the dataset within seconds
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchUrls | Array | — | Booking.com search results page URLs |
hotelUrls | Array | [] | Direct hotel page URLs (bypasses search step) |
maxHotels | Integer | 0 | Stop after this many hotels (0 = no limit) |
maxReviewPages | Integer | 2 | Pages of reviews per hotel (~10 reviews/page) |
reviewLang | String | "" | Filter by review language: en, fr, de, es, it, nl, pt, pl, ru, zh, ja, ar — empty = all languages |
order | String | completed_desc | Sort: newest first, oldest first, highest/lowest rated, featured |
keywordFilter | Array | [] | Only keep reviews mentioning these words (whole-word, accent-insensitive) |
enrichWithProHostContactDetails | Boolean | false | Add 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)
| Event | Price |
|---|---|
| 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-MMformat — 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 installapify 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.