{"openapi":"3.2.0","info":{"title":"Booking.com Live Hotel Rates API","description":"Live Booking.com hotel prices and availability: search a destination with 24 filters, look a property up by name, list its rooms, and price it as seen from another country.","version":"1.0.0"},"servers":[{"url":"https://kvpcl.jojapi.net"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"Hotels"}],"x-agent-commerce":{"catalog_url":"https://kvpcl.jojapi.net/_jojapi/agent/plans","discovery_url":"https://kvpcl.jojapi.net/.well-known/x402","directory_url":"https://agents.jojapi.net/apis/booking-live-hotel-rates","docs":"https://docs.jojapi.com/consumers/agents"},"paths":{"/v1/hotels/by-name":{"post":{"operationId":"post_v1_hotels_by_name","summary":"Hotel by name","description":"Availability and the stay total for one named hotel. Name resolution included; matched_name says what it matched.","tags":["Hotels"],"responses":{"200":{"description":"Result. Sold out or not found comes back as 200 with available: false and nulls.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A field name or value is wrong (named in the body)"},"422":{"description":"Missing or malformed required field"},"502":{"description":"Booking.com never rendered a result for the query (past dates do this every time). Retry once."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["hotel_name","checkin_date","checkout_date"],"properties":{"hotel_name":{"type":"string","description":"The hotel name as a person would type it"},"area":{"type":"string","description":"City or region to disambiguate a generic name"},"checkin_date":{"type":"string","format":"date","description":"Check-in date (YYYY-MM-DD, must be in the future)","example":"2027-06-15"},"checkout_date":{"type":"string","format":"date","description":"Check-out date (YYYY-MM-DD, must be in the future)","example":"2027-06-18"},"adults":{"type":"integer","default":2,"minimum":1,"description":"Number of adults"},"children":{"type":"integer","default":0,"minimum":0,"description":"Number of children"},"currency":{"type":"string","default":"USD","description":"Currency code, e.g. USD, EUR"},"proxy_country":{"type":"string","description":"Two-letter lowercase country code (us, de, il). Routes the request through a residential proxy in that market, so you see the rate a guest there is quoted."},"free_cancellation":{"type":"boolean"}}},"example":{"hotel_name":"Hotel Arts Barcelona","checkin_date":"2027-06-15","checkout_date":"2027-06-18","adults":2,"currency":"EUR"}}}}}},"/v1/hotels/search":{"post":{"operationId":"post_v1_hotels_search","summary":"Destination search","description":"Search a destination with Booking.com filters; ranked properties with prices, review scores, coordinates and links.","tags":["Hotels"],"responses":{"200":{"description":"Result. Sold out or not found comes back as 200 with available: false and nulls.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A field name or value is wrong (named in the body)"},"422":{"description":"Missing or malformed required field"},"502":{"description":"Booking.com never rendered a result for the query (past dates do this every time). Retry once."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["destination","checkin_date","checkout_date"],"properties":{"destination":{"type":"string","description":"Free text: \"Paris\", \"Tokyo Shibuya\", \"Hilton NYC\""},"checkin_date":{"type":"string","format":"date","description":"Check-in date (YYYY-MM-DD, must be in the future)","example":"2027-06-15"},"checkout_date":{"type":"string","format":"date","description":"Check-out date (YYYY-MM-DD, must be in the future)","example":"2027-06-18"},"adults":{"type":"integer","default":2,"minimum":1,"description":"Number of adults"},"children":{"type":"integer","default":0,"minimum":0,"description":"Number of children"},"currency":{"type":"string","default":"USD","description":"Currency code, e.g. USD, EUR"},"budget_per_night":{"type":"number","description":"Max price per night, in the currency you set"},"proxy_country":{"type":"string","description":"Two-letter lowercase country code (us, de, il). Routes the request through a residential proxy in that market, so you see the rate a guest there is quoted."},"sort":{"type":"string","enum":["price_asc","price_desc","rating_desc","price","rating"],"description":"Booking.com's own sort"},"filters":{"type":"array","items":{"type":"string","enum":["free_cancellation","breakfast_included","breakfast_and_lunch","breakfast_and_dinner","all_meals_included","all_inclusive","free_wifi","swimming_pool","gym","parking","front_desk_24h","review_score_7","review_score_8","review_score_9","private_bathroom","air_conditioning","stars_3","stars_4","stars_5","pets_allowed","adults_only","sauna","very_good_breakfast","accepts_online_payment"]},"description":"Booking.com filters (24)"}}},"example":{"destination":"Lisbon","checkin_date":"2027-06-15","checkout_date":"2027-06-18","adults":2,"currency":"EUR","filters":["free_cancellation","review_score_8"]}}}}}},"/v1/hotels/rooms":{"post":{"operationId":"post_v1_hotels_rooms","summary":"Rooms of one property","description":"Every room in one property with room type, meal plan, guest capacity and price.","tags":["Hotels"],"responses":{"200":{"description":"Result. Sold out or not found comes back as 200 with available: false and nulls.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A field name or value is wrong (named in the body)"},"422":{"description":"Missing or malformed required field"},"502":{"description":"Booking.com never rendered a result for the query (past dates do this every time). Retry once."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["hotel_booking_id","checkin_date","checkout_date"],"properties":{"hotel_booking_id":{"type":"string","description":"Booking.com path ID, e.g. cy/four-seasons-limassol (from /v1/hotels/resolve)"},"checkin_date":{"type":"string","format":"date","description":"Check-in date (YYYY-MM-DD, must be in the future)","example":"2027-06-15"},"checkout_date":{"type":"string","format":"date","description":"Check-out date (YYYY-MM-DD, must be in the future)","example":"2027-06-18"},"adults":{"type":"integer","default":2,"minimum":1,"description":"Number of adults"},"children":{"type":"integer","default":0,"minimum":0,"description":"Number of children"},"currency":{"type":"string","default":"USD","description":"Currency code, e.g. USD, EUR"},"proxy_country":{"type":"string","description":"Two-letter lowercase country code (us, de, il). Routes the request through a residential proxy in that market, so you see the rate a guest there is quoted."},"free_cancellation":{"type":"boolean"}}},"example":{"hotel_booking_id":"it/boffenigoboutiquegarda","checkin_date":"2027-06-15","checkout_date":"2027-06-18","adults":2,"currency":"EUR"}}}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-JoJAPI-Key","description":"Your JoJ API key."}}}}