Booking.com Scraper - 50+ fields per property avatar

Booking.com Scraper - 50+ fields per property

Pricing

from $4.10 / 1,000 property scrapeds

Go to Apify Store
Booking.com Scraper - 50+ fields per property

Booking.com Scraper - 50+ fields per property

[💵 $8.00 / 1K · no start fee] Scrape Booking.com hotels, apartments and homes for any destination and dates. 50+ fields per property: exact coordinates, street address, review subscores, discounts, local-currency rates, free-cancellation deadline. Filter by price, stars, score and type.

Pricing

from $4.10 / 1,000 property scrapeds

Rating

0.0

(0)

Developer

WebData Labs

WebData Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Booking.com Scraper - prices, coordinates, review subscores and policies

Scrape Booking.com hotels, apartments and homes into a clean spreadsheet. 60 fields per property, including the exact coordinates and the free-cancellation deadline that other Booking scrapers leave out.

Give it a destination and your dates - or paste a Booking.com search URL - and get back every property with nightly rate, stay total, what the price includes, star rating, review score, review subscore, street address, latitude/longitude, distance to the centre, room composition and cancellation policy.

✅ What you get / ❌ what this isn't

✅ This Actor gives you❌ This Actor is not
60 fields per property, not the usual ~20Not a name-and-price list
Exact latitude/longitude and street address on every rowNot "2.1 km from centre" and nothing else
Nightly rate and stay total, plus the price in the property's own currencyNot one ambiguous price number
Free-cancellation deadline as a real timestamp, not a yes/noNot a boolean you still have to check by hand
Review subscores (Location 9.3, Staff 9.1...) alongside the headline scoreNot the overall score only
Beds, bedrooms, bathrooms, kitchens for apartments and homesNot hotels-only
No start fee, no warm-up surcharge - you pay per property, full stopNot a per-run charge on top of per-result
Many destinations in one runNot one run per city

🔎 Why this one

  • The fields that make the data usable. Coordinates and street address mean you can map, geofence or join to your own data straight away. Most Booking scrapers hand you a distance string and a hotel name.
  • Prices you can actually compare. Booking shows some searches as a nightly rate and others as a stay total, depending on which experiment your session lands in. This Actor always returns both, plus priceBeforeDiscount and the itemised discounts.
  • Taxes broken out as a number when Booking states them. Where the rate is quoted exclusive ("+US$25 taxes and fees"), you get taxesAndFeesIncluded: false and taxesAndFeesAmount: 25 instead of a string to re-parse. Booking only returns this on some sessions, so treat it as a bonus rather than a guarantee.
  • The cancellation deadline, not just a flag. freeCancellationUntil is an ISO timestamp - the actual moment the free window closes.
  • Real pagination. Booking.com ignores offset in the URL and pages results in through its own internal call. This Actor drives that call directly, so you get hundreds of properties per destination instead of the first 25.
  • Fast. The first page costs one browser load; every further 25 properties takes well under a second. ~150 properties in about 13 seconds.
  • No start fee. A run that finds nothing costs nothing.

👥 Who it's for

  • Revenue managers and hoteliers tracking competitor rates by date, star class and district.
  • Travel and OTA analysts building rate-parity or price-index datasets.
  • Short-let and property investors comparing apartment and whole-home inventory by neighbourhood.
  • Market researchers mapping accommodation supply, pricing and ratings by geography.
  • Developers who need Booking.com inventory as clean JSON or CSV.

⚙️ How to scrape Booking.com

  1. Open the Actor on Apify.
  2. Type a Location, e.g. Paris.
  3. Set Check-in and Check-out. Leave them empty for a rolling 2-night stay 30 days out - handy for scheduled runs.
  4. Set Adults, Children and Rooms - Booking prices by occupancy, so these change the rates you get.
  5. Set Maximum properties - the budget for the whole run, split evenly across your locations.
  6. Optional: filter by price, star rating, review score, property type or free cancellation, and pick a sort order.
  7. Click Start, then download the results as CSV, JSON or Excel.

