Booking.com API
- Data from Booking.com
Booking.com API for hotel prices, rooms and reviews
Look a hotel up by name, then read what Booking.com shows a guest: a nightly price calendar, each room type with its rate plans, and the reviews with the property’s replies. Structured JSON, priced per call.
1,000 free credits a month · Failed requests are free · Free during the beta
Endpoints and prices checked against the API on
For many hotels Booking.com is the largest source of OTA bookings, so its price is the one revenue teams watch most closely. Its own APIs are built for partners who sell or supply rooms, not for teams that want to read prices across many hotels. This API returns the public property page as data: you send the hotel’s Booking.com slug and get back prices, rooms and reviews.
Prices on Booking.com depend on where the visitor is. Set country_market and the request is priced as a guest from that country would see it, and the response says which market it was actually collected from. Booking.com returns 61 nights at a time; longer calendars are paged for you inside the same call, so a full year is one request and one charge.
What you get
recommended_match— the hotel’s Booking.com slug and country from a name and city search, with a confidence scorecalendar[]— one entry per night: available, price, currency and minimum length of staypoint_of_sale— the visitor market the prices were collected for, and whether it was verifiedrooms[].rate_plans[]— price per rate plan, with free cancellation, no prepayment and breakfast flagsroom_size, max_persons, beds— room details, where Booking.com publishes themreviews[]— rating out of 10, title, text, guest country, room type, stay date and the property’s replyprovenance— when and how each nightly price was observed
One call, structured JSON
POST /v1/ota/booking — 8 credits per successful call.
curl -X POST "https://api.scrapercompany.com/v1/ota/booking" \
-H "x-api-key: $SCRAPERCOMPANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"pagename": "moxy-boston-downtown",
"country": "us",
"days": 61,
"currency": "USD"
}'{
"search_parameters": {
"engine": "booking_calendar",
"pagename": "moxy-boston-downtown",
"country": "us",
"start_date": "2029-02-18",
"days": 3,
"currency": "USD",
"adults": 2,
"rooms": 1,
"country_market": "GB"
},
"property": {
"pagename": "moxy-boston-downtown",
"hotel_id": 5375786
},
"point_of_sale": {
"country_market": "GB",
"egress_mode": "proxy",
"egress_market": "GB",
"egress_market_verified": true
},
"calendar": [
{
"stay_date": "2029-02-18",
"available": true,
"availability": "available",
"is_soldout": false,
"price": 453,
"currency": "USD",
"min_length_of_stay": 1,
"provenance": {
"schema_version": 1,
"observation_id": "rateobs_0123456789abcdef0123456789abcdef",
"collection_id": "ratecol_0123456789abcdef0123456789abcdef",
"observed_at": "2026-08-07T01:23:45.678Z",
"source": "booking_com",
"source_kind": "ota_calendar",
"collector": "scrapingme.ota.booking",
"source_property_id": "ChUIoben2Mv6-CYaCi9tLzA3czVwbjQQAQ",
"requested_market": "US",
"requested_currency": "USD",
"returned_currency": "USD",
"egress_mode": "direct",
"price_basis": "room_base_before_taxes_and_fees",
"derivation": "normalized_upstream"
}
},
{
"stay_date": "2029-02-19",
"available": false,
"availability": "sold_out",
"is_soldout": true,
"price": null,
"currency": "USD",
"min_length_of_stay": 1
}
],
"unavailable_dates": [
"2029-02-19",
"2029-02-20"
],
"meta": {
"source": "booking",
"collection_id": "ratecol_0123456789abcdef0123456789abcdef",
"observed_at": "2026-08-07T01:23:45.678Z",
"calls": 1,
"wire_bytes": 454,
"elapsed_s": 2.147,
"dates": 3,
"priced": 1
}
}Endpoints and price per call
Credits per successful call, and what one call costs on the Starter, Growth, Scale plans. Failed requests cost nothing. See all plans.
| Endpoint | What it returns | Credits | Starter · Growth · Scale |
|---|---|---|---|
| Hotel search POST /v1/ota/booking/search | Booking.com slug for a hotel name and city, with match confidence | 2 credits | $0.0020 · $0.0012 · $0.0008 |
| Price calendar POST /v1/ota/booking | Nightly prices from a start date, 61 nights by default and up to 365 in one call | 8 credits | $0.0078 · $0.0048 · $0.0032 |
| Rooms and rate plans POST /v1/ota/booking/rooms | Every room type and rate plan for one stay | 8 credits | $0.0078 · $0.0048 · $0.0032 |
| Reviews POST /v1/ota/booking/reviews | Guest reviews, up to 25 per page, sorted or filtered by keyword | 2 credits | $0.0020 · $0.0012 · $0.0008 |
FAQ
Frequently asked questions
Read next
Does Booking.com have a public API?
Not one you can sign up for. Booking.com’s Demand API is for approved affiliate partners, and its Connectivity APIs are for property-management systems and channel managers that supply rooms. Neither is meant for reading prices across hotels you do not manage, which is what this API does.
How do I find a hotel’s Booking.com ID?
Send the hotel name and city to the hotel search endpoint. It returns the slug and country from the hotel’s Booking.com URL (for booking.com/hotel/us/moxy-boston-downtown.html, the slug is moxy-boston-downtown and the country is us), with a confidence score. Store it once and reuse it.
Can I see the prices guests in another country see?
Yes. Booking.com prices by the visitor’s country, so set country_market (for example GB or DE) and the request is collected from that market. The point_of_sale block in the response confirms which market the prices came from.
How many nights does one call return?
Up to 365. Booking.com returns 61 nights per response, so the API pages through longer windows for you inside the same call. It is billed once, at the calendar price, however many nights you ask for; a full year takes longer to answer than 61 nights.
Do failed requests cost credits?
No. A failed or blocked call (any 4xx or 5xx response) costs 0 credits, and so does a search page that comes back empty. You pay only for successful results.
How do I get an API key?
Create an account on the sign-up page. Public sign-up is invite-only during the beta, so join the waitlist there and we will email you when your account is ready. The Free plan includes 1,000 credits a month, and the API is free while it is in beta. You create and rotate keys yourself in the dashboard.
More APIs on the same key
All APIsExpedia API
Look a hotel up by name, then read what Expedia shows a guest for one stay: every room type and rate plan with its total, nightly price and cancellation terms, and the guest reviews with the property’s replies.
Hotels.com API
Find a hotel’s Hotels.com id by name, then read what a guest on the Hotels.com site for their country sees: the headline price for a stay, every room type and rate plan, and the guest reviews.
Agoda API
Look a hotel up by name, then read every room type and rate plan Agoda shows a guest for one stay, with the stay total, discounts, meal plan and cancellation terms, in any of 23 currencies.
Tripadvisor API
Send a hotel’s Tripadvisor id and a stay, and get the offers Tripadvisor lists from Booking.com, Expedia, Hotels.com and other sites, each with what its price means. Read the hotel’s guest reviews and management replies from the same id.
Airbnb API
Search Airbnb by destination or map area and get each listing with its trip price and breakdown. Then read a listing’s calendar: availability, stay rules and the price Airbnb itself quotes for the nights you choose. Structured JSON, priced per call.
Vrbo API
Search Vrbo for a destination and stay, then quote any rental for exact dates: Vrbo’s nightly figure, its fee-inclusive total, the payment model and whether the dates can be booked. Structured JSON, priced per call.
Start with 1,000 free credits a month
Join the waitlist and we will email you when your account is ready: your own API keys, 1,000 free credits a month, and the API is free during the beta.