Booking.com Scraper
Pricing
from $1.50 / 1,000 results
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
petteri mähönen
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Booking.com Scraper — Hotel & Accommodation Search
Scrape hotels, apartments, and other accommodations from Booking.com search results. Extract prices, ratings, reviews, availability, amenities, and more — with residential proxy support to avoid blocking.
[💰 $1.00 / 1,000 results] — no monthly subscription, no hidden fees.
Why This Scraper?
- Pay only per result — flat $1.00 per 1,000 hotels, all platform costs included
- Direct URL support — paste any Booking.com search or hotel URL, the actor handles both modes
- Every Booking.com search field exposed — dates, guests, rooms, currencies, star rating, price range, and sort order
- Anti-bot protection handled — Playwright with residential proxies bypasses Booking.com's WAF where simple scrapers fail
- 20+ data fields per hotel — prices, review scores, star ratings, room types, cancellation policy, breakfast, distance, photos, and more
- Automatic pagination — scrapes across multiple result pages until your
maxResultsis reached - Multi-language support — works with English, Finnish, Swedish, German, French, Dutch, Polish, and more
- Clean, flat output — every field is a primitive type (string, number, boolean), ready for spreadsheets and databases
Who Is It For?
- Revenue managers and hoteliers monitoring competitor pricing across their market
- Travel agencies and OTAs building data feeds or price comparison tools
- Data analysts and researchers studying hotel supply, pricing trends, and review distributions
- Developers integrating accommodation data into applications, dashboards, or automated pipelines
- Individual travelers who want to track prices for a specific destination over time
Use Cases
- Travel price monitoring — track hotel prices in a destination over time to find the best booking window
- Competitor analysis for hoteliers — compare your property's pricing and review scores against nearby competitors
- Market research — analyze hotel supply, pricing tiers, and review distributions across cities or regions
- Lead generation for travel agencies — build lists of hotels with locations, ratings, and pricing
- Travel content & editorial — power "Top 25 hotels in Lisbon" guides with live data
- Aggregator data feeds — power a travel comparison site or internal dashboard with fresh Booking.com data
Quick Start
1. Search by location (most common)
{"locations": ["Barcelona, Spain"],"maxResults": 50,"checkIn": "2026-09-01","checkOut": "2026-09-07","adults": 2,"rooms": 1,"currency": "USD","sortOrder": "review"}
2. Filtered — narrow by stars, price, and currency
{"locations": ["Lisbon"],"maxResults": 100,"checkIn": "2026-07-10","checkOut": "2026-07-15","adults": 2,"currency": "EUR","minPrice": 80,"maxPrice": 200,"starsFilter": ["4", "5"],"sortOrder": "review"}
3. Direct Booking.com URLs
Paste any Booking.com hotel page or search URL. The actor visits each property and extracts all available data.
{"startUrls": [{ "url": "https://www.booking.com/hotel/gb/the-savoy.html" },{ "url": "https://www.booking.com/hotel/es/arts-barcelona.html" }],"checkIn": "2026-09-01","checkOut": "2026-09-07","currency": "EUR"}
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | array | [] | Direct Booking.com hotel or search page URLs |
locations | string[] | ["San Francisco, CA"] | Cities/areas to search |
maxResults | integer | 30 | Maximum results to return |
checkIn | string | "2026-08-01" | Check-in date (YYYY-MM-DD) |
checkOut | string | "2026-08-07" | Check-out date (YYYY-MM-DD) |
adults | integer | 2 | Number of adults (1-30) |
children | integer | 0 | Number of children (0-10) |
rooms | integer | 1 | Number of rooms (1-30) |
currency | enum | "USD" | Currency: USD, EUR, GBP, JPY, CAD, AUD, CHF, SEK, NOK, DKK, PLN, CZK, HUF, BRL, INR, CNY, KRW, MXN, TRY |
sortOrder | enum | "popularity" | Sort: popularity, price, review, stars, distance |
minPrice | integer | 0 | Minimum price per night filter |
maxPrice | integer | 0 | Maximum price per night filter |
starsFilter | string[] | [] | Filter by star rating (e.g., ["4", "5"]) |
useProxy | boolean | true | Enable residential proxies (recommended) |
Output
| Field | Type | Description |
|---|---|---|
title | string | Hotel/property name |
hotel_id | string | Booking.com hotel ID from URL |
url | string | Clean Booking.com property URL (tracking removed) |
star_rating | string | Star classification (1-5) |
review_score | number | Guest review score (0.0-10.0) |
review_label | string | Qualitative label (e.g., "Wonderful", "Very Good") |
review_count | integer | Number of guest reviews |
location_score | number | Location rating score |
location | string | Address/area text |
distance | string | Distance from city center |
price | number | Total price for the stay |
price_per_night | number | Average price per night |
currency | string | Currency code (USD, EUR, etc.) |
original_price | number | Original/strikethrough price |
price_label | string | Price period description |
room_type | string | Recommended room/unit type |
free_cancellation | boolean | Whether free cancellation is available |
breakfast_included | boolean | Whether breakfast is included |
property_type | string | Property type (Hotel, Apartment, Resort, etc.) |
is_preferred | boolean | Whether property has Preferred/Genius badge |
image_url | string | Property image URL |
availability | string | Room availability text |
search_source | string | Whether from location_search or direct_url |
search_location | string | The location searched |
platform | string | Always "booking.com" |
scraped_at | string | ISO 8601 timestamp |
Pricing
| Tier | Price |
|---|---|
| Pay per result | $1.00 / 1,000 results |
All platform costs (compute, residential proxy, storage) are included. No monthly subscription.
Tips for Best Results
- Start small — test with
maxResults: 10before running large scrapes - Set specific dates — Booking.com prices vary significantly by date
- Use price filters — narrow results with
minPriceandmaxPriceto focus on your target segment - Filter by stars — use
starsFilter: ["4", "5"]to only get upscale properties - Change currency — set
currencyto your local currency to avoid conversion math - Residential proxies recommended — the actor uses them by default for best reliability against Booking.com's WAF
- Batch URLs — when scraping by direct URL, include 5+ hotels per run for best value
Notes
- Booking.com uses heavy JavaScript rendering — PlaywrightCrawler is required
- Residential proxies are strongly recommended (Booking.com blocks datacenter IPs)
- Targets vary by region — results are in the chosen currency
- Max ~25-30 cards per page;
maxResultscontrols total across all pages - Direct hotel URLs skip pagination (single property only)
Support & Feedback
Enjoying this Actor? Leave a review on Apify Store — it helps others discover the tool.
Found a bug or have a feature request? Open an issue on the Actor page.