Prefer a URL? Skip steps 2-6 and paste your Booking.com search URL into Booking.com search URLs - the filters already in it are honoured.

📥 Input

{
"locationQuery": "Barcelona",
"locationQueries": ["Amsterdam"],
"checkIn": "2026-09-10",
"checkOut": "2026-09-13",
"adults": 2,
"rooms": 1,
"maxResults": 200,
"currency": "EUR",
"sortBy": "reviewScore",
"minReviewScore": 8,
"starRatings": ["4", "5"],
"freeCancellationOnly": true
}
FieldMeaning
locationQueryCity, region, country, district or property name, as you would type it on Booking.com.
locationQueriesExtra locations to search in the same run, up to 25.
startUrlsPaste Booking.com search URLs; their filters are used as-is.
checkIn / checkOutYYYY-MM-DD. Leave empty for a rolling window 30 days out.
adults, children, childrenAges, roomsOccupancy. Booking prices depend on it.
maxResultsProperties for the whole run, split across your locations.
sortByTop picks, price, review score, stars high/low, distance from centre.
currency / language3-letter currency code and a Booking language code such as en-us.
minPricePerNight / maxPricePerNightNightly rate range, in the currency above.
starRatingsKeep only these star ratings, e.g. ["4", "5"].
minReviewScore6+, 7+, 8+ or 9+ out of 10.
propertyTypesHotels, apartments, entire homes, hostels, guest houses, B&Bs, resorts, villas.
freeCancellationOnlyOnly rates that can be cancelled free.
proxyConfigurationApify Proxy residential by default. Recommended to leave as-is.

📤 Output

One row per property:

namepricePerNightpricecurrencyreviewScorereviewCountstarRatingdistrictfreeCancellationurl
Castex Hotel178.15356.3USD7.482334th arr., Paristruelink

Identity: name, hotelId, url, slug, accommodationTypeId

Location: latitude, longitude, address, city, countryCode, district, popularDistrict, distanceFromCentre, distanceFromCentreMetres, isCentrallyLocated, publicTransport, beachDistance

Ratings: starRating, starRatingType, reviewScore, reviewCount, reviewLabel, topSubscore, topSubscoreName

Pricing: price, pricePerNight, currency, priceBeforeDiscount, discountAmount, discounts, priceInPropertyCurrency, propertyCurrency, chargesInfo, taxesAndFeesIncluded, taxesAndFeesAmount

Policies and badges: freeCancellation, freeCancellationUntil, noPrepayment, petsAllowedFree, isPreferredPartner, isSponsored, isSoldOut, isNewlyOpened, isSustainable, hostType, urgencyMessage

Rooms: roomId, bedCount, bedrooms, bathrooms, kitchens, livingRooms

Media and context: photoUrl, thumbnailUrl, checkIn, checkOut, nights, searchQuery, destination, totalResultsAvailable, scrapedAt

Quick preview

InputOutput
Paris, 2 adults, 2 nights25-1,000 properties with rates, coordinates and review scores
Barcelona + Amsterdam, score 8+, sorted by review scoreThe best-rated stays in both cities, tagged by city, in one dataset
Lisbon, propertyTypes: ["apartments"], 4 adultsApartments with bedrooms, bathrooms and kitchen counts on every row

💵 How much does it cost?

$8.00 per 1,000 properties. No start fee - a run that returns nothing costs you nothing, and there is no surcharge for small runs.

PropertiesCost
25 (one page)$0.20
100$0.80
1,000$8.00

🚀 Ready-made setups

Five ready-to-run tasks ship with this Actor - open one, hit Start, or copy it and swap in your own destination and dates:

