How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Viator Reservation System API

The supplier-side connectivity contract, formerly the Viator Supplier API. This specification is inverted - it defines the endpoints a tour operator's reservation system or booking software must itself implement and expose for Viator to call, covering tour list mapping, real-time and batch availability, batch pricing, reserve, booking, amendment, cancellation and redemption, alongside the Viator-hosted event and special-offer notification endpoints. It carries published uptime, latency and error-rate SLAs and Viator-operated circuit breakers.

Viator Reservation System API is one of 9 APIs that Viator publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Supplier, Connectivity, Channel Manager, Inventory, and Reservation System. The published artifact set on APIs.io includes an OpenAPI specification and API documentation.

This API exposes 15 operations across 15 paths, organized into 3 resource areas, and defines 84 schemas. It is described by OpenAPI 3.0.0.

Requests are made against a single base URL, https://your-reservation-system.example.com.

15 operations 15 paths 84 schemas 15 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.0
Server
https://your-reservation-system.example.com
Authentication
API Key
Resource Areas
3

Authentication & Security 1

Viator Reservation System API declares 1 security scheme for authenticating requests. An API key is passed in the header as X-Api-Key (ApiKeyHeader).

Paths & Operations 15

Across 15 paths, the API surfaces 15 operations — 15 POST. They span 3 resource areas: Reservation system APIs, Viator APIs, Deprecated. Each is listed below with its method, path, parameters, and response codes.

Reservation system APIs 9

This section describes all the possible services, some of which are mandatory, that reservation systems can develop to integrate with Viator. All API requests made by Viator to th…

POST
/v2/availability/check
Availability Check
availabilityCheck body → 200400401408422429500503
POST
/v2/availability/calendar
Calendar
calendar body → 200400401408422429500503
POST
/v2/reserve
Reserve
reserve body → 200400401408422429500503
POST
/v2/product/special-offers
Special Offers
specialOffers body → 200400401408422429500503
POST
/tourlist
Tour list
tourList body → 200
POST
/booking
Booking
booking body → 200
POST
/booking-amendment
Booking Amendment
bookingAmendment body → 200
POST
/booking-cancellation
Booking Cancellation
bookingCancellation body → 200
POST
/redemption
Redemption
redemption body → 200
Viator APIs 2

This section describes the Viator built API(s) available for reservation system consumption. Note: For these APIs, the request is sent to Viator and the response is received from…

POST
/v2/notification/events
Event Notification
eventNotification body → 204207400401408415422429
POST
/v2/notification/special-offers
Special Offers Notification
specialOffersNotification body → 204400401408415422429500
Deprecated 4

This section lists endpoints that are no longer recommended for new or updated integrations. These endpoints remain available for existing connections only, will stop receiving ne…

POST
/availability
Real-time Availability
availability body → 200
POST
/batch-availability
Batch Availability
batchAvailability body → 200
POST
/batch-pricing
Batch Pricing
batchPricing body → 200
POST
/availabilitynotification2
Availability Notification 2
availabilityNotification2 body → 200

Schemas 84

The contract defines 84 schemas that model the data the API accepts and returns. The most detailed are UnavailableCalendarEvent (7 properties), CalendarEvent (6 properties), RequestResponseBase (5 properties), CalendarPerUnitPrice (5 properties). Each schema is shown below with its type and property counts.

