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 APIs API

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 the reservation system are specified. The reservation system will respond to Viator requests in a synchronous manner, responding as per specification. Both request and response formats are described in detail in subsequent sections of this document.### AuthenticationThese endpoints support two authentication mechanisms: the legacy body-embedded `ApiKey` field, which is always required in the request payload for v1 APIs, or the `X-Api-Key` header used by the v2 APIs. The header option was added so existing partners could migrate to header-based authentication without changing endpoints.### BookingCutoff and Capacity elementsThe [Availability response](#tag/Reservation-system-APIs/operation/availability) includes two elements used to determine whether a booking can proceed:- **`BookingCutoff`** communicates the point in time after which a tour option may no longer be purchased. Exactly one of its three child elements must be provided: `DateTime` (a timezone-qualified timestamp), `ProductDateTime` (a timestamp in the product's own local time, with no timezone offset), or `NotApplicable` (a boolean, `true` if no cut-off exists for the product option).- **`Capacity`** communicates the remaining places available for Viator to book. Its `Simple` child element holds `Remaining` (the number of places left) and `ConsumedBy` (the age bands — `ADULT`, `CHILD`, `INFANT`, `YOUTH`, `SENIOR` — that draw down on those places), which lets specific age bands (e.g. infants) be excluded from consuming capacity.Both elements are part of the [Availability response schema](#tag/Reservation-system-APIs/operation/availability) — see that operation for the full field definitions.

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

Tagged areas include Reservation system APIs. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an API reference.

This API exposes 9 operations across 9 paths, and defines 70 schemas. It is described by OpenAPI 3.2.0.

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

9 operations 9 paths 70 schemas 9 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
Base URL
https://api.viator.com/partner
Authentication
API Key
Resource Areas
1

Authentication & Security 1

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

Paths & Operations 9

Across 9 paths, the API surfaces 9 operations — 9 POST. 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.

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

Schemas 70

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

SpecialOffer
object
Details of a special offer.
5 properties 4 required
LanguageOption
string
OpeningHours
object
Lists the operating hours of the product option of the travelDate.
2 properties 2 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…
TourOptionItem
AvailabilityCheckRequest
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
RedemptionResponse
Root element for Redemption Response
ReservedResponse
object
Response object for the Reserve Operation (Reserved option only).
5 properties 5 required
BookingCancellationResponse
Root element for Booking Cancellation Response
SpecialOffersResponse
object
Response object for the Special Offers Operation.
1 property 1 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
BookingRequest
Root element for Booking Request
TicketRequest
object
List of ticket types for which availability and pricing is being requested
2 properties 2 required
PerPersonPrice
object
Price root element. Holds price information.
2 properties 2 required
ProductOptionRequest
object
List of reservation system product options and associated start times for which availability and pricing is being requested.
2 properties 1 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…
BookingAmendmentResponse
Root element for Booking Amendment Response
RequestResponseBase
object
Request Response Base.
5 properties 4 required
TourLanguage
object
Holds the language of a tour.
2 properties 2 required
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.
NotReservedResponse
object
Response object for the Reserve Operation (Not Reserved option).
2 properties 2 required
RequestStatus
object
Request status root element. Holds the status information for the requested transaction.
2 properties 1 required
Discount
object
Discount applicable to price of the Event.
2 properties 1 required
ReserveUnprocessableContentResponse
object
Response object for Unprocessable Content Reserve Response
2 properties 1 required
ContentErrorResponse
object
Error response object
2 properties 1 required
BaseRequest
object
Base request object.
1 property 1 required
BookingResponse
Root element for Booking Response
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
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
Hours
object
2 properties 2 required
UnsupportedPrice
object
Price element representing an unsupported pricing model.
2 properties 2 required
TourTicket
object
The ticket for the tour
2 properties 2 required
CapacityTicketInformation
object
List of ticket types for which availability (capacity) is being returned
3 properties 3 required
UnlimitedCapacity
object
1 property 1 required
CalendarPerPersonPrice
object
Price root element. Holds price information.
2 properties 2 required
AvailabilityCheckResponse
object
Response object for the Real-time Availability check Operation.
1 property 1 required
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
TourListRequest
Root element for Tour List Request
TourListResponse
Root element for Tour List Response
CalendarPerUnitPrice
object
Price element for the price per unit.
5 properties 3 required
PerUnitPrice
object
Price element for the price per unit.
5 properties 3 required
CalendarResponse
object
Response object for the Calendar Operation.
1 property 1 required
SupplierId
integer
Viator’s unique Supplier identifier.
ResponseBase
RetailPricePerPerson
number
The Recommended Retail Price (RRP) is the immediate effective price that customers will pay per traveler type.
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…
BookingCancellationRequest
Root element for Booking Cancellation Request
TieredPerPersonPrice
object
Price root element for tiered per-person pricing.
2 properties 2 required
CalendarRequest
object
Request object for the Calendar Operation.
3 properties 3 required
CalendarUnsupportedPrice
object
Price element representing an unsupported pricing model.
2 properties 2 required
ReserveRequest
ProductOptionId
string
Unique reservation system product option identifier. This identifier is sourced from the [Tour List API](operation/tourList) response.
RedemptionRequest
Root element for Redemption Request
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.
TravelerTypes
array
Machine-interpretable value that specifies the type of traveler. One of: - ADULT - SENIOR - YOUTH - CHILD - INFANT
SpecialOffersRequest
object
Request object for the Special Offers Operation.
2 properties 2 required
UnavailableCalendarEvent
object
Represents the lack of availability of one occurrence of the product option.
7 properties 5 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
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
BookingAmendmentRequest
Root element for Booking Amendment Request
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…
InternalErrorResponse
object
Error response object
2 properties 1 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…
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…
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…
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…
TravelDate
string
The date of travel. Value is in date format YYYY-MM-DD.
TotalTravelers
integer
Total number of travelers/passengers across all ticket types.

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

viator-reservation-system-apis-api-openapi.yml Raw ↑

Other APIs Viator publishes across the network.

Viator Attraction services API
Viator Attractions API
Viator Auxiliary API
Viator Availability API
Viator Booking services API
Viator Bookings API
Viator Deprecated API
Viator Deprecated services API
Viator General services API
Viator Payments API
Viator Product services API
Viator Products API
Where this information came from

This is an independent, third-party profile of Viator Reservation system APIs 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.