Hotel search is still one of the few SteadyAPI products without a how-to. The recent guides cover markets, Amazon, Reddit, Instagram, and real estate. Booking.com is live in the docs, and the public blog never walks through a hotel search.
This guide uses two documented endpoints. First, turn a place name into coordinates. Then search hotels around that point and read back name, rating, and price.
👉 To access these endpoints, you must obtain an API key: https://steadyapi.com/register
Authentication
Every call uses a Bearer token from your SteadyAPI dashboard.
Documentation:
https://docs.steadyapi.com/#authenticating-requests
headers = {
'Authorization': 'Bearer YOUR_API_KEY'
}
1. Resolve a destination
Users type city names, not latitude and longitude. Autocomplete returns matching cities, regions, airports, and landmarks, including coordinates you can pass into search.
Endpoint: GET /v1/booking/hotels/autocomplete
Documentation:
https://docs.steadyapi.com/#bookingcom-GETapi-v1-booking-hotels-autocomplete
Request
GET https://api.steadyapi.com/v1/booking/hotels/autocomplete?search=oklah
Authorization: Bearer YOUR_API_KEY
Parameters
search— required search term (example:oklah)language— optional language code (defaulten-us)
Python
import requests
url = "https://api.steadyapi.com/v1/booking/hotels/autocomplete"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
params = {"search": "oklah", "language": "en-us"}
response = requests.get(url, headers=headers, params=params)
response.raise_for_status()
matches = response.json().get("body", [])
place = matches[0]
print(place["name"], place["type"], place["coordinates"])
Response fields
Each item in body includes:
name— short place namefull_name— display labeltype— destination type, such asCITY,REGION,AIRPORT,DISTRICT, orLANDMARKdestination_id— Booking destination idcountry_code— country codecoordinates.latitudeandcoordinates.longitude— point used by the next call
2. Search hotels around that point
Pass the coordinates from autocomplete into the coordinate search. Check-in defaults to tomorrow and check-out to three days later when you omit the dates.
Endpoint: GET /v1/booking/hotels/search-by-coordinates
Documentation:
https://docs.steadyapi.com/#bookingcom-GETapi-v1-booking-hotels-search-by-coordinates
Request
GET https://api.steadyapi.com/v1/booking/hotels/search-by-coordinates?latitude=35.4676&longitude=-97.5164&radius=10&adults=2&rooms=1
Authorization: Bearer YOUR_API_KEY
Parameters
latitude— required, -90 to 90longitude— required, -180 to 180radius— optional radius in kilometers (default 10, max 100)checkin— optional check-in date,YYYY-MM-DDcheckout— optional check-out date,YYYY-MM-DD, after check-inadults— optional, default 2children— optional count, default 0rooms— optional, default 1children_ages— optional comma-separated ages whenchildrenis greater than 0language— optional, defaulten-usmin_priceandmax_price— optional integer price boundsstars— optional comma-separated star values from 1 to 5, for example3,4limit— optional results per page (default 20, max 50)page— optional page number (default 1)
Python
from datetime import date, timedelta
coords = place["coordinates"]
checkin = (date.today() + timedelta(days=14)).isoformat()
checkout = (date.today() + timedelta(days=17)).isoformat()
search_url = "https://api.steadyapi.com/v1/booking/hotels/search-by-coordinates"
search_params = {
"latitude": coords["latitude"],
"longitude": coords["longitude"],
"radius": 10,
"checkin": checkin,
"checkout": checkout,
"adults": 2,
"rooms": 1,
"language": "en-us",
}
search = requests.get(search_url, headers=headers, params=search_params)
search.raise_for_status()
hotels = search.json().get("body", [])
for hotel in hotels[:5]:
price = hotel.get("price_info", {}).get("average_price_per_night", {}).get("amount")
score = hotel.get("ratings", {}).get("internal", {}).get("score")
print(hotel.get("hotel_id"), hotel.get("name"), score, price)
Response fields
body is a list of properties. Useful fields:
hotel_id— property id for a later details callname— property namelocation.formatted_address— short addresslocation.coordinates— property latitude and longituderatings.internal.scoreandratings.internal.count— review score and review countratings.star_rating.value— star ratingprice_info.average_price_per_night.amount— nightly price stringprice_info.display_price.amount_per_stay.amount— stay totalphotos.high_res— main photo URLavailability.is_sold_out— whether the property is sold out for those dates
Practical use
Resolve the place once, cache the coordinates, then page through search-by-coordinates with page and limit. Filter with stars or min_price / max_price before you call hotel details.
Hotel details are a separate call: GET /v1/booking/hotels/details with the hotel_id from search.
Documentation:
https://docs.steadyapi.com/#bookingcom-GETapi-v1-booking-hotels-details
👉 Get your API key and search hotels: https://steadyapi.com/register