search_hotels
Search for hotels by location and dates. Returns a list of matching hotels with cash and points rates and deal scores. To produce a focused cash-vs-points decision widget for a hotel the user is considering — for one or several top picks — follow up with compare_rates rather than narrating rates from search results. This tool searches one fixed stay window. If the user asks for a flexible window (for example, 2 nights between September 8 and 22), either ask which check-in date they prefer or pick one concrete window and explicitly tell the user why you chose it; do not silently default to the earliest possible dates. When the user wants date options, use get_multi_night_rates on the top hotel_ids after search_hotels to surface alternate check-in dates where available.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| checkin | Yes | Check-in date in YYYY-MM-DD format. | |
| checkout | Yes | Check-out date in YYYY-MM-DD format. | |
| location | Yes | City name, address, or area (e.g. "Tokyo", "Manhattan, New York", "near LAX airport"). | |
| chain_name | No | Optional hotel chain filter (e.g. "marriott", "hilton", "hyatt", "ihg"). Case-insensitive substring match against each result's chain. If no result matches, the unfiltered results are returned with an explicit note in the summary so you don't keep retrying with different chain values. | |
| hotel_name | No | Optional hotel name to boost to the top of results (e.g. "Conrad Las Vegas", "Park Hyatt Tokyo"). Use this when the user names a specific hotel — the matching property will be ranked first so you can pass its hotel_id to compare_rates without guessing. Case-insensitive substring match against the property name. Boosting (rather than filtering) preserves nearby alternatives the user may want to see. | |
| num_adults | No | Number of adult guests. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |