Skip to main content
You can start searching for hotels immediately — no account required. This guide walks through the search experience in the web app and shows you how to make the same search directly against the API so you can integrate OpenBookings into your own application.

Search in the web app

1

Open the app

Go to openbookings.co. You’ll see a fullscreen hero image with a search panel in the bottom-right corner.
2

Enter your destination

Click the Destination… field. As you type a city name, OpenBookings shows instant typeahead suggestions powered by Algolia. Click the destination you want — the app records its coordinates for the search.
3

Choose your dates

Click the date field (it shows From / Till) to open the date picker. Click a check-in date, then a check-out date. The field updates to show your selected range, e.g. Jun 1, 2026 / Jun 3, 2026.
4

Set guests and rooms

Click the guest field to open the guest selector. Adjust the number of adults, children, and rooms. The default is 2 Adults · 1 Room. OpenBookings only returns rooms whose max_adults and max_children capacity covers your guest count.
5

Run the search

Click Find my trip. OpenBookings fetches results from GET /api/query and displays a ranked list of available properties sorted by total price, lowest first.
Each result shows the best-priced available room for that property. If a property has multiple room types that fit your guest count, only the cheapest qualifying room appears in the list.

Search via the API

If you’re building an integration, you can call GET /api/query directly. The endpoint accepts your destination coordinates, dates, and guest count and returns the same ranked results the app displays.

Required parameters

ParameterTypeDescription
latnumberLatitude of the destination
lonnumberLongitude of the destination
checkinstringCheck-in date in YYYY-MM-DD format
checkoutstringCheck-out date in YYYY-MM-DD format
adultsintegerNumber of adult guests
roomsintegerNumber of rooms

Optional parameters

ParameterTypeDescription
childrenintegerNumber of child guests (default 0)

Example: search London for 2 nights

The coordinates below are central London (lat=51.5074, lon=-0.1278). The search covers all properties within 250 km of that point.
curl "https://openbookings.co/api/query?lat=51.5074&lon=-0.1278&checkin=2026-06-01&checkout=2026-06-03&adults=2&rooms=1"

Example response

The API returns an array of hotel objects, one per property, sorted by total_price ascending. Each object represents the cheapest available room for that property on your dates.
[
  {
    "hotel_id": "prop_01j2kx9n4t",
    "hotel_name": "The Kensington Grand",
    "hotel_slug": "the-kensington-grand",
    "city": "London",
    "country": "GB",
    "room_id": "room_01j2kx9q8w",
    "room_name": "Classic Double",
    "room_description": "A comfortable double room with city views and en-suite bathroom.",
    "base_occupancy": 2,
    "max_adults": 2,
    "max_children": 1,
    "rate_plan_id": "rp_01j2kxbm3z",
    "rate_plan_name": "Flexible Rate",
    "currency": "GBP",
    "is_refundable": true,
    "cancellation_policy": "Free cancellation until 48 hours before check-in.",
    "min_stay": 1,
    "max_stay": null,
    "subtotal": 280.00,
    "total_price": 252.00,
    "applied_modifiers": ["length_of_stay"]
  },
  {
    "hotel_id": "prop_01j2kyp7rn",
    "hotel_name": "Shoreditch Loft Hotel",
    "hotel_slug": "shoreditch-loft-hotel",
    "city": "London",
    "country": "GB",
    "room_id": "room_01j2kyp9vx",
    "room_name": "Loft King",
    "room_description": "Open-plan loft room with exposed brick and a king-size bed.",
    "base_occupancy": 2,
    "max_adults": 2,
    "max_children": 0,
    "rate_plan_id": "rp_01j2kyqc4f",
    "rate_plan_name": "Non-Refundable Rate",
    "currency": "GBP",
    "is_refundable": false,
    "cancellation_policy": "Non-refundable. No changes permitted after booking.",
    "min_stay": 1,
    "max_stay": null,
    "subtotal": 310.00,
    "total_price": 310.00,
    "applied_modifiers": []
  }
]

Key response fields

FieldTypeDescription
hotel_idstringUnique property identifier
hotel_namestringDisplay name of the property
hotel_slugstringURL-safe property identifier
city / countrystringLocation of the property
room_namestringName of the room type being quoted
currencystringISO 4217 currency code (e.g. "GBP", "EUR", "USD")
is_refundablebooleanWhether the rate allows free cancellation
cancellation_policystringHuman-readable cancellation terms
subtotalnumberBase cost before discounts
total_pricenumberFinal price after all applicable modifiers (the amount the guest pays)
applied_modifiersstring[]Rate modifiers that were applied (e.g. "length_of_stay", "early_bird")
total_price may be lower than subtotal when a discount modifier fires (such as a length-of-stay discount), or higher when surcharges apply (such as extra-guest fees or weekend pricing).

Error responses

If a required parameter is missing or invalid, the API returns HTTP 400 with an errors array:
{
  "errors": ["lat is required", "checkin is required"]
}

Next steps

Now that you have search results, you can sign in to complete a booking.

Authentication

Sign in with magic-link email or Google / Apple — no password needed.

Hotel Search API reference

Full parameter reference, response schema, and error codes.