[tourradar] Use this when the user describes what they want in natural language and you need AI-powered semantic search to understand their intent.
Before use this tool, please READ all possible filters.
PLESE USE FILTERS, when can be used, to make search faster and much more precise.
Please use start_city, end_city, cities, countries, start_country, end_country filters if possible. You can use multiple of them.
AI-powered semantic search for tours using natural language queries combined with optional filters. Uses Google Vertex AI to understand intent and find relevant tours based on descriptions, themes, or specific requests.
Use `vertex-tour-search` when:
- The user describes what they want in natural language
- You need semantic/AI-powered search to understand intent
- Combining natural language with filters for refined results
Examples:
- "Family-friendly safari with kids under 12"
- "Romantic honeymoon trip with beach and mountains"
- "Adventure tour with hiking and camping for beginners"
- "Cultural immersion experience with local homestays"
- "Wine tasting tour through European countryside"
## Input
### Required
- `textSearch`: Natural language description of what the user is looking for
- `display_mode`: How to display results — `"listing"` (default, carousel of tour cards) or `"map"` (interactive map view)
### Optional Filters
#### Location Filters
| Filter | Type | Description |
| --------------- | -------- | -------------------------------------------------------------------------- |
| `start_country` | string[] | Country where tour BEGINS (ISO 3166-1 alpha-2 codes). OR logic. |
| `end_country` | string[] | Country where tour ENDS (ISO 3166-1 alpha-2 codes). OR logic. |
| `start_city` | number[] | City IDs where tour starts. Use `b2b-cities-search` to find IDs. OR logic. |
| `end_city` | number[] | City IDs where tour ends. Use `b2b-cities-search` to find IDs. OR logic. |
| `countries` | object | Countries visited DURING the itinerary. Supports AND/OR operator. |
| `cities` | object | Cities visited on the itinerary. Supports AND/OR operator. |
#### Range Filters
| Filter | Type | Description |
| ---------------- | ------------------------ | ------------------------------------------------------------------------------------ |
| `duration` | `{ min, max }` | Tour length in days |
| `max_group_size` | `{ min, max }` | Maximum group size range |
| `min_group_size` | `{ min, max }` | Minimum group size range |
| `min_age` | `{ min, max }` | Minimum age requirement range. E.g., `{ min: 1, max: 12 }` finds family-friendly tours |
| `max_age` | `{ min, max }` | Maximum age limit range. E.g., `{ min: 18, max: 39 }` finds youth-specific tours |
| `price` | `{ min, max, currency }` | Price range (currency: "EUR") |
#### AND/OR Filters
These filters support both AND and OR operators:
| Filter | Values | Description |
| ------------ | ------------------------ | ---------------------------------- |
| `departures` | YYYY-MM strings | Filter by departure months |
| `countries` | ISO 3166-1 alpha-2 codes | Countries visited during itinerary |
| `cities` | City IDs | Cities visited on itinerary |
Structure: `{ values: [...], operator: "AND" | "OR" }`
- `OR` (default): Tour matches ANY of the specified values
- `AND`: Tour must match ALL specified values
## Examples
### Simple text search
```json
{ "textSearch": "family adventure with wildlife" }
```
### With location filters
```json
{
"textSearch": "hiking adventure",
"start_country": ["DE", "AT"],
"countries": { "values": ["IT", "CH"], "operator": "AND" }
}
```
### With range filters
```json
{
"textSearch": "luxury beach vacation",
"duration": { "min": 7, "max": 14 },
"price": { "min": 2000, "max": 5000, "currency": "EUR" },
"max_group_size": { "min": 1, "max": 16 }
}
```
### With age filters
```json
{
"textSearch": "family safari with young children",
"min_age": { "min": 1, "max": 6 },
"duration": { "min": 7, "max": 14 }
}
```
### With departure dates
```json
{
"textSearch": "northern lights tour",
"departures": { "values": ["2026-01", "2026-02", "2026-03"], "operator": "OR" }
}
```
### Map display mode
```json
{
"textSearch": "hiking tours in the Alps",
"display_mode": "map",
"countries": { "values": ["AT", "CH"], "operator": "OR" }
}
```
## Response
Returns a list of tours matching the query, each containing:
- Tour ID, name, and URL
- Operator information
- Brief description matching the query context