TaskWhat it does
Scrape 5-star hotels in Paris on Booking.comEvery 5-star property in Paris, best-rated first, with coordinates and nightly rates.
Find cheap Booking.com hotels in BarcelonaBarcelona stays under $90 a night, cheapest first, with review scores and free-cancellation flags.
Scrape apartments and aparthotels in LisbonLisbon apartments for 4 guests, with bedroom, bathroom and kitchen counts on every row.
Scrape top-rated Booking.com hotels in TokyoTokyo properties scoring 9+ out of 10, with review counts and subscores.
Find New York hotels with free cancellationNew York stays that can be cancelled free, with the cancellation deadline where Booking gives one.

🔁 Run it on the Apify platform

Schedule it to track your competitors' rates every morning, call it from the Apify API, export to CSV/JSON/Excel, or wire it into Make, Zapier, Google Sheets or a webhook so fresh pricing lands wherever you work.

⚠️ Limits and caveats

  • Reads only public Booking.com search results. It does not log in and it does not book anything.
  • Prices are occupancy- and date-specific. Change adults, rooms or the dates and the rates change. Always store checkIn, checkOut and nights with the price - they are on every row for this reason.
  • Booking.com personalises and A/B-tests its ranking. Two runs minutes apart can return slightly different orders and totals. Filters and sorting are honoured; exact ordering is not guaranteed to be reproducible.
  • priceInPropertyCurrency and propertyCurrency appear only when your chosen currency differs from the property's own - Booking omits the conversion otherwise.
  • chargesInfo, taxesAndFeesIncluded and taxesAndFeesAmount depend on Booking returning a charges note for that session; they are populated on some runs and empty on others, for the same search.
  • beachDistance is populated for coastal destinations only.
  • Booking stops serving new properties after roughly 1,000 per search. For bigger sweeps, split by district, price band or property type.
  • propertyTypes uses Booking.com's own grouped categories, so a few neighbouring types come along. Asking for apartments mostly returns apartments but also some aparthotels; entireHomes also matches whole apartments and guest houses. Filter on accommodationTypeId in the output if you need one exact type.
  • Price filters apply to Booking.com's base rate, not to the pricePerNight we return. Once fees and currency conversion are applied, a handful of rows can land slightly above your ceiling. Set the cap ~10% below your true limit, or filter pricePerNight yourself afterwards.
  • Review subscores exist only where Booking has enough reviews to compute one; star ratings are absent for unrated properties such as many guesthouses.
  • Residential proxy is on by default and should stay on. Booking.com answers datacenter IPs with a redirect to its homepage rather than search results, so a datacenter run returns nothing. Each retry moves to a different exit IP; the Actor fails the run loudly rather than reporting a green run with zero rows.
  • Google Maps Business Scraper - local businesses and points of interest around the same coordinates.
  • Trustpilot Review Scraper - reputation data for the brands behind the properties.

❓ FAQ

Do I need a Booking.com account? No. It reads public search results only.

Can I scrape several destinations in one run? Yes - add them to locationQueries. Every row is tagged with the searchQuery it came from.

Can I get more than the first 25 results? Yes. That is a large part of why this Actor exists - Booking ignores offset in the URL, and this Actor drives Booking's own pagination instead.

Is the price per night or for the whole stay? Both. pricePerNight and price (stay total) are on every row, along with nights.

Why do some prices differ from what I see in my browser? Booking personalises rates by currency, occupancy, device and Genius status. Set currency, adults and rooms to match what you want to compare.

Can I reuse a search I built in my browser? Yes - paste the URL into startUrls.

Why are some fields empty? Some fields only exist for some property kinds: bedroom and kitchen counts for apartments and homes, beach distance for coastal destinations, subscores for properties with enough reviews.

🛠️ Support

If a run fails or a field looks wrong, open an Actor issue with the run URL, the input you used, and what you expected. Booking.com changes its internals regularly - reports get fixed quickly.

⭐ Rate this Actor

If this Actor saved you time, please take 30 seconds to leave a review on the Reviews tab - reviews are the main trust signal other users see, and they decide which features get built next. If something is broken, please open an issue first: we typically respond within a day and would love the chance to fix it before you rate.