All scrapers

Travel

Booking.com Scraper

booking.com

97% Success rate
5.4s Avg response
DataDome Protection
1,000 calls Measured over

Booking.com is served through a dedicated plugin endpoint rather than the generic page fetch. Give it a location and it returns the properties already parsed: the name, the price (when you pass check-in and check-out dates), the review score and count, the address and coordinates, a photo and a hotel URL. Set the guests, rooms and currency, and page through as many as you need. It reads Booking's own listing data behind DataDome, so there is no HTML scraping to maintain.

What you can extract

  • Property name and a hotel URL
  • Price (with dates) and currency
  • Review score and review count
  • Full address and coordinates
  • A property photo
  • Any badges (e.g. Genius)

Dedicated endpoints

/travel/booking

Hotels on Booking.com

Booking.com properties for a location: a properties array with name, price, currency, reviewScore, address, coordinates, image and a hotel url. Add checkin/checkout for prices; set adults/rooms/currency; page with max_results.

How to scrape it

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/travel/booking?location=Austin&adults=2"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/travel/booking",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"location": "Austin", "adults": "2"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const data = await su.bookingHotels('Austin', {
  checkin: '2026-10-10',
  checkout: '2026-10-12',
  adults: 2,
});
console.log(data);

Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.

Example response

{
  "location": "Paris",
  "resultsCollected": 25,
  "query": {
    "checkin": "2026-10-19",
    "checkout": "2026-10-21",
    "adults": 2,
    "currency": "EUR"
  },
  "properties": [
    {
      "id": 1666630,
      "name": "citizenM Paris Champs-Élysées",
      "url": "https://www.booking.com/hotel/fr/citizenm-paris-champs-elysees.html",
      "price": 402.0,
      "priceText": "€ 402",
      "currency": "EUR",
      "chargesInfo": "Includes taxes and charges",
      "reviewScore": 8.9,
      "reviewCount": 4028,
      "address": "8th arr., Paris",
      "city": "Paris",
      "country": "fr",
      "latitude": 48.8721,
      "longitude": 2.3009,
      "badges": [
        "Breakfast included"
      ],
      "image": "https://cf.bstatic.com/xdata/images/hotel/square240/...jpg"
    }
  ]
}

Read the API docs

Frequently asked questions

Is it legal to scrape Booking.com?

Collecting publicly available Booking.com data such as hotel names, prices and review scores is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. ScrapeUnblocker returns the public page; what you collect and how you use it is your responsibility.

How do I scrape Booking.com without getting blocked?

Booking.com is protected by DataDome. The ScrapeUnblocker plugin renders the page in a real browser, rotates residential and ISP exits and handles challenges, then returns the properties as JSON. In ScrapeUnblocker's benchmark it returned real content on 97% of 1,000 calls, about 5.4s per call.

What Booking.com data can I get?

Each property comes with its name and a clean hotel URL, the price with Booking's own price wording and currency, whether taxes and charges are included, the review score out of 10 and review count, the address, city and country, coordinates, a photo and badges such as Breakfast included. Prices appear when you pass both checkin and checkout dates.

Do I need a Booking.com API or account?

No. The Booking.com plugin returns hotel search results as JSON without a Booking.com affiliate or API account. Send a location with your ScrapeUnblocker key, add checkin and checkout for prices, and set adults, children and rooms as needed. Without dates you still get the property list, review scores and location.

Can I get Booking.com prices in a specific currency or market?

Yes. Set currency to one of 20 supported codes, including USD (the default), EUR, GBP, JPY, AED and PLN, and pass proxy_country with an ISO-2 code to choose the exit country. Collect up to 500 properties per search with max_results.

How much does it cost to scrape Booking.com?

Each Booking.com plugin call is one request, and 1 request = 1 credit: EUR 1.00 per 1,000 on pay as you go, down to about EUR 0.55 per 1,000 on the Ultimate plan. A plugin search is one call, and the response already holds the full result set. Blocks, timeouts and errors on ScrapeUnblocker's side are not billed. The free trial includes 500 requests, no card.

Related scrapers

Start scraping this site today

Free tier included. No credit card required to test it.