Booking.com Place API
The Booking.com Place API returns details for an individual property as structured JSON. Supply its full URL, for example from the Booking.com Search API, and optionally choose stay dates, guests, rooms, language and currency. Depending on page data, the response can include structured description blocks, facilities, photos, room rates, recommended room combinations, review scores, featured reviews and policies. Results reflect the selected stay and do not reserve accommodation or guarantee a final booking quote.
Endpoint: https://api.scrapingdog.com/booking/place
Each successful request costs 5 credits. Send
api_key and a full property url. The supplied response below keeps returned values and shortens arrays for readability; empty sections remain empty. API keys use APIKEY. Example dates match the supplied response; choose valid current or future dates when executing requests.API Parameters
🔑
Scrapingdog Parameters
api_keyRequiredYour Scrapingdog API key, available on your dashboard. ReplaceAPIKEYwhen executing requests. Pass each parameter once in the GET query string, without a JSON body or bracketed/nested keys.
Type: String
🏨
Property
urlRequiredA full Booking.com property URL, for examplehttps://www.booking.com/hotel/in/the-knights-39-inn.html. Maximum 2,000 submitted characters before trimming. Supported hosts arewww.booking.comandbooking.com; HTTP input is rebuilt as HTTPS onwww.booking.com. The path identifies a two-letter country and property slug ending in.html. Original query parameters and fragments are discarded; pass stay and guest settings separately. The selected language controls the fetched filename suffix.
Type: String
📅
Stay Dates
check_in_dateOptionalA real calendar date inYYYY-MM-DDform, today or in the future. Today is determined inAsia/Kolkata. Dates are not trimmed, and blank or invalid dates are rejected. Alias:checkin. Send either the canonical key or its alias, never both, even if their values match.
Default: Today in Asia/Kolkata
Type: Date stringcheck_out_dateOptionalA real calendar date inYYYY-MM-DDform, strictly after effective check-in. The stay must not exceed 90 nights. Alias:checkout; do not send it together withcheck_out_date.
Default: The day after effective check-in
Type: Date string
👥
Guests & Rooms
adultsOptionalNumber of adults, from1to30. Guest counts accept one or two decimal digits in query text. Alias:adult; do not send it together withadults. Place defaults to one adult, while Booking Search defaults to two.
Default:1
Type: IntegerroomsOptionalNumber of rooms, from1to30. Cannot exceed the number of adults.
Default:1
Type: IntegerchildrenOptionalNumber of children, from0to10. Must match the number of ages inchildren_ages. Supplying ages without a child count infers that count. A positive child count without exactly that many ages is invalid.
Default: Number of supplied ages, otherwise 0
Type: Integerchildren_agesOptionalRequired when children are included. A comma-separated string such as5,9, with exactly one age from0to17per child. Up to 10 ages and 100 submitted characters; item whitespace is trimmed. Omit for zero children; an empty string is invalid. Alias:children_age; do not supply both names. The response uses an integer array, including[]for no children.
Type: Comma-separated string
🌐
Localization
languageOptionalA supported Booking.com language code. Trimmed and lowercased, with a maximum of 30 submitted characters. An input filename’s language suffix is removed and rebuilt for the selected language;en-ususes no filename suffix. Empty values do not select the default.
Default:en-us
Type: String enumcurrencyOptionalA supported currency code orhotel_currencyto request the property’s native currency. Values are trimmed; codes are uppercased and the special value is normalized tohotel_currency. Maximum 30 submitted characters. Returned availability/rate currency can be null when the fetched page does not identify it. Unlike Search, Place explicitly defaults to USD.
Default:USD
Type: String enum
API Examples

