Booking.com API
Hotel rates, availability, taxes and cancellation terms by market.
Why teams scrape Booking.com
Booking.com holds some of the most commercially useful public data on the web, and almost none of it is available through a stable official feed at the volume real products need. Rate limits, partner-only access and shifting page structures mean teams either give up on the source or maintain a fragile scraper that breaks every few weeks.
Hotel rates differ by point of sale, currency, device and loyalty status. Collecting them correctly requires reproducing the exact search context — not just fetching a URL.
Irmu removes the infrastructure question entirely. One authenticated request handles proxy selection, browser rendering, anti-bot challenges and retries, and AI Extract turns the resulting page into validated JSON against a schema you define. You get hotel_name, price_total, price_per_night, currency, taxes_fees, rating, free_cancellation, rooms_left, location without writing or maintaining a single selector, and the same endpoint, quota and observability model you already use for every other source.
What it powers
Rate parity monitoring
Detect where OTAs undercut your direct rate.
Compset benchmarking
Track competitor pricing by date and occupancy.
Demand forecasting
Use rate and scarcity movement as a demand proxy.
Channel audits
Verify inventory and content across markets.
Fields available
Everything below comes back typed and validated against your schema.
hotel_name
Property name
price_total
Total stay price
price_per_night
Nightly rate
currency
Point-of-sale currency
taxes_fees
Disclosed taxes and fees
rating
Guest review score
free_cancellation
Cancellation policy flag
rooms_left
Scarcity indicator
location
District and coordinates
One call, no selectors
curl -X POST https://app.irmu.com/api/extract \
-H "Authorization: Bearer irmu_sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.booking.com/searchresults.html?ss=Lisbon&checkin=2026-10-02&checkout=2026-10-05",
"schema": {
"hotel_name": "string",
"price_total": "string",
"price_per_night": "string",
"currency": "string",
"taxes_fees": "string",
"rating": "string"
}
}'Validated JSON
{
"data": {
"hotel_name": "Hotel Baixa",
"price_total": 486,
"currency": "EUR",
"rating": 8.7,
"free_cancellation": true
},
"credits_used": 20,
"status": 200
}Copy, paste, ship
import requests
res = requests.post(
"https://app.irmu.com/api/extract",
headers={"Authorization": "Bearer irmu_sk_live_..."},
json={
"url": "https://www.booking.com/searchresults.html?ss=Lisbon&checkin=2026-10-02&checkout=2026-10-05",
"schema": {
"hotel_name": "string",
"price_total": "string",
"price_per_night": "string",
"currency": "string"
},
},
)
data = res.json()["data"]
print(data)Simple credits
Per search result page
20 credits
Failed requests are retried automatically and never billed.
See full pricing →Booking.com API questions
Start extracting Booking.com data today
1,000 free credits every month. No card, no sales call.