Authenticate to the Viator Partner API using your API key in the exp-api-key header; use the sandbox base URL during development and the production URL (api.viator.com/partner) for live traffic.
Search for activities by calling the /products/search endpoint with a destination ID (obtainable from the /destinations taxonomy endpoint), date range, and optional tag filters (e.g., tag for food tours or outdoor activities).
Retrieve detailed product information via GET /products/{productCode} to get itinerary details, inclusions/exclusions, meeting point, cancellation policy, and available option codes.
Check availability and pricing for a specific date by calling /availability/schedules/{productCode} or the /availability/check endpoint with the chosen date, option code, and pax count.
Create a booking by POST-ing to /bookings/hold or /bookings/book with the product code, option code, travel date, passenger details, and a payment token; capture the booking reference and voucher.
Poll or webhook for booking confirmation status since some Viator products use on-request availability and may have a confirmation delay.
Known gotchas
Viator uses destination IDs rather than city names or IATA codes; always look up the correct destination ID from the taxonomy endpoint rather than guessing or hardcoding.
Cancellation deadlines are product-specific and may be as long as 7 days before the activity — always surface the cancellationPolicy.type and cutoff time prominently.
Some products have traveler-count-based pricing tiers (adult/child/infant) that must be mapped correctly in the paxMix field; sending an incorrect paxMix returns a pricing error.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp