Documentation Python quickstart Blog Free tools hello@quanticdata.ioLog in

Booking.com scraper API

A Booking.com scraper API that turns a place, an address or a pair of coordinates plus your check-in and check-out into property rows: the nightly price for those exact dates in the currency you ask for, the struck-through price and the discount it implies, review score and count, star class, room type, coordinates and a photo. One call, no browser to drive.

$0.02 per delivered property · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/booking_stays/run
$ curl $QD/booking_stays/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"location": "Roma,  Italia", "check_in_date": "2026-10-16", "check_out_date": "2026-10-17", "adults": 2, "currency": "EUR", "lang": "it", "country": "it", "max_results": 20}'
{ "status": "done", "count": 20,
  "results": [
    {
      "name": "…",
      "property_id": …,
      "price": "…",
      "price_value": … } ],
  "cost": 0.4 }
# 20 propertys × $0.02 · nothing delivered, nothing charged
$0.02 / property100 propertys on the free $2 every month
Semantic inputlocation, latitude, longitude — no URL lists
Up to 100propertys per run, pagination handled for you
No browserread over HTTP/TLS — cheaper and faster than rendering

Try it

Booking.com stays, running now

Change the input and run it against the live collector — nothing to install, no sign-up.

Run it from your own code, on your own inputs

Same collector, same rows — $2 of free API credit every month, no card.

Get my free API key

What a Booking.com scraper API does

A hotel rate is not a property of the hotel, it is a property of the stay. The same room is one price on a Tuesday in November and another on New Year's Eve, so a rate you cannot tie to a date is not a rate at all. Check-in and check-out are required inputs here, every row echoes them back, and the price you receive is the one Booking.com was showing for that stay when the run happened.

Search by address and you get the properties around it. That is what a competitive set is: not "hotels in this city" but "what the places next door are charging for the same night". Pass a street address and it is resolved to coordinates before the search, so you do not have to look up any internal destination id first.

The struck-through price is worth as much as the price. When it is there, the property is discounting, and by how much — which is the difference between reading a market and reading a price list.

Limits, in plain numbers

Everything that bounds one run of this collector. No hidden throttles.

Max per run

100 propertys

Price

$0.02 / property

Per 1,000

$20.00

Failed runs

Free zero rows, zero charge

Free every month

$2 no card

Rate limit

60 req/min on the free tier

What one property looks like

Every delivered property carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

FieldTypeWhat it holds
rankinteger1-based position in Booking's order.
namestringProperty name.
property_idintegerBooking's own property id.
pricestringNightly price as shown.
price_valuenumberNumeric price for the stay requested, taxes and fees included.
currencystringCurrency of the price.
strikethrough_valuenumberPrice before the discount, when Booking shows one.
discount_pctintegerDiscount implied by the two prices.
review_scorenumberGuest score out of 10.
review_wordstringBooking's word for that score.
review_countintegerNumber of reviews.
starsintegerStar class; 0 on apartments and B&Bs that have none.
room_typestringThe unit Booking recommends for this stay.
areastringNeighbourhood as Booking names it.
distance_mintegerMetres from the point you searched — how close this competitor actually is.
distance_textstringThe distance as Booking phrases it.
free_cancellationbooleanBooking shows a free-cancellation badge on this offer.
breakfast_includedbooleanBreakfast is included in this price.
rooms_left_at_priceintegerScarcity Booking declares: "we have N left at this price".
taxes_includedbooleanWhether the price already includes taxes and charges — without it two prices are not comparable.
sustainabilitybooleanProperty carries a sustainability certification.
preferredbooleanBooking "Preferred" partner.
quality_classintegerBooking's own 1-5 quality rating, for properties with no star class.
latitudenumberProperty latitude.
longitudenumberProperty longitude.
countrystringCountry code.
checkin_fromstringEarliest check-in time.
checkout_untilstringLatest check-out time.
photostringMain photo URL.
photosstring[]Every photo Booking returned for the card.
check_in_datestringEcho of the request.
check_out_datestringEcho of the request.

Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

