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. 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

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), SpecialOffer (5 properties), UnavailableEvent (5 properties). Each schema is shown below with its type and property counts.

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

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.