How to Search Hotels Using SteadyAPI
Learn how to find hotels by destination using SteadyAPI. Resolve a place name to coordinates, then pull property names, ratings, and prices with the Booking.com hotel search endpoints.
READ MORECapabilities
Hotel endpoints take the hotel_id that hotel search returns as id. Flights and car rentals are separate searches with their own identifiers, so a trip planner calls each one on its own.
Start with destination autocomplete to get a dest_id and dest_type, then search that city or region for your dates and guests. Each result carries the property id, review score, star rating, photos, and the stay and nightly price. You can also search around a latitude and longitude. See examples
Flight autocomplete turns a city or airport name into a code such as CVG.AIRPORT. Search takes the origin, destination, dates, passengers, and a one-way, round-trip, or multi-city trip type, with filters for stops, airlines, and a maximum price. Pass an offer's offer_token to flight details for its segments, baggage policies, and fare features. See examples
The availability calendar starts on a date you choose and covers 1 to 90 days, 28 by default. For each date it shows whether the property can be booked, the price, and the minimum stay. See examples
Reviews come back a page at a time, up to 50 per call, together with the property's score summary. You can filter by score, guest type, or a topic such as breakfast or parking, and sort by newest or by score. See examples
Hotel details return the description, facilities, check-in and check-out times, photos, ratings, policies, and the room blocks offered for your dates. The rooms call adds bed layouts, room facilities, and room-level review scores, and a separate FAQ call returns the property's questions and answers. See examples
Nearby attractions lists the airports, landmarks, restaurants, beaches, public transport, and natural attractions around a hotel. You can cap how many items and how far away each category goes. See examples
Shortened examples
These simplified examples show the kind of data a hotel search, a flight offer, a room, and a property return. The live responses carry many more fields and a meta block that echoes your search parameters; the docs show a full response for every endpoint.
[
{
"id": 290417,
"name": "Country Inn & Suites by Radisson, Oklahoma City at Northwest Expressway, OK",
"star_rating": 3,
"location": {
"address": "3141 Northwest Expressway",
"city": "Oklahoma City (Oklahoma)",
"country_code": "us",
"distance_from_downtown": "5 miles from downtown"
},
"reviews": {
"score": 5.5,
"review_count": 1385,
"score_text": "Fair"
},
"pricing": {
"average_price_per_night": {
"amount": "$51.09",
"currency": "USD"
},
"total_price": {
"amount": "$357.60",
"currency": "USD"
}
},
"photos": {
"high_res": "https://cf.bstatic.com/.../521226692.webp"
},
"booking_url": "https://www.booking.com/hotel/us/country-inn-suites-by-carlson-oklahoma-city.html?..."
}
]{
"id": 257269101,
"name": "Queen Room with Two Queen Beds",
"occupancy": {
"max_guests": 5,
"max_children": 4
},
"size": {
"square_meters": 27.87
},
"bed_configurations": [
{
"beds": [
{
"type": "LARGE_DOUBLE_BED",
"count": 2,
"translation": "Queen bed(s)"
}
]
}
],
"facilities": [
{
"category": "OTHER",
"facilities": [
{
"id": 11,
"name": "Air conditioning"
},
{
"id": 125,
"name": "Linens"
}
]
}
],
"photos": [
{
"url": "https://cf.bstatic.com/.../264839682.jpg"
}
]
}{
"offer_token": "d7699_H4sIAAAAAAAA...",
"trip_type": "ROUNDTRIP",
"segments": [
{
"departure_airport": {
"code": "CVG",
"city_name": "Cincinnati"
},
"arrival_airport": {
"code": "OKC",
"city_name": "Oklahoma City"
},
"departure_time": "2026-11-15T10:32:00",
"arrival_time": "2026-11-15T14:14:00",
"legs": [
{
"flight_info": {
"flight_number": 4097
},
"carriers_data": [
{
"name": "American Airlines",
"code": "AA"
}
]
}
]
}
],
"branded_fare_info": {
"fare_name": "Basic Economy",
"cabin_class": "ECONOMY"
},
"price_breakdown": {
"total": {
"currency_code": "USD",
"amount": 463.1
}
}
}{
"hotel_id": 2572691,
"name": "La Quinta by Wyndham Oklahoma City Airport",
"accommodation_type_name": "HOTEL",
"ratings": {
"internal": {
"score": 8.2,
"count": 1006,
"total_score_text": "Very Good"
},
"star_rating": {
"value": 3
}
},
"facilities": [
{
"name": "Wireless internet",
"group": "OTHER"
},
{
"name": "Coffee machine",
"group": "OTHER"
},
{
"name": "Flat-screen TV",
"group": "OTHER"
}
],
"location": {
"formatted_address": "808 S Meridian Ave, Oklahoma City, OK",
"country_code": "us",
"location_score": 8.5
},
"price_info": {
"average_price_per_night": {
"amount": "$99",
"currency": "USD"
}
}
}The Booking.com docs cover all 17 endpoints across hotels, flights, car rentals, and the language, currency, and location lookups, with every parameter, its default, and a sample response.
Every endpoint in the documentation includes a sample request in Shell, JavaScript, PHP, and Python.
Pricing
Your plan's monthly requests work on this API and every other SteadyAPI API. Plan details, overage rates, and the Free plan's daily cap are on the pricing page. Need more volume than the largest plan? Email [email protected].
Free $0.00 per month | Starter $14.99 per month | Developer $39.99 per month | Business Popular $89.99 per month | Enterprise $299.99 per month | |
|---|---|---|---|---|---|
| Subscribe | Subscribe | Subscribe | Subscribe | Subscribe | |
| Requests per month | 500 | 10,000 | 50,000 | 250,000 | 2,500,000 |
| Stock Market API | |||||
| Options Data API | |||||
| Crypto Data API | |||||
| AliExpress API | |||||
| Reddit API | |||||
| Booking.com API | |||||
| Real Estate API | |||||
| Baseball (MLB) API | |||||
| Hockey API | |||||
| Football API | |||||
| Amazon API | |||||
| eBay API | |||||
| Walmart API | |||||
| Instagram API | |||||
| Twitter / X API | |||||
| TikTok API | |||||
| YouTube API | |||||
| AutoHub API | |||||
| ScrapeFlow | |||||
| Commercial Use | |||||
| Optional overage rate* | $1.50 per 1,000 requests | $1.05 per 1,000 requests | $0.50 per 1,000 requests | $0.09 per 1,000 requests | |
| Overage cap | up to 50,000 extra | up to 250,000 extra | up to 1,250,000 extra | up to 12,500,000 extra |
Free $0.00 per year | Starter $11.96 per month$143.52 billed yearly | Developer $32.50 per month$389.99 billed yearly | Business Popular $72.50 per month$869.99 billed yearly | Enterprise $320.83 per month$3,849.99 billed yearly | |
|---|---|---|---|---|---|
| Subscribe | Subscribe | Subscribe | Subscribe | Subscribe | |
| Requests per month | 500 | 10,000 | 50,000 | 250,000 | 2,500,000 |
| Stock Market API | |||||
| Options Data API | |||||
| Crypto Data API | |||||
| AliExpress API | |||||
| Reddit API | |||||
| Booking.com API | |||||
| Real Estate API | |||||
| Baseball (MLB) API | |||||
| Hockey API | |||||
| Football API | |||||
| Amazon API | |||||
| eBay API | |||||
| Walmart API | |||||
| Instagram API | |||||
| Twitter / X API | |||||
| TikTok API | |||||
| YouTube API | |||||
| AutoHub API | |||||
| ScrapeFlow | |||||
| Commercial Use | |||||
| Optional overage rate* | $1.50 per 1,000 requests | $1.05 per 1,000 requests | $0.50 per 1,000 requests | $0.09 per 1,000 requests | |
| Overage cap | up to 50,000 extra | up to 250,000 extra | up to 1,250,000 extra | up to 12,500,000 extra |
* Overage is optional and stays off until you turn it on in Billing. It is available on paid plans billed by card through Stripe, and not during a trial. Usage is counted in monthly periods that start on your billing day, yearly plans included. Requests past the included limit are charged at the plan's rate for each started block of 1,000, up to the overage cap, on one invoice after the period ends. Amounts under $0.50 carry over to the next invoice. If you change plans during a period, the limit and overage rate of the plan you are on when the period ends apply to the whole period.
The Free plan is also capped at 20 requests per day (New York time). Requests count by endpoint weight, and only responses with HTTP status 200 count.
Commercial use is included only on the plans that list it. If you are not sure whether your project counts as commercial use, email [email protected] before you launch.
Why SteadyAPI
Each part of a trip has its own search and its own identifier, and every price depends on the dates and guests you send.