Booking.com Scraper — Hotel Prices, Ratings & Availability avatar

Booking.com Scraper — Hotel Prices, Ratings & Availability

Pricing

from $20.00 / 1,000 result scrapeds

Go to Apify Store
Booking.com Scraper — Hotel Prices, Ratings & Availability

Booking.com Scraper — Hotel Prices, Ratings & Availability

Scrape live hotel search results from Booking.com: name, address, review score, review count, price per night and total, currency, and direct booking links for any European destination and dates.

Pricing

from $20.00 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Categories

Share

What does Booking.com Scraper do?

Booking.com Scraper extracts live hotel search results from Booking.com, Europe's largest online travel agency. Give it a destination and check-in/check-out dates, and it returns the hotels Booking.com's own destination search surfaces for those dates: name, address, guest review score, review count, price per night and total, currency, and a direct booking link. No login or cookies required.

Use it to collect structured hotel data via the Apify platform with full API access, scheduling, integrations, and no need to run a browser yourself.

Why use Booking.com Scraper?

  • Price monitoring — Track nightly rates for specific hotels or destinations over time and catch price drops or spikes
  • Travel research — Compare guest review scores, prices, and locations for a destination without manually clicking through the site
  • Rate benchmarking — Feed live Booking.com pricing into your own competitor or market-rate analysis
  • Meta-search / travel apps — Pull current Booking.com listings into your own booking tool or comparison site
  • Corporate travel — Check hotel rates for upcoming business trips in bulk, across multiple destinations and date ranges

How to use Booking.com Scraper

  1. Go to the Input tab
  2. Enter a Destination (city, region, or landmark, e.g. Amsterdam, Paris, Rijksmuseum)
  3. Enter a Check-in date and Check-out date in YYYY-MM-DD format
  4. Optionally set adults, rooms, max results, or a review-score/price filter
  5. Click Start and wait for the run to finish
  6. Download your data from the Output tab in JSON, CSV, Excel, or other formats

Input

FieldTypeRequiredDescription
destinationStringNoCity, region, or landmark (default: Amsterdam)
checkInStringNoCheck-in date, YYYY-MM-DD (default: ~30 days out)
checkOutStringNoCheck-out date, YYYY-MM-DD (default: check-in + 2 nights)
adultsIntegerNoNumber of adult guests (default: 2)
roomsIntegerNoNumber of rooms (default: 1)
maxResultsIntegerNoMaximum hotels to return, up to 30 (default: 20)
minReviewScoreNumberNoPost-filter: minimum guest review score (0-10 scale)
minPricePerNightIntegerNoPost-filter: minimum price per night
maxPricePerNightIntegerNoPost-filter: maximum price per night
proxyConfigurationObjectNoProxy settings (Apify automatic proxy works — see Limitations)

The three filter fields are applied to Booking.com's own results after they load — they don't change what Booking.com searches, only what gets pushed to the dataset. Booking.com's own search already returns its best-matching properties for the destination and dates, so this is a sharpening filter, not a full re-query.

Output

Booking.com's own destination search surfaces its top-matching hotels for the given destination and dates — typically 6 to 20 properties, not a fully paginated catalogue of every hotel in a city. maxResults caps how many of those get pushed; it does not trigger extra requests or unlock more results.

FieldTypeExample
hotelNameString"Tribe Amsterdam City"
addressString"Hotel in Amsterdam Noord, Amsterdam"
reviewScoreNumber9.0
reviewScoreWordString"Wonderful"
reviewCountNumber5922
priceTotalNumber91.07
pricePerNightNumber45.54
currencyString"EUR"
nightsNumber2
availabilityBooleantrue
urlStringDirect hotel page on Booking.com
imageUrlStringPrimary hotel photo URL

Example output

{
"hotelId": "tribe-amsterdam-city",
"hotelName": "Tribe Amsterdam City",
"url": "https://www.booking.com/hotel/nl/tribe-amsterdam-city.html",
"address": "Hotel in Amsterdam Noord, Amsterdam",
"city": "Amsterdam",
"countryCode": "nl",
"starRating": null,
"reviewScore": 9.0,
"reviewScoreScale": "1-10",
"reviewScoreWord": "Wonderful",
"reviewCount": 5922,
"priceTotal": 91.07,
"pricePerNight": 91.07,
"currency": "EUR",
"nights": 1,
"roomType": null,
"availability": true,
"imageUrl": "https://cf.bstatic.com/xdata/images/hotel/square600/880172813.webp",
"checkIn": "2026-10-19",
"checkOut": "2026-10-21",
"adults": 2,
"searchDestination": "Amsterdam",
"scrapedAt": "2026-09-04T18:30:00.000Z"
}

