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
Crawlora's Booking.com endpoints cover three Booking products, stays, flights, and attractions, through plain GET requests, returned as normalized JSON with no account. The hotel data is the deepest part. /booking/hotel-detail breaks the guest score into nine sub-scores (breakfast, cleanliness, comfort, location, staff, value, and more) and returns house rules such as minimum check-in age and pet policy. That goes beyond a price-and-stars listing.
/booking/search takes a query, checkin, checkout, adults, and rooms. It returns results_count (1,292 for Miami on 2026-10-10 to 10-12), 25 properties per page with star_rating, review_score, review_count, and distance, plus destination_id and country. Reuse those ids with /booking/reviews and /booking-attractions/search.
Pass a property id to /booking/hotel-detail for rating_scores (hotel_location 8.8 against hotel_clean 6.4 at one South Beach hostel), facilities_count, highlights, a photo gallery, and each room with its own photos. house_rules covers check-in age, group limits, whether children are allowed, and pets. It does not include live per-room prices.
/booking/reviews needs hotel_id and hotel_country_code. It returns category averages (Cleanliness, Location, Value for money, and others) and paged reviews with separate positive_text and negative_text, room_type, customer_type, num_nights, and the reviewer's country. search_text filters by review content, such as breakfast or noise, not by score.
Build flight locations with /booking-flights/autocomplete (code plus type, for example MIA.CITY or JFK.AIRPORT), then call /booking-flights/search. JFK to Miami returned 209 offers from $349. /booking-attractions/search lists a destination's category tree with counts: Miami had 1,133 products, 625 of them Tours. Its opaque tagnames work as filters.
FAQ
Use /booking/hotel-detail for the nine rating_scores (hotel_breakfast, hotel_clean, hotel_location, hotel_staff, hotel_value, and so on), or /booking/reviews for the category averages shown on the reviews tab.
Call /booking-attractions/search once without a filter. Its categories list returns each category and subcategory with a tagname and product_count, and you pass a tagname back as category or subcategory.
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.