Search stays
search_staysReturns bookable hotels with photos, guest scores, policies, member rates and a Book link, with or without dates. For questions about hotels, stays, where to sleep, resorts or neighbourhoods to stay in. Returns the top 10 by default (limit up to 50, offset to page), nearest distance band first, then guest score, each with hotel_id, whole-stay price and book_link, plus total_available, has_more and next. Reads only; nothing is booked. With no dates it uses a labelled sample window and returns needs: ["dates"]: show the hotels, then ask for dates. Filters apply after ranking and the result names those applied. Use get_stay_details for one hotel in depth, compare_stays for 2 to 4 side by side.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"city": "<city>"
},
"name": "search_stays"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | A neighbourhood to centre on, e.g. a name from get_trip's next.areas; distance_km is then from it. An unknown name falls back to the whole city and the note says so. | |
| city | Yes | City or town, e.g. Lisbon. | |
| sort | No | best (default: nearest band, then guest score), price_low, price_high, rating (guest score), distance (from the centre or area). | |
| limit | No | How many stays to return, up to 50 (default 10). Use more than 10 only when the traveller asks. | |
| adults | No | Number of adults, 1 to 8. Optional: the trip's party when a trip is in the session, else 2. | |
| budget | No | Price band: budget, mid or luxury. | |
| offset | No | Skip this many ranked stays (default 0). For 'more', pass the previous offset plus limit. | |
| checkin | No | Check-in date, YYYY-MM-DD. Optional: leave out when the traveller gave no dates (a sample window is used and labelled). | |
| country | No | Country name, e.g. Portugal. Send it when known; it keeps same-named cities apart. | |
| trip_id | No | The trip's id (trip_id), as returned by start_trip or list_trips. Optional: that trip's stop in this city supplies the dates and party (else the signed-in traveller's latest trip with a stop here). | |
| checkout | No | Check-out date, YYYY-MM-DD, at least one night after checkin. Optional. | |
| describe | No | The kind of stay in words, e.g. 'quiet boutique near the old town with a rooftop pool'. Matches by meaning; results come in best-match order. | |
| amenities | No | Every one listed must be present (the app's amenity chips). | |
| min_stars | No | Star rating floor, like the app's 4+ stars chip. A hotel with no star rating fails it. | |
| intent_ref | No | The reference at the end of a chat line an Adonde card posted, e.g. K7Q2MD from "Code: K7Q2MD." (older cards: "(ref K7Q2MD)"). Pass it on its own: the card's exact arguments load on our side. Add only what the line says is still missing (for a route, the travellers). | |
| max_per_night | No | Nightly ceiling in the search currency. If nothing fits, the cheapest ten come back with a note. | |
| min_per_night | No | Nightly floor in the search currency. | |
| property_type | No | Kind of property, when the provider states it; otherwise the result says it was not applied. | |
| refundable_only | No | Free cancellation only; the price shown is the cheapest refundable rate. | |
| min_guest_rating | No | Guest score floor on the 0 to 10 scale (9 wonderful, 8 very good, 7 good). | |
| breakfast_included | No | Only rates that include breakfast; the price shown is the cheapest such rate. |