Booking Scraper PRO
Pricing
from $5.00 / 1,000 property scrapeds
Booking Scraper PRO
Scrape Booking.com hotels and properties with prices, review scores, stars, location and amenities. Search any city or paste Booking.com URLs.
Pricing
from $5.00 / 1,000 property scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
What is Booking Scraper PRO?
Booking Scraper PRO returns one dataset row per Booking.com property from a destination search or from Booking.com URLs: property name, link and ID, guest review score with its label and review count, star class, area and distance from the centre, deal flags, main photo and, for dated searches, the nightly price in your chosen currency. Hotel revenue managers, travel analysts, agencies and AI agents use it to map supply in a city, benchmark competitors on rating and price, and build property lists, with optional detail enrichment for descriptions, amenities and coordinates.
Why travel teams use this Booking.com scraper
- Search like a guest.
searchtakes a destination such asAmsterdam;checkIn,checkOut,adults,childrenandroomsset the stay. - Prices in your currency.
currencycovers 18 currencies andlanguagesets the Booking locale. - Ratings ready to rank.
reviewScore,reviewScoreWordandreviewCountsit on every rated property. - Filters before collection.
minPrice,maxPriceandminStarsnarrow the search on Booking.com itself. - Detail on demand.
enrichDetailsopens each property page fordescription,amenities, check-in and check-out times and coordinates. - URLs welcome.
startUrlsaccepts Booking.com search pages and individual property pages.
Best fit for this Actor
- Best fit for competitor sets, destination supply maps and rating benchmarks across Booking.com properties.
- Designed for dated searches when price matters: Booking.com shows nightly prices for a specific stay, so set
checkInandcheckOutto fillprice,priceTextandtaxesAndFees. Undated searches return names, scores and locations. - For full-city coverage, run several focused searches, such as by district, star class or price band, and merge the datasets on
hotelId. - When you want what guests actually wrote, then pass the property
urlvalues to Booking.com Reviews Scraper. - To compare the same hotels on another platform, continue with TripAdvisor Scraper.
Example workflow: from a city search to a rate benchmark
A revenue manager at a boutique hotel in Amsterdam starts with search set to Amsterdam, a weekend checkIn and checkOut, currency set to EUR, minStars at 4 and maxResults at 50. The dataset returns each competitor's price, reviewScore, reviewCount and distanceFromCenter. They keep properties within a mile of their own, compare price against reviewScore to see who charges a premium for ratings, and export the table to their pricing sheet. They then schedule the same input for each upcoming weekend and compare rates week over week.
Input
{"search": "Amsterdam","checkIn": "2026-11-13","checkOut": "2026-11-15","adults": 2,"children": 0,"rooms": 1,"currency": "EUR","language": "en-gb","minStars": 4,"maxResults": 50,"enrichDetails": false}
| Field | Type | What it controls |
|---|---|---|
search | string | Destination to search, such as Amsterdam or Paris, France. Use this or startUrls. |
startUrls | array | Booking.com search-results URLs or individual property URLs. |
checkIn, checkOut | strings | Stay dates in YYYY-MM-DD format, for nightly prices. |
adults, children, rooms | integers | Occupancy. Defaults 2, 0 and 1. |
currency | string | Price currency, such as USD, EUR or GBP. Default USD. |
language | string | Booking locale, such as en-gb, de or fr. Default en-gb. |
minPrice, maxPrice | integers | Nightly price range in the selected currency. |
minStars | integer | Minimum star class, 0 to 5. Default 0. |
maxResults | integer | Cap on properties saved, up to 1,000. Default 25. |
enrichDetails | boolean | Open each property page for description, amenities, times and coordinates. Default false. |
proxyConfiguration | object | Apify Proxy settings. Default uses Apify Proxy. |
Output
One row per property. Fields stay null when Booking.com leaves them off the card or the search.
| Field | What it contains |
|---|---|
name, url, hotelId | Property identity and link |
reviewScore, reviewScoreWord, reviewCount | Guest rating on a 0 to 10 scale, its label and review count |
stars | Star class when Booking.com shows one |
price, currency, priceText, taxesAndFees | Nightly price for dated searches |
address, city, country, distanceFromCenter | Location from the property card; on city searches city holds the district and country the city |
roomType, bedConfig | The room offered for the stay |
freeCancellation, breakfastIncluded, badges | Deal flags |
image | Main photo URL |
propertyType, description, amenities, checkInTime, checkOutTime, latitude, longitude | Detail fields with enrichDetails |
checkInDate, checkOutDate, scrapedAt | Stay dates searched and collection time |
Example row from an undated Amsterdam search:
{"name": "Holiday Inn Express Amsterdam - North Riverside by IHG","url": "https://www.booking.com/hotel/nl/holiday-inn-express-amsterdam-motorkade.en-gb.html","hotelId": "holiday-inn-express-amsterdam-motorkade","propertyType": null,"reviewScore": 8.2,"reviewScoreWord": "Very good","reviewCount": 12546,"stars": null,"price": null,"currency": "USD","priceText": null,"address": "Amsterdam Noord, Amsterdam","city": "Amsterdam Noord","country": "Amsterdam","distanceFromCenter": "1.4 miles from centre","freeCancellation": false,"breakfastIncluded": false,"badges": [],"image": "https://cf.bstatic.com/xdata/images/hotel/square240/269458643.webp?k=519e81855baad947382232b5ab719093f75caf08430bce8225d07d850638134e&o=","checkInDate": null,"checkOutDate": null,"scrapedAt": "2026-10-01T13:02:43.323Z"}
Pricing
This Actor uses Pay per event plus Apify platform usage. Each property saved is one Property scraped event; with enrichDetails on, each property also adds one Property detail enrichment event. Every run has one Actor Start event plus the platform usage of the run. For example, 50 properties without enrichment are 50 Property scraped events plus the start event and usage; with enrichment they are 50 of each. maxResults caps the count, so it doubles as a spending limit. The live Pricing tab on this page shows the current event prices.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~booking-scraper-pro/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"search": "Lisbon", "checkIn": "2026-11-13", "checkOut": "2026-11-15", "currency": "EUR", "maxResults": 25}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("khadinakbar/booking-scraper-pro").call(run_input={"search": "Rome", "minStars": 4, "maxResults": 30})rated = [p for p in client.dataset(run["defaultDatasetId"]).iterate_items() if p.get("reviewScore")]print(sorted(rated, key=lambda p: p["reviewScore"], reverse=True)[:10])
Use with AI agents (MCP)
Connect the Actor to Claude, ChatGPT or Cursor through Apify MCP and ask:
Find 4-star hotels in Rome for two adults from 13 to 15 November, priced in euros. List the ten best rated with their nightly price and distance from the centre.
The agent sets search, checkIn, checkOut, currency, minStars and maxResults, reads rows with get-dataset-items, sorts by reviewScore, and cites each url. Each property is one event, so maxResults keeps the cost of the request predictable.
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| Rate shopping | Set checkIn, checkOut and currency | Nightly prices with taxes and fees |
| A big city | Split into district or star-band searches | Wider coverage across runs |
| Rating benchmarks | Sort by reviewScore, then reviewCount | Well-reviewed properties first |
| Amenity or description checks | Turn on enrichDetails | Description, amenities and coordinates |
| A known competitor set | Paste property pages into startUrls | Exactly those properties |
Builder's note
I built this for the revenue-manager question of who charges what next to whom, so every row pairs rating, location and, for dated searches, price. I kept detail enrichment optional because most benchmarking only needs the search card, and opening every property page is the slow, extra-cost step.
FAQ
Why is the price empty?
Booking.com shows nightly prices for a specific stay. Add checkIn and checkOut to the input.
Can I get guest reviews?
This Actor returns scores and review counts. For review text, use the property URLs with the Booking.com Reviews Scraper linked above.
How do I cover a whole city?
Run several focused searches and merge them on hotelId.
Responsible use
This Actor collects publicly available Booking.com property data. Respect Booking.com's terms and applicable laws such as the GDPR when you store or share results. Booking.com is a trademark of its owner; this independent Actor is not affiliated with or endorsed by Booking.com.