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_nametakes the name a human would type, no property IDs first
Free tier on RapidAPI. No card to try.
{
"destination": "Lisbon",
"checkin_date": "2026-10-09",
"checkout_date": "2026-10-12",
"adults": 2,
"currency": "EUR",
"filters": [
"review_score_8",
"free_cancellation"
]
}Endpoints
Four ways in, one subscription
Every plan includes every endpoint: you only choose volume and rate limit. Each page below shows a real captured request and what came back.
POST /search
Destination search
Free-text destination and dates in; ranked properties with live prices, review scores, room types and booking links out.
POST /hotel_by_name
Hotel by name
The name a human would type. Name resolution included: no property-ID step before you can ask anything.
proxy_country · every endpoint
Geo-pricing & rate parity
Price the same room from any market through a residential proxy. The page for revenue managers and BI teams.
POST /hotel + /resolve
Competitive-set tracking
Resolve a name to its Booking.com ID once, then pull the full room-by-room list on a schedule.
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.
| Category | Filters |
|---|---|
| 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 problem | How 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 sees | Every request is live against Booking.com |
| No way to see market-specific pricing | proxy_country routes through a residential proxy in any country |
| A thin slice of the site’s filters | 24 filters plus budget_per_night, matching the Booking.com UI |
| Errors and sold-out come back in different shapes | Consistent available: false plus nulls, so parsing never branches |
Pricing
Every plan carries every endpoint
| Plan | Price / mo | Requests | $ / 1k req | Overage | Rate limit | |
|---|---|---|---|---|---|---|
| BASIC | Free | 10 / mo | — | hard cap | 250 / min | Get this plan → |
| PRO | $10 | 2,000 / mo | $5.00 | $0.006 / req | 25 / min | Get this plan → |
| ULTRA | $20 | 6,500 / mo | $3.08 | $0.003 / req | 25 / min | Get this plan → |
| MEGA | $50 | 25,000 / mo | $2.00 | $0.002 / req | 50 / min | Get 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.