SupplierId
integer
Viator’s unique Supplier identifier.
BaseRequest
object
Base request object.
1 property 1 required
ProductOptionId
string
Unique reservation system product option identifier. This identifier is sourced from the [Tour List API](operation/tourList) response.
ProductOptionRequest
object
List of reservation system product options and associated start times for which availability and pricing is being requested.
2 properties 1 required
TravelDate
string
The date of travel. Value is in date format YYYY-MM-DD.
TicketRequest
object
List of ticket types for which availability and pricing is being requested
2 properties 2 required
TotalTravelers
integer
Total number of travelers/passengers across all ticket types.
AvailabilityCheckRequest
Currency
string
The ISO 4217 alphanumeric currency code in which prices are being returned. ISO 4217 is the International Standard for currency codes. For more information vis…
EventStatus
string
The availability status. Represents the availability or unavailability of capacity to allow a booking for the requested quantity of tickets. One of: - AVAILABL…
StartTime
string
Start time or departure time for the event. Value is in time format hh:mm.
CapacityType
string
The capacity type. Represents the type of capacity in an event. One of: - UNLIMITED - Used when the capacity is unlimited. There is no restriction on the numbe…
UnlimitedCapacity
object
1 property 1 required
CapacityTicketInformation
object
List of ticket types for which availability (capacity) is being returned
3 properties 3 required
LimitedCapacity
object
Used when the product option is capacity limited. Represents the availability (capacity) of one occurrence of the product option. May be associated with a star…
4 properties 4 required
EventCapacity
The type of capacity of an event along with the relevant amounts for all ticket types. Used to determine if bookings should be permitted, and to drive merchand…
BookingCutoff
string
Booking cut-off represents the point in time after which the tour option may no longer be purchased for the travelDate. Value is in Timestamp (UTC) format.
PriceType
string
Machine-interpretable value that specifies the type of price. One of: - PERPERSONPRICE - Product is priced per person/traveler. Price is the same per person ir…
TravelerTypes
array
Machine-interpretable value that specifies the type of traveler. One of: - ADULT - SENIOR - YOUTH - CHILD - INFANT
RetailPricePerPerson
number
The Recommended Retail Price (RRP) is the immediate effective price that customers will pay per traveler type.
Discount
object
Discount applicable to price of the Event.
2 properties 1 required
PerPersonPriceDetails
object
Price element that applies to one or various traveler types. For example, there can be a price for adults and children and another one for seniors.
4 properties 2 required
PerPersonPrice
object
Price root element. Holds price information.
2 properties 2 required
RetailPricePerUnit
number
The Recommended Retail Price (RRP) is the total price a customer will pay for a unit or group, assuming the maximum number of travelers (maxTravelers). This pr…
PerUnitPrice
object
Price element for the price per unit.
5 properties 3 required
UnsupportedPrice
object
Price element representing an unsupported pricing model.
2 properties 2 required
Event
object
Represents the presence of availability, along with pricing, of an occurrence of the product option on the requested travelDate. May be associated with a start…
5 properties 4 required
UnavailableReason
string
Machine-interpretable value that specifies the reason why the event, or occurrence of the product option and (when applicable) associated startTime, is unavail…
UnavailableEvent
object
Represents the lack of availability of one occurrence of the product option. May be associated with a start time.
5 properties 4 required
ProductOption
object
List of reservation system product option identifiers for which events (start time, capacity, pricing) are being returned. - If a requested product option is a…
3 properties 3 required
AvailabilityCheckResponse
object
Response object for the Real-time Availability check Operation.
1 property 1 required
ContentErrorResponse
object
Error response object
2 properties 1 required
InternalErrorResponse
object
Error response object
2 properties 1 required
CalendarRequest
object
Request object for the Calendar Operation.
3 properties 3 required
Hours
object
2 properties 2 required
OpeningHours
object
Lists the operating hours of the product option of the travelDate.
2 properties 2 required
CalendarPriceType
string
Machine-interpretable value that specifies the type of price in the Calendar API. One of: - PERPERSONPRICE - Product is priced per person/traveler. - TIEREDPER…
CalendarPerPersonPrice
object
Price root element. Holds price information.
2 properties 2 required
CalendarPerUnitPrice
object
Price element for the price per unit.
5 properties 3 required
TieredPerPersonPrice
object
Price root element for tiered per-person pricing.
2 properties 2 required
CalendarUnsupportedPrice
object
Price element representing an unsupported pricing model.
2 properties 2 required
CalendarEvent
object
Represents the presence of availability, along with pricing, of an occurrence of the product option on the travelDate.
6 properties 4 required
UnavailableCalendarEvent
object
Represents the lack of availability of one occurrence of the product option.
7 properties 5 required
CalendarResponse
object
Response object for the Calendar Operation.
1 property 1 required
ReserveRequest
ReservedResponse
object
Response object for the Reserve Operation (Reserved option only).
5 properties 5 required
NotReservedResponse
object
Response object for the Reserve Operation (Not Reserved option).
2 properties 2 required
ReserveUnprocessableContentResponse
object
Response object for Unprocessable Content Reserve Response
2 properties 1 required
SpecialOffersRequest
object
Request object for the Special Offers Operation.
2 properties 2 required
SpecialOfferType
string
Type of the special offer. One of: - “STANDARD” - a special offer that is applicable for a specific date range. Additional details available [here](https://hel…
SpecialOffer
object
Details of a special offer.
5 properties 4 required
SpecialOffersResponse
object
Response object for the Special Offers Operation.
1 property 1 required
EventNotificationRequest
EventNotificationResponse
object
Response object for multi-status Event Notification
1 property 1 required
EventNotificationUnprocessableContentResponse
object
Response object for Unprocessable Content Event Notification
2 properties 1 required
SpecialOffersNotificationRequest
object
Request object for the Special Offers Notification Operation.
2 properties 2 required
RequestResponseBase
object
Request Response Base.
5 properties 4 required
TourListRequest
Root element for Tour List Request
RequestStatus
object
Request status root element. Holds the status information for the requested transaction.
2 properties 1 required
ResponseBase
LanguageOption
string
TourLanguage
object
Holds the language of a tour.
2 properties 2 required
TourOptionBase
object
Tour option root element. Holds details pertaining to each of the product (tour) options (including default if no tour options exist).
4 properties
TourListResponse
Root element for Tour List Response
TourOptionItem
AvailabilityRequest
Root element for Real-time Availability Request
Price
object
Holds the information regarding the price for the associated Tour that was retrieved from the API.
2 properties 2 required
VersionTag
Version tag root element. Specifies the version for each changed DateAvailability. Version tagging allows availability responses to be tagged with one of: a ti…
AvailabilityResponse
Root element for Real-time Availability Response
BatchAvailabilityRequest
Root element for Batch Availability Request
BatchAvailabilityResponse
Root element for Batch Availability Response
BatchPricingRequest
Root element for Batch Pricing Request
BatchPricingResponse
Root element for Batch Pricing Response
BookingRequest
Root element for Booking Request
TourTicket
object
The ticket for the tour
2 properties 2 required
BookingResponse
Root element for Booking Response
BookingAmendmentRequest
Root element for Booking Amendment Request
BookingAmendmentResponse
Root element for Booking Amendment Response
BookingCancellationRequest
Root element for Booking Cancellation Request
BookingCancellationResponse
Root element for Booking Cancellation Response
RedemptionRequest
Root element for Redemption Request
RedemptionResponse
Root element for Redemption Response
AvailabilityNotification2Request
Root element for Availability Notification 2 Request
AvailabilityNotification2Response
Root element for Availability Notification 2 Response

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

viator-reservation-system-api-openapi.json Raw ↑

Other APIs Viator publishes across the network.

Viator Partner Products API
Viator Partner Availability API
Viator Partner Bookings API
Viator Partner Payments API
Viator Partner Attractions API
Viator Partner Auxiliary API
Viator Merchant API v1
Viator Affiliate API v1
Where this information came from

This is an independent, third-party profile of Viator Reservation System API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.