verychic_search_offers
Search and filter the current VeryChic offers by destination, country, price, discount, stars, flights, theme, or proximity — with optional sorting.
When to use: when you already know roughly what the user wants — a place, a country,
a budget, a minimum discount or star rating, flights vs hotel-only, a theme (e.g.
pool, spa, romantic, last_minute), or hotels near a point (near_lat/near_lng, with an
optional radius_km). To inspect one specific offer in depth use
`verychic_offer_details`. All filters are optional and combine with AND; call it with
no filter to browse the full current catalogue in catalogue order.
Behaviour: read-only and anonymous; rate-limited to about 1 request per second.
Filtering is done client-side over the live catalogue: `destination` is a
case-insensitive substring (matched on destination or name), `country` is an exact
case-insensitive match, `max_price`/`min_discount`/`min_stars` are numeric bounds,
`flights_included` toggles flight-bearing vs hotel-only, and `theme` matches a curated
label decoded from the catalogue's thematics tags. Use `sort_by` to order results
(`discount`, `price`, `rating`, `stars`, or `distance`). Prices are in EUR and text is
in French; there is no pagination. Returns the first `limit` matches after filtering
and sorting. "Current" means live offers at call time; the catalogue changes over time.
Returns a list of offer objects (same `source` + `external_id` pair for use with
`verychic_offer_details`). Each offer also carries `discount` (percent off, may be
null), `stars` (1-5, may be null), `price_label` (human-readable price unit, e.g.
"à partir de par pers. pour 3 nuits" vs "par chambre" — read this before comparing
prices), `price_with_flights` (EUR, null when not applicable), `flights_included`
(bool), `rating` (hotel grade, often null in the catalogue), and `themes` (curated
theme labels decoded from the catalogue's thematics tags, e.g. ["pool", "luxury"]).
An empty list means no offer matched the filters.
Proximity search: pass `near_lat` and `near_lng` (decimal degrees, together) to
compute each offer's `distance_km` from that point; add `radius_km` to keep only
offers within that distance, and/or `sort_by="distance"` for nearest-first.
`distance_km` is null when no center is given.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of matching offers to return (default 20), applied after filtering and sorting. No pagination. | |
| theme | No | Keep only offers matching this curated theme, decoded from the catalogue's thematics tags. One of: adults_only, city_break, cruise, island, last_minute, luxury, mountain, nature, pool, romantic, rooftop, spa, sun, villa. Omit to not filter by theme. | |
| country | No | Exact country name, case-insensitive, as spelled in the (French) catalogue, e.g. 'France', 'Italie', 'Grece'. Omit to not filter by country. | |
| sort_by | No | Sort the results: 'discount' (biggest discount first), 'price' (cheapest first), 'rating' (best-rated first), 'stars' (most stars first), 'distance' (nearest first, requires near_lat/near_lng). Offers missing the sort value are placed last. Omit to keep catalogue order. | |
| near_lat | No | Latitude of a search center for proximity search, in decimal degrees. Must be given together with near_lng. Omit for no geo search. | |
| near_lng | No | Longitude of a search center for proximity search, in decimal degrees. Must be given together with near_lat. Omit for no geo search. | |
| max_price | No | Inclusive upper bound on the offer price, in EUR. Offers with no price are excluded when this is set. Omit for no price cap. | |
| min_stars | No | Keep only offers with at least this hotel star rating (1-5), parsed from the offer name. Offers with no detectable rating are excluded. Omit to not filter by stars. | |
| radius_km | No | Keep only offers within this many kilometers of the near_lat/near_lng center. Requires near_lat and near_lng. Omit for no radius. | |
| destination | No | Case-insensitive substring matched against each offer's destination AND name (e.g. 'paris', 'maldives', 'crete'). Omit to not filter by destination. | |
| min_discount | No | Keep only offers whose discount percentage is at least this value (e.g. 40 for '40% off or more'). Offers with no discount are excluded. Omit for no discount filter. | |
| flights_included | No | Filter on whether flights are part of the offer: true keeps flight-bearing offers, false keeps hotel-only offers. Omit to not filter. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |