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 Product services API

Product services

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

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

This API exposes 7 operations across 7 paths, and defines 44 schemas. It is described by OpenAPI 3.2.0, at version 1.0.

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

7 operations 7 paths 44 schemas 3 GET4 POST

Metadata

The identity and technical contract details declared by the specification.

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

Authentication & Security 2

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

Paths & Operations 7

Across 7 paths, the API surfaces 7 operations — 3 GET, 4 POST. Each is listed below with its method, path, parameters, and response codes.

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

Schemas 44

The contract defines 44 schemas that model the data the API accepts and returns. The most detailed are photoObject_2 (18 properties), photoObject (18 properties), reviewObject (16 properties), reviewObject_2 (14 properties). Each schema is shown below with its type and property counts.

onRequestPeriod
integer
ignore (relevant to merchant and transactional-affiliate partners only)
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…
onSale
boolean
indicator: true if the product is 'on sale' and a discount has been applied to the price. When a product is on sale, the price and priceFormatted fields give t…
basicErrorModel
object
12 properties
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…
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…
specialOffer
string
natural-language description of any special offers available for this product when specialOfferAvailable is true. - Note: empty string if there are no specials…
reviewObject
object
object containing a single user review
16 properties
photoObject
object
object detailing a single photo from a user
18 properties
specialOfferAvailable
boolean
indicator: true if a special offer is available for this product. See [Special offers and on-sale pricing](section/Key-concepts/Special-offers-and-on-sale-pric…
topX
string
start and end rows to return in the format {start}-{end} - e.g. '1-10', '11-20' - maximum number of rows per request is 100 - therefore, '100-400' will return…
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…
translationLevel
integer
numeric indicator of the language translation level for this product that is one of: - 0: no translation (English only) - 90: full machine translation - 100: f…
currencyCode
string
currency code for the currency to use for pricing fields - Note: See [Supported currency codes](section/Appendices/Supported-currency-codes) for available curr…
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…
bookingEngineId
string
ignore (relevant only to merchant and transactional-affiliate partners)
priceFormatted
string
currency-formatted suggested sell ('from') price for this product in the currency set in the currencyCode parameter
savingAmountFormated
string
currency-formatted price difference of the price of this product (price) while on sale (onSale is true) compared to the product's original price (rrp) - if no…
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…
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…
webURL
string
URL to forward users to in order to complete their purchase on the Viator site Example: http://es.live.rc.viator.com/tours/Sydney/Sydney-and-Bondi-Hop-on-Hop-o…
bandId
integer
unique numeric identifier for the age band - See: [Working with age bands](section/Appendices/Working-with-age-bands)
savingAmount
integer
numeric price difference of the price of this product (price) while on sale (onSale is true) compared to the product's original price (rrp). See [Special offer…
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
onRequestPeriod_2
integernull
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_2
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…
onSale_2
boolean
Ignore (Viator only)
basicErrorModel_2
object
12 properties
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…
SearchFreetextResponse
object
2 properties
specialOffer_2
string
natural-language description of any special offers available for this product when specialOfferAvailable is true. - empty string if there are no specials avail…
reviewObject_2
object
object containing a single user review
14 properties
photoObject_2
object
object detailing a single photo from a user
18 properties
specialOfferAvailable_2
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…
topX_2
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…
translationLevel_2
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…
currencyCode_2
string
Three-letter code indicating the currency in which itemPrice and refundAmount are displayed
bookingEngineId_2
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…
priceFormatted_2
string
currency-formatted suggested sell ('from') price for this product in the currency set in the currencyCode parameter - For more information, see: [Merchant pric…
webURL_2
stringnull
ignore (Viator only)
savingAmountFormated_2
string
Ignore (Viator only)
bandId_2
integer
unique numeric identifier for the age band - See: [Working with age bands](section/Appendices/Working-with-age-bands)
savingAmount_2
string
Ignore (Viator only)

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

viator-product-services-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 Products API
Viator Reservation system APIs API
Where this information came from

This is an independent, third-party profile of Viator Product services 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.