Travel API integration

Case Study: Activities Booking Platform Using Viator API Integration

May 24, 2026Hardeep SinghTravel API integration

Case Study: Activities Booking Platform Using Viator API Integration

Case Study: Activities Booking Platform Using Viator API

Project Overview

The global tours and activities market has grown into a multi-billion dollar segment within the travel industry, yet for years it remained fragmented and difficult to access programmatically. When a travel startup approached us with the ambition of building a dedicated activities booking platform targeting both B2C travelers and B2B travel agents, the central question was: which API could power the inventory at scale?

After evaluating several options, the team chose the Viator Partner API — backed by TripAdvisor — for its unmatched inventory of 300,000+ bookable experiences across 450+ destinations and 75+ countries. This case study walks through the full journey: requirements gathering, API evaluation, system architecture, integration challenges, and measurable outcomes post-launch.


Client Background

Industry: Online Travel (Activities & Experiences) Business Model: B2C marketplace + B2B agent portal Target Markets: Southeast Asia, Middle East, and Europe Platform: Web application + Android & iOS apps Integration Type: Viator Partner API — Merchant Access

The client's goal was to launch a white-label activities marketplace where travelers could search, compare, and book tours directly, while travel agents could access the same inventory through a dedicated B2B dashboard with commission visibility.


The Business Problem

Before integration, the client faced three core challenges:

1. No inventory of their own. Building a proprietary catalog of tours and activities requires direct contracts with thousands of operators — a process that takes years and significant capital.

2. Manual booking workflows. Their early pilot relied on email and WhatsApp confirmations, creating delays, errors, and poor customer experience.

3. Inconsistent pricing and availability. Activity availability changes rapidly. Without real-time API access, customers were frequently booking experiences that were no longer available on their chosen dates.

The decision to pursue Viator API integration was driven by the need to solve all three problems simultaneously — leveraging a mature, trusted inventory while enabling automated, real-time booking.


Solution Architecture

The platform was designed as a multi-layered system connecting the Viator Partner API to both a customer-facing web/app frontend and a B2B agent portal.

Mermaid diagram

Key Architectural Decisions

API Gateway Pattern: Rather than calling the Viator API directly from the frontend, all requests were routed through a middleware layer. This allowed rate limit management, response caching for non-volatile data (product descriptions, images), and centralized error handling.

Caching Strategy: Product content — including tour descriptions, images, inclusions/exclusions, and meeting point details — was cached with a 24-hour TTL. Availability and pricing data was fetched in real time on each search or product page load, ensuring accuracy without overloading API quotas.

Merchant Access Model: Since the client required full ownership of the checkout experience and payment collection, they pursued Merchant Access within the Viator Partner API. This gave them control over pricing presentation, discount logic, and customer communication while keeping inventory and confirmations synchronized with Viator's backend.


Integration Phases

Phase 1: API Authentication & Environment Setup

The first step was establishing secure API Key authentication using Viator's credentials. A staging environment was set up for integration testing before connecting to production inventory.

All API calls were configured with:

  • Secure API Key headers on every request
  • HTTPS enforcement across all endpoints
  • Error logging and alert triggers for authentication failures
  • Separate credentials for staging and production environments

Phase 2: Product Discovery & Search Integration

The Viator Search & Discovery API was integrated to power the platform's search experience. Users could search activities by:

  • Destination or city name
  • Experience category (adventure, culture, food tours, etc.)
  • Date range and group size
  • Price range and duration filters
  • Keyword-based search (e.g., "desert safari", "city walking tour")

Mermaid diagram

Results were sorted by relevance and popularity by default, with user-selectable sorting by price and traveler ratings.

Phase 3: Real-Time Availability & Pricing

Before displaying a "Book Now" button, the platform validated each product's live availability using the Viator Availability API. This critical step prevented customers from reaching checkout only to discover their selected date or time slot was sold out.

The availability check flow worked as follows:

Mermaid diagram

Dynamic pricing — including seasonal pricing, group discounts, and promotional rates — was fetched in real time from the API, ensuring the price displayed always matched what Viator confirmed at the time of booking.

Phase 4: Booking Flow & Confirmation

The booking engine was built around the Viator Booking API with a multi-step confirmation flow:

  1. Traveler Details Collection — Name, contact, nationality, and any activity-specific requirements (dietary restrictions, accessibility needs, pickup location)
  2. Pre-Booking Validation — Re-confirming availability immediately before payment to handle any last-minute changes
  3. Payment Processing — Handled on the partner's platform under the Merchant model
  4. Booking Submission — Booking data transmitted to Viator with traveler details
  5. Confirmation Receipt — Viator's booking reference generated and stored in the internal database
  6. Notification Dispatch — Automated email and SMS confirmation sent to the traveler

Mermaid diagram

Phase 5: Post-Booking Management

The Viator Booking Management API was integrated to handle the full post-booking lifecycle:

  • Booking Retrieval — Agents and customers could view all bookings with live status from Viator's backend
  • Cancellation Processing — The booking cancellation API handled refund-eligible and non-refundable cancellations according to Viator's policy rules automatically
  • Status Updates — The platform subscribed to status changes (e.g., operator changes, activity modifications) and proactively notified customers
  • Agent Dashboard — B2B agents could view all bookings made under their account, track commission earned, and manage client portfolios

Technical Challenges & Solutions

Challenge 1: API Rate Limits During Peak Search Traffic

During initial load testing, the platform hit Viator API rate limits when concurrent search traffic spiked. Search results were being fetched fresh for every user session.

Solution: A destination-level cache was implemented for search result sets, refreshed every 15 minutes. Individual product availability remained real-time. This reduced API calls by approximately 65% while maintaining pricing accuracy.

Challenge 2: Inconsistent Product Content Across Destinations

Some Viator product listings had incomplete or inconsistent data fields — missing duration, no images, or empty inclusion lists. Displaying these alongside complete listings created an uneven user experience.

Solution: A content validation layer was built in middleware that scored each product's completeness before surfacing it in search results. Products below a quality threshold were flagged and hidden from public listing until data was verified.

Challenge 3: Multi-Currency Pricing Display

The platform served travelers across 12+ countries who expected to see prices in their local currency.

Solution: Viator API responses were normalized to USD as the base currency, then converted at display time using a real-time exchange rate service. Booking submissions used the confirmed Viator pricing in the supported currency to avoid discrepancies.

Challenge 4: Mobile App Latency

The mobile app experienced noticeable load times when fetching availability for product pages with multiple date options.

Solution: A progressive loading pattern was implemented — the product page loaded immediately with cached content, while availability data was fetched asynchronously and injected once ready. A skeleton loading UI maintained perceived performance.


Results & Business Impact

After a 14-week development and integration cycle, the platform launched with full Viator API integration powering its entire activities catalog.

Metric Pre-Integration Post-Integration
Activities Available ~200 (manual) 85,000+ (live)
Booking Confirmation Time 4–24 hours Instant
Booking Error Rate 18% < 1.2%
Agent Onboarding Time 5–7 days Same-day
Monthly Transactions ~300 4,200+ (Month 3)

The platform recorded a 14x increase in transactions within three months of launch, driven primarily by the expanded inventory and instant booking confirmation capability — two outcomes directly enabled by the Viator API integration.


Technology Stack

  • Backend: Node.js with Express (API middleware layer)
  • Frontend: React.js (web) + React Native (iOS & Android)
  • Database: PostgreSQL (booking records) + Redis (caching layer)
  • Infrastructure: AWS (EC2, ElastiCache, RDS, SES for notifications)
  • API Integration: Viator Partner API (Merchant Access)
  • Payment Gateway: Stripe (regional) + Telr (Middle East)

Key Learnings

Building on the Viator Partner API delivered results that would have taken years to replicate through direct operator partnerships. However, the integration revealed important architectural lessons:

Invest in middleware early. A robust middleware layer between your frontend and the Viator API is not optional — it is what makes caching, rate limit management, content normalization, and error recovery possible without rearchitecting later.

Design for API change. Travel APIs evolve. Abstracting Viator API calls behind internal service interfaces meant that when Viator updated endpoints or field names, changes were isolated to the middleware layer rather than cascading through the entire codebase.

Real-time availability is non-negotiable. Any shortcut that allows users to reach checkout with stale availability data will erode trust quickly. The availability check must run immediately before presenting booking options, not at page load.

Content quality affects conversion. Product listings with rich images, complete descriptions, and clear inclusions/exclusions significantly outperformed incomplete listings in click-through and booking rates. Investing in content validation paid dividends.


How Teenva AI Can Help You Build This

At Teenva AI & Digital Ventures, we specialize in travel technology development — from API integrations and booking engine architecture to full-stack travel portal development for OTAs, DMCs, and travel startups.

Whether you want to build an activities marketplace powered by the Viator Partner API, integrate tours and experiences into an existing travel portal, or create a B2B agent platform with real-time inventory — our team handles the end-to-end engineering so you can focus on growing your business.

Ready to build your activities booking platform?

Reach out to us today:

Let's turn your travel platform idea into a live, scalable product.

Similar Articles