HasData Booking.com
Booking.com stays by destination and dates, and full property details, as structured JSON.
Should I use this
Quality & Safety
Findings (4)
- LOWin hasdata_booking_place_getBookingPlaceDetails
- LOWin hasdata_booking_place_getBookingPlaceDetails
- LOWin hasdata_booking_search_getBookingSearchResults
- LOWin hasdata_booking_search_getBookingSearchResults
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"booking": {
"command": "npx",
"args": [
"@hasdata/booking-mcp"
]
}
}
}Runnable packages
1.0.8stdio1.0.8stdioRemote endpoints
https://mcp.hasdata.com/api/mcp?apis=bookingstreamable-httphttps://mcp.hasdata.com/mcp?apis=bookingstreamable-httpWhat it can do
Tool inventory
Tools (2)
🟢hasdata_booking_place_getBookingPlaceDetails(url, checkInDate, checkOutDate, rooms, adults, ...)
Get Booking Hotel Details Fetches a single Booking.com property by its full URL for the given stay dates (`checkInDate` / `checkOutDate`) and guest composition (rooms, adults, children with ages). Returns the property identity (hotelId, title, address, coordinates), policies (free cancellation, no prepayment, child/pet stays), price, rating and review summary, photos, and the list of available room suites for the requested window. Use to enrich property listings with real-time availability and pricing, monitor a specific competitor hotel over time, validate amenities and photos before displaying venue details to end users, or fetch full details after discovering the property URL via the Booking Search endpoint.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Full Booking.com URL of the property page. Only `booking.com` and `www.booking.com` hosts are accepted."
},
"checkInDate": {
"type": "string",
"description": "Check-in date in `YYYY-MM-DD` format. Must be in the future and earlier than `checkOutDate`."
},
"checkOutDate": {
"type": "string",
"description": "Check-out date in `YYYY-MM-DD` format. Must be later than `checkInDate`."
},
"rooms": {
"type": "number",
"description": "Number of rooms to book."
},
"adults": {
"type": "number",
"description": "Number of adult guests across all rooms."
},
"children": {
"type": "number",
"description": "Number of child guests across all rooms (0–10). Pass `0` if there are no children."
},
"childrenAges": {
"type": "string",
"description": "Comma-separated list of child ages, one entry per child (each `0`–`17`). Required when `children > 0` and the number of ages must equal `children`.\n\nExample: `1,3,7`\n"
},
"language": {
"type": "string",
"enum": [
"en-us",
"en-gb",
"de",
"nl",
"fr",
"es",
"es-ar",
"es-mx",
"ca",
"it",
"pt-pt",
"pt-br",
"no",
"fi",
"sv",
"da",
"cs",
"hu",
"ro",
"ja",
"zh-cn",
"zh-tw",
"pl",
"el",
"ru",
"tr",
"bg",
"ar",
"ko",
"he",
"lv",
"uk",
"hi",
"id",
"ms",
"th",
"et",
"hr",
"lt",
"sk",
"sr",
"sl",
"vi",
"tl",
"is"
],
"description": "Language of the Booking.com interface and localized fields in the response."
},
"currency": {
"type": "string",
"description": "Currency of the prices returned in the response. Use `hotelCurrency` to keep each property's native currency. Provide one exact documented value (52 allowed), e.g. `hotelCurrency`, `usd`."
}
},
"required": [
"url",
"checkInDate",
"checkOutDate",
"rooms",
"adults",
"children"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢hasdata_booking_search_getBookingSearchResults(keyword, sort, checkInDate, checkOutDate, rooms, ...)
Get Booking Search Results Searches Booking.com for accommodations by destination keyword and stay dates (`checkInDate` / `checkOutDate`) with guest composition (rooms, adults, children with ages) and rich filtering: property type, star rating, review score, hotel and room facilities, distance from center, reservation policy, bed preference, travel group, online payment, accessibility, plus optional price range and bedroom/bathroom counts. Pagination is page-based with 25 results per page; locale is controlled by `language` and `currency`. Returns each hotel's `hotelId`, title and Booking URL, location info (city, address, coordinates, distance to center / nearest beach), policies (free cancellation, no prepayment, child/pet stays), price (per stay, before discount, discount, currency), rating, review summary and main photo. Use to power travel-planning agents, OTA price/inventory monitoring, hotel competitor analysis, lead-generation in the hospitality vertical, or to feed `hotelId` / URL into the Booking Place endpoint for full property details.
Input Schema
{
"type": "object",
"properties": {
"keyword": {
"type": "string",
"description": "Free-text destination query. Usually a city, region or neighborhood (e.g. `Paris`, `Manhattan, New York`); a specific property name is also accepted."
},
"sort": {
"type": "string",
"enum": [
"ourTopPicks",
"homesAndApartmentsFirst",
"priceLowestFirst",
"priceHighestFirst",
"bestReviewedAndLowestPrice",
"ratingHighToLow",
"ratingLowToHigh",
"ratingAndPrice",
"distanceFromDowntown",
"topReviewed"
],
"description": "Sort order applied by Booking.com to the results page."
},
"checkInDate": {
"type": "string",
"description": "Check-in date in `YYYY-MM-DD` format. Must be in the future and earlier than `checkOutDate`."
},
"checkOutDate": {
"type": "string",
"description": "Check-out date in `YYYY-MM-DD` format. Must be later than `checkInDate`."
},
"rooms": {
"type": "number",
"description": "Number of rooms to book."
},
"adults": {
"type": "number",
"description": "Number of adult guests across all rooms."
},
"children": {
"type": "number",
"description": "Number of child guests across all rooms (0–10). Pass `0` if there are no children."
},
"childrenAges": {
"type": "string",
"description": "Comma-separated list of child ages, one entry per child (each `0`–`17`). Required when `children > 0` and the number of ages must equal `children`.\n\nExample: `1,3,7`\n"
},
"price_min_": {
"type": "number",
"description": "Minimum total price for the stay, in the requested `currency`. Must be `>= 10`. Required if `price[max]` is omitted."
},
"price_max_": {
"type": "number",
"description": "Maximum total price for the stay, in the requested `currency`. Must be `>= 20` and greater than `price[min]`. Required if `price[min]` is omitted."
},
"bedrooms": {
"type": "number",
"description": "Minimum number of bedrooms in the property."
},
"bathrooms": {
"type": "number",
"description": "Minimum number of bathrooms in the property."
},
"propertyType__": {
"type": "array",
"items": {
"type": "string",
"enum": [
"hostels",
"bedAndBreakfast",
"hotels",
"apartments",
"resorts",
"guesthouses",
"homestays",
"entireHomesAndApartments"
]
},
"description": "Filter by property type. Multiple values are combined with OR."
},
"rating__": {
"type": "array",
"items": {
"type": "string",
"enum": [
"oneStar",
"twoStars",
"threeStars",
"fourStars",
"fiveStars"
]
},
"description": "Filter by official star rating. Multiple values are combined with OR."
},
"reviewScore__": {
"type": "array",
"items": {
"type": "string",
"enum": [
"wonderful",
"veryGood",
"good",
"pleasant"
]
},
"description": "Filter by minimum guest review score bucket. Multiple values are combined with OR."
},
"distanceFromCenter__": {
"type": "array",
"items": {
"type": "string",
"enum": [
"lessThan1Km",
"lessThan3Km",
"lessThan5Km"
]
},
"description": "Filter by distance from the destination center. Multiple values are combined with OR."
},
"propertyAccessibility__": {
"type": "array",
"items": {
"type": "string",
"enum": [
"auditoryGuidance",
"toiletWithGrabRails",
"visualAidsTactileSigns",
"visualAidsBraille",
"bathroomEmergencyCord",
"raisedToilet",
"loweredSink"
]
},
"description": "Filter by property-level accessibility features. Multiple values are combined with OR."
},
"meals__": {
"type": "array",
"items": {
"type": "string",
"enum": [
"breakfastIncluded",
"kitchenFacilities"
]
},
"description": "Filter by available meal plans. Multiple values are combined with OR."
},
"facilities__": {
"type": "array",
"items": {
"type": "string",
"enum": [
"swimmingPool",
"parking",
"spa",
"freeWifi",
"hotTubJacuzzi",
"airportShuttle",
"fitnessCenter",
"restaurant",
"nonSmokingRooms",
"frontDesk24Hour",
"electricVehicleChargingStation",
"wheelchairAccessible",
"roomService"
]
},
"description": "Filter by property-level facilities. Multiple values are combined with OR."
},
"roomFacilities__": {
"type": "array",
"items": {
"type": "string",
"enum": [
"privateBathroom",
"balcony",
"seaView",
"kitchenKitchenette",
"airConditioning",
"bathtub",
"hotTub",
"view",
"spaTub",
"upperFloorsAccessibleByElevator",
"microwave",
"refrigerator",
"coffeeMachine",
"electricKettle",
"heating",
"towels",
"toilet",
"mountainView",
"flatScreenTv",
"tv",
"coffeeTeaMaker",
"hairdryer",
"toiletPaper",
"shower",
"linens"
]
},
"description": "Filter by in-room facilities. Multiple values are combined with OR."
},
"roomAccessibility__": {
"type": "array",
"items": {
"type": "string",
"enum": [
"upperFloorsAccessibleByElevator",
"entireUnitLocatedOnGroundFloor",
"walkInShower",
"entireUnitWheelchairAccessible",
"adaptedBath",
"rollInShower",
"showerChair",
"emergencyCordInBathroom",
"toiletWithGrabRails",
"raisedToilet",
"lowerSink"
]
},
"description": "Filter by in-room accessibility features. Multiple values are combined with OR."
},
"bedPreference__": {
"type": "array",
"items": {
"type": "string",
"enum": [
"twinBeds",
"doubleBed"
]
},
"description": "Filter by bed configuration. Multiple values are combined with OR."
},
"reservationPolicy__": {
"type": "array",
"items": {
"type": "string",
"enum": [
"freeCancellation",
"noPrepayment"
]
},
"description": "Filter by reservation flexibility. Multiple values are combined with OR."
},
"onlinePayment__": {
"type": "array",
"items": {
"type": "string",
"enum": [
"acceptsOnlinePayments"
]
},
"description": "Filter by online payment options."
},
"travelGroup__": {
"type": "array",
"items": {
"type": "string",
"enum": [
"adultsOnly",
"petFriendly"
]
},
"description": "Filter by travel-group oriented stay options. Multiple values are combined with OR."
},
"language": {
"type": "string",
"enum": [
"en-us",
"en-gb",
"de",
"nl",
"fr",
"es",
"es-ar",
"es-mx",
"ca",
"it",
"pt-pt",
"pt-br",
"no",
"fi",
"sv",
"da",
"cs",
"hu",
"ro",
"ja",
"zh-cn",
"zh-tw",
"pl",
"el",
"ru",
"tr",
"bg",
"ar",
"ko",
"he",
"lv",
"uk",
"hi",
"id",
"ms",
"th",
"et",
"hr",
"lt",
"sk",
"sr",
"sl",
"vi",
"tl",
"is"
],
"description": "Language of the Booking.com interface and localized fields in the response."
},
"currency": {
"type": "string",
"description": "Currency of the prices returned in the response. Use `hotelCurrency` to keep each property's native currency. Provide one exact documented value (52 allowed), e.g. `hotelCurrency`, `usd`."
},
"page": {
"type": "number",
"description": "Page number of the search results. Booking.com returns 25 results per page; pass `2` for results 26–50, `3` for 51–75, etc."
}
},
"required": [
"keyword",
"checkInDate",
"checkOutDate",
"rooms",
"adults",
"children"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence