Skip to content

Booking Scraper

Try for free

Scrape public Booking.com hotels and search results: names, prices, ratings, rooms, facilities, and photos.

🏨 Booking.com Scraper

Collect hotels, apartments, and other stays from Booking.com with prices, ratings, rooms, facilities, photos, and guest-score breakdowns. Search a city, paste a search URL, or paste a hotel URL, and get one clean row per property you can export to JSON, CSV, or Excel. Properties cost $2.80 per 1,000.

No Booking.com login is needed. The actor reads public search and property data over plain HTTP, so runs are quick.

✨ Why use Booking.com Scraper?

  • 🔓 No login — public search and property pages only.
  • 🏙️ Search or URLs — type a destination, or paste Booking.com search and hotel URLs.
  • 💶 Real stay prices — price for your dates, guests, rooms, and currency.
  • 🛏️ Rooms and facilities — room types, bed types, price options, cancellation type, and facility groups.
  • ⭐ Guest scores — overall rating, review count, and category scores such as cleanliness and comfort.
  • 🎛️ Filters — property type, stars, minimum rating, nightly price range, sort order, 25 currencies, and 30 languages.

🎯 Use cases

  • 💰 Price comparison — compare hotel prices for a city and a set of dates.
  • 🏘️ Market research — list apartments with ratings, review counts, and photos.
  • 🔄 Price monitoring — refresh room prices and facilities for hotels you already track.
  • 🧼 Quality analysis — pull guest-score breakdowns such as cleanliness, location, and staff.
  • 🗺️ Travel apps — feed property data, coordinates, and photos into your own product.

🚀 How to use

  1. Type a Destination, or paste Start URLs (search or hotel pages).
  2. Set Check-in, Check-out, guests, and Maximum properties.
  3. Optionally filter by property type, stars, rating, price, currency, and language.
  4. Click Start.
  5. Download the dataset as JSON, CSV, or Excel, or read it through the API.

📥 Input

FieldTypeDescription
searchstringCity or area to search, for example Lisbon.
startUrlsarrayBooking.com search URLs or hotel URLs. Filters in a search URL are kept for that URL.
maxItemsintegerMaximum properties for the destination, and again for each URL. Default 10, up to 1,000.
checkIn, checkOutstringYYYY-MM-DD or relative, such as 21 days. Prices need dates.
adults, children, roomsintegerGuests and rooms for price and availability.
propertyTypestringHotels, Apartments, Hostels, Villas, Resorts, and more.
starsCountstringany, 1 to 5, or unrated.
minScorestringMinimum guest rating on a 1 to 10 scale, for example 8.4.
minMaxPricestringNightly price range such as 100-150 or 100+.
sortBystringDistance, top reviewed, price, and other sort orders.
currency, languagestringPrice currency and text language.
proxyConfigurationobjectProxy settings. Datacenter is the default.
{
  "search": "Lisbon",
  "maxItems": 10,
  "checkIn": "2026-11-16",
  "checkOut": "2026-11-18",
  "adults": 2,
  "rooms": 1,
  "currency": "USD",
  "language": "en-gb"
}

A hotel URL returns that property. A check-in date in the past is moved 21 days forward so a saved input keeps returning availability.

📤 Output

One dataset row per property.

FieldDescription
name, type, stars, descriptionProperty name, type, star rating, and description.
price, currencyStay price for your dates and the currency shown.
rating, ratingLabel, reviewsGuest score, label, and review count.
checkIn, checkOut, checkInDate, checkOutDateHouse-rule times and your stay dates.
address, locationFull address, city, country, postal code, and coordinates.
roomsRoom types, beds, facilities, and price options with cancellation type.
images, roomImagesGallery and room photos.
categoryReviews, reviewSummaryCategory scores and a short review summary when shown.
highlights, finePrint, policiesLocation highlights and property rules.

A trimmed item from a real run:

{
  "order": 1,
  "startUrlOrQuery": "Lisbon",
  "name": "FLH Praça Rossio Elegant Flat",
  "type": "apartment",
  "stars": null,
  "price": 309.57,
  "currency": "US$",
  "rating": 8.9,
  "ratingLabel": "Fabulous",
  "reviews": 70,
  "checkIn": "From 15:00",
  "checkOut": "Until 11:00",
  "checkInDate": "2026-11-16",
  "checkOutDate": "2026-11-18",
  "location": { "lat": "38.7141408", "lng": "-9.1388485" },
  "address": {
    "full": "93 Praça Dom Pedro IV, Santa Maria Maior, 1100-157 Lisbon, Portugal",
    "postalCode": "1100-157",
    "city": "Lisbon",
    "country": "pt"
  },
  "rooms": [
    {
      "roomType": "One-Bedroom Apartment",
      "persons": 3,
      "bedTypes": [{ "room": null, "beds": ["2 single beds", "1 sofa bed"] }],
      "facilities": ["Air conditioning", "Iron"],
      "options": [{ "price": 309.57, "currency": "US$", "cancellationType": "non_refundable" }]
    }
  ],
  "categoryReviews": [
    { "title": "Cleanliness", "score": 9.6 },
    { "title": "Comfort", "score": 9.2 }
  ]
}

💰 Pricing

You pay $0.0028 per property saved, which is $2.80 per 1,000 properties. Platform usage (compute and proxy) is billed on top at the usual rates; datacenter proxy traffic is $1 per GB.

Worked example: a 10-property city search costs 10 x $0.0028 = $0.028 in event fees. A billed staging run of that size cost about $0.035 in total, including compute and proxy.

❓ FAQ

Do I need a Booking.com account?

No. The actor only reads public search results and property pages.

Is it legal?

It reads public pages that anyone can open. You are responsible for how you use the data and for following the terms and laws that apply to you.

Why do some fields stay empty?

Prices and room options appear when check-in and check-out dates are set. Star rating is empty when Booking.com does not show stars, which is common for apartments. A hotel URL that does not exist produces no row and the run still succeeds.

Can I filter the search?

Yes. Set property type, stars, a minimum guest rating, a nightly price range, currency, language, guests, and sort order. A search URL's own filters are kept for that URL.

How many properties can I get?

Up to 1,000 per search, which is the most Booking.com shows for one search.

Can I schedule it or use the API?

Yes. Schedule runs, start them through the API, and read the dataset in any export format.

If you are moving a hotel search from another scraper, the same destination, dates, guest counts, and hotel URLs work here.

⚠️ Limits

  • 📍 One destination string per run, plus any start URLs.
  • 🔢 Booking shows about 1,000 properties per search and then repeats itself. The run stops there and the status message says how many exist. Stars, property type and minimum score are sent to Booking, so a filtered search fills those 1,000 places with matches; narrow the area for the rest.
  • 📅 Booking takes stays only about 16 months ahead. Dates further out are ignored and the run says so.
  • ⏱️ About 1,000 detailed properties take roughly 25 minutes, inside the 30-minute default timeout.
  • 🛏️ Each room keeps the search offer rather than every cancellation alternative, and the stay price is the live total.
  • 🔐 Shared Booking.com lists that require a signed-in account are not supported.
  • 📉 If a later page fails, properties already saved stay in the dataset.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.