The fastest way to start scraping Booking.com at scale. Structured JSON for hotel search with live prices and availability, destination lookup, full property detail with facilities and house rules, and paginated guest reviews — worldwide, with anti-bot bypass built in.
No credit card required · PAYG credits never expire
# Get full detail for a Booking.com property
import scrapebadger
client = scrapebadger.ScrapeBadger("sb_live_...")
hotel = client.booking.property(
country_code="it",
slug="radisson-collection-roma-antica"
){
"name": "Radisson Collection Roma Antica",
"city": "Rome",
"country": "Italy",
"star_rating": 5,
"review_score": 8.9,
"review_count": 1204,
"facilities": [ "Spa", "Bar", "..." ],
"rooms": [ { "name": "Superior Room", "..." } ],
"latitude": 41.888, "longitude": 12.502
}Structured JSON responses with normalized data models. No HTML parsing. No proxy management.
/v1/booking/search/v1/booking/destinations/v1/booking/properties/{country_code}/{slug}/v1/booking/properties/{country_code}/{slug}/rooms/v1/booking/properties/{country_code}/{slug}/reviewsHotels, apartments, guest houses, hostels and villas in every country Booking.com sells in. Set currency and language per request — the same data model everywhere.
ScrapeBadger's Booking.com Scraper API handles everything Booking.com throws at automated requests — so your pipeline keeps running.
Pass check-in/check-out dates and occupancy and search returns what Booking.com actually shows — display price, price per night, price before discount, free-cancellation and no-prepayment flags, and the individual rate blocks per room.
The destinations endpoint turns a plain place name into Booking dest_id + dest_type pairs — CITY, DISTRICT, AIRPORT, LANDMARK or REGION — with coordinates and country, so searches target exactly the area you mean.
Every property returns its description, formatted address and coordinates, star rating, review score with a per-category breakdown, house rules (check-in/out times, pets, children, parties, quiet hours), 60–110 facilities, rooms with sizes and beds, up to 100 photos, and guest Q&A.
Pull up to 100 reviews per request, sorted by relevance, date or score, and filter by review language or guest type (families, couples, solo, business). Each review carries score, title, positive and negative text, stay dates, room, photos and the partner reply.
Credits are only deducted for successful responses. If Booking.com returns an error or a request is blocked, no credits are consumed — and no Booking.com account, affiliate ID or API key is needed.
Official SDKs for 12 languages — Python, Node.js, Go, Rust, PHP, C#, Java, Kotlin, Ruby, Swift, Dart, C++ — generated from one OpenAPI spec, or use the REST API directly.
You only pay for successful responses — failed requests are always free. PAYG credits never expire; volume subscription tiers reduce per-credit cost further.
Get started in minutes with Node.js, Python, or plain HTTP requests.
The scrapebadger Node.js library wraps the Booking.com API with typed methods. Install with npm install scrapebadger, then start scraping Booking.com in a few lines of code.
import ScrapeBadger from 'scrapebadger'
const client = new ScrapeBadger({
apiKey: 'sb_live_...'
})
// Search hotels in Rome for specific dates
const results = await client.booking.search({
location: 'Rome, Italy',
checkin: '2026-10-10',
checkout: '2026-10-13',
adults: 2,
sort: 'bayesian_review_score',
})
// Pull the guest reviews for the top result
const top = results.properties[0]
const reviews = await client.booking.reviews({
countryCode: top.countryCode,
slug: top.slug,
limit: 100,
})
console.log(top.name, top.price.display, reviews.totalCount)Common questions about scraping Booking.com with the API — Node.js, Python, or REST.
Search returns total_results, the resolved destination, and properties[] with property_id, name, slug, URL, address, city, country code and coordinates, review score and count, star rating, display price with amount and currency, price per night, price before discount, room composition (unit types, beds, bedrooms, bathrooms, area), per-rate room offers, photo, free-cancellation and no-prepayment flags and badges. Property detail adds the description, house rules, facilities, highlights, rooms with photos, up to 100 property photos and guest Q&A. Reviews returns paginated guest reviews with score breakdowns and language/guest-type counts.
Coverage is global — every country Booking.com sells in, and its full inventory of hotels, apartments, guest houses, hostels and other stays. Set the currency parameter for price display and the language parameter to any Booking locale for localized text.
A Booking hotel URL like booking.com/hotel/it/radisson-collection-roma-antica.html splits into two path segments: the country code (it) and the slug (radisson-collection-roma-antica). Call /v1/booking/properties/it/radisson-collection-roma-antica for the detail, and add /reviews for the guest reviews. Search results already return both, so search → detail → reviews chains directly.
Destination autocomplete costs 3 credits, property search and property detail cost 5 credits, and reviews cost 10 credits per request. Health checks are free. PAYG credits never expire; monthly subscriptions reduce the per-credit cost further. Failed requests are always free.
Install with npm install scrapebadger, initialise the client with your API key, then call client.booking.search({ location: "Rome, Italy", checkin: "2026-10-10", checkout: "2026-10-13", adults: 2 }) or client.booking.property({ countryCode: "it", slug: "radisson-collection-roma-antica" }). The SDK returns typed objects, and search paginates with offset and limit.
Per-request credit costs are listed above. For higher monthly volume, subscription tiers reduce the per-credit rate substantially. All Booking.com endpoints — search, destinations, property detail, and reviews — included on every plan.
1,000 free credits. No credit card. Get your API key in under a minute.
PAYG credits never expire · Pay only for successful requests · Global coverage