Booking.com Scraper
Pricing
from $1.59 / 1,000 results
Booking.com Scraper
Scrape Booking.com for hotels, apartments and villas. Get ratings, prices, addresses and coordinates for any destination and date range.
Pricing
from $1.59 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share

Extract hotel and accommodation data from Booking.com — property names, star ratings, review scores, nightly prices, addresses, coordinates, property types, and more. Search by destination, date range, and occupancy. Covers all property types: hotels, apartments, villas, hostels, and resorts worldwide.
Why this scraper?
💰 60% cheaper than the leading alternative
At $1.99 per 1,000 results, this is the most affordable reliable Booking.com scraper on Apify — no tiered pricing, no volume requirements.
🌍 Any destination, worldwide
Search any city, region, landmark, or country. Supports the full Booking.com inventory of 28+ million listings across 230+ countries.
🗓️ Date-aware pricing
Set check-in and check-out dates to get real-time availability and accurate nightly prices for your specific travel window.
⭐ Smart filtering
Filter results by minimum review score, star rating, maximum price per night, and property type — without paying for results you don't need.
📋 25+ structured fields per property
Every result includes property name, URL, star rating, review score, review count, nightly price, currency, full address, GPS coordinates, property type, cancellation policy, and meal plan info.
🔄 Scheduler-ready for price monitoring
Run on a schedule to track price changes, monitor availability, or feed a hotel comparison tool. Combine with Apify's webhook notifications for real-time alerts.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
destination | string | — | City, region, or property name (e.g. Amsterdam, Bali, Paris 8th) |
checkin | string | today + 30 days | Check-in date in YYYY-MM-DD format. Optional |
checkout | string | check-in + 3 nights | Check-out date in YYYY-MM-DD format. Optional |
adults | integer | 2 | Number of adults per room |
children | integer | 0 | Number of children per room |
rooms | integer | 1 | Number of rooms |
maxResults | integer | 100 | Maximum properties to return |
minRating | number | 0 | Minimum Booking.com review score (0–10). 0 = no filter |
minStars | integer | 0 | Minimum star rating (1–5). 0 = no filter |
maxPricePerNight | number | 0 | Maximum nightly price. 0 = no filter |
propertyType | string | "" | Keyword filter on type: hotel, apartment, hostel, villa, etc. |
startUrls | array | [] | Direct Booking.com search URLs to scrape |
Output schema
| Field | Type | Description |
|---|---|---|
id | string|null | Booking.com internal property ID |
url | string|null | Full Booking.com property page URL |
name | string|null | Property name |
starRating | number|null | Official star rating (1–5) |
reviewScore | number|null | Booking.com review score (0–10) |
reviewCount | integer|null | Total number of reviews |
reviewCategory | string|null | Score label (e.g. "Superb", "Very Good") |
pricePerNight | number|null | Nightly price for your search dates |
priceCurrency | string|null | Currency code (e.g. EUR, USD) |
priceTotal | number|null | Total stay price (null if not fetched from detail) |
address | string|null | Street address |
city | string|null | City |
country | string|null | Two-letter country code (e.g. NL, FR) |
latitude | number|null | GPS latitude |
longitude | number|null | GPS longitude |
propertyType | string|null | Property category (e.g. Hotel, Apartment, Villa) |
photos | string[]|null | Photo URLs (requires detail fetch) |
amenities | string[]|null | Amenity list (requires detail fetch) |
description | string|null | Property description (requires detail fetch) |
checkInTime | string|null | Check-in time range (requires detail fetch) |
checkOutTime | string|null | Check-out time range (requires detail fetch) |
freeCancellation | boolean|null | Whether free cancellation is available |
breakfastIncluded | boolean|null | Whether breakfast is included in the listed price |
source | string | Always "booking.com" |
scrapedAt | string | ISO 8601 timestamp of when data was collected |
contentHash | string | 16-char MD5 fingerprint for change detection |
Example output record
{"id": "254868","url": "https://www.booking.com/hotel/nl/the-grand-amsterdam.html","name": "The Grand Amsterdam","starRating": 5,"reviewScore": 8.7,"reviewCount": 4312,"reviewCategory": "Fabulous","pricePerNight": 385.00,"priceCurrency": "EUR","priceTotal": null,"address": "Oudezijds Voorburgwal 197","city": "Amsterdam","country": "NL","latitude": 52.3742,"longitude": 4.8976,"propertyType": "Hotel","photos": null,"amenities": null,"description": null,"checkInTime": null,"checkOutTime": null,"freeCancellation": true,"breakfastIncluded": false,"source": "booking.com","scrapedAt": "2026-06-03T15:00:00.000Z","contentHash": "a3f1b2c9d4e50612"}
Examples
Search hotels in Amsterdam for a weekend:
{"destination": "Amsterdam","checkin": "2026-08-01","checkout": "2026-08-03","adults": 2,"maxResults": 50}
Find top-rated hotels in Paris under €200/night:
{"destination": "Paris","checkin": "2026-09-15","checkout": "2026-09-18","adults": 2,"minRating": 8.5,"maxPricePerNight": 200,"maxResults": 100}
Search for apartments and villas in Bali:
{"destination": "Bali","checkin": "2026-10-01","checkout": "2026-10-08","adults": 2,"children": 1,"propertyType": "apartment","maxResults": 100}
Scrape a specific Booking.com search URL:
{"checkin": "2026-07-20","checkout": "2026-07-25","startUrls": [{ "url": "https://www.booking.com/searchresults.html?ss=Santorini&no_rooms=1&group_adults=2" }],"maxResults": 50}
Daily price monitoring (run on a schedule):
{"startUrls": [{"url": "https://www.booking.com/searchresults.html?ss=Santorini&no_rooms=1&group_adults=2"}],"maxResults": 100}
Schedule this input to run once a day in the Apify Scheduler to track prices and availability for the same search over time.
💰 Pricing
$1.99 per 1,000 results — you only pay for successfully saved properties.
| Results | Cost |
|---|---|
| 100 | ~$0.20 |
| 1,000 | ~$1.99 |
| 10,000 | ~$19.90 |
| 100,000 | ~$199.00 |
The leading Booking.com scraper charges $5.00 per 1,000 results for new users — over 2.5× more. Same data, same reliability.
Performance
| Run size | Approx. time |
|---|---|
| 25 properties | ~30–45 seconds |
| 100 properties | ~1–2 minutes |
| 500 properties | ~5–8 minutes |
Known limitations
- Availability is date-dependent — results and prices vary by check-in/check-out dates. Always provide valid future dates.
- Dynamic pricing — Booking.com prices change frequently. Data reflects availability at scrape time.
- Booking.com account features — Genius loyalty discounts and member pricing are not reflected in scraped prices (standard public rates only).
- Detail fields —
photos,amenities,description,checkInTime, andcheckOutTimerequire a separate detail-page fetch and are not included in the default run to keep costs low.
Technical details
- Source: booking.com — global accommodation search
- Memory: 1,024 MB
- Proxy: Residential proxy (bundled, US) — required to bypass bot protection
- Retry: Automatic retry on network errors, 3 attempts per request
Additional services
Need a custom actor, additional filters, scheduled runs, or integration support?.nl](mailto:info@unfencedgroup.nl) — we build on request.
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl