image

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 (default en-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 name
  • full_name — display label
  • type — destination type, such as CITY, REGION, AIRPORT, DISTRICT, or LANDMARK
  • destination_id — Booking destination id
  • country_code — country code
  • coordinates.latitude and coordinates.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 90
  • longitude — required, -180 to 180
  • radius — optional radius in kilometers (default 10, max 100)
  • checkin — optional check-in date, YYYY-MM-DD
  • checkout — optional check-out date, YYYY-MM-DD, after check-in
  • adults — optional, default 2
  • children — optional count, default 0
  • rooms — optional, default 1
  • children_ages — optional comma-separated ages when children is greater than 0
  • language — optional, default en-us
  • min_price and max_price — optional integer price bounds
  • stars — optional comma-separated star values from 1 to 5, for example 3,4
  • limit — 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 call
  • name — property name
  • location.formatted_address — short address
  • location.coordinates — property latitude and longitude
  • ratings.internal.score and ratings.internal.count — review score and review count
  • ratings.star_rating.value — star rating
  • price_info.average_price_per_night.amount — nightly price string
  • price_info.display_price.amount_per_stay.amount — stay total
  • photos.high_res — main photo URL
  • availability.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

How to Fetch Local School Ratings and Neighborhood Amenities via API Jul 19, 2026

How to Fetch Local School Ratings and Neighborhood Amenities via API

Neighborhood insights are just as important as the property itself. This guide shows developers how to use the SteadyAPI Neighborhood Amenities API to fetch school ratings, walkability and transit scores,...

The Developer’s Guide to Integrating Real-Time MLS Property Data Jul 19, 2026

The Developer’s Guide to Integrating Real-Time MLS Property Data

This guide walks developers through building a modern real estate data pipeline with SteadyAPI. You'll learn how to search MLS property listings, retrieve tax and transaction histories, analyze local housing...

How to Track Amazon Bestsellers and Category Rankings Programmatically Apr 03, 2026

How to Track Amazon Bestsellers and Category Rankings Programmatically

Learn how to programmatically track Amazon Best Sellers Rank (BSR), extract Movers & Shakers data, and map category nodes using Python and SteadyAPI.

How to Aggregate Reddit Threads for Research and Trend Analysis Apr 02, 2026

How to Aggregate Reddit Threads for Research and Trend Analysis

Stop scraping Reddit. Learn how to use SteadyAPI to aggregate threads, monitor niche subreddits, and quantify social sentiment for market research.