curl "https://api.scrapingdog.com/booking/place?api_key=APIKEY&url=https%3A%2F%2Fwww.booking.com%2Fhotel%2Fin%2Fthe-knights-39-inn.html&check_in_date=2026-10-30&check_out_date=2026-10-31&adults=2&rooms=1&children=0&language=en-us¤cy=USD"
import requests params = { "api_key": "APIKEY", "url": "https://www.booking.com/hotel/in/the-knights-39-inn.html", "check_in_date": "2026-10-30", "check_out_date": "2026-10-31", "adults": 2, "rooms": 1, "children": 0, "language": "en-us", "currency": "USD" } response = requests.get("https://api.scrapingdog.com/booking/place", params=params, timeout=70) response.raise_for_status() data = response.json() print(data["place_result"])
const axios = require('axios'); axios.get('https://api.scrapingdog.com/booking/place', { params: { "api_key": "APIKEY", "url": "https://www.booking.com/hotel/in/the-knights-39-inn.html", "check_in_date": "2026-10-30", "check_out_date": "2026-10-31", "adults": 2, "rooms": 1, "children": 0, "language": "en-us", "currency": "USD" }, timeout: 70000, }).then(({ data }) => console.log(data.place_result)) .catch(error => console.error(error.response?.data ?? error.message));
<?php $params = [ 'api_key' => "APIKEY", 'url' => "https://www.booking.com/hotel/in/the-knights-39-inn.html", 'check_in_date' => "2026-10-30", 'check_out_date' => "2026-10-31", 'adults' => 2, 'rooms' => 1, 'children' => 0, 'language' => "en-us", 'currency' => "USD", ]; $ch = curl_init('https://api.scrapingdog.com/booking/place?' . http_build_query($params)); curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 70]); $body = curl_exec($ch); if ($body === false) { throw new RuntimeException(curl_error($ch)); } $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($status !== 200) { throw new RuntimeException("HTTP $status: $body"); } $data = json_decode($body, true, 512, JSON_THROW_ON_ERROR); print_r($data['place_result']);
require 'net/http' require 'uri' require 'json' url = URI('https://api.scrapingdog.com/booking/place') url.query = URI.encode_www_form( api_key: "APIKEY", url: "https://www.booking.com/hotel/in/the-knights-39-inn.html", check_in_date: "2026-10-30", check_out_date: "2026-10-31", adults: 2, rooms: 1, children: 0, language: "en-us", currency: "USD" ) http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.read_timeout = 70 response = http.get(url.request_uri) raise "HTTP #{response.code}: #{response.body}" unless response.is_a?(Net::HTTPSuccess) puts JSON.pretty_generate(JSON.parse(response.body).fetch('place_result'))
import java.net.URI; import java.net.URLEncoder; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.nio.charset.StandardCharsets; import java.time.Duration; public class Main { public static void main(String[] args) throws Exception { String apiKey = URLEncoder.encode("APIKEY", StandardCharsets.UTF_8); String propertyUrl = URLEncoder.encode("https://www.booking.com/hotel/in/the-knights-39-inn.html", StandardCharsets.UTF_8); String url = "https://api.scrapingdog.com/booking/place?api_key=" + apiKey + "&url=" + propertyUrl + "&check_in_date=2026-10-30&check_out_date=2026-10-31&adults=2&rooms=1&children=0&language=en-us¤cy=USD"; HttpRequest request = HttpRequest.newBuilder(URI.create(url)) .timeout(Duration.ofSeconds(70)).GET().build(); HttpResponse<String> response = HttpClient.newHttpClient() .send(request, HttpResponse.BodyHandlers.ofString()); if (response.statusCode() != 200) { throw new RuntimeException("HTTP " + response.statusCode() + ": " + response.body()); } System.out.println(response.body()); } }
{
"search_metadata": {
"status": "Success",
"booking_url": "https://www.booking.com/hotel/in/the-knights-39-inn.html?checkin=2026-10-30&checkout=2026-10-31&group_adults=2&no_rooms=1&group_children=0&lang=en-us&selected_currency=USD",
"final_url": "https://www.booking.com/hotel/in/the-knights-39-inn.html?checkin=2026-10-30&checkout=2026-10-31&group_adults=2&no_rooms=1&group_children=0&lang=en-us&selected_currency=USD",
"total_time_taken": 2.15
},
"search_parameters": {
"engine": "booking_place",
"url": "https://www.booking.com/hotel/in/the-knights-39-inn.html",
"check_in_date": "2026-10-30",
"check_out_date": "2026-10-31",
"adults": 2,
"rooms": 1,
"children": 0,
"children_ages": [],
"language": "en-us",
"currency": "USD"
},
"place_result": {
"hotel_id": "7967119",
"name": "The Knights' Inn",
"link": "https://www.booking.com/hotel/in/the-knights-39-inn.html",
"type": "hotel",
"hotel_currency": "INR",
"description": [
{
"type": "header",
"text": "About this property"
},
{
"type": "header",
"text": "Comfortable Accommodations:"
}
],
"highlights": [
{
"title": "Free Wifi",
"description": "Free Wifi"
}
],
"address": {
"formatted": "Rana Sanga Marg Near Akashya Patra Mandir Jagatoura, 302033 Jaipur, India",
"street_address": "Rana Sanga Marg Near Akashya Patra Mandir Jagatoura, 302033 Jaipur, India",
"city": "Jaipur",
"locality": "Rana Sanga Marg Near Akashya Patra Mandir Jagatoura",
"region": "Rajasthan",
"postal_code": "302033",
"country": "India"
},
"coordinates": {
"latitude": 26.8033,
"longitude": 75.857862
},
"rating": 10,
"reviews_count": 1,
"photos": [
{
"url": "https://cf.bstatic.com/xdata/images/hotel/max1024x768/412367712.jpg?k=fd87877088d6d49ab57aa4138e7204405eb14d8a8a61c574f37100b05c8294ed&o=",
"caption": "a bedroom with a bed and a desk and a television at The Knights' Inn in Jaipur"
}
],
"popular_facilities": [
"Non-smoking rooms"
],
"facilities": [
"Non-smoking rooms"
],
"rooms": [
{
"room_id": "796711901",
"name": "Deluxe Room",
"facilities": [
"Air conditioning"
],
"photos": [
"https://cf.bstatic.com/xdata/images/hotel/max1024x768/412367734.jpg?k=4cdbfe967c1b99a0f88cf21899c48f44e5119b1b968e510fdc575034af8b8366&o="
],
"rates": [
{
"block_id": "796711901_372293341_2_42_0",
"currency": "USD",
"price": 2250,
"display_price": "$24",
"price_per_night": 23.6204948839191,
"available_rooms": 9,
"conditions": [
"Breakfast $2 (optional)"
],
"cancellation": "Total cost to cancel",
"prepayment": "No prepayment needed – pay at the property"
}
],
"description": "This air-conditioned double room is consisted of of a flat-screen TV with satellite channels and a private bathroom. The unit has 1 bed.",
"size_square_meters": 15,
"bathrooms": 0,
"smoking": false,
"occupancy": {
"max_guests": 2,
"max_children": 0
},
"beds": "1 twin bed"
}
],
"top_matches": [],
"availability": {
"status": "available",
"currency": "USD",
"check_in_date": "2026-10-30",
"check_out_date": "2026-10-31"
},
"review_scores": [
{
"category": "hotel_staff",
"score": 10,
"reviews_count": 1
}
],
"featured_reviews": [
{
"author": "Bhawani",
"country": "India",
"text": "“Very helpfull and kind staff. Good service. Nice and clean accommodation. food was really amazing. Highly recommendable hotel for everyone.”"
}
],
"faqs": [
{
"question": "What type of room can I book at The Knights' Inn?",
"answer": "Room options at The Knights' Inn include: DoubleSuite"
}
],
"policies": {
"check_in": {
"from": "11:30 AM",
"until": "12:00 PM"
},
"check_out": {
"from": null,
"until": "11:00 AM"
},
"pets": {
"allowed": "NO",
"charges": "NOT_APPLICABLE"
},
"age_restriction": "There's no age requirement for check-in",
"text": "Property policies The Knights' Inn takes special requests – add in the next step!See availabilityCheck-inFrom 11:30 AM to 12:00 PMGuests are required to show a photo ID and credit card at check-in.You need to let the property know what time you'll be arriving in advance. Check-outUntil 11:00 AMCancellation/ prepaymentCancellation and prepayment policies vary according to accommodation type. Check what conditions apply to each option when making your selection.Children & Beds Child policies Children of all ages are welcome. To see correct prices and occupancy info, add the number and ages of children in your group to your search. Crib and extra bed policies Cribs and extra beds aren't available at this property. No age restrictionThere's no age requirement for check-inPetsPets are not allowed.Cards accepted at this hotel Cash is not accepted",
"children": {
"allowed": true,
"minimum_age": 0,
"cribs_available": false,
"extra_beds_available": false
},
"payment_methods": {
"cash_status": "PATP_PROPERTY_DOES_NOT_ACCEPT_CASH",
"accepted_cards": []
}
},
"stars": 3,
"languages_spoken": [
"en"
],
"important_information": [
"Guests are required to show a photo ID and credit card upon check-in. Please note that all Special Requests are subject to availability and additional charges may apply."
],
"breakfast": [
{
"price_text": "$2.10",
"diets": [
"Vegetarian"
]
}
]
},
"total_time_taken": 2.15
}