Data fields

FieldDescriptionExample
reviewScoreGuest review score on Booking.com's own 1-10 scale9.0
reviewScoreWordBooking.com's own label for the scoreWonderful
priceTotalBooking.com's own "Price from" figure, for the stay length in nights — see Limitations91.07
pricePerNightpriceTotal divided by nights91.07
nightsStay length priceTotal actually covers, per Booking.com's own label — see Limitations1
availabilitytrue = bookable at the searched dates, false = explicitly sold out, null = not statedtrue
starRatingOfficial star classification — see Limitationsnull
roomTypeSpecific room/rate name — see Limitationsnull

How much does it cost to scrape Booking.com?

Booking.com is protected by AWS WAF Bot Control and renders results client-side, so this actor uses a real, JS-executing headless browser rather than a plain HTTP request. The browser + compute cost is folded into the actor's per-event price, not billed separately.

It costs $0.01 per run plus $0.005 per result (per hotel returned). A typical search returning 10-20 hotels costs roughly $0.06-$0.11. Running the same destination repeatedly (e.g. daily rate tracking) is the most cost-efficient way to use this actor, since each run is one browser session covering the whole search.

The Apify Free plan includes $5 of monthly credits. Usage cost for a run only settles after it reports SUCCEEDED — reading the dataset mid-run will undercount what the run ultimately costs.

Limitations

  • Curated results, not a full catalogue. Booking.com's own destination search returns its top-matching properties for the destination and dates (typically 6-20), not every hotel in a city. This actor returns exactly what Booking.com's search surfaces — it does not paginate beyond that.
  • starRating and roomType are usually null. Booking.com doesn't expose official star classification or a specific room/rate name at the search-result level for most destinations — only guest review score, which this actor does capture reliably.
  • Price is Booking.com's own "Price from" indicator, not always scaled to the full requested stay. Verified live: this destination-search price is tied to Booking's own reference period for the property (nights in the output, often 1 night) rather than always recalculating for the exact checkIn-checkOut span you searched — the same behavior you'd see browsing Booking.com's own destination pages directly. Use nights alongside priceTotal/pricePerNight rather than assuming it always matches checkOut minus checkIn.
  • Proxy. This actor uses a Residential proxy by default. Booking.com's AWS WAF Bot Control silently stalls every connection from Apify's automatic (datacenter) proxy pool — verified live, every attempt timed out with no response at all. Residential clears it reliably.
  • Occupancy changes are best-effort. Adjusting adults/rooms away from Booking.com's own defaults (2 adults, 1 room) uses UI automation that can occasionally fail silently; the search still runs with whatever occupancy was actually set.
  • Data is scraped from the public website and may change without notice.
  • Respect Booking.com's terms of service and use responsibly.

FAQ and support

Is it legal to scrape Booking.com? Booking.com Scraper accesses only publicly available hotel search results that any visitor can see, without logging in or bypassing payment. Always review and comply with the target website's Terms of Service before use.

Why did I get fewer results than maxResults? Booking.com's own destination search for that city/date combination returned fewer hotels than your maxResults value, or a review-score/price filter excluded some of them. See Output above.

I found a bug or need help Please submit an issue on the Issues tab and we'll get back to you quickly. For custom scraping solutions, reach out via the same channel.

How to scrape Booking.com data

  1. Go to this actor's page on the Apify Store.
  2. Click Try for free to open it in Apify Console.
  3. Enter your destination, check-in date, and check-out date.
  4. Set the number of adults, rooms, and max results if needed.
  5. Click Start and wait for the run to finish — most searches complete in under a minute.
  6. Download your data in JSON, CSV, Excel, or connect it to your workflow via the Apify API.

You can also schedule daily runs to track hotel rates in a destination over time, set up webhooks for price-drop notifications, or integrate results directly into your own booking or comparison tool using the Apify API.

Need this data on a schedule, or a custom version?

We run this scraper as a managed service for businesses: scheduled runs, price-drop alerts, delta detection, and delivery to your inbox, Google Sheets, or API — maintenance included. We can also build a custom version with room-level detail, multi-destination batches, or your exact fields.

See studioamba.dev/services or email hello@studioamba.dev for a free data sample. We maintain 700+ European web scrapers and answer within one business day.