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 Merchant API v1

The legacy v1 merchant-partner specification still published by Viator, exposing taxonomy, product, photo, review, availability, pricing-matrix, booking, voucher and cancellation services under viatorapi.viator.com/service. Superseded by the Partner API v2 but retained in the public documentation.

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

Tagged areas include Merchant, Legacy, Bookings, and Product. The published artifact set on APIs.io includes an OpenAPI specification and API documentation.

This API exposes 28 operations across 28 paths, organized into 5 resource areas, and defines 47 schemas. It is described by OpenAPI 3.0.1, at version 1.0.0.

Requests are made against 2 base URLs: https://viatorapi.viator.com/service, https://viatorapi.sandbox.viator.com/service.

28 operations 28 paths 47 schemas 13 GET15 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.1
API Version
1.0.0
Base URL
https://viatorapi.viator.com/service
Authentication
API Key, API Key
License
Resource Areas
5

Authentication & Security 2

Viator Merchant API v1 declares 2 security schemes for authenticating requests. An API key is passed in the header as exp-api-key (API-key). An API key is passed in the query as apiKey (Legacy-API-key). By default, every request must be authenticated.

Paths & Operations 28

Across 28 paths, the API surfaces 28 operations — 13 GET, 15 POST. They span 5 resource areas: General services, Taxonomy services, Product services, Booking services, Deprecated services. Each is listed below with its method, path, parameters, and response codes.

General services 1

General services

GET
/health/check
/health/check
healthCheck 1 param → 200
Taxonomy services 3

Taxonomy services

GET
/taxonomy/destinations
/taxonomy/destinations
taxonomyDestinations 1 param → 200
GET
/taxonomy/categories
/taxonomy/categories
taxonomyCategories 2 params → 200
POST
/taxonomy/attractions
/taxonomy/attractions
taxonomyAttractions 1 param body → 200
Product services 7

Product services

POST
/search/products
/search/products
searchProducts 1 param body → 200
POST
/search/products/codes
/search/products/codes
searchProductsCodes 1 param body → 200
POST
/search/freetext
/search/freetext
searchFreetext 1 param body → 200
GET
/product
/product
product 7 params → 200
GET
/product/reviews
/product/reviews
productReviews 5 params → 200
GET
/product/photos
/product/photos
productPhotos 4 params → 200
POST
/available/products
/available/products
availableProducts 1 param body → 200
Booking services 16

Booking services

POST
/booking/availability
/booking/availability
bookingAvailability 1 param body → 200
GET
/booking/availability/dates
/booking/availability/dates
bookingAvailabilityDates 2 params → 200
POST
/booking/availability/tourgrades
/booking/availability/tourgrades
bookingAvailabilityTourgrades 1 param body → 200
POST
/booking/availability/tourgrades/pricingmatrix
/booking/availability/tourgrades/pricingmatrix
bookingAvailabilityTourgradesPricingmatrix 1 param body → 200
POST
/booking/calculateprice
/booking/calculateprice
bookingCalculateprice 1 param body → 200
GET
/booking/hotels
/booking/hotels
bookingHotels 3 params → 200
POST
/booking/book
/booking/book
bookingBook 1 param body → 200
POST
/booking/status
/booking/status
bookingStatus 1 param body → 200
POST
/booking/status/items
/booking/status/items
bookingStatusItems 1 param body → 200
POST
/booking/pricingmatrix
/booking/pricingmatrix
bookingPricingmatrix 1 param body → 200
GET
/booking/voucher
/booking/voucher
bookingVoucher 7 params → 200
GET
/booking/pastbooking
/booking/pastbooking
bookingPastbooking 4 params → 200
GET
/booking/mybookings
/booking/mybookings
bookingMybookings 4 params → 200
GET
/bookings/cancel-reasons
/bookings/cancel-reasons
cancellationReasons 1 param → 200401406500503
GET
/bookings/{booking-reference}/cancel-quote
/bookings/{booking-reference}/cancel-quote
cancelBookingQuote 1 param → 200401406500503
POST
/bookings/{booking-reference}/cancel
/bookings/{booking-reference}/cancel
cancelBooking 2 params body → 200400401404406500503
Deprecated services 1

Deprecated services

POST
/merchant/cancellationdeprecated
/merchant/cancellation
merchantCancellation 1 param body → 200400

Schemas 47

The contract defines 47 schemas that model the data the API accepts and returns. The most detailed are photoObject (18 properties), reviewObject (14 properties), basicErrorModel (12 properties), bookingStatus_item (9 properties). Each schema is shown below with its type and property counts.

