Booking Hotels Scraper - Search, Prices & Details
Pricing
from $2.00 / 1,000 hotel results
Booking Hotels Scraper - Search, Prices & Details
Scrape Booking.com hotels for any destination: live prices, ratings, reviews count, location, facilities and full detail pages. Real-time data, all filters, optional detail enrichment. Pay only per result - no subscription.
Pricing
from $2.00 / 1,000 hotel results
Rating
0.0
(0)
Developer
Data Forge
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
4
Monthly active users
10 days ago
Last modified
Categories
Share
Booking.com Hotels Scraper - Search, Prices & Details
Scrape Booking.com hotels for any destination in one run - live prices, guest scores, review counts, location, facilities and full detail pages. Type a city, set your dates, and export clean, structured rows. No setup, no subscription, pay only per result.
Why this Actor?
| What you get | This Actor (Data Forge) | Other Booking.com scrapers |
|---|---|---|
| Live nightly prices | Dated per-night and total rates for your exact check-in / check-out, guests and rooms | List-only, or stale cached prices with no dates |
| Filter depth | 20+ filter options - 5 star classes, 3 meal plans, 13 facilities, free cancellation, review score, price band | A handful of basic filters |
| Sort modes | 8 modes including cheapest-first, guest score, stars and distance | Default order only |
| Detail enrichment | Full detail page from any hotel URL - facilities, description, check-in / check-out times, photos | Search list only, no detail pages |
| Per-night pricing | Separate price_per_night and total_price fields - compare per-night rates without doing the math | Raw stay total only |
| Pricing model | Pay per result - error rows are always free | Monthly subscription, or you pay for failed rows too |
What this actor does
Give it a destination (Paris, a Booking.com dest_id, or a Booking.com search URL) and it pulls hotels with everything you need to compare and analyze:
- ๐จ Hotel - name, star class, accommodation type
- ๐ Guest score - Booking review score (1-10), score word, review count
- ๐ฒ Live prices - per-night and total price, currency, pre-discount price (set check-in/out for real dated rates)
- ๐ Location - address, city, country, latitude/longitude, distance from center
- โ Policies - free cancellation, breakfast included
- ๐ผ Media + IDs - primary photo, canonical URL, hotel id, slug
Flip on Also fetch full detail and each result is enriched with its full detail page - complete facility list, description, check-in/out times and more photos (charged as a separate hotel-details event).
Already have specific hotels? Paste their URLs into Start URLs - each is fetched as a full detail row, alongside (or instead of) a destination search.
Input
| Field | What it does |
|---|---|
| Destination | City / area name, Booking.com dest_id, or search URL. Optional if you use Start URLs. |
| Start URLs | Paste specific Booking.com hotel URLs to fetch their full detail directly. |
| Max hotels | Cap for the destination search (1 to 1000). The actor paginates Booking.com (up to 100/page) to reach it. |
| Also fetch full detail | Enrich every result with its full detail page. Extra hotel-details charge per hotel. |
| Currency | 12 presets + any 3-letter ISO code. |
| Stay & occupancy | Check-in/out dates (unlock real prices), adults, children, rooms. |
| Filters & sort | Price range, min guest score, star class, meal plan, facilities, free cancellation, sustainable, sort order. |
Friendly-label filters (star class, meal plan, facilities) map to Booking.com's values for you - pick Free WiFi or 5 Star, no IDs to look up. The underlying REST API exposes even more filters (room facilities, accessibility, property type) for power users.
Input modes
Eight ready-to-run recipes - paste any block straight into the input editor. Each maps 1:1 to a published example task.
1. Destination scan with live prices
Travel aggregator building a city price index: pull the first 100 Paris hotels with live USD rates.
{"location": "Paris", "maxResults": 100, "currency": "USD"}
2. Budget cap, cheapest first
Deal site or budget traveler: cap at 100 per night and surface the cheapest rooms first.
{"location": "New York", "priceMax": 100, "sort": "price_low", "maxResults": 100}
3. 5-star luxury by guest score
Luxury concierge: rank Dubai 5-star properties by guest review score.
{"location": "Dubai", "stars": ["5"], "sort": "review_score", "maxResults": 100}
4. Only 9+ rated stays
Quality-first researcher: keep only Rome stays rated 9 and above (Superb).
{"location": "Rome", "minReviewScore": "9", "maxResults": 100}
5. Free cancellation only
Flexible-plans OTA: list London hotels that offer a free-cancellation rate.
{"location": "London", "freeCancellation": true, "maxResults": 100}
6. All-inclusive resorts
Package-holiday desk: find Cancun all-inclusive resorts in one pass.
{"location": "Cancun", "mealPlan": ["all_inclusive"], "maxResults": 100}
7. Facility filter (pool / spa)
Family-trip planner: Orlando hotels that must have a swimming pool.
{"location": "Orlando", "facilities": ["swimming_pool"], "maxResults": 100}
8. Full details from hotel URLs
Rate-monitoring analyst: pull full detail for specific hotels you already track by URL.
{"startUrls": ["https://www.booking.com/hotel/us/rodeway-inn-secaucus.html"]}
Output
One flat row per hotel, discriminated by row_type, with the full payload under data. The dataset ships with three ready-made table tabs - Overview, Hotels, and Details - so the data reads as a clean spreadsheet you can sort, filter and export to CSV/Excel/JSON in one click.
row_type | What each row contains |
|---|---|
hotel_search_result | One hotel from a destination search: name, star class, guest score + review count, live price_per_night and total_price, currency, address / city / country, latitude / longitude, distance from center, free-cancellation and breakfast flags, hotel id, slug, photo and canonical URL. Full raw object under data. |
hotel_detail | Deep detail for one hotel (from a Start URL, or when Also fetch full detail is on): description, check-in / check-out times, full facility list and facility_count, coordinates, plus the core identity fields. Full raw object under data. |
error | A skipped input (bad URL, no match, or upstream issue) carrying an error_code and error_message. Always free - you are never charged for it. |
Common columns: name, stars, score, review_count, price, price_per_night, total_price, currency, address, city, country, url, hotel_id, image_url, free_cancellation, breakfast_included.
A run-summary record (OUTPUT key) reports hotel/detail counts and the estimated cost. Live per-event pricing is shown on this actor's Apify Store page.
Tip: check-in / check-out are optional. Leave them blank and the actor auto-applies a sensible default stay (about a week out, 2 nights) so you still get real prices - or set them for an exact stay.
Input & output example
Input - search Paris for a 2-night stay:
{"location": "Paris","checkIn": "2026-07-18","checkOut": "2026-07-20","adults": 2,"maxResults": 50,"currency": "USD"}
Output - one flat hotel_search_result row (common columns at the top level, full payload under data):
{"row_type": "hotel_search_result","name": "Villa Royale Montsouris","stars": 3,"score": 8.0,"score_word": "Very Good","review_count": 1218,"price_per_night": 298.57,"total_price": 298.57,"currency": "USD","display_price": "US$298.57","address": "144 Rue De La Tombe Issoire","city": "Paris","country": "France","free_cancellation": false,"breakfast_included": false,"hotel_id": "217597","url": "https://www.booking.com/hotel/fr/pavillonroyalemontsouris.html","data": {"...": "full hotel object"}}
Why buyers pick this actor
- Real-time, real prices - dated nightly + total rates straight from Booking.com, not stale cached numbers.
- Every filter, friendly labels - stars, score, meal plan, 13 facilities, price, free cancellation. No internal IDs to look up.
- Search or URLs - scan a whole city (up to 100 hotels per page), or fetch exact hotels. Both in one actor.
- Clean tabs - export-ready Hotels / Details tables, not a wall of mixed columns.
- You only pay for results - errors and your own misconfigurations are never charged.
FAQ
Is scraping Booking.com legal? The actor collects publicly available listing data. You are responsible for using the output in line with Booking.com's terms and applicable law.
How fresh are the prices? Prices are fetched live from Booking.com at run time for the exact check-in / check-out, guests and rooms you set - not cached numbers. Run the actor again (or on a schedule) to capture how rates move day to day.
What if a hotel comes back with no price?
A hotel_search_result needs a dated stay to show a rate. Leave the dates blank (the actor applies a 1-week-ahead, 2-night default) or set explicit check-in / check-out and re-run. hotel_detail rows describe the property itself, so they intentionally carry no price. A property can also be sold out for your exact dates.
Can I run this on a schedule? Yes. Use Apify Schedules to run the actor daily or weekly - each run writes a fresh dated snapshot to the dataset, ideal for price tracking and availability monitoring.
Do I need to set check-in / check-out dates? No. Leave them blank and the actor applies a sensible default stay (about a week out, 2 nights) so you still get real prices. Set them for an exact stay.
Can I scrape specific hotels instead of a whole city? Yes. Paste Booking.com hotel URLs into Start URLs and each is fetched as a full detail row, with or without a destination search.
How much does it cost?
You pay per result (one hotel-result charge per hotel row). Turning on "Also fetch full detail" adds a separate hotel-details charge per hotel. Error rows are free. Live per-event pricing is on this actor's Apify Store page.
What currency are the prices in?
Whatever you pass in currency - 12 presets or any 3-letter ISO code (default USD).
Related actors
Part of the Data Forge travel suite - pick the tool that fits the job:
- Booking.com Reviews Scraper - bulk-pull guest reviews for any hotel, with score breakdowns and filters.
- Booking.com Airport Taxis Scraper - live airport transfer quotes between any two points.
- Tripadvisor Scraper - hotels, restaurants and attractions with ratings and reviews from Tripadvisor.
- Google Flights Scraper - live flight prices and itineraries for any route and date.
Support
I personally support every customer - drop a message on any channel for help, higher limits, or a custom scraping build.