Endpoint
Request parameters
All parameters are passed as URL query string values.Latitude of the search center point, in decimal degrees. Combined with
lon to define the search origin.Longitude of the search center point, in decimal degrees. Combined with
lat to define the search origin.Check-in date in
YYYY-MM-DD format (e.g. 2026-07-14). Must be before checkout.Check-out date in
YYYY-MM-DD format (e.g. 2026-07-21). Must be after checkin.Number of adult guests. Only rooms whose
max_adults is greater than or equal to this value are returned.Number of child guests. Defaults to
0 when omitted. Only rooms whose max_children is greater than or equal to this value are returned.Number of rooms requested. Passed through to the search context but pricing is calculated per room.
Search behaviour
- Results are filtered to properties within 250 km of the supplied coordinates.
- Only rooms where
is_active = trueand the matching rate plan is active are considered. - Guest count is enforced:
adults ≤ max_adultsandchildren ≤ max_children. - One room per hotel is returned — the room with the lowest
total_priceafter modifiers. - Results are sorted by
total_priceascending.
Pricing
Each room has asubtotal (sum of nightly base prices before stay-level adjustments) and a total_price (after all applicable modifiers fire). The applied_modifiers array tells you which modifier types contributed to the final price.
Modifier types that can appear in applied_modifiers:
| Type | Description |
|---|---|
day_of_week | Surcharge applied to specific days of the week |
length_of_stay | Discount for stays meeting a minimum night threshold |
early_bird | Discount for bookings made sufficiently far in advance |
last_minute | Surcharge applied when booking close to the arrival date |
extra_guest | Per-night surcharge for guests above base occupancy |
Only one discount modifier (
length_of_stay or early_bird) can fire per room — whichever is eligible and has the lowest sort_order wins. Surcharge modifiers (day_of_week, last_minute, extra_guest) can all fire independently.Response
A successful response is an array ofResolvedRoom objects.
Unique identifier for the property.
Display name of the hotel.
URL-friendly slug for the hotel, suitable for building deep-link URLs.
City where the property is located.
Country where the property is located.
Unique identifier for the room.
Display name of the room type (e.g. “Deluxe King”).
Full description of the room.
Number of guests the room accommodates at the standard rate. Guests above this count may trigger the
extra_guest modifier.Maximum number of adult guests the room can accommodate.
Maximum number of child guests the room can accommodate.
Unique identifier for the rate plan applied to this result.
Display name of the rate plan (e.g. “Best Available Rate”).
ISO 4217 currency code for all price fields (e.g.
"USD", "EUR").Whether this rate plan allows a full refund under its cancellation policy.
Human-readable description of the cancellation terms.
Minimum number of nights required to book this room under this rate plan.
Maximum number of nights allowed.
null means no upper limit.Sum of nightly base prices for the stay, before stay-level modifiers (e.g.
length_of_stay, early_bird) are applied. Rounded to two decimal places.Final price after all applicable modifiers have been applied. This is the amount to display to the guest. Rounded to two decimal places.
List of modifier type strings that fired during price calculation. Possible values:
"day_of_week", "length_of_stay", "early_bird", "last_minute", "extra_guest". An empty array means no modifiers changed the base price.