basicErrorModel
object
12 properties
iataCode
string
IATA airport code for the destination - a three-letter code defined by the International Air Transport Association (IATA) used to identify many airports around…
destinationType
string
destination type specifier - "COUNTRY": destination is a country - "REGION": destination is a recognized region of a country, such as a state, island within a…
topX
string
start and end rows to return in the format {start}-{end} - e.g. '1-10', '11-20' Note: - the maximum number of rows per request is 100; therefore, '100-400' wil…
webURL
string
ignore (Viator only)
bookingEngineId
string
booking type specifier for this product that indicates whether the booking will be CONFIRMED immediately or if it will remain PENDING even after the booking ha…
onRequestPeriod
integer
number of hours before the travel date that this product will be 'on-request' for - this field will contain a value if the bookingEngineId is 'FreesaleOnReques…
price
number
suggested sell ('from') price for this product in the currency set in the currencyCode parameter. This is the cheapest sell price, taking into consideration of…
merchantNetPriceFrom
number
Numeric 'from' (lowest possible) price that Viator will invoice the merchant for the sale of this product, excluding the transaction fee; i.e. the merchant net…
merchantNetPriceFromFormatted
string
Currency-formatted 'from' (lowest possible) price that Viator will invoice the merchant for the sale of this product, excluding the transaction fee (i.e. the m…
savingAmount
string
Ignore (Viator only)
savingAmountFormated
string
Ignore (Viator only)
translationLevel
integer
numeric indicator of the language translation level for this product that is one of: - 0: no translation (English only) - 80: full machine translation - 100: f…
priceFormatted
string
currency-formatted suggested sell ('from') price for this product in the currency set in the currencyCode parameter - For more information, see: [Merchant pric…
rrp
integer
numeric original price for this product if the product is on special / a discount has been applied. 0 if there is no discount on this product. See [Special off…
rrpFormatted
string
currency-formatted original price for this product if the product is on special / a discount has been applied. Empty string if there is no discount on this pro…
onSale
boolean
Ignore (Viator only)
reviewCount
integer
number of user reviews that have been submitted by users for this product If your account has been configured to limit the number of reviews you can receive, t…
rating
number
average user rating of this product users rate products by assigning a star-rating from 1-5; this value shows the average of the star ratings provided by users…
sortOrder
string
sort order in which to return the results that is one of: - 'TOPSELLERS': the top sellers (Note: What Viator gets paid impacts this sort order) - 'REVIEWAVGRAT…
SearchFreetextResponse
object
2 properties
specialOfferAvailable
boolean
indicator: true if a special offer is available for this product. If true the specialOffer field will contain a text string providing details of the special of…
SearchFreetextResponseProduct
SearchFreetextResponseDestination
SearchFreetextResponseAttraction
SearchFreetextResponseRecommendation
photoObject
object
object detailing a single photo from a user
18 properties
reviewObject
object
object containing a single user review
14 properties
reviews
array
array of user review objects The number of reviews returned here will either be the number of reviews you are entitled to according to your account configurati…
bandId
integer
unique numeric identifier for the age band - See: [Working with age bands](section/Appendices/Working-with-age-bands)
ratingCounts
object
dictionary of rating (stars) to number of reviews with each rating for this product" users rate products by assigning a star-rating from 1-5; these values show…
5 properties
specialOffer
string
natural-language description of any special offers available for this product when specialOfferAvailable is true. - empty string if there are no specials avail…
currencyCode
string
Three-letter code indicating the currency in which itemPrice and refundAmount are displayed
ageBandId
integer
unique numeric identifier for the age band - See: [Working with age bands](section/Appendices/Working-with-age-bands)
bookingStatus_itinerary
object
object containing itinerary booking status information
9 properties
bookingStatus_item
object
object containing item booking status information
9 properties
bookingEngineId-response
string
[booking type indicator](section/Key-concepts/Booking-concepts) that indicates whether the booking will be CONFIRMED immediately or if it will remain PENDING e…
CancellationReason
object
2 properties
CancellationReasonsResponse
object
1 property
401_UNAUTHORIZED
object
4 properties
406_NOT_ACCEPTABLE
object
4 properties
500_INTERNAL_SERVER_ERROR
object
4 properties
503_SERVICE_UNAVAILABLE
object
4 properties
RefundDetails
object
Details of the refund Note: Bookings that have not been confirmed by the supplier and have a status of "PENDING" will report an itemPrice, refundAmount and ref…
4 properties
CancelBookingQuoteResponse
object
3 properties
CancellationRequest
object
1 property
CancelBookingResponse
object
3 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

viator-merchant-api-v1-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 Reservation System API
Viator Affiliate API v1
Where this information came from

This is an independent, third-party profile of Viator Merchant API v1, 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.