InputTypeRequiredWhat it does
locationstringnoCity, area or street address, e.g. "Roma, Italia" or "12 Marine Parade, Napier, New Zealand". Resolved to coordinates first; pass latitude/longitude instead to skip that step.
latitudenumbernoAlternative to location.
longitudenumbernoAlternative to location.
check_in_datestringyesYYYY-MM-DD
check_out_datestringyesYYYY-MM-DD (after check-in)
adultsintegernoGuests (1-30).
roomsintegernoRooms (1-10).
currencystringnoPrice currency (EUR, USD, NZD...).
countrystringnoISO 3166-1 alpha-2 code — proxy exit geo and Google locale (gl). Omit for the default pool.
langstringnoInterface language (hl), e.g. en, it, de.
max_resultsintegernoHow many properties to deliver at most (1–50). You pay only for delivered properties.

Pricing

Booking.com scraper API pricing

$0.02 per delivered property. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 100 propertys before you spend anything.

$0.02per delivered property$20 per 1,000 delivered propertys
100 propertyson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe catalog returns your key's price

Pay as you go

$0/mo
  • $2 free credit / month
  • 60 requests / min
  • List unit prices

Starter

$19/mo
  • $15 free credit / month
  • 300 requests / min
  • 10% off unit prices

Scale

$299/mo
  • $250 free credit / month
  • 1,200 requests / min
  • 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.

Integration

One POST, typed rows

Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/scraper/collectors/booking_stays/run.

curl -X POST https://api.quanticdata.io/v1/scraper/collectors/booking_stays/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location":"Roma, Italia","check_in_date":"2026-10-16","check_out_date":"2026-10-17","adults":2,"currency":"EUR","lang":"it","country":"it","max_results":20}'

What people build with the Booking.com scraper API

Three shapes of work this endpoint was designed around.

Rate shopping

A property checks its own position against the places around it for the same night, on the dates that actually matter to the week ahead.

Revenue management

Run one address across a rolling calendar of stay dates and the demand curve draws itself: which nights the neighbours priced up, which they discounted.

Discount monitoring

The struck-through price shows who is buying occupancy. Track it over a week and you see the promotion before it shows up in your own numbers.

Market and travel research

Price bands by area and star class, computed from rows you can cite, with coordinates on every one of them.

Scarcity watching

Booking says how many rooms are left at that price. Read it across a comp set and you see who is filling up before the rate moves.

Booking.com scraper API versus rolling your own

The differences that actually cost time when you build this in-house.

DIY scraperThis collector
What you get backA page to parse yourselfRows with the price already parsed as a number
The stayDates are yours to encodeCheck-in and check-out are required inputs, echoed on every row
Around an addressA city, or an id to look up firstCoordinates resolved from the address for you
DiscountNot exposedStruck-through price and the percentage it implies
DistanceYours to compute from coordinatesMetres from the point you searched, on every row
What the price includesRead the page and guessTaxes, breakfast and free cancellation as fields
BillingRequests, successful or notOnly delivered properties

FAQ

Questions we get about the Booking.com scraper API.

Something else? Ask us →

Is there an official Booking.com API?

There is, for partners: the Demand API is for affiliates and connected properties, behind approval and a contract, and it serves the inventory of that relationship. This collector reads what a guest searching Booking.com sees, for any place and any dates, with an API key and nothing to sign.

Do I have to give dates?

Yes, and it is the point. Check-in and check-out are required and validated before the run starts, because a nightly price only exists for a stay. Guests default to two and rooms to one.

Can I search around a specific address?

Yes. Pass the address as location and it is resolved to coordinates first, then the search runs around that point — the properties come back ordered by how close they are. If you already hold coordinates, pass latitude and longitude and the run skips that step.

How much does Booking.com scraping cost here?

$0.02 per delivered property. Runs that come back empty are not billed, and there is $2 of free credit every month, no card.

Do I need to handle the anti-bot myself?

No. That is the part you are buying: residential exits, the fingerprint and the retries are ours, and what you receive is JSON with the fields already typed.

Is the price comparable between properties?

That is what taxes_included is for: it says whether the figure already carries taxes and charges. Two prices where that flag differs are not the same number, and the field is there so you are not comparing them by accident.

How many properties per run?

Up to 100, paginated 20 at a time. When a run stops before the number you asked for, it says so in partial with a note explaining why, instead of quietly returning a short list.

Is there a free Booking.com scraper API?

Every account gets $2 of credit every month with no card, which is about 100 delivered propertys on this endpoint at $0.02 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

How much does one run cost?

Multiply the rows you actually receive by $0.02. A run capped at 100 propertys — the maximum for this collector — costs $2 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.

Run the Booking.com scraper API now

$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.

Get my free API key