Hotel price and availability monitoring
Use Booking.com endpoints to turn hotel price and availability monitoring into repeatable API requests with documented inputs and JSON responses.
Turn Booking.com's hotel, flight, and attractions surfaces into structured JSON — search results, hotel detail with rooms and photos, guest reviews, flight offers, and things-to-do listings, replayed directly against Booking.com's own persisted-query GraphQL and REST endpoints. Credential-free.
Extract Booking.com hotel search, hotel detail and reviews, flight search, and attractions search as structured JSON.
Endpoint families
5
Documented params
49
Examples
8
Live catalog snapshot
Active endpoints
8
Methods
GET
Required params
22
Schema refs
8
{
"platform": "Booking.com",
"endpoint": "booking-search",
"method": "GET",
"path": "/booking/search",
"auth": "apiKey"
}Use cases
Extract Booking.com hotel search, hotel detail and reviews, flight search, and attractions search as structured JSON.
Use Booking.com endpoints to turn hotel price and availability monitoring into repeatable API requests with documented inputs and JSON responses.
Use Booking.com endpoints to turn flight fare research into repeatable API requests with documented inputs and JSON responses.
Use Booking.com endpoints to turn attractions and things-to-do discovery into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Booking.com endpoint catalog — 8 endpoints, 49 documented request parameters, and 8 published response schemas — the same catalog Docs and Playground run against.
8 documented Booking.com endpoints, grouped into 5 request families — Search, Reviews and Autocomplete, plus 2 more.
49 request parameters are documented across those Booking.com endpoints, 22 of them required — the full input contract is public before you write any integration code.
8 of the 8 Booking.com endpoints ship a recorded example response, and 8 carry a documented response schema — you can code against the real JSON before the first request.
Booking.com endpoints document their error responses (400, 404, 429 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
8 hosted MCP tools back the Booking.com endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/booking/search
/booking/reviews
/booking-flights/autocomplete
/booking-attractions/detail
/booking/hotel-detail
Endpoint catalog
/booking/searchReturns normalized Booking.com hotel search results for a destination and date range.
Response notes
`data.destination_id` and `data.country` identify the resolved destination and chain directly into `booking-reviews`, `booking-hotel-detail`, and `booking-attractions-search`. Each `data.properties[]` entry's `id` is the `hotel_id` for `booking-reviews`/`booking-hotel-detail`. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "Paris", "checkin": "2026-09-15", "checkout": "2026-09-17", "destination": "Paris", "country": "fr", "destination_id": -1456928, "page": 1, "results_count": 4228, "properties": [ { "id": 470408, "slug": "de-l-europe-paris2", "name": "Hotel de l'Europe", "url": "https://www.booking.com/hotel/fr/de-l-europe-paris2.html", "star_rating": 2, "review_score": 6.9, "review_count": 2386, "price": 250, "currency": "EUR", "photo_url": "https://cf.bstatic.com/xdata/images/hotel/square600/643917388.jpg" } ] } } ```
MCP tool booking_search
/booking/hotel-detailReturns a Booking.com hotel's core detail page: rating, facilities, highlights, house rules, cover photos, and rooms with their own photos.
Response notes
`data.photos` are the hotel's cover/gallery photos; `data.rooms[].photos` are each room's own photos — both are absolute, directly loadable image URLs. `data.house_rules` covers check-in age restrictions, curfew, group limits, exclusive payment methods, children policy, and pet policy. Per-room live pricing and guest-submitted Q&A are not covered by this endpoint. Example response: ```json { "code": 200, "msg": "OK", "data": { "id": 2845972, "name": "MULTIRESIDENCE L'ELYSEE", "address": "10 Rue de something, Paris", "star_rating": 4, "review_count": 293, "rating_scores": {"Location": 9.49, "Staff": 8.83}, "facilities_count": 42, "facilities": [{"title": "Free WiFi", "icon": "wifi"}], "highlights": [{"title": "Fitness center", "icon": "fitness"}], "photos": ["https://cf.bstatic.com/xdata/images/hotel/max1024x768/119583103.jpg?k=..."], "house_rules": { "checkin_age_restriction_phrase": "There's no age requirement for check-in", "allow_children": true, "pets_allowed": "NO", "payment_exclusive": true }, "rooms": [ { "id": 284597201, "name": "Studio Apartment", "photo_count": 26, "photos": ["https://cf.bstatic.com/xdata/images/hotel/max1024x768/525338823.jpg?k=..."] } ] } } ```
MCP tool booking_hotel_detail
/booking/reviewsReturns normalized guest reviews for a Booking.com hotel, with an optional free-text search over review content.
Response notes
`search_text` is a free-text filter over review content, not a review-score-bucket filter. An empty `search_text` returns the full unfiltered review list. Example response: ```json { "code": 200, "msg": "OK", "data": { "hotel_id": 2845972, "reviews_count": 293, "rating_scores": {"Location": 9.49, "Staff": 8.83, "Cleanliness": 8.48}, "page": 1, "reviews": [ { "score": 9.0, "title": "Great stay", "positive_text": "Spacious room, central location", "reviewed_date": "2026-06-01T00:00:00Z", "reviewer_name": "John", "reviewer_country": "United Kingdom" } ] } } ```
MCP tool booking_reviews
/booking-flights/autocompleteReturns Booking.com flight-search location suggestions (airports/cities) for a query string.
Response notes
Each `data.results[].type` + `.code` concatenate directly into `booking-flights-search`'s `from`/`to` composite location id (`{code}.{TYPE}`, upper-cased type). Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "Chengdu", "results": [ {"type": "city", "name": "Chengdu", "code": "CTU", "country": "cn", "country_name": "China"} ] } } ```
MCP tool booking_flights_autocomplete
/booking-flights/searchReturns normalized round-trip or one-way flight offers between two Booking.com flight-search locations.
Response notes
`cabin_class`/`sort` are passed through to Booking.com without a fixed enum check — only `ECONOMY`/`PREMIUM_ECONOMY` and `BEST` are confirmed values; upstream rejects other invalid values directly. `data.offers[].token` is kept for reference but not otherwise resolvable through this API. Example response: ```json { "code": 200, "msg": "OK", "data": { "type": "ROUNDTRIP", "from": "SGN.AIRPORT", "to": "CTU.CITY", "depart": "2026-09-05", "return": "2026-09-12", "total_count": 42, "min_price": 274, "currency": "USD", "offers": [ { "token": "tok1", "price": 274, "currency": "USD", "segments": [ { "departure_airport": "SGN", "arrival_airport": "CTU", "departure_time": "2026-09-05T08:00:00", "arrival_time": "2026-09-05T13:00:00", "legs": [{"departure_airport": "SGN", "arrival_airport": "CTU", "carrier": "VietJet Air", "flight_number": 123, "stops": 0}] } ] } ] } } ```
MCP tool booking_flights_search
/booking-attractions/searchReturns normalized Booking.com attractions/things-to-do search results for a destination and date range, with an optional category/subcategory filter and a discoverable category taxonomy.
Response notes
`category`/`subcategory` are opaque, destination-specific tagnames — not a small fixed enum — so they are passed through without an allowlist; an unrecognized value is rejected by Booking.com directly. `data.categories[]` lists every available category/subcategory (with names and product counts) for the resolved destination so a caller can discover a valid filter value without visiting Booking.com. `data.filtered_count`/`data.unfiltered_count` only differ when a `category`/`subcategory` filter is applied. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "Paris", "destination": "Paris", "country": "fr", "page": 1, "has_next_page": true, "filtered_count": 751, "unfiltered_count": 2800, "categories": [ { "name": "Museums, arts & culture", "tagname": "PTCMCcodv3rh", "product_count": 751, "subcategories": [{"name": "Cultural museums", "tagname": "PTCMCfzh93xC", "product_count": 471}] } ], "products": [ { "id": "PRe4kSVWXdrD", "name": "Seine River Sightseeing Cruise", "slug": "pre4ksvwxdrd-seine-river-sightseeing-cruise", "duration": "Duration: 1 hour", "price": 18, "currency": "EUR", "review_score": 8.6, "review_count": 4842 } ] } } ```
MCP tool booking_attractions_search
/booking-attractions/detailReturns a Booking.com attraction's detail page.
Response notes
`data.id` is the `product_id` for `booking-attractions-reviews`. Example response: ```json { "code": 200, "msg": "OK", "data": { "id": "PRe4kSVWXdrD", "name": "Seine River Sightseeing Cruise", "short_description": "A one-hour boat tour through central Paris", "duration": "Duration: 1 hour", "price": 18, "currency": "EUR", "review_score": 8.6, "review_count": 4842, "city": "Paris" } } ```
MCP tool booking_attractions_detail
/booking-attractions/reviewsReturns normalized guest reviews for a Booking.com attraction.
Response notes
Example response: ```json { "code": 200, "msg": "OK", "data": { "product_id": "PRe4kSVWXdrD", "total": 164, "page": 1, "reviews": [ { "id": "RS1", "content": "Great trip, highly recommend", "score": 5, "reviewer_name": "Jane", "reviewer_country": "United States" } ] } } ```
MCP tool booking_attractions_reviews
Related APIs
Travel & Hospitality
Build travel and lodging research workflows from structured Airbnb stay, room, availability, and review data.
Travel & Hospitality
Research hotels, restaurants, attractions, and destination pages from TripAdvisor with normalized listing and review endpoints.
Travel & Hospitality
Turn Expedia's Stays, Flights, and Things To Do results into structured JSON — destination search, hotel listings with pricing and reviews, flight offers, and activity search, sourced from the same API the official mobile app uses. Credential-free.
Company coverage
Booking Holdings Inc. · BKNG
Booking.com is operated by Booking Holdings Inc. (BKNG). Crawlora's SEC endpoints take the same company's CIK, so filings, financials, insider transactions and 13F holdings come from the same API key as the Booking.com endpoints above.
SEC filings & financials API →How to scrape Booking.com
Booking.com's hotel, flight, and attractions data runs behind persisted-query GraphQL and internal REST endpoints. Crawlora's Booking.com endpoints replay these directly and return hotel search, detail, reviews, flight offers, and attraction listings as normalized JSON — no account or cookie session required.
A destination name and date range for hotels, an autocompleted location for flights, or a destination for attractions.
Pass the query to /booking/search, /booking-flights/search, or /booking-attractions/search, or a hotel/attraction id to /booking/hotel-detail, /booking/reviews, or /booking-attractions/detail.
Receive hotel listings with pricing and ratings, room detail with photos, guest reviews, flight offers, or attraction listings with categories and reviews.
Feed travel-price dashboards and research pipelines, or re-run searches on a schedule to track price and availability changes over time.
FAQ
Send a destination, date range, or hotel/attraction id to Crawlora's Booking.com endpoints and get hotel, flight, or attraction search results as structured JSON — no account. Collect public data and respect Booking.com's terms.
Yes. /booking/search returns current pricing per hotel — re-run it on a schedule to track price and availability changes over time as JSON.
Collecting publicly accessible hotel, flight, and attraction data is generally permissible if you respect Booking.com's terms of use, robots directives, rate limits, and applicable law. This is for public data you are authorized to collect.
No self-serve option. Booking.com's Demand API is available only to approved Connectivity Partners after a multi-stage application, integration review, and PCI-DSS compliance check — and the partner portal is not currently accepting new registrations at all while Booking.com updates its partner terms. Crawlora's Booking.com endpoints return hotel, flight, and attraction search and detail data as structured JSON with a single API key, no partner application or compliance review required.