Get Property Detail
curl --request GET \
--url https://scrapebadger.com/v1/booking/properties/{country_code}/{slug}import requests
url = "https://scrapebadger.com/v1/booking/properties/{country_code}/{slug}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://scrapebadger.com/v1/booking/properties/{country_code}/{slug}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/booking/properties/{country_code}/{slug}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/booking/properties/{country_code}/{slug}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/booking/properties/{country_code}/{slug}")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/booking/properties/{country_code}/{slug}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"property_id": "<string>",
"name": "<string>",
"slug": "<string>",
"url": "<string>",
"accommodation_type": "<string>",
"accommodation_type_id": 123,
"star_rating": 123,
"star_rating_symbol": "<string>",
"description": "<string>",
"summary": "<string>",
"fine_print": "<string>",
"address": "<string>",
"formatted_address": "<string>",
"city": "<string>",
"district": "<string>",
"country": "<string>",
"country_code": "<string>",
"latitude": 123,
"longitude": 123,
"ufi": 123,
"is_city_centre": true,
"is_old_town": true,
"review_score": 123,
"review_count": 123,
"score_breakdown": {
"hotel_staff": 123,
"hotel_clean": 123,
"hotel_comfort": 123,
"hotel_value": 123,
"hotel_location": 123,
"hotel_free_wifi": 123
},
"currency": "<string>",
"languages_spoken": [
"<string>"
],
"meal_plans": [
"<string>"
],
"house_rules": {
"checkin_from": "<string>",
"checkin_until": "<string>",
"checkout_from": "<string>",
"checkout_until": "<string>",
"min_checkin_age": 123,
"age_restriction": "<string>",
"group_limit": 123,
"smoking": true,
"quiet_hours": true,
"quiet_hours_from": "<string>",
"quiet_hours_until": "<string>",
"parties": true,
"curfew": "<string>",
"city_regulations": "<string>",
"pets_allowed": true,
"pets_charge_mode": "<string>",
"children_allowed": true,
"min_children_age": 123,
"cribs_allowed": true,
"extra_beds_allowed": true
},
"facilities_count": 123,
"facilities": [
{
"name": "<string>",
"facility_id": 123,
"group_id": 123,
"slug": "<string>",
"is_offsite": true,
"charge_mode": "<string>"
}
],
"highlights": [
"<string>"
],
"rooms": [
{
"room_id": "<string>",
"room_type_id": 123,
"name": "<string>",
"description": "<string>",
"size_m2": 123,
"bathrooms": 123,
"is_smoking": true,
"max_persons": 123,
"max_guests": 123,
"max_children": 123,
"beds": [
{
"count": 123,
"bed_type": "<string>"
}
],
"photos": [
"<string>"
]
}
],
"photos": [
"<string>"
],
"questions": [
{
"question_id": "<string>",
"question": "<string>",
"answer": "<string>",
"asked_at": "<string>",
"answered_at": "<string>"
}
],
"is_newly_opened": true,
"is_sustainable": true,
"sustainability_certifications": [
"<string>"
]
}Properties
Get Property Detail
Full Booking.com property detail — description, address, GPS, score breakdown, facilities, room types, house rules, photos and guest Q&A.
GET
/
v1
/
booking
/
properties
/
{country_code}
/
{slug}
Get Property Detail
curl --request GET \
--url https://scrapebadger.com/v1/booking/properties/{country_code}/{slug}import requests
url = "https://scrapebadger.com/v1/booking/properties/{country_code}/{slug}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://scrapebadger.com/v1/booking/properties/{country_code}/{slug}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/booking/properties/{country_code}/{slug}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/booking/properties/{country_code}/{slug}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/booking/properties/{country_code}/{slug}")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/booking/properties/{country_code}/{slug}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"property_id": "<string>",
"name": "<string>",
"slug": "<string>",
"url": "<string>",
"accommodation_type": "<string>",
"accommodation_type_id": 123,
"star_rating": 123,
"star_rating_symbol": "<string>",
"description": "<string>",
"summary": "<string>",
"fine_print": "<string>",
"address": "<string>",
"formatted_address": "<string>",
"city": "<string>",
"district": "<string>",
"country": "<string>",
"country_code": "<string>",
"latitude": 123,
"longitude": 123,
"ufi": 123,
"is_city_centre": true,
"is_old_town": true,
"review_score": 123,
"review_count": 123,
"score_breakdown": {
"hotel_staff": 123,
"hotel_clean": 123,
"hotel_comfort": 123,
"hotel_value": 123,
"hotel_location": 123,
"hotel_free_wifi": 123
},
"currency": "<string>",
"languages_spoken": [
"<string>"
],
"meal_plans": [
"<string>"
],
"house_rules": {
"checkin_from": "<string>",
"checkin_until": "<string>",
"checkout_from": "<string>",
"checkout_until": "<string>",
"min_checkin_age": 123,
"age_restriction": "<string>",
"group_limit": 123,
"smoking": true,
"quiet_hours": true,
"quiet_hours_from": "<string>",
"quiet_hours_until": "<string>",
"parties": true,
"curfew": "<string>",
"city_regulations": "<string>",
"pets_allowed": true,
"pets_charge_mode": "<string>",
"children_allowed": true,
"min_children_age": 123,
"cribs_allowed": true,
"extra_beds_allowed": true
},
"facilities_count": 123,
"facilities": [
{
"name": "<string>",
"facility_id": 123,
"group_id": 123,
"slug": "<string>",
"is_offsite": true,
"charge_mode": "<string>"
}
],
"highlights": [
"<string>"
],
"rooms": [
{
"room_id": "<string>",
"room_type_id": 123,
"name": "<string>",
"description": "<string>",
"size_m2": 123,
"bathrooms": 123,
"is_smoking": true,
"max_persons": 123,
"max_guests": 123,
"max_children": 123,
"beds": [
{
"count": 123,
"bed_type": "<string>"
}
],
"photos": [
"<string>"
]
}
],
"photos": [
"<string>"
],
"questions": [
{
"question_id": "<string>",
"question": "<string>",
"answer": "<string>",
"asked_at": "<string>",
"answered_at": "<string>"
}
],
"is_newly_opened": true,
"is_sustainable": true,
"sustainability_certifications": [
"<string>"
]
}Fetch a single property’s complete detail. The two path parameters are the two
segments of a Booking hotel URL:
Both also come back on every
https://www.booking.com/hotel/it/radisson-collection-roma-antica.html
^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
country_code slug
/search result as country_code
and slug.
Path Parameters
string
required
ISO country code from the property URL, e.g.
it.string
required
Property slug from the property URL, e.g.
radisson-collection-roma-antica.Query Parameters
integer
default:"40"
Photos to return. Maximum
100.integer
default:"10"
Guest Q&A pairs to return. Maximum
50.string
default:"en-us"
Locale for text, e.g.
fr, de.Response
string
Booking property id.
string
Property name.
string
Echo of the requested slug.
string
Canonical property URL on booking.com.
string
e.g.
Hotel, Apartment.integer
Booking accommodation type id.
number
Stars, e.g.
5.string
How the rating is denoted, e.g.
stars.string
Full property description.
string
Short summary line.
string
Booking’s “the fine print” notice, or
null.string
Street address.
string
Full single-line address.
string
string
Neighbourhood, or
null.string
string
number
number
integer
Booking’s internal city identifier.
boolean
boolean
number
Overall score out of 10.
integer
Number of reviews.
string
Property’s own currency.
string[]
Languages spoken at reception.
string[]
Meal plans offered, e.g.
Breakfast.object
Show house_rules
Show house_rules
string
e.g.
15:00.string
string
string
integer
Minimum age to check in, or
null.string
Age restriction note, or
null.integer
Maximum guests in one booking, or
null.boolean
Smoking permitted.
boolean
Quiet hours enforced.
string
string
boolean
Parties or events allowed.
string
Curfew note, or
null.string
Local regulation notice, or
null.boolean
string
e.g.
free, charges_may_apply.boolean
integer
boolean
boolean
integer
Number of facilities returned.
Facility[]
string[]
Property highlights, e.g.
Top location: Highly rated by recent guests.Room[]
string[]
Property photo URLs, up to
photos.Question[]
boolean
boolean
string[]
A property that does not exist returns
404.Example
const res = await fetch(
"https://scrapebadger.com/v1/booking/properties/it/radisson-collection-roma-antica?photos=60&questions=20",
{ headers: { "X-API-Key": process.env.SCRAPEBADGER_API_KEY } },
);
const property = await res.json();
import requests
res = requests.get(
"https://scrapebadger.com/v1/booking/properties/it/radisson-collection-roma-antica",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"photos": 60, "questions": 20},
)
property = res.json()
curl "https://scrapebadger.com/v1/booking/properties/it/radisson-collection-roma-antica?photos=60&questions=20" \
-H "X-API-Key: YOUR_API_KEY"
Response
{
"property_id": "1284937",
"name": "Radisson Collection Hotel, Roma Antica",
"slug": "radisson-collection-roma-antica",
"url": "https://www.booking.com/hotel/it/radisson-collection-roma-antica.html",
"accommodation_type": "Hotel",
"accommodation_type_id": 204,
"star_rating": 5,
"star_rating_symbol": "stars",
"description": "Set 400 metres from the Colosseum in the Centro Storico district, Radisson Collection Hotel, Roma Antica offers a rooftop restaurant, a fitness centre and air-conditioned rooms with free WiFi. Termini Station is a 15-minute walk away.",
"summary": "5-star hotel in Centro Storico, 1.2 km from the centre",
"fine_print": "Guests are required to show a photo ID and credit card at check-in. The city tax of EUR 7 per person per night is not included in the room rate.",
"address": "Via Labicana 144",
"formatted_address": "Via Labicana 144, Centro Storico, 00184 Rome, Italy",
"city": "Rome",
"district": "Centro Storico",
"country": "Italy",
"country_code": "it",
"latitude": 41.8902,
"longitude": 12.4964,
"ufi": -126693,
"is_city_centre": true,
"is_old_town": true,
"review_score": 8.9,
"review_count": 1499,
"score_breakdown": {
"hotel_staff": 9.2,
"hotel_clean": 9.1,
"hotel_comfort": 9.0,
"hotel_value": 8.1,
"hotel_location": 9.4,
"hotel_free_wifi": 9.3
},
"currency": "EUR",
"languages_spoken": ["Italian", "English", "Spanish", "French"],
"meal_plans": ["Breakfast", "Half board"],
"house_rules": {
"checkin_from": "15:00",
"checkin_until": "00:00",
"checkout_from": "07:00",
"checkout_until": "11:00",
"min_checkin_age": 18,
"age_restriction": null,
"group_limit": 8,
"smoking": false,
"quiet_hours": true,
"quiet_hours_from": "23:00",
"quiet_hours_until": "07:00",
"parties": false,
"curfew": null,
"city_regulations": "A city tax of EUR 7 per person per night applies.",
"pets_allowed": true,
"pets_charge_mode": "charges_may_apply",
"children_allowed": true,
"min_children_age": 0,
"cribs_allowed": true,
"extra_beds_allowed": true
},
"facilities_count": 87,
"facilities": [
{
"name": "Free WiFi",
"facility_id": 107,
"group_id": 15,
"slug": "free-wifi",
"is_offsite": false,
"charge_mode": "free"
},
{
"name": "Fitness centre",
"facility_id": 11,
"group_id": 5,
"slug": "fitness-centre",
"is_offsite": false,
"charge_mode": "free"
},
{
"name": "Airport shuttle",
"facility_id": 17,
"group_id": 3,
"slug": "airport-shuttle",
"is_offsite": true,
"charge_mode": "paid"
}
],
"highlights": [
"Top location: Highly rated by recent guests (9.4)",
"Breakfast info: Continental, Italian, Buffet",
"Free private parking available on site"
],
"rooms": [
{
"room_id": "128493701",
"room_type_id": 8,
"name": "Deluxe Double Room with Colosseum View",
"description": "This air-conditioned double room features a seating area, a minibar and a private bathroom with a rain shower. The room looks onto the Colosseum.",
"size_m2": 32,
"bathrooms": 1,
"is_smoking": false,
"max_persons": 2,
"max_guests": 2,
"max_children": 1,
"beds": [{ "count": 1, "bed_type": "King bed" }],
"photos": [
"https://cf.bstatic.com/xdata/images/hotel/max1024x768/1284937-deluxe-double.jpg"
]
},
{
"room_id": "128493705",
"room_type_id": 9,
"name": "Junior Suite",
"description": "A suite with a separate living area, a terrace and a private bathroom with a bathtub.",
"size_m2": 48,
"bathrooms": 1,
"is_smoking": false,
"max_persons": 3,
"max_guests": 3,
"max_children": 2,
"beds": [
{ "count": 1, "bed_type": "King bed" },
{ "count": 1, "bed_type": "Sofa bed" }
],
"photos": [
"https://cf.bstatic.com/xdata/images/hotel/max1024x768/1284937-junior-suite.jpg"
]
}
],
"photos": [
"https://cf.bstatic.com/xdata/images/hotel/max1024x768/1284937-rooftop.jpg",
"https://cf.bstatic.com/xdata/images/hotel/max1024x768/1284937-lobby.jpg",
"https://cf.bstatic.com/xdata/images/hotel/max1024x768/1284937-facade.jpg"
],
"questions": [
{
"question_id": "9182736",
"question": "Is the rooftop restaurant open to guests staying on a room-only rate?",
"answer": "Yes, the rooftop restaurant is open to all in-house guests from 18:00 to 23:00.",
"asked_at": "2026-06-04T11:22:00Z",
"answered_at": "2026-06-05T08:14:00Z"
},
{
"question_id": "9182811",
"question": "Do you have connecting rooms for a family of four?",
"answer": null,
"asked_at": "2026-08-01T16:40:00Z",
"answered_at": null
}
],
"is_newly_opened": false,
"is_sustainable": true,
"sustainability_certifications": ["Green Key"]
}
Each property-detail request costs 5 credits. Failed requests are not charged.
⌘I

