Search hotels
search_hotelsSearch the chain's hotels (worldwide, several thousand) by location, stars, brand, status and amenities, with pagination.
All filters are optional and combined with AND. Always pass `country` (ISO code, e.g. "FR") together with `city`
when the country is known or implied: a search on "Paris" alone returns Paris (Kentucky, US) and
Paris (Ontario, CA) before Paris (France).
Returns {"language", "total", "offset", "limit", "count", "next_offset", "hotels"}: `total` is the number of matching hotels,
`next_offset` is null on the last page. Each hotel is a summary (hotel_id, name, brand, city, country, state,
stars, status, lat, lng, cover_photo); use get_hotel_details for the full record.
Geographic search: give a center (lat + lng, or near_hotel_id) and radius_km. Results are then sorted by
distance, each hotel gets a `distance_km` field and the response a `center` field. Coordinates you supply
for a landmark are approximate, so prefer a generous radius. Hotels without coordinates are excluded.
No availability, rates or booking: this tool only returns descriptive information.Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude of the search center (-90 to 90). Use with `lng` and `radius_km`. | |
| lng | No | Longitude of the search center (-180 to 180). Use with `lat` and `radius_km`. | |
| city | No | City name, partial match ignoring case, accents, hyphens and St/Ste abbreviations (e.g. 'Saint-Étienne' = 'saint etienne' = 'St Etienne'; 'Saint' matches every city containing 'Saint'). If no city matches, the response lists close city names in `city_suggestions`. City names are ambiguous worldwide: combine with `country` whenever the country is known. | |
| brand | No | Partial match on the sub-brand, ignoring case and accents (e.g. 'Plus', 'Premier', 'Signature Collection') | |
| limit | No | Maximum number of hotels to return (1-100) | |
| offset | No | Number of matching hotels to skip, for pagination. Pass the `next_offset` value of the previous response. | |
| status | No | Hotel status | |
| country | No | ISO 3166-1 alpha-2 country code, uppercase (FR, US, CA, DE...). Strongly recommended together with `city` to avoid homonyms (Paris FR vs Paris US/CA). | |
| language | No | Language of the multilingual fields of the results. Accepted values: fr, en, de, it, es. A text missing in the requested language is returned in French. | fr |
| min_stars | No | Minimum star rating (1-5). Hotels without a star rating are excluded when set. For an exact rating, filter the results on their `stars` field. | |
| radius_km | No | Search radius in kilometres (up to 200). Required with lat/lng or near_hotel_id. | |
| near_hotel_id | No | Use this hotel's coordinates as the search center (instead of lat/lng) to find other hotels around it; the hotel itself is excluded. Use with `radius_km`. | |
| required_amenities | No | Amenity IDs the hotel must ALL have, uppercase (e.g. ["POOL", "PARKING"]). Unknown IDs raise an error listing the valid ones; the catalogue is also available via get_amenities without hotel_id. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| count | Yes | Number of hotels in this page | |
| limit | Yes | ||
| total | Yes | Number of hotels matching the filters | |
| center | No | Center of a geographic search: {lat, lng, radius_km}, plus near_hotel_id if used | |
| hotels | Yes | ||
| offset | Yes | ||
| language | Yes | Language of the returned texts | |
| next_offset | Yes | Offset of the next page, null on the last page | |
| city_suggestions | No | When `city` matches no hotel: close city names to retry with |