Booking.com
Booking.com Hotel Details API
Get one Booking.com property in full - rooms and rate plans with their offers, facilities, meals, house rules and fine print, check-in and check-out windows, review score with the per-category subscores, images, brand and location - priced for the stay you ask for, as JSON. Costs 1 credit per request.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsonhotelstringrequiredBooking.com property URL or the bare page slug, 1-500 characters; query params are discarded. Chaining the url a /booking/search row returns is always cheapest - a bare slug under the wrong country_code is a real, BILLED 404.
Example: citizenm-austin-downtown
country_codestringdefault:usTwo-letter country code for the property page. Only consulted for a bare slug, and a wrong one is a real, BILLED 404.
checkinstringCheck-in date, YYYY-MM-DD. Must be sent together with checkout. Omit both and Booking prices a two-night range of its own choosing; the response echoes whichever dates were actually used.
Example: 2026-09-08
checkoutstringCheck-out date, YYYY-MM-DD. Must be later than checkin and sent together with it.
Example: 2026-09-10
adultsintegerdefault:2Adult guests, 1 or more.
children_agesarray<integer>AGES of the accompanying children, 0-17 each, up to 10 entries. Ages, not a count.
Example: [4, 9]
roomsintegerdefault:1Rooms to price, 1 or more.
currencystringdefault:USDISO 4217 currency for every price in the response, 3 letters. Leave it out and Booking prices off the proxy exit, so two identical requests can disagree.
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
results = client.booking.hotel("citizenm-austin-downtown", checkin="2026-09-08", checkout="2026-09-10")
print(results)Response