destination | object | Yes | Destination — provide exactly one shape: { query }, { city_name (+ optional country_code) }, { latitude + longitude (+ optional radius_km) }, { place_id }, or { hotel_ids }. |
destination.query | string | No | Free-text destination (city, region, POI, neighborhood). Use for natural-language destinations like “Paris” or “Tuscany”. Max 200 chars. |
destination.city_name | string | No | City name (e.g. “Paris”). Pair with country_code for disambiguation. |
destination.country_code | string | No | ISO 3166-1 alpha-2 country code (lowercase preferred, e.g. “fr”). Must be paired with city_name — other destination shapes ignore it. |
destination.latitude | number | No | Latitude for geo-radius search. Pair with longitude. |
destination.longitude | number | No | Longitude for geo-radius search. Pair with latitude. |
destination.radius_km | number | No | Geo-radius in km (default 5, max 50). Requires latitude+longitude — ignored with other destination shapes. |
destination.place_id | string | No | Google Places ID or upstream place identifier. |
destination.hotel_ids | array<string> | No | Re-shop a known set of hotel IDs (skips destination resolution). |
checkin | string | Yes | Check-in date (YYYY-MM-DD). |
checkout | string | Yes | Check-out date (YYYY-MM-DD). |
occupancies | array<object> | No | One entry per room (structured). Use this when room composition matters. Example: [{ “adults”: 2 }, { “adults”: 1, “children_ages”: [5] }]. Do NOT combine with the shorthand fields (adults/children/rooms) — use one or the other. |
adults | integer | No | Shorthand: total adults across all rooms. Do NOT combine with occupancies[] — use one or the other. |
children | array<integer> | No | Shorthand: ages of all children across all rooms. |
rooms | integer | No | Shorthand: number of rooms (BFF auto-distributes adults + children). |
currency | string | No | ISO 4217 currency code. Defaults to “USD”. |
guest_nationality | string | No | Guest nationality (ISO 3166-1 alpha-2, lowercase). Affects rate availability + tax handling at search time. Separate from traveler nationality used for booking documents. |
filters | object | No | Optional filter overrides applied on top of the tenant default filter set. |
filters.min_rating | number | No | Minimum guest review rating (0-10 scale). |
filters.star_rating | integer | No | Minimum star rating (1-5). |
filters.min_reviews | integer | No | Minimum number of guest reviews. |
filters.hotel_type_ids | array<string> | No | Filter by hotel type IDs (e.g. boutique, resort). |
filters.chain_ids | array<string> | No | Filter by hotel chain IDs (e.g. “hilton”, “marriott”, “accor”, “ihg”). |
filters.facility_ids | array<string> | No | Filter by facility IDs (e.g. pool, gym, spa). Applied at connector search time, not post-filtered. |
filters.max_results | integer | No | Maximum number of hotels to return (default 50). |