← Back to all apps

Overview

Tools Available2
DeveloperTripAdvisor Inc.
CategoryTravel

Find travel experiences

Available Tools

Viator provides 2 tools that can be used to interact with its services.

Get experience details

get_experience_details
Full Description

Retrieves enriched information for a specific Viator experience, including detailed descriptions, highlights, imagery, pricing, and the click-out URL.The model should call this tool only when the user clearly refers to a specific experience—either by selecting it in the UI or by asking follow-up questions such as “Tell me more about…”;if multiple experiences were shown, the model must resolve ambiguity by asking which one the user means. This tool is intended for deepening experience understanding rather than search, and should only be invoked with a code previously returned by search_experiences.

Parameters

Required
codestring

(required) Unique identifier of the Viator experience to retrieve details for.This value must correspond to an experience previously returned by the search_experiences tool.The model must not guess or make up experience IDs; if the user request is ambiguous (e.g., multiple items shown), the model must ask which experience they mean before calling the tool.

Optional
languagestring

(optional) The language/locale code requested for content localization (e.g., en-US, en-GB, fr-FR).If not provided by the user, the model should infer it from context or default to en-US.Used to descriptions, highlights, and content where available.

sessionIdstring

(optional) A unique identifier for the current user-session. If this is your first call to the API for this session, you should leave this empty. If you do not provide one, we will echo a new one back to you to use in future requests for as long as the user is active, or you consider their 'session' active.

Search for experiences

search_experiences
Full Description

Retrieves a curated list of Viator experiences based on required trip context (location and travel dates) and optional refiners (categories, kid-friendliness, budget, duration, time of day, etc.). The tool supports both low-intent queries (e.g., “things to do in London this weekend”) and high-intent queries (e.g., “kid-friendly cooking classes in July in Rome”). The model must ensure that location refers to a destination, not an attraction. E.g., “Paris, France” rather than “Eiffel Tower.” Locations should be passed, in English, in a consistent, human-readable geographic format such as "City, Country" or "Region, Country" or "Country", depending on the granularity provided by the user. The model must provide location (and, when possible, dates) before calling this tool, and may include additional refiners only when appropriately derived from user intent. The model may re-issue a refined searchExperiences call whenever the user adds, removes, or adjusts refinement criteria (e.g., kid-friendly, price range, shorter duration) to narrow or improve the results. If the tool returns zero results, the model must proactively guide the user toward a successful refinement. It should review the parameters used in the failed request and recommend the most appropriate based on the proposed logic:" If > 1 categories applied, suggest removing some categories. Eg: “It looks like those categories combined are too restrictive. Would you like to narrow it down?” If the query requests a specific feature (eg private tour), suggest removing this constraint. Eg: “Private tours may be limited in this area, would you like to consider group options too?” If duration (avg from/to) > XX, suggest trying a shorter duration. If duration (avg from/to) < XX, suggest trying a longer duration. If price constraint was applied, suggest widening (or removing) price limits. Else, suggest broaden location search. Eg: “Nothing matches in central Siena, should we try Tuscany or nearby towns?”

Parameters

Required
endDatestring

(required) The last date the user is available to participate in an experience, formatted as ISO-8601 (YYYY-MM-DD).Also derived from natural-language expressions.If omitted by the user, the model should set endDate = startDate. Date must not be in the past.Used to widen search results to a date range.

locationstring

(required) Human-readable location identifier, in English, where the user wants to search for experiences. Can be a city (e.g. 'Paris, France'), region (e.g. 'Tuscany, Italy'), neighbourhood ('Shinjuku, Japan'), or Country (e.g. 'Spain'). This field must describe a destination, not an attraction or landmark

sessionIdstring

(mandatory) A unique identifier, ideally an UUID, for the current user conversation. The same identifier should be used until the user opens a new chat.

startDatestring

(required) The first date the user is available to participate in an experience, formatted as ISO-8601 (YYYY-MM-DD).The model must convert natural-language expressions (e.g., “this summer,” “next weekend,” “early April,” “tomorrow”) into a specific ISO date before calling the tool.Date must not be in the past. Must be <= endDate if endDate is provided. Used to filter products that operate on or after this date.

Optional
categorystring

(optional) A single category representing the type of experience the user is seeking.The model should always keep the closest category to the user’s intent, passing the value as un-processed as possible.If the MCP returns empty results, the model may propose a broader alternative category (e.g., expanding “surf lessons” to “water sports” or “outdoor activities”) as part of the refinement flow. The model should not broaden prematurely and should only expand to a higher-level category when necessary to recover results.

currencystring

(optional) Currency code used for interpreting and filtering prices.The model should infer currency from context when possible (e.g., GBP if the user is in the UK; USD if the user specifies dollars).Default value: USDValid ISO currency codes include: AED, ARS, AUD, BRL, CAD, CHF, CLP, CNY, COP, DKK, EUR, FJD, GBP, HKD, IDR, ILS, INR, ISK, JPY, KRW, MXN, MYR, NOK, NZD, PEN, PHP, PLN, SEK, SGD, THB, TRY, TWD, USD, VND, ZAR

durationinteger

(optional) User preference for maximum experience length, expressed in minutes.Used to filter results to experiences at or below this duration.

featuresarray

(optional) A list of user-preferred features that refine search results (P1/P2 refiners).Mapped internally to Viator filter capabilities where supported.One of: KID_FRIENDLY, SKIP_THE_LINE, PRIVATE_TOUR

fromPricenumber

(optional) Minimum per-person price to include in search, expressed in the requested currency.Used when the user specifies a lower budget boundary (e.g., “at least €50”).

limitinteger

(optional) Maximum number of products to return, between 1 and 10.If omitted, defaults to 5.Not intended as a user-facing refinement mechanism; the model should not use it to alter intent.

localestring

(optional) The language/locale code requested for content localization (e.g., en-US, en-GB, fr-FR).If not provided by the user, the model should infer it from context or default to en-US.Used to localize title, and other content where available.

toPricenumber

(optional) Maximum per-person price to include in search, expressed in the requested currency.Used when the user expresses a maximum budget (e.g., “under $100”)