Skip to content

Booking.com Hotels API

Live hotel rates, priced from any market

Search a destination or name a hotel; get Booking.com's live rates, review scores, room types and booking links as flat JSON.

  • Live at request time: nothing is served from a cache, so the rate returned is the rate the guest would be quoted
  • proxy_country: price the same room from any market through a residential proxy
  • Name-based lookup: /hotel_by_name takes the name a human would type, no property IDs first

Free tier on RapidAPI. No card to try.

POST /search · booking-live-api
captured run · 2026-08-26
{
  "destination": "Lisbon",
  "checkin_date": "2026-10-09",
  "checkout_date": "2026-10-12",
  "adults": 2,
  "currency": "EUR",
  "filters": [
    "review_score_8",
    "free_cancellation"
  ]
}
Replays the captured request: free, no account, nobody's quota.

filters

24 filters, matching the Booking.com UI

Pass any of these as a filters array on /search (the same facets Booking.com shows its own users), plus budget_per_night in whatever currency you set.

CategoryFilters
Cancellation
free_cancellation
Meals
breakfast_includedbreakfast_and_lunchbreakfast_and_dinnerall_meals_includedall_inclusive
Facilities
free_wifiswimming_poolgymparkingfront_desk_24h
Review score
review_score_7review_score_8review_score_9
Room facilities
private_bathroomair_conditioning
Property rating
stars_3stars_4stars_5
Travel group
pets_allowedadults_only
Activities
sauna
Guest reviews
very_good_breakfast
Payment
accepts_online_payment

Why this one

Common gaps in other hotel APIs

The problems developers hit with general-purpose hotel data sources, and what this API does about each.

The problemHow this API handles it
You need an internal property ID before you can ask anything/hotel_by_name accepts the name a human would type
One price per hotel, no room breakdown/hotel returns every room with its type, meal plan, capacity and price
Prices are cached and drift from what the guest seesEvery request is live against Booking.com
No way to see market-specific pricingproxy_country routes through a residential proxy in any country
A thin slice of the site’s filters24 filters plus budget_per_night, matching the Booking.com UI
Errors and sold-out come back in different shapesConsistent available: false plus nulls, so parsing never branches

Pricing

Every plan carries every endpoint

PlanPrice / moRequests$ / 1k reqOverageRate limit
BASICFree10 / mohard cap250 / minGet this plan →
PRO$102,000 / mo$5.00$0.006 / req25 / minGet this plan →
ULTRA$206,500 / mo$3.08$0.003 / req25 / minGet this plan →
MEGA$5025,000 / mo$2.00$0.002 / req50 / minGet this plan →

Every plan includes every endpoint. You only choose volume and rate limit. Read from the live listing on 2026-08-26; the listing is authoritative.

Questions, answered plainly

Are prices cached?
No. Every query hits Booking.com live at request time, so the rate that comes back is the rate a guest would be quoted at that moment. The honest trade-off: response time tracks how much work Booking.com has to do for the query.
What does proxy_country do?
Every endpoint accepts proxy_country, a two-letter lowercase country code ("us", "de", "il"). The request routes through a residential proxy in that country, so you see the rates Booking.com quotes that market. Leave it out and the request goes through the global residential pool.
Which endpoint do I start with?
POST /search for a destination, POST /hotel_by_name for one property by its name (resolution included), and POST /resolve followed by POST /hotel when you want the full room-by-room list for a property you check repeatedly.
What fields does /search require?
destination (free text: "Paris", "Tokyo Shibuya"), checkin_date, and checkout_date in YYYY-MM-DD. Note the field is destination, not location. Sending location returns a 400 with a clear message naming the fields it needs.
How do sold-out and not-found come back?
As the same response shape with "available": false and nulls in the price fields, so your parser never has to branch on an error format.
What does the free tier include?
Every endpoint, 10 requests per month, hard cap. That verifies your key and your integration. It is not enough volume to evaluate data quality. Paid plans start at $10/month on RapidAPI.

Live Booking.com rates, one key away

Destination search, name lookup, room-level pricing and per-market rates. One subscription covers every endpoint.

Free tier: 10 requests/month. No card to try.