Date | Description |
---|---|
4 Dec 2024 | Updated /bookings/cart/book response with the following new rejection reason: PROCESSOR_ISSUE_WITH_PAYMENT . |
19 Nov 2024 | Updated /bookings/cart/book response with the following new rejection reasons: SUSPECTED_FRAUD , SOFT_DECLINE , HARD_DECLINE , THREE_D_SECURE_REQUIRED , INTERNAL_ERROR , PROCESSOR_UNAVAILABLE . |
24 Oct 2024 | Deprecated /v1/product/photos endpoint |
23 Oct 2024 | Added /attractions/search and /attractions/{attraction-id} to Attractions section Added /destinations to Auxiliary section Updated Access to endpoints section to include new endpoints and removed the ones marked for deprecation Updated Resolving references section |
21 Oct 2024 | Removed VIATOR_EXCLUSIVE flag from product search endpoints |
1 Oct 2024 | Removed COVID-19 safety attributes from AdditionalInfo schema (part of product content response; e.g., from /products/{product-code} endpoint) |
6 Aug 2024 | Changes to behaviour with DEFAULT tour grade for product, availability, book hold and confirm endpoints. See note at end of section Product Option Code. Note: these changes are backwards compatible. |
29 Jul 2024 | Updated /bookings/modified-since response with new eventType: CUSTOMER_CANCELLATION, for Customer initiated cancellations. |
14 Mar 2024 | Updated /bookings/cart/book response with the following new rejection reasons: INSUFFICIENT_FUNDS , INVALID_PAYMENT_DETAILS , TRANSACTION_NOT_ALLOWED , CARD_INACTIVE and CARD_RESTRICTED .Updated /bookings/status response with ON_HOLD status |
13 Feb 2024 | Updated /suppliers/search/product-codes with the following new attributes: supplierAgreedToLegalCompliance , registrationCountry , tradeRegisterName and registeredBusinessNumber . Also updated the ContactDetails schema with a new attribute countryCode . |
11 Sep 2023 | Added support for PDF vouchers. Made bookerInfo firstName required to match definition. |
5 Jul 2023 | Added /bookings/cart/hold and /bookings/cart/book to Bookings section Added /v1/checkoutsessions/{sessionToken}/paymentaccounts to Payments section |
15 May 2023 | Modified Accept-Language-header-parameter section to accurately reflect currently allowed values |
16 Mar 2023 | Added /search/freetext and /suppliers/search/product-codes to Access to endpoints section |
6 Mar 2023 | Added Canadian dollars (CAD) as currency option in request and response to /bookings/hold, /bookings/book and /bookings/status endpoints |
6 Jan 2023 | Added two new COVID-19 safety attributes to AdditionalInfo schema (part of product content response; e.g., from /products/{product-code} endpoint) |
4 Jan 2023 | Updated or created ProductSearchFiltering , ProductSummary , ProductSearchSorting , ProductSearchFlag , TranslationDetails , SearchDurationInfo and SearchRatingInfo schemata for the /products/search endpoint request/response, updated example request and merchant and affiliate response examples, and updated Postman collections in line with these changes |
3 Jan 2023 | Updated example request and response for /search/freetext endpoint |
12 Dec 2022 | Added /search/freetext endpoint |
10 Nov 2022 | Updated /bookings/hold and /bookings/modified-since/acknowledge descriptions |
If you require help or technical advice while you are carrying out your integration, please contact the onboarding team via email at: affiliateapi@tripadvisor.com
Our onboarding specialists have put together in-depth guides covering various topics to help you during your integration.
If you are a merchant partner, once your API integration has been completed, it must pass certification prior to going live in order to ensure data integrity and the appropriate use of API services. Please peruse and bear in mind our certification requirements prior to and during development.
If are a merchant partner, have completed your integration and your site is operational, please see the Partner Help Center - Merchant partner support page for information about what to do if you encounter a problem and require support.
The Viator Partner API v2 comprises a set of endpoints that can support the operation of a fully-featured tours and experiences booking website or application; or, it can be integrated with your existing travel-booking software.
The API exposes a variety of services that allow the retrieval of all product details, such as descriptive text and structured metadata, pricing, terms and conditions, photos and reviews. This data can either be ingested and managed on your local system, or calls can be made in real time to retrieve content in response to your users' activity on your systems.
The API allows product content, pricing and availability data to be retrieved in bulk or queried in real-time, it can perform pricing calculations according to the number and type of traveler and product option combinations available, and it supports availability and pricing holds as part of its booking and booking-cancellation functionality.
The Viator Partner-API is a designed for use by organizations partnered with Viator as Affiliate partners or Merchant partners.
Affiliate partners have full access to the areas of the API relating to content, but sales of Viator products must be carried out on the Viator site itself.
When a customer wishes to book a product from an affiliate's site, they are instead redirected to the relevant product page on viator.com via a unique URL in order to complete the purchase. Once on the Viator site, a cookie is set such that all transactions will accrue a commission for that partner until the cookie expires.
Purchases of products originating from the affiliate's site are recorded and a commission on these sales is paid periodically.
For more information on this partner type, see: Viator's Affiliate API Solution
The merchant partner relationship is one in which the partner is the merchant of record; i.e., the partner takes full responsibility for all financial records and transactions carried out by their users, as well as providing customer support with regard to providing general assistance, processing cancellations and refunds, and liaising between suppliers and customers when the need to communicate arises.
For more information on this partner type, see: Viator's Merchant API Solution
The Viator Partner-API v2.0 is a fully-redesigned system with regard to our previous API products. It includes all key fuctionality available in previous versions, but now provides nearly fully-structured data elements, and a more modern, concise and easily-understandable interface.
In addition, we have made significant improvements to performance across all functions of the API, and particularly in the area of product content and availability data ingestion.
Data ingestion has been greatly improved over previous versions of this API. Now, partners need only perform a single initial ingestion of data; then, only new and updated product content, availability and pricing information is retrieved as a 'delta update' as it becomes available.
In addition:
Improvements to availability schedule ingestion performance and usability have been achieved:
Availability is now communicated by providing an overall schedule season and specifying unavailable dates instead of available dates, a significantly more compact format that improves transfer speeds and minimizes storage needs
Availability and pricing information is given on a days-of-the-week basis, which can help with filtering and improving visibility of product availability for customers.
Information about special pricing periods that may be running throughout a product's seasons is included and is easy to interpret, allowing partners to surface promotions to customers.
Accurate pricing and applicability information for products that have 'per unit' (group) pricing is now included in the availability & pricing response; whereas support for this pricing model was limited in previous versions of this API. This allows partners to improve pricing exposure for these products.
Providing structured content is a major focus of this API. Product information that was previously stored as natural-language descriptions in a single, lengthy field is now represented in intuitively-structured, machine-interpretable schemata that empowers partners to apply finely-grained merchandising control, including:
The real-time availability check endpoint:
The booking workflow now includes an optional booking-hold step, which allows you greater predictability of a successful booking, thereby increasing conversion rates by decreasing friction in the booking flow.
The booking hold endpoint supports two kinds of hold:
The real-time availability and pricing endpoint also delivers ~5% faster performance than previous versions of this API.
The API endpoints accessible to you depend on which kind of partner you are; affiliate or merchant.
Basic-access Affiliate partners have access to a limited subset of the non-transactional endpoints of the Viator Partner API. The basic-access tier allows affiliates to quickly get started building their site with fewer complexities. The following step-by-step guide explains how to do it: Golden Path – Basic Access Affiliate Partners
Full-access Affiliate partners have access to all non-transactional endpoints; i.e., everything except booking, booking hold and booking cancellation endpoints.
Full-access + Booking Affiliate partners have access to all the same endpoints as Full-access Affiliate partners as well as transactional endpoints. i.e., including cart booking, cart booking hold and booking cancellation endpoints.
Merchant partners have access to all endpoints.
The following table describes which partner types have access to which endpoints:
Access to the API is managed using an API key that is included as a header parameter to every call made to all API endpoints described in this document.
Header parameter name | Example value |
---|---|
exp-api-key | bcac8986-4c33-4fa0-ad3f-75409487026c |
If you do not know the API key for your organization, please contact your business development account manager for these details.
Please note that language localization is now controlled on a per-call basis. Previously, localization settings were configured per API-key; whereas, under the present scheme, organizations have a single API key.
Language localization is accomplished by specifying the desired language as a header parameter (Accept-Language
). See Accept-Language header for available language codes.
The Accept-Language
header parameter specifies into which language the natural language fields in the response from each endpoint will be translated.
Note: All partners using the V2 endpoints have access to all supported languages for their partner type.
Language | Accept-Language parameter value |
---|---|
English | en , en-US en-AU , en-CA , en-GB , en-HK , en-IE , en-IN , en-MY , en-NZ , en-PH , en-SG , en-ZA |
Danish | da |
Dutch | nl , nl-BE |
Norwegian | no |
Spanish | es , es-AR , es-CL , es-CO , es-MX , es-PE , es-VE |
Swedish | sv |
French | fr , fr-BE , fr-CA , fr-CH |
Italian | it , it-CH |
German | de , de-DE |
Portuguese | pt , pt-BR |
Japanese | ja |
Language | Accept-Language parameter value |
---|---|
Chinese (traditional) | zh-TW |
Chinese (simplified) | zh-CN |
Korean | ko , ko-KR |
In order to ensure the predictability of the behavior of this software, we have implemented a versioning strategy to handle updates to the API contract, as well as a mechanism to specify which version of the API you wish to access.
When we release a new version of this API, partners have the option of continuing to use the existing version or migrating to the updated version when they are ready.
The approach to versioning for this API is as follows:
The following types of change are considered backward-compatible, and will not result in a version release when introduced. Therefore, partners must ensure their implementation can handle such changes gracefully.
These changes comprise:
The following types of change are considered breaking changes and will result in the release of an incremented version of this software:
It is mandatory to specify which version of the API you wish to use via the 'Accept' header parameter in the request to each API endpoint; e.g., Accept: application/json;version=2.0
. Omitting the version parameter will result in a 400 Bad Request response.
Example valid request:
curl --location --request GET 'https://api.sandbox.viator.com/partner/products/modified-since?cursor=MTU5MjM1NTM0MXwxMTM5ODZQNA==' \
--header 'exp-api-key: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx' \
--header 'Accept-Language: en-US' \
--header 'Accept: application/json;version=2.0'
Example error response:
{
"code":"INVALID_HEADER_VALUE",
"message":"Accept header is missing or has invalid version information",
"timestamp":"2020-09-02T03:43:23.303946Z",
"trackingId":"3D45567E:2D25_0A5D03AB:01BB_5F4F14A5_394639:3DB7"
}
This API supports gzip compression. Therefore, if you include gzip
in the Accept-Encoding
header parameter in the request, the API will respond with a gzip-compressed response.
If you wish to implement internal timeout settings for calls to this API, we recommend a setting of 120s.
This is due to the fact that some of the products in our inventory rely on the operation of external supplier systems, which we do not control. Because of that, it may take up to 120s to receive a response when making a booking. In rare cases, booking response times in excess of 120s can sometimes occur.
This means that a booking may have actually succeeded even if the /bookings/book or /bookings/cart/book endpoints time-out or respond with a HTTP 500 error.
Therefore, it is strongly recommended that you check the status of the booking using the /bookings/status endpoint to make sure the booking was not created before you attempt to make the booking again.
Furthermore, you can avoid creating duplicate bookings by making sure that you supply the same value for partnerBookingRef
in the request to /bookings/book or /bookings/cart/book as you did for the booking you believe may have failed. The partnerBookingRef
value must be unique; therefore, a duplicate booking will not be created.
You can retrieve the core product-content details from the following endpoints:
You can retrieve the availability schedules for products using the following endpoints:
Any particular product may consist of a number of variants, each of which is referred to as a 'product option'. In previous versions of this API, and in the tours and activities sector in general, product options are also referred to as 'tour grades'.
For example, product options might represent different departure times, tour routes, or packaged extras like additional meals, transport and so forth.
The product options available for a product can be found in the productOptions
array in the responses from any of the product content endpoints.
An example productOptions
array for the product 5010SYDNEY is as follows:
"productOptions": [
{
"productOptionCode": "48HOUR",
"description": "Duration: 2 days: FREE BONUS ENTRY to Sydney Tower with every Deluxe ticket end 31st March<br/>48 Hour Premium Ticket: Unlimited use on Big Bus Sydney & Bondi Tour for 48 hours from time of first use PLUS a guided walking tour of The Rocks, Syd",
"title": "48 Hour Premium Ticket ",
"languageGuides": [...]
},
{
"productOptionCode": "TG1",
"description": "Hop-on Hop-Off and Attractions: 48hr Big Bus Tours, 1-day Hop-On Hop-Off Harbour Cruise, 4 Attractions: Tower Eye, Madame Tussauds, Wildlife Zoo, Aquarium<br/>Duration: 2 days<br/>Complimentary Walking Tours: Complimentary English-speaking guided walking tour of “The Rocks” historic and harbourside precinct.",
"title": "48Hour Deluxe PLUS Attractions",
"languageGuides": [...]
},
{
"productOptionCode": "24HOUR",
"description": "Unlimited use on Big Bus Sydney & Bondi Hop-on Hop-off Tour for 24 hours from time of first use",
"title": "24 Hour Classic Ticket ",
"languageGuides": [...]
},
{
"productOptionCode": "DELUXE",
"description": "Big Bus and Habour Cruise: Combine two great Sydney experiences into one with a hop-on hop off Big Bus Tours and a hop-on hop-off Sydney Harbour cruise <br/>Duration: 2 days: FREE BONUS ENTRY to Sydney Tower with every Deluxe ticket end 31st March<br/>Complimentary Walking Tour: Complimentary English-speaking 90-minute guided walking tour of “The Rocks” historic and harbourside precinct.",
"title": "48 Hour Deluxe Bus and Cruise",
"languageGuides": [...]
}
]
This product has four product options, each with an identifying code given in the productOptionCode
field:
"48HOUR"
"TG1"
"24HOUR"
"DELUXE"
Product options are essentially a subcategory of the tour or activity. You will need to specify the product option you wish to book when making a booking.
Note on DEFAULT
productOptionCodes:
Previously, DEFAULT
productOptionCodes were treated differently from other tour grades and were omitted from requests/responses when only one “DEFAULT” tour grade was present. This special treatment has been removed. All tour grades can be handled consistently. For backward compatibility, DEFAULT
codes can still be omitted from some requests, but it is recommended to avoid this practice.
The availability schedules endpoints provide information about the availability of a product (along with its various product options and starting times, if they exist) and its pricing in the supplier's currency.
This section explains how to interpret the response from the availability schedules endpoints.
Example response snippet from /availability/schedules/10212P2 (some starting times were removed for brevity):
{
"productCode": "10212P2",
"bookableItems": [
{
"productOptionCode": "TG45",
"seasons": [
{
"startDate": "2019-05-01",
"endDate": "2021-12-31",
"pricingRecords": [
{
"daysOfWeek": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY",
"SUNDAY"
],
"timedEntries": [
{
"startTime": "11:00",
"unavailableDates": [
{
"date": "2020-09-16",
"reason": "SOLD_OUT"
},
{
"date": "2020-09-23",
"reason": "SOLD_OUT"
},
{
"date": "2020-09-22",
"reason": "SOLD_OUT"
},
{
"date": "2020-09-27",
"reason": "SOLD_OUT"
},
{
"date": "2020-09-29",
"reason": "SOLD_OUT"
},
{
"date": "2020-09-30",
"reason": "SOLD_OUT"
}
]
},
{
"startTime": "10:00",
"unavailableDates": [
{
"date": "2020-09-25",
"reason": "SOLD_OUT"
},
{
"date": "2020-09-26",
"reason": "SOLD_OUT"
},
{
"date": "2020-09-28",
"reason": "SOLD_OUT"
},
{
"date": "2020-09-27",
"reason": "SOLD_OUT"
},
{
"date": "2020-09-30",
"reason": "SOLD_OUT"
},
{
"date": "2020-09-29",
"reason": "SOLD_OUT"
}
]
},
{...}
],
"pricingDetails": [
{
"pricingPackageType": "PER_PERSON",
"minTravelers": 1,
"ageBand": "INFANT",
"price": {
"original": {
"recommendedRetailPrice": 0.00,
"partnerNetPrice": 0.00,
"bookingFee": 0.00,
"partnerTotalPrice": 0.00
}
}
},
{
"pricingPackageType": "PER_PERSON",
"minTravelers": 1,
"ageBand": "ADULT",
"price": {
"original": {
"recommendedRetailPrice": 100.02,
"partnerNetPrice": 79.89,
"bookingFee": 4.79,
"partnerTotalPrice": 84.68
},
"special": {
"recommendedRetailPrice": 90.02,
"partnerNetPrice": 71.90,
"bookingFee": 4.31,
"partnerTotalPrice": 76.21,
"offerStartDate": "2020-08-28",
"offerEndDate": "2020-09-30"
}
}
}
]
}
]
}
]
}
],
"currency": "USD",
"summary": {
"fromPrice": 100.02
}
}
bookableItems[]
array contains the availability and pricing data for one of the product's product-options (productOptionCode
).seasons[]
array describes the availability and pricing for the product-option during the 'season' (period of time) delimited by startDate
and endDate
. If endDate
is not present, this means the season extends 384 days (approximately 12.5 months) into the future from the current date.pricingRecords[]
array describes which days of the week (daysOfWeek[]
) the availability and pricing data pertains to during the season, as well as which starting times are in operation (timedEntries[]
) and on which dates (unavailableDates[]
) each starting time is unavailable (e.g., due to being sold out).pricingDetails[]
array describes the pricing that applies to each age-band during the season.We can thereby interpret the availability schedule snippet above as follows:
"TG45"
of product "10212P2"
, during the period from "2019-05-01"
to "2021-12-31"
, on all days of the week, there are starting times at 10:00 and 11:00.original
) is USD 100.02special
) is in effect for adults between 2020-08-28 and 2020-09-30; the special recommended retail price is USD 90.02Using this information, a complete schedule – including which product-codes and starting times are available on which dates and the pricing (including special discounts) that applies on each date - can be constructed in your database.
The itinerary for a product is used to communicate to customers what to expect with regard to where they will go when participating in the tour or activity. On the Viator.com website, this information is displayed in the What to expect section on each product's product display page.
Itinerary information is available from this API in a machine-interpretable, structured format that facilitates graphical display and advanced search, should you choose to implement it.
The itinerary information for each product is contained in the itinerary
object in the response from any of the product content endpoints.
There are five types of itinerary, and the type is specified in the itinerary.itineraryType
field. They are as follows:
Itinerary type | itineraryType |
Meaning |
---|---|---|
Standard | "STANDARD" |
A tour-based product (focused on visiting and viewing) that occurs at a single location or proceeds through a set of locations on a single day. |
Activity | "ACTIVITY" |
An activity-based product (focused on the activity rather than the location) that occurs at a single location or proceeds through a set of locations on a single day |
Multi-day tour | "MULTI_DAY_TOUR" |
A tour or activity that occurs over multiple days, and therefore includes food and accommodation |
Hop-on / hop-off | "HOP_ON_HOP_OFF" |
A tour that operates continuously, such as a bus tour, wherein passengers can use their ticket to board and alight as they please at any of the stops along the route |
Unstructured | "UNSTRUCTURED" |
Not all suppliers have upgraded the itinerary information for their products from a text-based description to structured data; therefore, the itinerary information for a small number of products remains unparseable for the time being. |
The itinerary
object is polymorphic depending on the itineraryType
, but all variants contain standard information, as follows:
Field name | Meaning |
---|---|
skipTheLine |
true if a ticket for this product allows participants to attend a location without having to obtain a separate ticket on the occasion itself |
privateTour |
true if only the travelers who have booked this product will be present; false if it is a shared tour |
maxTravelersInSharedTour |
If privateTour is false , this value represents the maximum number of people that will be able to participate in the tour or activity. |
unstructuredDescription |
In the event that structured information is not available, this field will contain a plain-text description of the itinerary. |
All other elements in the itinerary
object differ slightly according to the value of itineraryType
.
Products with a "STANDARD"
itinerary type are tour-based products (focused on visiting and viewing) that occur at a single location or proceed through a set of locations on a single day.
An example of a "STANDARD"
itinerary product is Barossa Valley Highlights from Barossa Valley Including Wine and Cheese Tasting (21381P1).
The itinerary
object in the product-content response for this tour is as follows (truncated to the first three items for brevity):
"itinerary": {
"itineraryType": "STANDARD",
"skipTheLine": false,
"duration": {
"fixedDurationInMinutes": 360
},
"itineraryItems": [
{
"pointOfInterestLocation": {
"location": {
"ref": "LOC-5620ab70-c813-4904-ad13-bcf527540d3e"
},
"attractionId": 17873
},
"duration": {
"fixedDurationInMinutes": 45
},
"passByWithoutStopping": false,
"admissionIncluded": "YES",
"description": "Guests will experience the majesty of (...) "
},
{
"pointOfInterestLocation": {
"location": {
"ref": "LOC-7ae41705-fd91-4500-8cde-bbe9b3a00df4"
}
},
"duration": {
"fixedDurationInMinutes": 40
},
"passByWithoutStopping": false,
"admissionIncluded": "YES",
"description": "Guests will enjoy a truly unique offering (...)"
},
{
"pointOfInterestLocation": {
"location": {
"ref": "LOC-9494c4cf-f4e4-4e7f-8213-0cf1b9980097"
}
},
"duration": {
"fixedDurationInMinutes": 30
},
"passByWithoutStopping": false,
"admissionIncluded": "YES",
"description": "No trip to the Barossa would be complete without (...)"
}
(...)
]
}
The itineraryItems[]
array describes the itinerary of locations for this tour and can be used in conjunction with the /locations/bulk endpoint to contruct a What to expect section, similar to what is seen for this product on viator.com, as in the following screen-shot:
The elements highlighted in red boxes are sourced as follows:
"Stop At: Seppeltsfield"
The name of each location (in the highlighted case, 'Seppeltsfield') is not included in the response and must be determined by submitting the location reference code in the pointOfInterestLocation.location.ref
field to the /locations/bulk endpoint.
The location reference is "LOC-5620ab70-c813-4904-ad13-bcf527540d3e"
:
"pointOfInterestLocation": {
"location": {
"ref": "LOC-5620ab70-c813-4904-ad13-bcf527540d3e"
}
Submitting this code to the /locations/bulk endpoint yields the following response:
{
"locations": [
{
"provider": "TRIPADVISOR",
"reference": "LOC-5620ab70-c813-4904-ad13-bcf527540d3e",
"name": "Seppeltsfield",
"address": {
"street": "730 Seppeltsfield Rd",
"administrativeArea": "Seppeltsfield",
"state": "South Australia",
"country": "Australia",
"countryCode": "AU",
"postcode": "5355"
},
"center": {
"latitude": -34.489162,
"longitude": 138.91866
}
}
]
}
The name of the location is in the name
element; i.e., "Seppeltsfield"
.
Description
The description for each itinerary stop is given in the description
field; in this case:
"description": "Guests will experience the majesty of the Seppeltsfield Winery Estate, an historic icon of the Barossa and integral part of its storied history. Learn the story of the Seppelt family, the phenomenal fortified wines upon which they have built their reputation and taste a broad range of their current wine offerings. Don’t forget to ask about the Centennial collection, the only wine collection of wines of its type in the world with more than 120 years of consecutive vintages currently stored in the barrel. "
"Duration: 45 minutes"
The duration spent at an itinerary location is given in the duration
element. This can be a fixed duration, as in this example and indicated by the fixedDurationInMinutes
field being filled; i.e.:
"duration": {
"fixedDurationInMinutes": 45
},
Or, the time spent at the location might be variable, in which case only the variableDurationFromMinutes
and variableDurationToMinutes
fields will appear; e.g.:
"duration": {
"variableDurationFromMinutes": 10,
"variableDurationToMinutes": 30
},
"Admission Ticket Included"
This item of information indicates to the traveler whether or not they will be required to pay for admission to a location or whether admission is included in the price of the tour. It is indicated by the admissionIncluded
field; which in this case is:
"admissionIncluded": "YES"
The possible values this field can take are:
"YES"
"NO"
"NOT_APPLICABLE"
Pass by without stopping
In this example, the passByWithoutStopping
element is false
for all locations. On some tours, however, the vehicle will merely pass by a certain location, without stopping, for viewing purposes. If that is the case, this field will be true
.
The "activity" itinerary is designed for products where the focus of the experience is the activity itself (e.g., cooking classes), rather than the location(s) at which it occurs.
The itinerary
object for this type of product includes the activityInfo
and foodMenus
objects, which contain details about the activity and any meals being served (or created), respectively.
Example activity experience: Traditional Cooking Class - 114869P3
"itinerary": {
"itineraryType": "ACTIVITY",
"skipTheLine": false,
"privateTour": true,
"duration": {
"fixedDurationInMinutes": 240
},
"pointsOfInterest": [
{
"ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5C7cXoFi13Pb8aiiiEWiVprM1MtQdt/DIeeb7ErQo1SK"
}
],
"activityInfo": {
"location": {
"ref": "LOC-dwbUKYXwDvt911EeSQVjwo4itqM47D/JrJBMhEHXctp6Yj8SzOvLCGbeQQ0arbNw8FHTuTEi0SU9RbKNpLx7bw8HP6Pnh1pBwy27irN3vKoTexOgxSlj2+xv9x3k6fZnPrb/zhY5RImUibPpbTET/+atZD8crT0DlPf5hg21QPWNam1RsZKgzF5gb1fPZ6d7WNWIWYsu3m54y2TFqiHaAbo1d2Ps2LFK+DCctmyDmqbgSV7FDpLXv5sL/e0R/Mg+7vLX0lMV8HGW4jisRxqYD5oThATP9j1NRY98SvhXpEI="
},
"description": "Embark on a culinary adventure unlocking the secrets of authentic Javanese cooking, utilizing traditional ingredients and preparation methods.\nYour day starts early at the local markets, where you can pick from fresh herbs & spices, crisp vegetables and choice cuts of meat. \nAfter exploring at the traditional market, you will be warmly welcomed and expertly guided by your host, who will help you to discover how to create your very own delicious authentic Javanese dishes. \nYour hard work is rewarded when you sit down to have lunch on your tasty creations.\nAll classes are conducted in English by Javanese chefs fully conversant with Javanese cuisine and culture...and in a relaxed, friendly atmosphere in the beautiful kitchen-garden."
},
"foodMenus": [
{
"course": "MAIN",
"dishName": "Gado-gado",
"dishDescription": "Mixed vegetables with peanut sauce"
},
{
"course": "MAIN",
"dishName": "Opor Ayam",
"dishDescription": "Braised Chicken in Coconut Milk"
}
]
}
All information for the 'What to Expect' section on the product display page on Viator.com is can be sourced from this object.
Products with a "MULTI_DAY_TOUR"
itinerary type are tours or activities that occur over multiple days, and therefore include a breakdown of the itinerary for each day of the tour, as well as extra information about food and accommodation.
Example multi-day tour: Active Winter Adventure in Yukon | 5 days (7110P7)
Screenshot of 'What to expect' section from the viator.com site:
Snippet of the itinerary
object in the product content response for 7110P7 (truncated to first two items of days[]
array):
"itinerary": {
"itineraryType": "MULTI_DAY_TOUR",
"skipTheLine": false,
"duration": {
"fixedDurationInMinutes": 7200
},
"days": [
{
"title": "Arrival Whitehorse",
"dayNumber": 1,
"items": [
{
"pointOfInterestLocation": {
"location": {
"ref": "LOC-99b0f435-fa6a-469f-8f96-f983b82f74c5"
}
},
"duration": {},
"admissionIncluded": "NOT_APPLICABLE",
"description": "From the airport we drive you to your hotel located in the centre of Whitehorse."
}
],
"accommodations": [
{
"description": "Overnight in downtown Whitehorse Hotel"
}
]
},
{
"title": "Wildlife and Hot Springs, a Bird's-Eye-View and Northern Lights",
"dayNumber": 2,
"items": [
{
"pointOfInterestLocation": {
"location": {
"ref": "LOC-799e6c90-d0bb-4ec4-9cf6-c40459ff0463"
},
"attractionId": 25942
},
"duration": {
"fixedDurationInMinutes": 90
},
"admissionIncluded": "YES",
"description": "Later we drive to the Yukon Wildlife Preserve where we can see up close inhabitant game like the Elk, Moose, Caribou, Mountain Goats and Porcupines in their natural surrounding."
},
{
"pointOfInterestLocation": {
"location": {
"ref": "LOC-cf8d0f7a-54d6-4cc1-9911-480b4934c752"
},
"attractionId": 25951
},
"duration": {
"fixedDurationInMinutes": 90
},
"admissionIncluded": "YES",
"description": "Not far from here we will visit the Takhini Hotsprings and endulge ourself in the natural hot waters and relax in a breathtaking winter mountain setting."
},
{
"pointOfInterestLocation": {
"location": {
"ref": "LOC-3251a39d-aa69-4229-9ba4-57d5b417e6db"
}
},
"duration": {
"fixedDurationInMinutes": 240
},
"admissionIncluded": "YES",
"description": "After a relaxed dinner in Whitehorse, you’ll be back on the road again, this time to seek views of the stunning Northern Lights. Relax in sheltered comfort, or under the starry sky beside a warm fire at one of our tailor-made aurora viewing locations. "
}
],
"accommodations": [
{
"description": "Overnight in downtown Whitehorse Hotel"
}
]
},
(...)
]
}
Within the days[]
array, each day of the multi-day tour is described. The items[]
array within each item of the days[]
array largely follows the structure of the items in the itineraryItems[]
array of the "STANDARD"
itinerary and can be interpreted for display.
The fixedDurationInMinutes
in the itinerary[]
array represents the total duration of the tour.
Note: The example above does not include the foodAndDrinks[]
element, as it is not relevant to this product.
A hop-on/hop-off product is one that typically operates continuously during its hours of operation, such as a bus tour, and passengers can use their ticket to board and alight as they please at any of the stops along the route.
Such products may also operate multiple routes simultaneously.
Example hop-on / hop-off tour:Big Bus Sydney and Bondi Hop-on Hop-off Tour (5010SYDNEY)
Snippet of itinerary
object in the product content response for 5010SYDNEY (operatingSchedule
, stops
and pointsOfInterest
truncated in first route):
"itinerary": {
"itineraryType": "HOP_ON_HOP_OFF",
"skipTheLine": false,
"privateTour": false,
"duration": {
"fixedDurationInMinutes": 120
},
"routes": [
{
"operatingSchedule": "1st bus departs from Stop 1 Circular Quay at 9.00am.. (...)",
"duration": {
"fixedDurationInMinutes": 120
},
"name": "Red Route - Sydney Icons",
"stops": [...],
"pointsOfInterest": [...]
]
},
{
"operatingSchedule": "1st bus departs from Stop 12/24 Central Station at 10.00am.\nFrequency every 60 minutes\nLast bus departs from stop 12/24 at 4.00pm",
"duration": {
"fixedDurationInMinutes": 120
},
"name": "Blue Route - Bondi Lifestyle",
"stops": [
{
"stopLocation": {
"ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Psa0O7zv6as2RgNgIaUx0EFjKH/7fL3wV6nAS8iPXkO"
},
"description": "Central Station, Pitt Street, Bus Bay 18"
},
{
"stopLocation": {
"ref": "LOC-RaYlfRSLaIsd0SlazqDQk19G5f6qNrg0gjGUG4TKX09ebeQFQmF/tcZGYdP+hZ8qHiX/vcPkkKKpDcocShqAYEgNFI1CfF3En+N9VrOAxKQUrgoRQ1Va78q0+ItmaNr/WbsMTE8jgepUMa6GSjKvLkRhjHJbm/8KZDt9vri/bomquCnoZMFCjkrjxqrlpEp5m2qWwkCxg5iRffRLuhG/YQ=="
},
"description": "Australian Museum "
},
{
"stopLocation": {
"ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Nh4BzPY4JhOxIuD4/Do8pUJ7t+9MCl62rbq6KVnaek/"
},
"description": ""
},
{
"stopLocation": {
"ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5HyrAalNU3M4hS1T1NGhMtCdFsSEh+RkFpJBmFZX9No8"
},
"description": ""
},
{
"stopLocation": {
"ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5ADNeEAMR25x+3AtosA/mPk102O66T1JygFmomnS5cve"
},
"description": ""
},
{
"stopLocation": {
"ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5DlsAklW6JtKr4LQsnhsvv7JxEYbLQWAsKDqTrCu41p4"
},
"description": ""
},
{
"stopLocation": {
"ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5BLsCa3M6INxXNpkE2r1BTHxvB0gY1MP6WB9Yxso16Ot"
},
"description": ""
},
{
"stopLocation": {
"ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5PrdhQ/J96Gq+dweFD3sOSrkBFH5QSJjP1VJ0a/86OPO"
},
"description": ""
}
],
"pointsOfInterest": [
{
"location": {
"ref": "LOC-6eKJ+or5y8o99Qw0C8xWyIiKlXuqcCaUR/8Ng7CZSLI="
},
"attractionId": 14159
},
{
"location": {
"ref": "LOC-6eKJ+or5y8o99Qw0C8xWyOEUrjaNrfQuPK4sfYmEGio="
}
},
{
"location": {
"ref": "LOC-6eKJ+or5y8o99Qw0C8xWyPTry/4ZvItH2jj+ziZ16zY="
}
},
{
"location": {
"ref": "LOC-6eKJ+or5y8o99Qw0C8xWyCs+n26oP6pvXz2mRpQ6QlA="
}
},
{
"location": {
"ref": "LOC-6eKJ+or5y8o99Qw0C8xWyI5+u+JgfxCzNB+Yaph1xug="
}
}
]
}
]
}
By comparing the response snippet with the screenshot above, you can see that:
description
field)All location details (including the name) must be retrieved by sending the location reference to the /locations/bulk endpoint.
The total duration of the tour can be found in the itinerary[]
array.
If all tour routes have the same duration, the fixedDurationInMinutes
field will be returned.
When tour routes have different duration, only the variableDurationFromMinutes
and variableDurationToMinutes
fields will appear.
Although our systems have been upgraded to support structured itinerary information, this feature is only availabe once the supplier manually updates their product details. A small number of suppliers have not yet made these updates. As such, some products retain their legacy itinerary information, and this case is handled with the "UNSTRUCTURED"
itinerary type.
Snippet of itinerary
object in the product content response for 5524GOLD - Private Tour: 4-Day Golden Triangle Trip to Agra and Jaipur from Delhi:
"itinerary": {
"itineraryType": "UNSTRUCTURED",
"skipTheLine": false,
"privateTour": false,
"unstructuredDescription": "Please read the Itinerary section for details on your Golden Triangle tour from Delhi to Agra and Jaipur.",
"unstructuredItinerary": " Day 1: Delhi – AgraMorning departure from your hotel in Delhi. Traveling in the comfort your own air-conditioned vehicle, accompanied by a driver, the journey to Agra will take approximately four to five hours. Upon arrival in Agra, check in at your hotel. In Agra, your local guide who will take you to visit the famous and majestic Red Agra Fort, followed by the romantic Taj Mahal at sunset. The remainder of the evening is free for your own personal exploration.\n\nOvernight: 3- or 4-star hotel in Agra\n\nDay 2: Agra – Jaipur (B)After breakfast, travel by road to Fatehpur Sikri, located approximately 40 kilometers from Agra. Fatehpur Sikri was the capital of the Mughal Empire between 1571 and 1585 during the reign of Akbar. Continue to the 'pink city' of Jaipur. The rest of your day is free for your own exploration of Jaipur's action packed streets and magnificent palaces. Jaipur is a shopper's paradise. There is an amazing range of crafts available, and Jaipur is also famous for its precious and semi-precious stones. \n\nOvernight: 3- or 4-star hotel in Jaipur\n\nDay 3: Jaipur (B)After breakfast, visit Amber Fort located 12 kilometers from Jaipur. The magnificent Amber Fort is a fine blend of Hindu and Muslim architecture. Return to Jaipur and visit the City Palace, situated in the heart of Jaipur's old city. The palace is a blend of Rajput and Mughal architecture; it houses a 7-storied Chandra Mahal in the center. Also visit Hawa Mahal (Palace of Winds), Jaipur's most distinctive landmark. Built in 1799, this is an amazing example of Rajput architecture.\n\nOvernight: 3- or 4-star hotel in Jaipur\n\nDay 4: Jaipur – Delhi (B)After breakfast, travel back to your Delhi hotel or the airport.",
"duration": {
"fixedDurationInMinutes": 5760
},
"pointOfInterestLocations": [
{
"location": {
"ref": "LOC-6eKJ+or5y8o99Qw0C8xWyJUIMZqLxZiFQx5hWjqMeXg="
}
}
]
},
Use the unstructuredDescription
and unstructuredItinerary
fields to create the section on your site that corresponds to the What to expect section on the Viator product display page. Note that the unstructuredItinerary
field is not always populated – in that case, just use the unstructuredDescription
field.
All products with an "UNSTRUCTURED"
itinerary type are in the process of being updated to the appropriate structured type. Eventually, all products will support structured itinerary information.
In order to prevent our unique content from being utilized by unauthorized third parties, we require that you design your site in such a way that this content will not be indexed by search engines.
The content that must be protected comprises:
reviews
element in the product content response. viatorUniqueContent
element in the product content response.In order to properly protect reviews and other unique content, you must ensure that the protected content never appears directly in the source code of the loaded page. This includes both HTML and Javascript.
In order to do this correctly, the unique content must be loaded via a call to an external Javascript, and that Javascript must be blocked in robots.txt so that search engines can not see or index it.
A simple way to check that the unique content does not appear in the source code of the loaded page – and, therefore, cannot be indexed – is to copy a snippet of the unique content text that is displayed when you load the page normally in your browser. Approximately 10 words will suffice.
Then, access the source code of that page using the View Source feature in your browser. Use your browser's in-page search feature to search for the text snippet copied in the previous step. If the text is found anywhere in the source code of the page, then your implementation is not correctly protecting the content, as it will be able to be indexed by search enginges.
❌ Unacceptable implementation: pure HTML
Here the protected content appears directly in the HTML and can be indexed by search engines:
<html>
<head>
</head>
<body>
<div>”I had a great time at this hotel”</div>
</body>
</html>
❌ Unacceptable implementation: Javascript in the page source
Here, the protected content still appears in the page source, even though it is in the 'script' section, and will therefore be indexed by search engines:
<html>
<head>
<script>
var review_content = ”I had a great time at this hotel”;
$(“review”).html(review_content);
</script>
</head>
<body>
<div id=”review”></div>
</body>
</html>
✅ Acceptable implementation: protected content is loaded using an external Javascript and access to that endpoint is blocked using robots.txt:
<html>
<head>
<script>
var review_content = $.ajax(“https://api.hello.xyz/getReviewContentForHotel/123/”);
$(“review”).html(review_content);
</script>
</head>
<body>
<div id=”review”></div>
</body>
</html>
Robots.txt in the document root for https://api.hello.xyz
:
User-Agent: *
Disallow: /getReviewContentForHotel
Note: The robots.txt file must be in the root directory for whichever domain or subdomain the call is being made to. Please review the robots.txt guidelines to determine the correct syntax for your site.
You can only submit a review or rating of an experience to Viator if you were the person who made the booking through Viator. Before publication, each review goes through an automated tracking system, which collects information for each of the following criteria: who, what, how, and when.
If the system detects something that contradicts our publication criteria, the review is not published. When the system detects a problem with a review, it may be automatically rejected, sent to the reviewer for validation, or manually reviewed by our team of content specialists who work 24/7 to maintain the quality of the reviews on our site. In some cases, we will also send Viator customers an email asking them to validate their review before it is published.
All Viator customers need to do is to click on the link provided in the email.
After publication, our team checks each review reported to it as not meeting our publication criteria. Tripadvisor reviews that appear on the Viator site are subject to the same checks and moderation processes as set out above. It is not necessary to have booked an experience through Viator (or Tripadvisor) to submit a review of an experience to the Tripadvisor site.
Tour and experience product suppliers can set different prices for (and impose different rules on) customers according to how old they are.
For example, suppliers might choose to charge people 18 years and older ('adults') the full ticket price, while 'children' can book at a lower price.
Or, the tour operator may only allow children to make a group booking for the tour so long as the group contains 'at least one adult'.
Viator provides six age-band categories that product suppliers can use to segregate travelers into age groups (the limits of which they also define) in order to set pricing and traveler-count participation rules for their product according to the age band categories.
The age-bands available for a particular product, such as adult, child, infant, etc., are returned by the /products/{product-code} service. Your customer should be able to select a different number of people from each available age-band during the price check and checkout process.
To learn more about how to implement age bands, see the following guide: Implementing age bands & pax mix
The age bands supported by the Viator API are as follows:
bandId | Description |
---|---|
"ADULT" |
Adult |
"CHILD" |
Child |
"INFANT" |
Infant |
"YOUTH" |
Youth |
"SENIOR" |
Senior |
"TRAVELER " |
Catch-all age-band for unit-priced products |
Note that the "TRAVELER"
is only used for bookings with unit pricing, in which case it will be the only age-band available.
The exact age range to which each category pertains is defined by the supplier, and the maximum and minimum ages that each age band describes for each product can be found in the product content response; e.g.:
"ageBands": [
{
"ageBand": "INFANT",
"startAge": 0,
"endAge": 2,
"minTravelersPerBooking": 0,
"maxTravelersPerBooking": 15
},
{
"ageBand": "CHILD",
"startAge": 3,
"endAge": 11,
"minTravelersPerBooking": 0,
"maxTravelersPerBooking": 15
},
{
"ageBand": "ADULT",
"startAge": 12,
"endAge": 80,
"minTravelersPerBooking": 1,
"maxTravelersPerBooking": 15
}
]
For this product, the age bands have been defined as follows:
ageBand |
ageFrom |
ageTo |
---|---|---|
ADULT | 13 | 64 |
SENIOR | 65 | 99 |
CHILD | 4 | 12 |
Product suppliers must define at least one age band for their tour, and there are no 'default' age ranges. Therefore, if the supplier has only specified a single 'adult' age band covering ages 18-99, it must be assumed that only people aged 18-99 are eligible to book the tour, essentially excluding children and centenarians in this case.
The age-band of a customer needs to be communicated via the API in the following situations:
paxMix
element in the request to /bookings/hold or /bookings/cart/hold.paxMix
element "AGEBAND"
as a booking question, you must additionally provide these details in the bookingQuestionAnswers
array in the request to /bookings/book or /bookings/cart/book. Note that these details are verified by the booking server and the booking will be rejected if the details do not match. For more information about answering the "AGEBAND"
booking question, see Booking concepts – Booking questions.Note: This section applies to affiliate partners with API access level "Full Access + Booking" and merchant partners only.
As well as making bookings, affiliate and merchant partners are also able to cancel bookings through the Viator API using the /bookings/cancel-reasons, /bookings/{booking-ref}/cancel-quote and /bookings/{booking-ref}/cancel endpoints. Items cancelled via the /bookings/{booking-ref}/cancel endpoint will be cancelled in full, and only one booking can be cancelled at a time.
For more information about how to perform cancellations using this API, see the Cancellation API workflow section and our in-depth guide about cancellation policies and how to handle cancellations: All you need to know about cancellation policies.
All products can be cancelled by the affiliate or merchant partner; however, the refund granted by the supplier depends on the cancellation policy for the product in question.
There are three cancellation policy categories, standard, custom and all sales final, indicated by the type
element of the cancellationPolicy
object in the responses from the product content endpoints.
Note: These policies are those provided by Viator to you, the merchant partner. As the merchant of record, you can choose whether to extend these terms to your customers unchanged; or, set your own cancellation terms. For example, you might choose to make all products non-refundable; or, you might extend the full-refund cancellation window to 72 hours instead of 24 hours, and so forth. However, you will still be invoiced according to Viator's cancellation policies communicated via the API
"STANDARD"
)Products in this category can be cancelled up to 24 hours before the travel time (local supplier time) and a full refund will be granted. However, a 100% cancellation penalty applies for cancellations submitted less than 24 hours before the start time. Most products (about 85%) fall into this category.
5010SYDNEY
{
"cancellationPolicy": {
"type": "STANDARD",
"description": "For a full refund, cancel at least 24 hours before the scheduled departure time.",
"cancelIfBadWeather": false,
"cancelIfInsufficientTravelers": false,
"refundEligibility": [
{
"dayRangeMin": 1,
"percentageRefundable": 100
},
{
"dayRangeMin": 0,
"dayRangeMax": 1,
"percentageRefundable": 0
}
]
},
This product has the standard cancellation policy; i.e., when a booking is cancelled:
Policy | dayRangeMin |
dayRangeMax |
Logic | percentageRefundable |
---|---|---|---|---|
less than one day (24 hours) before the start time | 0 | 1 | (product_start_time - cancellation_time) >= 0 days && (product_start_time - cancellation_time) < 1 days | 0 |
more than one day (24 hours) before the start time | 1 | (absent) | (product_start_time - cancellation_time) >= 1 day | 100 |
"CUSTOM"
)The refund amount for products in this category varies depending on how long before its start time the product is cancelled. Many products on a custom policy are multi-day tours, which require more sophisticated planning on the supplier’s end. Only a small number of products (around 5%) fall into this category.
description
field contains a natural-language (and therefore language-localized) description of the policy described in the refundEligibility
array. You can use this description for customer-messaging directly, or implement your own natural-language generation techique. With the cancellation policy encoded in a structured way, it would also be possible to display this information graphically.2264RJ410
"cancellationPolicy": {
"type": "CUSTOM",
"description": "If you cancel at least 30 day(s) in advance of the scheduled departure, there is no cancellation fee.<br>If you cancel between 10 and 29 day(s) in advance of the scheduled departure, there is a 50 percent cancellation fee.<br>If you cancel within 9 day(s) of the scheduled departure, there is a 100 percent cancellation fee.",
"cancelIfBadWeather": false,
"cancelIfInsufficientTravelers": false,
"refundEligibility": [
{
"dayRangeMin": 10,
"dayRangeMax": 30,
"percentageRefundable": 50
},
{
"dayRangeMin": 30,
"percentageRefundable": 100
},
{
"dayRangeMin": 0,
"dayRangeMax": 10,
"percentageRefundable": 0
}
]
},
This product has a complex cancellation policy; where cancellations processed:
Policy | dayRangeMin |
dayRangeMax |
Logic | percentageRefundable |
---|---|---|---|---|
30 days or more before the start time | 30 | (absent) | (product_start_time - cancellation_time) >= 30 days | 100 |
10 days and less than 30 days (10 to 30 days) before the start time or more | 10 | 30 | (product_start_time - cancellation_time) >= 10 days && (product_start_time - cancellation_time) < 30 days | 50 |
less than 10 days before the start time | 0 | 10 | (product_start_time - cancellation_time) < 10 days | 0 |
Note: When the dateRangeMax
field is absent, this means infinity. Therefore, the second element in the refundEligibility
array above indicates that the time period begins infinitely far in the past until 30 days prior to the tour or activity commencing.
3
– All sales final (100% cancellation penalty / no refund offered)Products in this category cannot be cancelled or amended without incurring a 100% penalty; i.e., the refund amount will be zero. Around 10% of products fall into this category.
5985P7
{
"cancellationPolicy": {
"type": "ALL_SALES_FINAL",
"description": "All sales are final and incur 100% cancellation penalties",
"cancelIfBadWeather": false,
"cancelIfInsufficientTravelers": false,
"refundEligibility": [
{
"dayRangeMin": 0,
"percentageRefundable": 0
}
]
},
Products in this category can be cancelled, but no refund will be granted.
Within the cancellationPolicy
object in the response from /bookings/book or /bookings/cart/book, the refundEligibility.startTimestamp
and refundEligibility.endTimestamp
fields contain time-stamps (UTC) that indicate the exact times between which the different cancellation refund rates apply.
Note:
refundEligibility.startTimestamp
will always be further in the past than refundEligibility.endTimestamp
. startTimestamp
and endTimestamp
, rather than dayRangeMin
and dayRangeMax
, to determine which cancellation policy is in effect.Example response snippet from /bookings/book and /bookings/cart/book:
"cancellationPolicy": {
"type": "STANDARD",
"description": "For a full refund, cancel at least 24 hours before the scheduled departure time.",
"cancelIfBadWeather": false,
"cancelIfInsufficientTravelers": false,
"refundEligibility": [
{
"dayRangeMin": 1,
"percentageRefundable": 100,
"startTimestamp": "2020-08-25T00:36:49.69005Z",
"endTimestamp": "2020-11-28T13:00:00Z"
},
{
"dayRangeMin": 0,
"dayRangeMax": 1,
"percentageRefundable": 0,
"startTimestamp": "2020-11-28T13:00:00Z",
"endTimestamp": "2020-11-29T13:00:00Z"
}
]
}
Occasionally, customers seek a refund for a product after completing their travels.
The reason for this might be because they were unable to attend the tour due to the supplier having cancelled the tour due to bad weather or other reasons beyond the customer's control; or, the customer might have been extremely dissatisfied with the tour itself, felt that it was misrepresented in its advertising, or some other serious complaint.
When this occurs, you will need to send a refund request by email to dpsupport and include both "CANCEL" and the booking reference number in the subject line.
For all post-travel cancellation requests, you will need to include a detailed description of the issue.
Except in cases of known service interruptions (e.g., due to extreme weather events), we will first verify the issue and seek authorization from the product supplier.
Once a decision regarding the refund has been made, we will notify your Customer Services Department with this information. You will then need to advise your customer directly and process the refund if granted.
While we recommend that merchant partners support the processing of partial refunds for their customers, it is ultimately up to the partner whether to implement this functionality.
If you would prefer to only grant the full (100%) refund that is offered on most products so long as the cancellation is processed more than 24 hours prior to the product's start time, we recommend that you implement logic that checks whether a 100% refund is available for the product at the time the customer wishes to cancel their booking.
Type 1: Standard policy (cancellationPolicy.type is "STANDARD" ) |
---|
The 100% refund is available so long as the cancellation is performed more than 24 hours prior to the product start time |
Type 2: Custom policy (cancellationPolicy.type is "CUSTOM" ) |
---|
You will need to check whether any of the canellation policy objects in the refundEligibility array have:
|
Type 3: All sales final (cancellationPolicy.type is "ALL_SALES_FINAL" ) |
---|
No refunds are available (except in the case of manual confirmation products that are still in a 'pending' state and special exceptions for post-trip cancellations); therefore, under normal conditions, if you grant a refund to your customer for this kind of product, it will be solely at your expense (i.e., you will still be invoiced for the cost of the product by Viator). Therefore, we recommend that you do not allow refunds for products with this policy. |
Note: This section applies to affiliate partners with API access level "Full Access + Booking" and merchant partners only.
The products in our catalogue fall into two pricing categories: per-person and unit pricing.
A product's pricing category is given in the pricingInfo.type
field of the product content response. Depending on whether the product has per-person or unit pricing, this value will be "PER_PERSON"
or "UNIT"
, respectively.
For more information, see this article: Per-person and unit pricing.
If the pricing is per-person, then the total price of the booking will be directly proportional to the number of participants (passengers) of each age-band type that are being booked for the product; i.e., a direct multiple of the per-person price.
For example:
"pricingInfo": {
"type": "PER_PERSON",
"ageBands": [
{
"ageBand": "CHILD",
"startAge": 3,
"endAge": 12,
"minTravelersPerBooking": 0,
"maxTravelersPerBooking": 6
},
{
"ageBand": "ADULT",
"startAge": 13,
"endAge": 99,
"minTravelersPerBooking": 2,
"maxTravelersPerBooking": 6
}
]
},
If the product has unit pricing, then the total price of the booking will depend on the number of units (groups) and types of unit that ideally accommodate the participant mix. Additionally, the pricingInfo
object in the response will specify the type of unit in the unitType
field; e.g., in this case, "VEHICLE"
:
"pricingInfo": {
"type": "UNIT",
"ageBands": [
{
"ageBand": "TRAVELER",
"startAge": 0,
"endAge": 99,
"minTravelersPerBooking": 1,
"maxTravelersPerBooking": 8
}
],
"unitType": "VEHICLE"
}
The unitType
will be one of:
unitType |
Example product | Meaning |
---|---|---|
"GROUP" |
10847P42 | Per-group pricing – the unit price is calculated according to the number of groups the specified passenger mix will fit into rather than the exact number of participants. minTravelersPerBooking and maxTravelersPerBooking must be considered as these fields relate to the available group sizes. |
"ROOM" |
16621P2 | Per-room pricing relates the room price, which depends on the number of participants making the booking. |
"PACKAGE" |
186385P1 | Per-package pricing refers to products that are sold as part of a package; for example a family package stipulating a passenger mix of two adults and two children. |
"VEHICLE" |
10175P10 | Per-vehicle pricing is calculated according to the number of vehicles required for the specified passenger mix rather than the exact number of participants. minTravelersPerBooking and maxTravelersPerBooking must be considered as these fields relate to the occupancy limitations for each vehicle. The minimum price will depend on the rate for a single vehicle. |
"BIKE" |
153074P3 | Per-bike pricing – identical to "per vehicle", but refers specifically to vehicles that are bikes. |
"BOAT" |
35157P2 | Per-boat pricing – identical to "per vehicle", but refers specifically to vehicles that are boats. |
"AIRCRAFT" |
14876P5 | Per-aircraft pricing – identical to "per vehicle", but refers specifically to vehicles that are aircraft. |
Note: This section applies to affiliate partners with API access level "Full Access + Booking" and merchant partners only.
When setting the price at which you sell products on your site, it’s important to remember that the recommendedRetailPrice
is just the price at which the product is currently advertised on the Viator site and is only a recommendation.
However, the recommendedRetailPrice
may be less than the partnerTotalPrice
(i.e., the amount you will be invoiced for the sale).
If you sell the product for less than the partnerTotalPrice
, you will make a loss on that sale.
Therefore, to ensure that you sell the product at a price which guarantees that you receive at least as much as you will be invoiced for, as well as any extra profit margin that you desire to generate, we recommend you include logic to check that these requirements are satisfied by comparing recommendedRetailPrice
and partnerTotalPrice
and adjusting the price at which you advertise and sell the product accordingly.
For example: If the partnerTotalPrice
for a product is $100, the recommendedRetailPrice
is $101, and you require a minimum margin of 5%, you should adjust the price at which you advertise the product to $105.
While we do recommend that you set your prices according to the value of recommendedRetailPrice
, it is ultimately up to you what price you set for the product, bearing in mind that the amount Viator will invoice you for the sale will be the value of partnerTotalPrice
.
For more information, see this article about how to deal with Low-margin products.
Note: This section applies to affiliate partners with API access level "Full Access + Booking" and merchant partners only.
Suppliers occasionally need to reach out to customers for a variety of reasons, such as:
To allow suppliers to contact customers directly, Viator provides Closed-Loop Communication (CLC).
The recipient(s) of suppliers' CLC messages is set for each booking at the time of booking by supplying the customer’s email address (email
) as well as their phone number (phone
) in the communication
object in the request sent to the /booking/book or /bookings/cart/book endpoints when making a booking.
This will direct CLC messages sent by suppliers directly to that customer's email; no action from your support team will be necessary for suppliers to communicate with customers.
Partners choosing this option should mention to their customers that they are purchasing a product from a third-party supplier, and that they may, therefore, receive communications regarding the purchase directly from that supplier.
email
field, after the customer's email and separated from that address with a comma.{
...
"communication": {
"email": "john.smith@tripadvisor.com",
"phone": "+61 4121121121"
}
{
...
"communication": {
"email": "john.smith@tripadvisor.com,customersupport@bookatrip4me.com",
"phone": "+61 4121121121"
}
To have CLCs from the supplier sent only to your (the merchant's) customer support team, supply the email address of your customer support function in the email
field of the communication
object in the request to the /bookings/book or /bookings/cart/book endpoints when making a booking.
Note: Utilizing this option requires you, the merchant, to manage the final loop of communication with the end customer to ensure that their tour/activity can be fulfilled successfully.
{
...
"communication": {
"email": "customersupport@bookatrip4me.com",
"phone": "+61 4121121121"
}
If an email address is not supplied in the communications object, the default behavior will be to use the partner's customer support email address for correspondence regarding this booking. Please contact your account manager to set or change the customer support email address for your organization.
{
...
"communication": {
"phone": "+61 4121121121"
}
For additional information about all communications sent by Viator, including CLC, see: All you need to know about cancellation policies – Managing Communications.
Note: This section applies to affiliate partners with API access level "Full Access + Booking" and merchant partners only.
The booking-questions functionality of this API allows vital information specified by the supplier about the individual travelers or the group as a whole to be sent to the supplier as part of the request when making a booking using the /bookings/book or /bookings/cart/book endpoints.
The booking questions available for a product are specified in the bookingQuestions
array in the response from any of the product content endpoints for that product. For example, for the product 10212P2 (Taste of Miami Helicopter Tour), the bookingQuestions
array is as follows:
"bookingQuestions": [
"FULL_NAMES_LAST",
"SPECIAL_REQUIREMENTS",
"FULL_NAMES_FIRST",
"WEIGHT",
"AGEBAND"
],
Each key string ("FULL_NAMES_LAST"
, etc.) identifies a booking question, details about which can be found in the response from the /products/booking-questions endpoint.
Relevant booking question details in example response snippet from /products/booking-questions:
"bookingQuestions": [
{
"legacyBookingQuestionId": 23,
"id": "WEIGHT",
"type": "NUMBER_AND_UNIT",
"group": "PER_TRAVELER",
"label": "Traveler weight in pounds or kilograms (required for safety reasons)",
"hint": "E.g. 130lbs, 60kg",
"units": [
"kg",
"lbs"
],
"required": "MANDATORY"
},
{
"legacyBookingQuestionId": 24,
"id": "FULL_NAMES_FIRST",
"type": "STRING",
"group": "PER_TRAVELER",
"label": "First name",
"required": "MANDATORY"
},
{
"legacyBookingQuestionId": 25,
"id": "FULL_NAMES_LAST",
"type": "STRING",
"group": "PER_TRAVELER",
"label": "Last name",
"required": "MANDATORY"
},
{
"legacyBookingQuestionId": 30,
"id": "AGEBAND",
"type": "STRING",
"group": "PER_TRAVELER",
"label": "Age band",
"allowedAnswers": [
"ADULT",
"SENIOR",
"YOUTH",
"CHILD",
"INFANT",
"TRAVELER"
],
"required": "MANDATORY"
},
{
"legacyBookingQuestionId": 27,
"id": "SPECIAL_REQUIREMENTS",
"type": "STRING",
"group": "PER_BOOKING",
"label": "Special requirements",
"required": "OPTIONAL"
},
...
]
The required
field indicates whether an answer to the booking question must be provided in the booking request. It is necessary to provide an answer to all specified booking questions for which required
is MANDATORY
.
Additionally, the group
field indicates whether an answer to the booking question must be answered for each traveler ("PER_TRAVELER"
) or for the booked group as a whole ("PER_BOOKING"
).
In this case:
Booking question id | required | group |
---|---|---|
"WEIGHT" |
"MANDATORY" |
"PER_TRAVELER" |
"FULL_NAMES_FIRST" |
"MANDATORY" |
"PER_TRAVELER" |
"FULL_NAMES_LAST" |
"MANDATORY" |
"PER_TRAVELER" |
"AGEBAND" |
"MANDATORY" |
"PER_TRAVELER" |
"SPECIAL_REQUIREMENTS" |
"OPTIONAL" |
"PER_BOOKING" |
Therefore, to book this product, you must provide an answer to the "WEIGHT"
, "FULL_NAMES_FIRST"
,"FULL_NAMES_LAST"
and "AGEBAND"
questions for each traveler, and, optionally (if specified by the user at the time of booking) "SPECIAL_REQUIREMENTS"
for the booked group.
Answers to the booking questions are sent in the bookingQuestionAnswers[]
array in the request to /bookings/book or /bookings/cart/book. The following example shows a valid and complete set of booking-question answers for this product.
Traveler number | First name | Last name | age band |
---|---|---|---|
1 | John | Smith | ADULT |
2 | Mary | Jones | ADULT |
"bookingQuestionAnswers": [
{
"question": "AGEBAND",
"answer": "ADULT",
"travelerNum": 1
},
{
"question": "FULL_NAMES_LAST",
"answer": "Smith",
"travelerNum": 1
},
{
"question": "FULL_NAMES_FIRST",
"answer": "John",
"travelerNum": 1
},
{
"question": "AGEBAND",
"answer": "ADULT",
"travelerNum": 2
},
{
"question": "FULL_NAMES_LAST",
"answer": "Jones",
"travelerNum": 2
},
{
"question": "FULL_NAMES_FIRST",
"answer": "Mary",
"travelerNum": 2
},
{
"question": "SPECIAL_REQUIREMENTS",
"answer": "NO"
}
]
travelerNum
Please note that travelerNum
indicates which traveler the answer pertains to. All PER_TRAVELER
questions must be answered for all travelers in the booking. travelerNum
must be omitted for PER_BOOKING
booking questions.
Some booking questions require you to specify the unit type when providing an answer to the questions.
Example: 'HEIGHT' booking question
Definition of question from /products/booking-questions:
{
"legacyBookingQuestionId": 2,
"id": "HEIGHT",
"type": "NUMBER_AND_UNIT",
"group": "PER_TRAVELER",
"label": "Traveler height in feet or centimeters (required for safety reasons)",
"hint": "E.g. 5'2\", 158cm",
"units": [
"cm",
"ft"
],
"required": "MANDATORY"
},
A valid answer to this booking question for a traveler who is 193 centimetres tall is as follows:
"bookingQuestionAnswers": [
{
"question": "HEIGHT",
"answer": "193",
"unit": "cm",
"travelerNum": 1
}
]
Example: 'WEIGHT' booking question
Definition of question from /products/booking-questions:
{
"legacyBookingQuestionId": 23,
"id": "WEIGHT",
"type": "NUMBER_AND_UNIT",
"group": "PER_TRAVELER",
"label": "Traveler weight in pounds or kilograms (required for safety reasons)",
"units": [
"kg",
"lbs"
],
"required": "MANDATORY",
"maxLength": 50
},
A valid answer to this booking question for a traveler who weighs 69 kilograms would be as follows:
"bookingQuestionAnswers": [
{
"question": "WEIGHT",
"answer": "69",
"unit": "kg",
"travelerNum": 1
}
]
Some booking questions must be answered in a specific way. These questions include an allowedAnswers
array containing the set of valid answers to the question.
Example booking question with allowed answers:
{
"legacyBookingQuestionId": 31,
"id": "TRANSFER_ARRIVAL_MODE",
"type": "STRING",
"group": "PER_BOOKING",
"label": "Arrival mode",
"allowedAnswers": [
"AIR",
"RAIL",
"SEA",
"OTHER"
],
"required": "MANDATORY"
}
A valid answer to this booking question would be:
{
"question": "TRANSFER_ARRIVAL_MODE",
"answer": "AIR"
},
Note:
"AIR"
: "TRANSFER_AIR_ARRIVAL_AIRLINE"
, "TRANSFER_AIR_ARRIVAL_FLIGHT_NO"
"SEA"
: "TRANSFER_PORT_ARRIVAL_TIME"
("TRANSFER_PORT_CRUISE_SHIP"
applies also to departure mode)"RAIL"
: "TRANSFER_RAIL_ARRIVAL_LINE"
, "TRANSFER_RAIL_ARRIVAL_STATION"
"AIR"
: "TRANSFER_AIR_DEPARTURE_AIRLINE"
, "TRANSFER_AIR_DEPARTURE_FLIGHT_NO"
"SEA"
: "TRANSFER_PORT_DEPARTURE_TIME"
("TRANSFER_PORT_CRUISE_SHIP"
applies also to arrival mode)"RAIL"
: "TRANSFER_RAIL_DEPARTURE_LINE"
, "TRANSFER_RAIL_DEPARTURE_STATION"
We recommend partners to translate these answers to natural language on their platforms, see recommendation below:
"AIR"
- airport"RAIL"
- train station"SEA"
- port"OTHER"
- hotel / specific addressThere are some booking questions that may or may not have to be answered, depending on the presence of – or answer to – another booking question. These questions are 'conditional', as indicated by the required
field containing "CONDITIONAL"
; e.g.:
{
"legacyBookingQuestionId": 7,
"id": "TRANSFER_AIR_ARRIVAL_AIRLINE",
"type": "STRING",
"group": "PER_BOOKING",
"label": "Name of arrival airline",
"hint": "E.g. United Airlines",
"required": "CONDITIONAL",
"maxLength": 255
},
So, when is an answer to a "CONDITIONAL"
booking question required?
At present, the logic cannot be inferred from the response from the /products/booking-questions endpoint, but it can be explained here. You will need to hard-code this logic into your implementation in order to correctly present the required booking questions to the user.
The logic runs as follows:
For this booking question | if the user's answer is | these questions must also be answered |
---|---|---|
"TRANSFER_ARRIVAL_MODE" |
"AIR" |
"TRANSFER_AIR_ARRIVAL_AIRLINE" "TRANSFER_AIR_ARRIVAL_FLIGHT_NO" "TRANSFER_ARRIVAL_TIME" "TRANSFER_ARRIVAL_DROP_OFF" (see condition 1)"PICKUP_POINT" (see condition 1) |
"TRANSFER_ARRIVAL_MODE" |
"RAIL" |
"TRANSFER_RAIL_ARRIVAL_LINE" "TRANSFER_RAIL_ARRIVAL_STATION" "TRANSFER_ARRIVAL_TIME" "TRANSFER_ARRIVAL_DROP_OFF" |
"TRANSFER_ARRIVAL_MODE" |
"SEA" |
"TRANSFER_PORT_ARRIVAL_TIME" "TRANSFER_PORT_CRUISE_SHIP" "TRANSFER_ARRIVAL_DROP_OFF" (see condition 2) "PICKUP_POINT" (see condition 2) |
"TRANSFER_ARRIVAL_MODE" |
"OTHER" |
"PICKUP_POINT" (see condition 3) |
"TRANSFER_DEPARTURE_MODE" |
"AIR" |
"TRANSFER_AIR_DEPARTURE_AIRLINE" "TRANSFER_AIR_DEPARTURE_FLIGHT_NO" "TRANSFER_DEPARTURE_DATE" "TRANSFER_DEPARTURE_TIME" "TRANSFER_DEPARTURE_PICKUP" |
"TRANSFER_DEPARTURE_MODE" |
"RAIL" |
"TRANSFER_RAIL_DEPARTURE_LINE" "TRANSFER_RAIL_DEPARTURE_STATION" "TRANSFER_DEPARTURE_DATE" "TRANSFER_DEPARTURE_TIME" "TRANSFER_DEPARTURE_PICKUP" |
"TRANSFER_DEPARTURE_MODE" |
"SEA" |
"TRANSFER_PORT_CRUISE_SHIP" "TRANSFER_DEPARTURE_DATE" "TRANSFER_PORT_DEPARTURE_TIME" "TRANSFER_DEPARTURE_PICKUP" |
"TRANSFER_DEPARTURE_MODE" |
"OTHER" |
n/a (see condition 4) |
Conditions:
logistics.travelerPickup.locations[]
includes an item with pickupType
: "AIRPORT"
; or, if logistics.travelerPickup.allowCustomTravelerPickup
is true. "PICKUP_POINT"
answer must be a location for which pickupType
is "AIRPORT"
if answer to "TRANSFER_ARRIVAL_MODE"
is "AIR"
.logistics.travelerPickup.locations[]
includes an item with pickupType
: "PORT"
; or, if logistics.travelerPickup.allowCustomTravelerPickup
is true. "PICKUP_POINT"
answer must be a location for which pickupType
is "PORT"
if answer to "TRANSFER_ARRIVAL_MODE"
is "SEA"
.logistics.travelerPickup.locations[]
includes an item with pickupType
: "HOTEL"
or pickupType
: "LOCATION"
or pickupType
: "OTHER"
; or, if logistics.travelerPickup.allowCustomTravelerPickup
is true."OTHER"
if "OTHER"
is also an available option for the "TRANSFER_ARRIVAL_MODE"
booking question.Extra notes:
"CONDITIONAL"
booking questions that depend on the answer given to either "TRANSFER_ARRIVAL_MODE"
or "TRANSFER_DEPARTURE_MODE"
(i.e., those questions in the right-hand column in the table above) should be considered "MANDATORY"
if they are stipulated in the "bookingQuestions"
array of the product content response, and the respective transfer mode question is not stipulated. That is to say, for example, if "TRANSFER_AIR_ARRIVAL_AIRLINE"
is present, but "TRANSFER_ARRIVAL_MODE"
is absent from "bookingQuestions"
, then "TRANSFER_AIR_ARRIVAL_AIRLINE"
should be considered "MANDATORY"
."TRANSFER_PORT_CRUISE_SHIP"
question is required to be answered when the customer's response to either "TRANSFER_ARRIVAL_MODE"
or "TRANSFER_DEPARTURE_MODE"
is "SEA"
; however, this question must only be answered once per booking. I.e., the answer for "TRANSFER_PORT_CRUISE_SHIP"
pertains to both questions. There is no provision for the customer to specify different cruise ships for arrival and departure."TRANSFER_ARRIVAL_MODE"
, "TRANSFER_DEPARTURE_MODE"
or their corollary conditional booking questions does not necessarily imply that pickup is offered for the product or product option being booked. It may be that these relate to another aspect of the service being offered; for example, an airport greeting product. When returned for a product, these questions must be answered."TRANSFER_ARRIVAL_DROP_OFF"
and "TRANSFER_DEPARTURE_PICKUP"
questions are related to locations (arrival drop off and departure pickup) however there are no specific location references or conditions that apply to these questions (see the table). Therefore, customers should be provided with a freetext input field for these questions and the answers must include the FREETEXT designation if the customer answered freely, via text.logistics.travelerPickup.pickupOptionType
being either "PICKUP_EVERYONE"
or "PICKUP_AND_MEET_AT_START_POINT"
and not "MEET_EVERYONE_AT_START_POINT"
; or, the presence of the phrase "pickup included"
in the productOptions[].description
field for the product option.logistics.travelerPickup.pickupOptionType
in the product content response could return "PICKUP_AND_MEET_AT_START_POINT"
for products that don't have product options. In such cases travelers should be allowed to either select a pickup location, or decide to meet at the meeting point.The booking question that requests the location for pickup is as follows:
{
"legacyBookingQuestionId": 6,
"id": "PICKUP_POINT",
"type": "LOCATION_REF_OR_FREE_TEXT",
"group": "PER_BOOKING",
"label": "Hotel pickup",
"hint": "E.g. 1234 Cedar Way, Brooklyn NY 00123",
"units": [
"LOCATION_REFERENCE",
"FREETEXT"
],
"required": "CONDITIONAL",
"maxLength": 1000
}
As you can see, this question can be answered using a location reference or 'freetext' (i.e., a written address in this context). Whether freetext is allowed for this answer depends on the value of logistics.travelerPickup.allowCustomTravelerPickup
in the response from any of the product content endpoints. If true
, freetext is allowed. Otherwise, a location reference – in particular, one of the location references included in the logistics.travelerPickup.locations[]
array – must be supplied.
Example "FREETEXT"
answer:
"bookingQuestionAnswers": [
{
"question": "PICKUP_POINT",
"answer": "1234 Cedar Way, Brooklyn NY 00123",
"unit": "FREETEXT"
}
]
Example "LOCATION_REFERENCE"
answer:
"bookingQuestionAnswers": [
{
"question": "PICKUP_POINT",
"answer": "LOC-6cb31b00-1fb4-4218-9b50-63f66531d735",
"unit": "LOCATION_REFERENCE"
}
]
The logistics.travelerPickup.locations[]
array in the response from the product content endpoints contains the location references for all available pickup locations for a product.
As well as standard location reference codes; e.g., "LOC-6cb31b00-1fb4-4218-9b50-63f66531d735", there are two special codes that specify instructions rather than locations.
These are:
"MEET_AT_DEPARTURE_POINT"
"CONTACT_SUPPLIER_LATER"
When selecting available pickup points, our suppliers also have the option of specifying one or both of these pseudo-locations. These instruct the customer to either meet at one of the locations specified in logistics.start[]
, or to contact the supplier later to arrange a pickup point, respectively.
When building a list of available pickup locations for the customer to select at the time of booking, the descriptive text for these locations can be used. This is available from the /locations/bulk endpoint in the name
field, as follows:
{
"locations": [
{
"provider": "TRIPADVISOR",
"reference": "CONTACT_SUPPLIER_LATER",
"name": "I will contact the supplier later"
},
{
"provider": "TRIPADVISOR",
"reference": "MEET_AT_DEPARTURE_POINT",
"name": "I will meet at the departure point"
}
]
}
Or, you can provide a selection button in your UI, as we have done on the viator.com site:
This button appears when the "CONTACT_SUPPLIER_LATER"
location reference is included in the logistics.travelerPickup.locations[]
array.
When the value of logistics.travelerPickup.pickupOptionType
in the product content response is "PICKUP_AND_MEET_AT_START_POINT"
, it means that the product includes both 'hotel pickup' and 'meet at the departure point' variants in its product options; e.g., one product option may be for hotel pickup while another is for meeting at the start/departure point.
To determine which product options offer what, it is necessary to inspect each product option's details in the productOptions[]
array in the product content response.
If pickup is included for a product option, the phrase Pickup included
will be present in the productOptions[].description
field, as well as any other comments provided by the supplier. For example, the following two product options from product 8374P24 both offer pickup:
"productOptions": [
{
"productOptionCode": "TG5",
"description": "Private tour: Private tour only your group<br/>Pickup included",
"title": "Private tour",
"languageGuides": [
{
"type": "GUIDE",
"language": "en",
"legacyGuide": "en/SERVICE_GUIDE"
}
]
},
{
"productOptionCode": "TG4",
"description": "Pickup included",
"title": "Hotel pick up included",
"languageGuides": [
{
"type": "GUIDE",
"language": "en",
"legacyGuide": "en/SERVICE_GUIDE"
}
]
},
...
]
When booking a product option with pickup included, such as this, you must collect a pickup point from the user that corresponds to one of the entries in the logistics.travelerPickup.locations[]
array in the product content response.
All booking questions related to arrival/departure must be displayed as normal to allow customers to select the desired arrival/departure mode and provide all relevant information to the supplier before travel.
All answers provided by the customer must be captured and submitted in the booking request following the logic for conditional booking questions from the table in the API documentation.
If the productOptions[].description
field does not contain the phrase Pickup included
, this indicates that this product option does not include pickup and should be considered to follow a "MEET_AT_DEPARTURE_POINT"
arrangement.
For example, the following product option (also from product 8374P24) requires meeting at the departure point and does not include pickup:
"productOptions": [
{
"productOptionCode": "TG3",
"description": "Meeting point: Meet the group at River City Bangkok , drop off will be MBK Mall. Time slot 9.00 am.<br/>Starting point:<br/>River City Bangkok, 23 Soi Charoen Krung 24, Khwaeng Talat Noi, Khet Samphanthawong, Krung Thep Maha Nakhon 10100, Thailand",
"title": "River City Bangkok",
"languageGuides": [
{
"type": "GUIDE",
"language": "en",
"legacyGuide": "en/SERVICE_GUIDE"
}
]
},
...
In case of product options without pickup, you shouldn't ask arrival or departure-related questions at checkout (but you will still need to answer the questions returned in the API using values hardcoded into your implementation). If you wish, you can display at checkout the meeting point location(s) for informational purposes (not collecting answers) but not the pickup locations and no questions related to arrival/departure should be displayed in that case.
The option to contact the supplier later ("CONTACT_SUPPLIER_LATER"
) doesn't apply to this scenario either and should not be present as it applies only to product options with pickup.
In the answer to the "PICKUP_POINT"
question, you will need to send the location reference "MEET_AT_DEPARTURE_POINT"
(returned under travelerPickup.locations
). In case the product returns the "TRANSFER_ARRIVAL_MODE"
or "TRANSFER_DEPARTURE_MODE"
questions, these must be answered with "OTHER"
. Product examples for testing: 9025P51, 62450P1.
When other product options support transfer pickup:
While you might be booking a product option that does not support pickup, if the overall product itself supports, for example, pickup from an airport, in one of its other product options, it will contain the "TRANSFER_ARRIVAL_MODE"
booking question in the bookingQuestions[]
array in the product content response.
This means that this booking question, because it is "MANDATORY"
, must be answered in order to make a valid booking, even though such information would be irrelevant in this context.
Transfer arrival mode question details from /products/booking-questions:
{
"legacyBookingQuestionId": 31,
"id": "TRANSFER_ARRIVAL_MODE",
"type": "STRING",
"group": "PER_BOOKING",
"label": "Arrival mode",
"allowedAnswers": [
"AIR",
"RAIL",
"SEA",
"OTHER"
],
"required": "MANDATORY"
}
As you can see, one of the allowed answers to this question is "OTHER"
.
Therefore, in the case that you must answer this booking question because it is stipulated at the product level, but it does not pertain to the product option being booked, please do not prompt the user to provide an answer to this question, rather, have your internal logic send the value "OTHER"
as the answer; i.e.:
"bookingQuestionAnswers": [
{
"question": "TRANSFER_ARRIVAL_MODE",
"answer": "OTHER"
},
...
]
The same applies for the "TRANSFER_DEPARTURE_MODE"
booking question, as it is also mandatory and can be validly answered as "OTHER"
.
The only "CONDITIONAL"
booking question that must be answered for a product option without pickup (in addition to "MANDATORY"
questions) is "PICKUP_POINT"
(answer: "MEET_AT_DEPARTURE_POINT"
)
Examples of booking requests
Product: 9025P51
Product option details returned in the product content response:
"productOptions": [
{
"productOptionCode": "TG1",
"description": "share Group",
"title": "Share Group Tour",
"languageGuides": [
{
"type": "GUIDE",
"language": "en",
"legacyGuide": "en/SERVICE_GUIDE"
},
{
"type": "GUIDE",
"language": "es",
"legacyGuide": "es/SERVICE_GUIDE"
}
]
},
{
"productOptionCode": "TG2",
"description": "From 2 to 25 people traveling together on a private tour <br/>Pickup included",
"title": "Private Tour",
"languageGuides": [
{
"type": "GUIDE",
"language": "en",
"legacyGuide": "en/SERVICE_GUIDE"
},
{
"type": "GUIDE",
"language": "es",
"legacyGuide": "es/SERVICE_GUIDE"
}
]
}
],
Example booking request for product option with pickup (TG2):
{
"productCode": "9025P51",
"productOptionCode": "TG2",
"startTime": "08:00",
"currency": "USD",
"travelDate": "2024-11-27",
"paxMix": [
{
"ageBand": "ADULT",
"numberOfTravelers": 2
}
],
"partnerBookingRef": "test123456",
"languageGuide": {
"type": "GUIDE",
"language": "en"
},
"bookerInfo": {
"firstName": "XXXX",
"lastName": "XXXX"
},
"bookingQuestionAnswers": [
{
"question": "FULL_NAMES_FIRST",
"answer": "XXXX",
"travelerNum": 1
},
{
"question": "FULL_NAMES_LAST",
"answer": "XXXX",
"travelerNum": 1
},
{
"question": "AGEBAND",
"answer": "ADULT",
"travelerNum": 1
},
{
"question": "AGEBAND",
"answer": "ADULT",
"travelerNum": 2
},
{
"question": "FULL_NAMES_FIRST",
"answer": "XXXX",
"travelerNum": 2
},
{
"question": "FULL_NAMES_LAST",
"answer": "XXXX",
"travelerNum": 2
},
{
"question": "TRANSFER_ARRIVAL_MODE",
"answer": "OTHER"
},
{
"question": "TRANSFER_DEPARTURE_MODE",
"answer": "OTHER"
},
{
"question": "PICKUP_POINT",
"answer": "LOC-6eKJ+or5y8o99Qw0C8xWyGStvfcGJMWF/jrN0iaZD8s=",
"unit": "LOCATION_REFERENCE"
}
],
"communication": {
"phone": "+44 987667889",
"email": "noreply@test.com"
},
"additionalBookingDetails": {
"voucherDetails": {
"companyName": "Test",
"email": "customerservice@test.com",
"phone": "+44 876778998",
"voucherText": "Thank you for booking with us!"
}
}
}
Example booking request for product option without pickup (TG1):
{
"productCode": "9025P51",
"productOptionCode": "TG1",
"startTime": "08:00",
"currency": "USD",
"travelDate": "2024-11-27",
"paxMix": [
{
"ageBand": "ADULT",
"numberOfTravelers": 2
}
],
"partnerBookingRef": "test12345",
"languageGuide": {
"type": "GUIDE",
"language": "en"
},
"bookerInfo": {
"firstName": "XXXX",
"lastName": "XXXX"
},
"bookingQuestionAnswers": [
{
"question": "FULL_NAMES_FIRST",
"answer": "XXXX",
"travelerNum": 1
},
{
"question": "FULL_NAMES_LAST",
"answer": "XXXX",
"travelerNum": 1
},
{
"question": "AGEBAND",
"answer": "ADULT",
"travelerNum": 1
},
{
"question": "AGEBAND",
"answer": "ADULT",
"travelerNum": 2
},
{
"question": "FULL_NAMES_FIRST",
"answer": "XXXX",
"travelerNum": 2
},
{
"question": "FULL_NAMES_LAST",
"answer": "XXXX",
"travelerNum": 2
},
{
"question": "TRANSFER_ARRIVAL_MODE",
"answer": "OTHER"
},
{
"question": "TRANSFER_DEPARTURE_MODE",
"answer": "OTHER"
},
{
"question": "PICKUP_POINT",
"answer": "MEET_AT_DEPARTURE_POINT",
"unit": "LOCATION_REFERENCE"
}
],
"communication": {
"phone": "+44 987667889",
"email": "noreply@test.com"
},
"additionalBookingDetails": {
"voucherDetails": {
"companyName": "Test",
"email": "customerservice@test.com",
"phone": "+44 876778998",
"voucherText": "Thank you for booking with us!"
}
}
}
To learn more about booking questions and get a step-by-step guide on how to implement conditional booking questions, see this guide: Implementing Booking Questions.
If "AGEBAND"
is specified as a booking question in the bookingQuestions
array in the product content response, you must supply the age-band for each traveler in bookingQuestionAnswers
when making the booking using /bookings/book or /bookings/cart/book.
Furthermore, the answer(s) to the "AGEBAND"
booking question that you submit in the request to /bookings/book or /bookings/cart/book must match the age-bands given in the paxMix
element in the request to /bookings/hold or /bookings/cart/hold. Otherwise, the booking server will reject the booking on account of the booking and booking-hold not matching.
The valid age-bands for the product are given in the pricingInfo
array in the product content response; e.g.:
"pricingInfo": {
"type": "PER_PERSON",
"ageBands": [
{
"ageBand": "INFANT",
"startAge": 0,
"endAge": 4,
"minTravelersPerBooking": 0,
"maxTravelersPerBooking": 9
},
{
"ageBand": "CHILD",
"startAge": 5,
"endAge": 15,
"minTravelersPerBooking": 0,
"maxTravelersPerBooking": 9
},
{
"ageBand": "ADULT",
"startAge": 16,
"endAge": 99,
"minTravelersPerBooking": 0,
"maxTravelersPerBooking": 9
}
]
},
Note that if bookingRequirements.requiresAdultForBooking
is true
in the product content response, at least one traveler must have an "ADULT"
or "SENIOR"
age-band.
To learn more about how age-bands are used during the booking process, see the following guide: Implementing age bands & pax mix.
In the case that the product uses unit pricing; i.e., pricing based on the number of groups of travelers, then the product will have a single available age-band: "TRAVELER"
, as given in the pricingInfo
array in the product content response; e.g.:
"pricingInfo": {
"type": "UNIT",
"ageBands": [
{
"ageBand": "TRAVELER",
"startAge": 0,
"endAge": 99,
"minTravelersPerBooking": 1,
"maxTravelersPerBooking": 10
}
],
"unitType": "GROUP"
}
For such products, even if "AGEBAND"
is specified as a booking question, the only applicable age-band is "TRAVELER"
. However, you must still supply this value for the age-band booking question for each traveler when making the booking using /bookings/book or /bookings/cart/book. Even if bookingRequirements.requiresAdultForBooking
is true
for such products, you must still supply the "TRAVELER"
value.
Note: This section applies to affiliate partners with API access level "Full Access + Booking" and merchant partners only.
This section describes how the booking cutoff time information given by the product supplier, which may affect a product's availability (and therefore its ability to be booked) is communicated via this API. While you are welcome to develop logic to support the display and utilisation of this information, it is not necessary to do so. Indeed, as most implementations are unlikely to benefit, we recommend simply using the real-time /availability/check endpoint as the primary means to determine and communicate a product's availability in your product booking workflow.
Many products in our inventory are subject to a booking cutoff time. Tickets for such products may only be purchased up until a certain time. This information is given in the bookingConfirmationSettings
object in the product content response.
Example bookingConfirmationSettings
object:
"bookingConfirmationSettings": {
"bookingCutoffType": "START_TIME",
"bookingCutoffInMinutes": 0,
"confirmationType": "INSTANT"
},
There are four booking cutoff types, indicated by the value of the bookingCutoffType
element; they are:
"START_TIME"
– booking cutoff is relative to the product's start time"OPENING_TIME"
– booking cutoff is relative to the product's opening time"CLOSING_TIME"
– booking cutoff is relative to the product's closing time"FIXED_TIME"
– booking cutoff is relative to the time given in the bookingCutoffFixedTime
elementIn addition, the booking cutoff time may be offset by the number of minutes given in bookingCutoffInMinutes
; for example, product 57377P9's booking cutoff is 120 minutes prior to its start time:
"bookingConfirmationSettings": {
"bookingCutoffType": "START_TIME",
"bookingCutoffInMinutes": 120,
"confirmationType": "INSTANT"
}
The availability of products that have a bookingCutoffType
of "START_TIME"
can be determined by inspecting the pricingRecords[].timedEntries[].startTime
field in the response from /availability/schedules/{product-code}. This type of product can be booked up until bookingCutoffInMinutes
prior to its starting time in the time-zone in which the product operates, which is given in the timeZone
field in the product content response.
The booking cutoff time for products with a "FIXED_TIME"
type is that given in the bookingCutoffFixedTime
element, offset by the number of minutes given in bookingCutoffInMinutes
. In the fixed time scenario, bookingCutoffInMinutes
can only be 0, 1440 (24 hours) or 2880 (48 hours). This means that the booking cutoff time is at a certain time on the day on which the product operates; or, at that same time but one or two days before the tour date, respectively.
In the following example, the booking cutoff is 10:00am on the day before the tour or activity operates:
"bookingConfirmationSettings": {
"bookingCutoffType": "FIXED_TIME",
"bookingCutoffInMinutes": 1440,
"confirmationType": "INSTANT",
"bookingCutoffFixedTime": "10:00:00"
}
You may not be able to book a product (using /bookings/book or /bookings/cart/book) or place a booking hold on a product using /bookings/hold or /bookings/cart/hold after it is past the booking cutoff time. However, this is not always the case. Always check real-time availability using the /availability/check endpoint.
Nonetheless, in displaying the availability of a product on your site, you may wish to mark products as 'unavailable' for a particular day or starting time if it is presently past the booking cutoff time if you feel that doing so will improve your site's UX.
However, because the availability schedule data in general can rapidly fall out of date, we again encourage you to always utilise the real-time /availability/check endpoint as the primary means to determine and communicate a product's availability in your product booking workflow.
Note: This section applies to affiliate partners with API access level "Full Access + Booking" and merchant partners only.
A product's booking confirmation type indicates whether the booking will be confirmed or rejected immediately and automatically; or, whether it will remain in a 'pending' state until actioned manually by the supplier.
The product's booking confirmation type can be identified by the value of bookingConfirmationSettings.confirmationType
in the product content response. There are three confirmation types: instant, manual and instant-then-manual, represented by the confirmationType
values "INSTANT"
, "MANUAL"
and "INSTANT_THEN_MANUAL"
, respectively.
Instant confirmation products are confirmed automatically at the time of booking, and the customer should be charged immediately.
E.g. (product-code: 5010SYDNEY):
"bookingConfirmationSettings": {
"bookingCutoffType": "CLOSING_TIME",
"bookingCutoffInMinutes": 0,
"confirmationType": "INSTANT"
}
Manual confirmation products are those that only operate at the discretion of the supplier, who must confirm or reject each booking request manually. Once the booking is requested, it will remain in a 'pending' state until actioned by the supplier; or, if no action is taken by the supplier, the time-out period (72 hours) is exceeded. The customer should only be charged once confirmation is received.
E.g. (product-code: 161500P1):
"bookingConfirmationSettings": {
"bookingCutoffType": "START_TIME",
"bookingCutoffInMinutes": 1440,
"confirmationType": "MANUAL"
}
Instant-then-manual confirmation products behave like instant confirmation products up until a certain time prior to the product's starting time. From that point on, the product will require manual confirmation by the supplier.
E.g. (product-code: 100035P1):
"bookingConfirmationSettings": {
"bookingCutoffType": "START_TIME",
"bookingCutoffInMinutes": 720,
"confirmationType": "INSTANT_THEN_MANUAL",
"manualConfirmationPeriod": 2880
}
The manualConfirmationPeriod
indicates when the product changes from instant to manual confirmation. In the example above, this period is 2880 minutes (48 hours or 2 days). Therefore, this product will be confirmed instantly if the booking is made more than 2 days in advance of the start time (in the time zone in which the product operates); if the booking is made less than 2 days in advance, it will require manual confirmation from the supplier.
In order to support manual confirmation products on your site, you will need to introduce support for an asynchronous flow that monitors the booking's status, determines when its status changes and notifies the customer when their booking has been confirmed or rejected by the supplier.
You will need to:
Managing customer expectations is a key factor in supporting manual confirmation products on your booking platform.
Make clear mention on the product detail page that confirmation will not be received immediately, but rather within 72 hours of making the booking.
You are free to include this note in the Additional Info section, or elsewhere on your product display page; for example:
As you will only charge the customer's credit card once the booking is confirmed by the product's supplier, it's best to display a message to this effect at a prominent point of the check-out flow for all manual confirmation products.
In this way, customers can be reassured that they are not being charged for a booking that may never be confirmed, thereby helping to reduce the number of calls to your customer service team.
If your customer has both instant and manual booking confirmation products in their shopping cart, only the amount for the confirmed booking(s) should be charged immediately; the portion corresponding to the pending bookings should be held as a pre-authorization against the customer’s credit card, and the transaction completed only once confirmation is received.
It is important that you clearly differentiate between bookings that have been confirmed and those that are pending confirmation and communicate the status of each item. Also, be sure to make clear that the pre-authorization will only finalize once the manual confirmation bookings are confirmed.
Changes will need to be made to your confirmation page because it will not be possible for your customer to download their voucher immediately after completing a manual confirmation booking. Rather, the voucher will be made available after the booking is confirmed.
Vouchers for instant confirmation products, however, must be made available immediately following the completion of the booking process.
Confirmation message (e.g., email) templates for manual confirmation bookings should indicate that the item is pending confirmation from the supplier; and, that confirmation for this activity will take up to 72 hours, depending on availability.
You will also need to create templates for the following scenarios:
Note: When a booking is declined, it is useful to mention that the customer's card was not charged.
As mentioned above, when a booking request for a manual confirmation product is made, it will have a status of 'pending' until it is confirmed by the supplier. The supplier has the option of confirming or rejecting the booking.
If the supplier does not confirm the booking within 72 hours – or, if they have not confirmed the booking by the time it reaches bookingCutoffInMinutes
from the product's start time or whichever is specified in the bookingCutoffType
– our systems will automatically reject the booking, and this will be reflected in the response from the /bookings/status endpoint.
Upgrading your booking platform to support manual confirmation products will require you to build and test this functionality in the sandbox environment.
However, when using the sandbox environment, no actual booking request is sent to the supplier's system; rather, manual-confirmation products behave like instant-confirmation products, and you will receive a bookingStatus
of "CONFIRMED"
immediately on making the booking unless you set the exp-demo
header parameter to false
in the request to /bookings/book. In this case, you will receive a bookingStatus
of "PENDING"
in the response, which is the expected behavior when making a booking request for a manual-confirmation product. Note: This is not supported using the /bookings/cart/book endpoint.
In order to test the complete booking flow, you will need to contact our API tech support team at apitechsupport@viator.com and request that we change the status of the booking (specified by the bookingRef
) to "CONFIRMED"
or "REJECTED"
as you require.
Please note that because this is a manual process, we'd genuinely appreciate your effort in keeping the number of these requests to a minimum.
Note: This section applies to affiliate partners with API access level "Full Access + Booking" and merchant partners only.
Broadly speaking, to book a product via this API, you must do the following:
recommendedRetailPrice
and partnerNetPrice
.See Getting availability and pricing for products and Creating a seamless booking experience for more information.
Note: This section applies to affiliate partners with API access level "Full Access + Booking" and merchant partners only.
All booking cancellations (except for those requested after the date of travel) must now be performed via the API. Viator no longer offers ordinary cancellation services via our customer support function. To cancel a booking after the tour or activity has occurred, please contact Viator Partner Support
See our in-depth guide about cancellation policies and how to handle cancellations: All you need to know about cancellation policies.
When canceling a booking, you are required to submit a valid 'reason for the cancellation' to assist with Viator's internal processes. This is accomplished via the inclusion of a valid reason code in the body of the request. The reason codes can be retrieved from the /bookings/cancel-reasons endpoint.
As the acceptable reasons for cancellation may be altered at any point, we recommend retrieving an up-to-date list from this endpoint at least weekly.
The output from the /bookings/cancel-reasons endpoint at the time of writing is as follows:
{
"reasons": [
{
"cancellationReasonText": "Supplier No Show",
"cancellationReasonCode": "Customer_Service.Supplier_no_show"
},
{
"cancellationReasonText": "Chose a different/cheaper tour",
"cancellationReasonCode": "Customer_Service.Chose_a_different_cheaper_tour"
},
{
"cancellationReasonText": "Unexpected medical circumstances",
"cancellationReasonCode": "Customer_Service.Unexpected_medical_circumstances"
},
{
"cancellationReasonText": "Weather",
"cancellationReasonCode": "Customer_Service.Weather"
},
{
"cancellationReasonText": "Booked wrong tour date",
"cancellationReasonCode": "Customer_Service.Booked_wrong_tour_date"
},
{
"cancellationReasonText": "Duplicate Booking",
"cancellationReasonCode": "Customer_Service.Duplicate_Booking"
},
{
"cancellationReasonText": "Significant global event",
"cancellationReasonCode": "Customer_Service.Significant_global_event"
},
{
"cancellationReasonText": "I canceled my entire trip",
"cancellationReasonCode": "Customer_Service.I_canceled_my_entire_trip"
}
]
}
Before canceling the booking, call the /bookings/{booking-reference}/cancel-quote endpoint to get information about whether the booking can be canceled using this endpoint and what the refund will be, for example:
GET https://api.viator.com/partner/bookings/BR-580254558/cancel-quote
data.itemSummaries[].itemId
(in the response from v1's /booking/book endpoint) but prepended with BR-
. For example, if the itemId
is 580254558
, this field should be BR-580254558
.You will receive a cancellation quote object, e.g.:
{
"bookingId": "BR-580254558",
"status": "CANCELLABLE",
"refundDetails": {
"itemPrice": 109.77,
"refundAmount": 109.77,
"currencyCode": "USD",
"refundPercentage": 100.00
}
}
Note: Bookings that have not been confirmed by the supplier and have a status of "PENDING"
will report an itemPrice
, refundAmount
and refundPercentage
of 0
, as no fees are charged until the booking's status is "CONFIRMED"
.
The data elements in this object have meanings as follows:
Element | Meaning | Example |
---|---|---|
bookingId |
the booking reference number prepended with BR- |
BR-580254556 |
status |
One of the following:
|
CANCELLABLE |
refundDetails |
object containing information about the refund | |
itemPrice |
the merchant net price + transaction fee for this product at the time of booking in the currency specified by currencyCode |
109.77 |
refundAmount |
the amount that will be deducted from your invoice if the booking is cancelled now | 109.77 |
currencyCode |
the currency code for the currency in which pricing information is displayed | USD |
refundPercentage |
the refund amount expressed as a percentage of the itemPrice |
100.00 |
Will there ever be a discrepancy between the amount charged for a tour and the amount refunded due to currency exchange-rate fluctuations?
If the status
field has a value of CANCELLABLE
and you are happy with the refundAmount
, call the /bookings/{booking-reference}/cancel endpoint to cancel the booking, e.g.:
POST https://api.viator.com/partner/bookings/BR-580254558/cancel
A reason code corresponding to the reason for cancellation must be included in the request body; e.g.:
{
"reasonCode":"Customer_Service.Chose_a_different_cheaper_tour"
}
You should receive a response indicating that the cancellation was successful, e.g.:
{
"bookingId": "BR-580254558",
"status": "ACCEPTED"
}
A status
of ACCEPTED
indicates that the booking was successfully canceled.
Note: This section applies to affiliate partners with API access level "Full Access + Booking" and merchant partners only.
Once a booking has been made, you can check on its status using the /bookings/status endpoint.
You can use either the bookingRef
or partnerBookingRef
in the request to this service.
Example request: Get the status of the booking with the booking reference "BR-791143912"
{
"bookingRef": "BR-791143912"
}
Example response: The status of this booking is "CONFIRMED"
{
"status": "CONFIRMED",
"bookingRef": "BR-791143912",
"partnerBookingRef": "BR-791143912",
"currency": "USD",
"lineItems": [
{
"ageBand": "ADULT",
"numberOfTravelers": 2,
"subtotalPrice": {
"price": {
"recommendedRetailPrice": 21.4,
"partnerNetPrice": 20.52
}
}
}
],
"totalPrice": {
"price": {
"recommendedRetailPrice": 21.4,
"partnerNetPrice": 20.52,
"bookingFee": 1.23,
"partnerTotalPrice": 21.75
}
},
"cancellationPolicy": {
"type": "STANDARD",
"description": "For a full refund, cancel at least 24 hours before the scheduled departure time.",
"cancelIfBadWeather": false,
"cancelIfInsufficientTravelers": false,
"refundEligibility": [
{
"dayRangeMin": 2,
"percentageRefundable": 100,
"startTimestamp": "2020-11-10T02:04:15Z",
"endTimestamp": "2021-03-30T23:00:00Z"
},
{
"dayRangeMin": 0,
"dayRangeMax": 1,
"percentageRefundable": 0,
"startTimestamp": "2021-03-31T23:00:00Z",
"endTimestamp": "2021-04-01T23:00:00Z"
}
]
},
"voucherInfo": {
"url": "https://www.viator.com/ticket?code=1187186744:8ac3e6308555ab632fe89e8a6b83c41620e840a3bc485f6e0d836192eae1ffc4",
"format": "HTML",
"type": "STANDARD"
}
}
Example request: Get the status of the booking with the partner booking reference "test-partner-ref-aejsmont-num-1604985575"
{
"partnerBookingRef": "test-partner-ref-aejsmont-num-1604985575"
}
Example response: The status of this booking is "CANCELED"
{
"bookingRef": "BR-582323272",
"status": "CANCELED",
"partnerBookingRef": "test-partner-ref-aejsmont-num-1604985575"
}
To facilitate your testing of the API's functionality in the sandbox environment, please use one of the following Postman collections, depending on which type of partner you are:
your-api-key
environment variableAs all services in this API require that your API-key be passed as a header parameter in every request made to this API, this value has been set to reference a Postman environment variable called your-api-key
.
Once you import the collection into Postman, set this variable to your organization's API-key and save the collection.
The recommended way to initialize and keep your local copy of our products database up-to-date is by using the /products/modified-since endpoint in the following way:
Make a request to /products/modified-since, but only include the count
parameter. Do not supply values for modified-since
or cursor
. This instructs the system to return any products modified since the beginning of time; i.e., all of them.
Note: This is the only occasion on which you will need to call /products/modified-since without the modified-since
or cursor
parameter.
count
specifies how many product records will be returned per page. For practical purposes, setting count
to its maximum value (500) is advised. However, for the purposes of brevity, I am using a count
of 5
in this example; i.e.:
GET https://api.sandbox.viator.com/partner/products/modified-since?count=5
You will receive a response similar to the following:
{
"products": [
{
"status": "ACTIVE",
"productCode": "92457P4",
"language": "en-US",
"createdAt": "2020-06-16T12:49:29.519174Z",
"lastUpdatedAt": "2020-11-08T16:26:16Z",
"title": "Ecuador Parapente Quito",
"ticketInfo": {
"ticketTypes": [
"MOBILE_ONLY"
],
"ticketTypeDescription": "Mobile or paper ticket accepted",
"ticketsPerBooking": "ONE_PER_BOOKING",
"ticketsPerBookingDescription": "One per booking"
},
"pricingInfo": {
"type": "PER_PERSON",
"ageBands": [
{
"ageBand": "INFANT",
"startAge": 6,
"endAge": 17,
"minTravelersPerBooking": 0,
"maxTravelersPerBooking": 4
},
{
"ageBand": "ADULT",
"startAge": 18,
"endAge": 60,
"minTravelersPerBooking": 0,
"maxTravelersPerBooking": 4
}
]
},
"images": [
{
"imageSource": "SUPPLIER_PROVIDED",
"caption": "",
"isCover": true,
"variants": [...
],
"logistics": {
"start": [
{
"location": {
"ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Cdd0Y9TkTxkcosDq0rJgjR12IzpogNi5POX+yGLXEoq"
},
"description": "The meeting point is on the way to Lumbisí km 1 at the entrance to La Primavera at 8:30 am."
}
],
"end": [
{
"location": {
"ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Cdd0Y9TkTxkcosDq0rJgjR12IzpogNi5POX+yGLXEoq"
},
"description": "The meeting point is on the way to Lumbisí km 1 at the entrance to La Primavera at 8:30 am."
}
],
"redemption": {
"redemptionType": "NONE",
"specialInstructions": ""
},
"travelerPickup": {
"pickupOptionType": "MEET_EVERYONE_AT_START_POINT",
"allowCustomTravelerPickup": true
}
},
"timeZone": "America/Guayaquil",
"description": "the only legal paragliding operator in ecuador. See an amazing view of Quito and its surroundings from above.",
"inclusions": [
{
"category": "OTHER",
"categoryDescription": "Other",
"type": "OTHER",
"typeDescription": "Other",
"otherDescription": "Paragliding Kit"
},
{
"category": "OTHER",
"categoryDescription": "Other",
"type": "OTHER",
"typeDescription": "Other",
"otherDescription": "Air-conditioned vehicle"
}
],
"additionalInfo": [
{
"type": "STROLLER_ACCESSIBLE",
"description": "Infants and small children can ride in a pram or stroller"
},
{
"type": "NO_PREGNANT",
"description": "Not recommended for pregnant travelers"
},
{
"type": "NO_HEART_PROBLEMS",
"description": "Not recommended for travelers with poor cardiovascular health"
},
{
"type": "PHYSICAL_EASY",
"description": "Suitable for all physical fitness levels"
}
],
"cancellationPolicy": {
"type": "STANDARD",
"description": "For a full refund, cancel at least 24 hours before the scheduled departure time.",
"cancelIfBadWeather": true,
"cancelIfInsufficientTravelers": false,
"refundEligibility": [
{
"dayRangeMin": 1,
"percentageRefundable": 100
},
{
"dayRangeMin": 0,
"dayRangeMax": 1,
"percentageRefundable": 0
}
]
},
"bookingConfirmationSettings": {
"bookingCutoffType": "FIXED_TIME",
"bookingCutoffInMinutes": 1440,
"confirmationType": "INSTANT",
"bookingCutoffFixedTime": "16:00:00"
},
"bookingRequirements": {
"minTravelersPerBooking": 1,
"maxTravelersPerBooking": 4,
"requiresAdultForBooking": false
},
"bookingQuestions": [
"FULL_NAMES_LAST",
"PASSPORT_EXPIRY",
"PASSPORT_PASSPORT_NO",
"SPECIAL_REQUIREMENTS",
"FULL_NAMES_FIRST",
"WEIGHT",
"AGEBAND",
"HEIGHT",
"PASSPORT_NATIONALITY"
],
"tags": [
20234
],
"destinations": [
{
"ref": "735",
"primary": true
}
],
"itinerary": {
"itineraryType": "ACTIVITY",
"skipTheLine": false,
"privateTour": true,
"duration": {
"fixedDurationInMinutes": 15
},
"activityInfo": {
"location": {
"ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Cdd0Y9TkTxkcosDq0rJgjR12IzpogNi5POX+yGLXEoq"
},
"description": "We take off from the hill of Lumbisi towards the City, we observe the landscape of the city of Quito you can observe the mountains. We landed at the foot of the hill.\n\nThe meeting point is on the way to Lumbisí km 1 at the entrance to La Primavera at 8:30 am. From there we got on a vehicle to the mountain. "
}
},
"productOptions": [
{
"productOptionCode": "TG1",
"description": "",
"title": "Ecuador Parapente Quito"
}
],
"translationInfo": {
"containsMachineTranslatedText": false
},
"supplier": {
"name": "Opeturmo - Parapente Montanita"
}
},
{
"status": "INACTIVE",
"productCode": "141567P21",
"language": "en-US",
"createdAt": "2019-10-08T13:12:21.535614Z",
"lastUpdatedAt": "2020-11-13T13:41:18Z"
},
{
"status": "INACTIVE",
"productCode": "8932P17",
"language": "en-US",
"createdAt": "2019-06-03T13:29:09.131851Z",
"lastUpdatedAt": "2020-11-13T13:42:38Z"
},
{
"status": "INACTIVE",
"productCode": "58593P53",
"language": "en-US",
"createdAt": "2020-11-13T13:46:39.927509Z",
"lastUpdatedAt": "2020-11-13T13:51:43Z"
},
{
"status": "INACTIVE",
"productCode": "164413P1",
"language": "en-US",
"createdAt": "2019-06-14T00:29:29.039245Z",
"lastUpdatedAt": "2020-11-13T14:22:08Z"
}
],
"nextCursor": "MTYwNTI3NzMyOHwxNjQ0MTNQMXxJTkFDVElWRQ=="
}
The example above gives the first five product records in the catalogue, with modification dates in chronological order. Note that products with a "status"
of "INACTIVE"
are products that have been temporarily disabled by the supplier and are therefore unavailable – when this is the case, all other requests for this product should be avoided.
Included in the response is the nextCursor
element, which contains an identification code that points to the next page of product records; i.e.:
"nextCursor": "MTYwNTI3NzMyOHwxNjQ0MTNQMXxJTkFDVElWRQ=="
In your next call to /products/modified-since, provide the value of nextCursor
in the cursor
parameter to get the next page of results:
GET https://api.sandbox.viator.com/partner/products/modified-since?count=500&cursor=MTYwNTI3NzMyOHwxNjQ0MTNQMXxJTkFDVElWRQ==
The response will be similar to the initial response shown above, except it will contain the next 500 product records and a new nextCursor
that points to the following page, and so on.
Continue calling /products/modified-since using the nextCursor
value in the cursor
parameter to retrieve all pages of results. You will eventually receive a response that contains an empty products
array and does not contain a nextCursor
element. The absence of the nextCursor
element indicates that you have, for the time being, reached the end of the list and have received all product records from our catalogue.
Example final page response
{
"products": []
}
Now that you have all product records from our catalogue, you can keep it up-to-date by periodically polling the service using the most-recent nextCursor
code you received. Regardless of how frequently you call /products/modified-since, you will always receive all product update information so long as you keep track of the last cursor you received and use that in your subsequent call.
You should never need to re-ingest the entire product catalogue unless you need to re-initialize your database. This may happen frequently during development, but never (or rarely) in production. Due to the large volume of data, we strongly recommend keeping it to a minimum.
Products are considered updated when the supplier makes any changes to the product's details, excluding pricing and availability changes, which are retrieved from the availability schedules endpoints.
When the supplier publishes their product detail updates, the modified product /products/modified-since service will respond to this same call with newly-modified products in the products
array and a new nextCursor
element with which to poll the service for future updates in the same way.
It would be reasonable to poll this service on an hourly basis, updating those records in your local copy of the product catalogue as they become available.
Note that the nextCursor
code is valid indefinitely; it will not expire.
You are free to choose which products to store on your system and sell. As the product content endpoints return all available products, you will need to perform the filtering step yourself at the time of ingestion. If a product contains attributes that you do not desire; e.g., the type of product, where it operates, etc., simply discard the update and do not add it to your database.
Unless you have established the required functionality on your site to sell manual confirmation products you will need to exclude all non-instant confirmation products from your catalogue.
Instant confirmation products can be identified by the value of bookingConfirmationSettings.confirmationType
being "INSTANT"
in the response product content response; e.g.:
"bookingConfirmationSettings": {
"bookingCutoffType": "CLOSING_TIME",
"bookingCutoffInMinutes": 0,
"confirmationType": "INSTANT"
}
Products wih a confirmationType
of "MANUAL"
or "INSTANT_THEN_MANUAL"
should be excluded if you do not wish to sell manual confirmation products.
Please note:
The product catalog must be ingested and updated using the /products/modified-since endpoint, unless you are only selling a relatively small subset of the products available in the Viator catalog. If that is the case, you may prefer to use the /products/bulk endpoint to ingest your selected products.
Important: the /products/{product-code} endpoint should not be used for bulk ingestion purposes. Your product ingestion/update strategy is one of our certification requirements and must be verified by us prior to your accessing the production server. To find out what our certification requirements are, see: Viator Merchant API Certification.
Some information in the product content response is not communicated explicity; but rather, by reference, and therefore requires an extra de-referencing step to acquire the full details of the element.
These data types comprise:
The following sections describe how to de-reference these elements using the API.
All locations within the product content response are given as a location reference; e.g.:
"activityInfo": {
"location": {
"ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Cdd0Y9TkTxkcosDq0rJgjR12IzpogNi5POX+yGLXEoq"
},
These location references can be resolved using the /locations/bulk endpoint; for example:
Request:
{
"locations": [
"LOC-o0AXGEKPN4wJ9sIG0RAn5Cdd0Y9TkTxkcosDq0rJgjR12IzpogNi5POX+yGLXEoq",
"LOC-6eKJ+or5y8o99Qw0C8xWyK8Z2imHSU8Ozi+NYupJVyI="
]
}
Response:
{
"locations": [
{
"provider": "GOOGLE",
"reference": "LOC-o0AXGEKPN4wJ9sIG0RAn5Cdd0Y9TkTxkcosDq0rJgjR12IzpogNi5POX+yGLXEoq",
"providerReference": "ChIJS1UFbTyX1ZER0vTgCLKWCEQ"
},
{
"provider": "TRIPADVISOR",
"reference": "LOC-6eKJ+or5y8o99Qw0C8xWyK8Z2imHSU8Ozi+NYupJVyI=",
"name": "Valley of the Roses",
"address": {
"street": "Dades Valley, near Bouteghrar",
"administrativeArea": "El Kelaa M'gouna",
"country": "Morocco",
"countryCode": "MA",
"postcode": "43000"
},
"center": {
"latitude": 34.00061,
"longitude": -6.84494
}
}
]
}
Note that there are two different location information providers, "TRIPADVISOR"
and "GOOGLE"
, referring to locations in the Tripadvisor location database or locations provided by the Google Maps platform via the Google Places API, respectively.
Tripadvisor locations include full details of the location in the response from /locations/bulk, including address and geolocation information. However, you will need to use the Google Places API to retrieve details for Google Maps locations.
The purpose of referring to locations by reference is to avoid the unnecessary transmission of duplicate data, as multiple products may include the same location reference. Therefore, we recommend caching the data received from this endpoint, checking this first to see if a particular location's details have been retrieved by your system in the past before making a request to /locations/bulk.
Requests can be made to /locations/bulk asynchronously; e.g., during the content ingestion process.
Every product in the Viator catalogue is categorized according to the destination/locale in which it operates.
There are multiple kinds of destination, which includes cities, regions, countries and others
Example destinations*:
type | destinationId | destinationName |
---|---|---|
CITY | 343 | Bangkok |
COUNTRY | 749 | Panama |
COUNTY | 51632 | Xiahe County |
DISTRICT | 51921 | Hunza |
HAMLET | ||
ISLAND | 51220 | Syros |
NATIONAL PARK | 51196 | Death Valley National Park |
NEIGHBORHOOD | 60465 | Kensington |
PENINSULA | 51769 | Michamwi |
PROVINCE | 51255 | Mendoza Province |
REGION | 4431 | Northern China |
STATE | ||
TOWN | 50971 | Swansea |
UNION TERRITORY | 51542 | Daman and Diu |
VILLAGE | 51011 | Pyrgos |
WARD | 52140 | Shibuya |
Every product has one or more destinations associated with it by way of its destination reference. This is given in the destinations
object in the response from any of the product content endpoints; e.g.:
"destinations": [
{
"ref": "34198",
"primary": true
}
],
To de-reference destination identifiers, you must use our destination taxonomy, which can be retrieved from the /destinations endpoint.
You may wish to filter products according to destination.
A call to /destinations will return data for all available destinations. You must store a local copy of this mapping information, as destination data does not change frequently – i.e., new destinations are rarely added. On-demand updates can be done in the event you encounter a product associated to a destination reference for which you do not have the details.
Example snippet of destination taxonomy:
{
"destinationId": 34198,
"name": "Seminyak",
"type": "CITY",
"parentDestinationId": 98,
"lookupId": "2.15.98.34198",
"defaultCurrencyCode": "IDR",
"timeZone": "Asia/Makassar",
"center": {
"latitude": -8.68877,
"longitude": 115.161267
}
},
{
"destinationId": 901,
"name": "Buenos Aires",
"type": "CITY",
"parentDestinationId": 22280,
"lookupId": "9.78.22280.901",
"destinationUrl": "https://shop.live.rc.viator.com/x/d901-ttd?mcid=42383&pid=P00108950&medium=api&api_version=2.0",
"defaultCurrencyCode": "ARS",
"timeZone": "America/Argentina/Buenos_Aires",
"iataCode": "BUE",
"center": {
"latitude": -34.6084175,
"longitude": -58.3731613
}
},
...
Note that destinations are organized into a hierarchy. The destination's position in the hierarchy can be determined according to the parentDestinationId
and lookupId
fields.
In the second example above, Buenos-Aires is a "CITY"
, and it has a parentDestinationId
of 22280
, which is the destinationId
of "The Pampas" – the "REGION"
in South America where Buenos-Aires is located.
The destination's full lineage with respect to the hierarchy is given in lookupId
, which is a series of destination ids separated by periods - in this case:
"lookupId": "9.78.22280.901"
Component | Destination name | Destination type |
---|---|---|
9 | (unnamed) | (broad continental designation) |
78 | Argentina | "COUNTRY" |
22280 | The Pampas | "REGION" |
901 | Buenos-Aires | "CITY" |
Using this information, you are able to categorize each product into its geographical location for display and search purposes.
Each product is also categorized according to its content, features or theme. Each attribute has a corresponding identifier called a 'tag'. The tag references for each product are contained in the tags
array, in the response from any of the product content endpoints.
Example tags array (product 250380P1 – Surf lessons Bali, Canggu):
"tags": [
20246,
21946,
20244
],
These numeric tag identifiers can be de-referenced using information available from the /products/tags endpoint. This service takes no parameters and retrieves information for all available tags.
To learn more about tags, see this article: Viator tags, explained
We recommend you store a local copy of this information, as tags do not change frequently. It is only necessary to re-ingest from this endpoint in the event you encounter a product that references a tag for which you do not have the details.
As with destinations, tags are organized into a hierarchy. A tag's relative position within that hierarchy can be determined by tracing back through its parent tag ids, which (if the tag has any) are listed in its parentTagIds
element. Each tag can have multiple parent tags, and each tag can eventually be traced back to its parent. Parent tags are tags that have no parents; i.e., they are at the top of the hierachy.
For example, tag: 20244 (Sports Lessons) in /products/tags response:
{
"tagId": 20244,
"parentTagIds": [
21478,
21909,
21915
],
"allNamesByLocale": {
"de": "Sportkurse",
"no": "Treningskurs",
"sv": "Idrottslektioner",
"pt": "Aulas de esportes",
"en_AU": "Sports Lessons",
"en": "Sports Lessons",
"it": "Lezioni di sport",
"fr": "Cours de sport",
"en_UK": "Sports Lessons",
"es": "Sesiones deportivas",
"zh": "运动课",
"zh_HK": "體育課程",
"zh_TW": "運動課程",
"ja": "スポーツ教室",
"zh_CN": "运动课",
"da": "Sportsundervisning",
"nl": "Sportlessen"
}
},
The parentTagIds
for 20244 - Sports lessons are:
These three tags have no parent tags, and are therefore at the top of the hierarchy. Applying this same process to the other tags in the tags
array, we can determine the full set of tags for this product, in this case:
By traversing the hierarchy in this way, we have surfaced seven tags that pertain to this product with different levels of generality; i.e. it is an 'active and outdoor class', and it is a 'sports lesson'. More generally, it is an 'outdoor activity', a class or workshop, and is 'good for avoiding crowds':
In this way, you can categorize products for search and recommendation purposes, or to create category display and search buttons as seen on viator.com 'things to do' pages; e.g.:
Availability schedule information for all products is available to be ingested and updated via the /availablity/schedules/modified-since endpoint. This endpoint functions in a similar manner to the /products/modified-since endpoint; i.e., an initial call is made that returns all availability data in bulk, and then calls are made periodically to that same endpoint, which will return a delta update.
Therefore, to initialize your local copy of our availability schedule information, make a call to /availability/schedules/modified-since, including only the count
query parameter, which we recommend setting to 500
.
For the sake of brevity, in the following example, count
is set to 5
Example request
GET https://api.viator.com/partner/availability/schedules/modified-since?count=5
You will receive a response similar to the following:
{
"availabilitySchedules": [
{
"productCode": "3320STOLZadvaft",
"bookableItems": [
{
"seasons": [
{
"startDate": "2020-11-23",
"endDate": "2020-12-22",
"pricingRecords": [
{
"daysOfWeek": [
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY",
"SUNDAY"
],
"timedEntries": [
{
"startTime": "15:30"
}
],
"pricingDetails": [
{
"pricingPackageType": "PER_PERSON",
"minTravelers": 1,
"ageBand": "INFANT",
"price": {
"original": {
"recommendedRetailPrice": 0.00,
"partnerNetPrice": 0.00,
"bookingFee": 0.00,
"partnerTotalPrice": 0.00
}
}
},
{
"pricingPackageType": "PER_PERSON",
"minTravelers": 1,
"ageBand": "ADULT",
"price": {
"original": {
"recommendedRetailPrice": 17.20,
"partnerNetPrice": 11.50,
"bookingFee": 0.69,
"partnerTotalPrice": 12.19
}
}
}
]
}
]
}
]
}
],
"currency": "EUR"
},
{
"productCode": "14093P1",
"bookableItems": [],
"currency": "EUR"
},
{
"productCode": "3567AKL_SAF",
"bookableItems": [],
"currency": "NZD"
},
{
"productCode": "5855RIPLEYS",
"bookableItems": [],
"currency": "USD"
},
{
"productCode": "3033ENTRY_TR",
"bookableItems": [],
"currency": "USD"
}
],
"nextCursor": "MTU3ODA2Njc4NnwzMDMzRU5UUllfVFI="
}
The endpoint returns an array (availabilitySchedules
) where each item contains all availabilty schedule information for a single product, and a cursor (nextCursor
) that is to be used in subsequent calls to this endpoint to retrieve the next page of results.
For details on how to interpret the availability schedule object, see Availability schedules.
Note: An empty bookableItems
array means that the product indicated by productCode
is not active, has no availability, and therefore cannot be booked. This fact will be reflected if the product details are requested from the /products/{product-code} endpoint; e.g., for product 3033ENTRY_TR
:
{
"status": "INACTIVE",
"productCode": "3033ENTRY_TR",
"language": "en",
"createdAt": "2006-05-01T07:00:00Z"
}
As with the /products/modified-since endpoint, you will receive as many records as requested via the count
request parameter. Included in the response is the nextCursor
element, which contains a code that points to the next page of availability records.
After receiving this first response, your next request to the /availablity/schedules/modified-since service should include the value of nextCursor
in the cursor
request parameter; i.e.:
GET https://api.sandbox.viator.com/partner/availability/schedules/modified-since?count=5&cursor=MTU3ODA2Njc4NnwzMDMzRU5UUllfVFI=
The response will be similar to the initial response shown above, except it will contain the next count
number of availability schedule records and a new nextCursor
that points to the following page.
Loop through this process until you receive a response that contains an empty availabilitySchedules
array and does not contain a nextCursor
element. The absence of the nextCursor
element indicates that you have, for the time being, reached the end of the list and your availability information is fully up-to-date.
Example final page response
{
"availabilitySchedules": []
}
Once your availability schedule information ingestion is complete, you can keep it up-to-date by periodically polling the service using the latest nextCursor
code you received; i.e., from the page prior to the final, empty page.
If new availability schedule information is available, the service will respond with new availability information in the availabilitySchedules
array and a new nextCursor
element with which to poll the service for future updates in the same way. Note that the nextCursor
code is valid indefinitely; it will not expire.
As with the /products/modified-since endpoint, we recommend polling this service on an hourly basis. The longer the interval between updates, the more likely your availability information will be out of date, raising the likelihood of availability differences when you make a real-time availability check using the /availability/check service.
Again, you should only need to call /availablity/schedules/modified-since without a cursor
parameter once, for the first call of the initial ingestion. All future calls should include the cursor
parameter and the results used to update your database.
As you may not be offering Viator's full product catalogue for sale on your site, you are only required to store availability information for the products you support. Therefore, if you are filtering out products from our catalogue, you should also perform a check with regard to the availability schedule information received from the /availablity/schedules/modified-since to ensure that it pertains to a product in your catalogue.
This can be done by checking the productCode
field in the ProductAvailabilitySchedule object response.
Please note:
The availability and pricing schedules must be ingested and updated using the /availability/schedules/modified-since endpoint, unless you are only selling a relatively small subset of the products available in the Viator catalog. If that is the case, you may prefer to use the /availability/schedules/bulk endpoint to ingest your selected product availability schedules.
Important: the /availability/schedules/{product-code} endpoint should not be used for bulk ingestion purposes. Your availability schedule ingestion/update strategy is one of our certification requirements and must be verified by us prior to your accessing the production server. To find out what our certification requirements are, see: Viator Merchant API Certification.
We expect that your update frequency will not be more frequent than the following guidelines. More frequent updates will place an excessive burden on our systems and may result in your integration being shut off.
See section on Rate Limiting for more information.
In order to keep your local databases up-to-date without placing an excessive burden on our servers, we expect you use the following fixed cadences at which you should poll the content-ingestion endpoints:
Endpoint | Update cadence |
---|---|
/products/modified-since | Every 15-30 minutes following initial ingestion |
/availability/schedules/modified-since | Every 15-30 minutes following initial ingestion |
/bookings/modified-since | Every 5-10 minutes following initial ingestion |
/bookings/modified-since/acknowledge | Right after ingesting the booking modifications |
To ensure your systems reflect any removals of or changes to existing destinations, locations or booking questions, we expect that you retrieve full updates from these endpoints as follows:
Endpoint | Update cadence |
---|---|
/destinations | Weekly |
/attractions/search | Weekly |
/products/booking-questions | Monthly |
/products/tags | Weekly |
/locations/bulk | Monthly |
/reviews/product | Weekly |
/bookings/cancel-reasons | Monthly |
/suppliers/search/product-codes | Weekly |
/bookings/status | Hourly |
/exchange-rates | Daily |
When ingesting product content, in the event that you encounter an unknown reference – i.e., a new location reference, booking question, tag or destination id – or, if you need to perform a currency conversion for which the last exchange rate you retrieved has expired, we expect you to call the relevant endpoint to resolve the new reference immediately or just after completing the product content update.
Endpoint | When to update |
---|---|
/exchange-rates | Whenever you encounter a currency that you need to convert, but the last-retrieved exchange-rate for that currency-pair is no longer valid due to having expired (according to the expiry value in the response from this endpoint) |
/locations/bulk | Whenever you encounter a location reference code that you do not yet have the details for (we recommend retrieving location details in batches using this endpoint; therefore, the retrieval of new location data can commence after all new product content is retrieved) |
/products/tags | Whenever you encounter a tag reference code that you do not yet have the details for |
/destinations | Whenever you encounter a destination id that you do not yet have the details for |
/products/booking-questions | Whenever you encounter a booking question identifier that you do not yet have the details for |
/attractions/{attraction-id} | Whenever you encounter an attraction identifier that you do not yet have the details for |
/reviews/product | If the number of reviews available for a product, which is reported in the reviews.totalReviews element in the product content response, has changed compared with its previous value, the reviews for that product should also be refreshed by calling the /reviews/product endpoint. We request that you rate-limit your use of this service to 30 requests per minute. |
/bookings/status | Whenever you encounter a booking waiting for manual confirmation. Must not be called more than once every 3 minutes. |
We impose rate limits on the usage of this API to prevent excessive demands being made of our system that might otherwise affect its availability for all users.
Our methodology involves applying a rate-limit on a per-endpoint / per-PUID (Partner Unique ID) basis; therefore, reaching the rate-limit with respect to your usage of one endpoint will only affect the availablility of that endpoint, not the others.
We do not have a universal rate limit that applies to all users. The rate limit you are required to operate within is based on a standard commensurate with the scale of your operation.
This is to say that if the volume of traffic to your site is such that under normal conditions your operations are causing you to frequently receive HTTP 429 (Too Many Requests) responses, you can ask for your rate-limit to be increased. If that is the case, please speak to your account manager to discuss whether increasing your rate limit would be the appropriate solution.
If a request to an endpoint yields an HTTP 429 (Too Many Requests) response, information regarding your present usage status can be located in the following four header fields:
RateLimit-Limit
RateLimit-Remaining
:RateLimit-Reset
:Retry-After
:Example HTTP 429 response:
HTTP/1.1 429
...
..
RateLimit-Limit: 16
RateLimit-Remaining: 0
RateLimit-Reset: 10
Retry-After: 10
...
..
{
"code":"TOO_MANY_REQUESTS",
"message":"Too many requests, please try again",
"timestamp":"2022-09-13T13:25:26.179433Z",
"trackingId":"4badb933-ad65-4464-ae9c-c20e4a70c0d2"
}
This can interpreted as:
RateLimit-Limit: 16
RateLimit-Remaining: 0
RateLimit-Reset: 10
RateLimit-Remaining
value would reach its maximum; which, in this case, is 16 requestsRetry-After: 10
Note that these rate-limit-related values will also be returned in the HTTP 200 (success) response. Inspect these values if you wish to estimate whether your method of implementing this API will remain sustainable at scale.
While rate-limiting is imposed per API key, if our system reaches its capacity on account of high demand overall, you may be rate limited even though you have not personally exceeded your individual rate limit.
In this case, you will receive a HTTP 503 (Service Unavailable) response. The header of this response will include the Retry-After
field. In the example below, the recommendation is to pause for 60s before retrying the request:
e.g.:
HTTP/1.1 503
...
..
Retry-After: 60
...
..
{"code":"SERVICE_UNAVAILABLE","message":"Service is currently unavailable, please try again","timestamp":"2022-09-13T08:52:48.693734Z","trackingId":"fc342644-e48f-4fd9-96e3-a6860607d405"}
The inclusions
and exclusions
arrays are returned for active products in the response from the product content endpoints. The array items for both inclusions
and exclusions
are objects defined by the same schema, InclusionExclusionItem
.
The following table describes the mapping of the possible combinations of category
, categoryDescription
, type
, and typeDescription
elements of the object in the response that you may encounter.
category |
categoryDescription |
type |
typeDescription |
---|---|---|---|
"FEES_AND_TAXES" |
Fees | "AIRPORT_AND_DEPARTURE_TAX" |
Airport/Departure Tax |
"ALL_FEES_AND_TAXES" |
All Fees and Taxes | ||
"FUEL_SURCHARGE" |
Fuel surcharge | ||
"GRATUITIES" |
Gratuities | ||
"GST" |
GST (Goods and Services Tax) | ||
"LANDING_AND_FACILITY_FEES" |
Landing and facility fees | ||
"PARKING_FEES" |
Parking Fees | ||
"FOOD_AND_DRINK" |
Food and drink | "ALCOHOLIC_BEVRAGES" "ALCOHOLIC_BEVERAGES" |
Alcoholic Beverages |
"BOTTLED_WATER" |
Bottled water | ||
"BREAKFAST" |
Breakfast | ||
"BRUNCH" |
Brunch | ||
"COFFEE_AND_TEA" |
Coffee and/or Tea | ||
"DINNER" |
Dinner | ||
"LUNCH" |
Lunch | ||
"REFRESHMENTS" |
Refreshments | ||
"SNACKS" |
Snacks | ||
"SODA_POP" |
Soda/Pop | ||
"SOUVENIRS" |
Souvenirs | "CERTIFICATE" |
Certificate |
"RECIPE_BOOKLET" |
Recipe booklet | ||
"TRANSPORT_AMENITIES" |
Transportation amenities | "AIR_CONDITIONED_VEHICLE" |
Air-conditioned vehicle |
"PRIVATE_TRANSPORTATION" |
Private transportation | ||
"RESTROOM_ON_BOARD" |
Restroom on board | ||
"WIFI_ONBOARD" |
WiFi on board | ||
"EQUIPMENT" |
Use of Equipment | "ALL_INGREDIENTS" |
All ingredients |
"USE_OF_OTHER_EQUIPMENT" |
Other | ||
"USE_OF_BICYCLE" |
Use of bicycle | ||
"USE_OF_COOKING_UTENSILS" |
Use of cooking utensils | ||
"USE_OF_SCUBA_EQUIPMENT" |
Use of SCUBA equipment | ||
"USE_OF_SEGWAY" |
Use of Segway | ||
"USE_OF_SNORKELING_EQUIPMENT" |
Use of Snorkelling equipment | ||
"USE_OF_TRIKKE" |
Use of Trikke | ||
"OTHER" |
Other | "OTHER" |
Other |
Date | Description |
---|---|
31 Oct 2022 | Removed v1-v2 migration reference section |
14 Sep 2022 | Revised Workflows – Rate limiting and HTTP 429 response description with respect to new rate-limiting policy |
23 Aug 2022 | Clarified new standard rate-limiting policy that applies to all endpoints in new section: Workflows – Rate limiting |
15 Aug 2022 | Altered advice regarding the recommended frequency for fixed cadence full updates for various endpoints in Workflows – Update frequency section |
3 Aug 2022 | Updated descriptions of /products/modified-since, /products/bulk and /products/{product-code} to highlight the polymorphism in the response / discriminator drop-down on status element |
1 Aug 2022 | Renamed Key Concepts – Content ingestion endpoints to Key Concepts – Product Content and availability endpoints and updated this section with usage recommendations |
27 July 2022 | Updated conditonal booking questions logic table to include advice about TRANSFER_DEPARTURE_MODE booking question |
18 July 2022 | Modifed /bookings/cancel-reasons endpoint to accept a query parameter to specify customer or supplier-initiated cancellation reasons |
18 July 2022 | Added two new endpoints to allow merchant partners to manage supplier-initiated booking cancellations: /bookings/modified-since and /bookings/modified-since/acknowledge |
6 July 2022 | Improved descriptions of lineItems and totalPrice elements of bookableItems[] object array in /availability/check endpoint response |
30 June 2022 | Clarified conditions in conditional booking questions section of Booking concepts - Booking questions section |
29 June 2022 | Added target-lander query parameter to /products/{product-code}, /products/modified-since, /products/bulk and /products/search endpoints |
23 June 2022 | Added attractionId to filtering options in /products/search endpoint |
22 June 2022 | Updated string length specifications in VoucherInfo schema and partnerBookingRef in /bookings/book request object |
20 June 2022 | Updated maximum string length specifications for /bookings/book request object (BookerInfo and CommunicationInfo schemata) |
3 June 2022 | Added new supplier search endpoint: /suppliers/search/product-codes |
1 June 2022 | Added links to various articles on the Viator Partner Resource Center throughout document |
26 May 2022 | Added advice about review authenticity: Key concepts - Review authenticity |
23 May 2022 | Added partnerNetFromPrice property to ProductSearchPricing schema spec in response from /products/search endpoint |
20 May 2022 | Added advice regarding whether or not an endpoint should be used to ingest details about the entire product catalog to /products/{product-code}, /products/bulk, /availability/schedules/{product-code} and /availability/schedules/modified-since endpoint descriptions. |
17 May 2022 | Added note about extra validation requirements for communication.phone field in request to /bookings/book endpoint |
11 May 2022 | Modified update frequency recommendation for /locations/bulk endpoint from 'weekly' to 'monthly' due to the relatively changeless nature of locations data. |
10 May 2022 | Modified description of /exchange-rates endpoint to include additional currencies (ARS, CLP, COP, ILS, PEN, PHP) available for conversion |
1 Apr 2022 | Modified note to Booking questions – Conditional booking questions (third bullet in 'Extra notes') |
22 Mar 2022 | Added note to Booking questions – Conditional booking questions (third bullet in 'Extra notes') |
8 Mar 2022 | Corrected "OTHER_HEALTH" to "HEALTH_OTHER" in AdditionalInfo schema used in the product response |
11 Feb 2022 | Removed note about no-index policy from /v1/attraction/products endpoint |
9 Feb 2022 | Added Booking concepts – Low-margin products section |
1 Feb 2022 | Added Conventions - Endpoint timeout settings section |
5 Jan 2022 | Corrected response schema details in /bookings/{booking-reference}/cancel and /bookings/{booking-reference}/cancel-quote to indicate that status and bookingId are required properties |
15 Nov 2021 | Added Basic-access Affiliate postman collection to Testing section |
5 Nov 2021 | Clarified description of exp-demo header parameter |
2 Nov 2021 | Added "LOCATION" as option for logistics.travelerPickup.locations[].pickupType in product content response |
5 Jan 2022 | Corrected response schema details in /bookings/{booking-reference}/cancel and /bookings/{booking-reference}/cancel-quote to indicate that status and bookingId are required properties |
15 Nov 2021 | Added Basic-access Affiliate postman collection to Testing section |
5 Nov 2021 | Clarified description of exp-demo header parameter |
2 Nov 2021 | Added "LOCATION" as option for logistics.travelerPickup.locations[].pickupType in product content response |
28 Oct 2021 | Updated Booking Concepts – Booking questions – Conditional booking questions table |
15 Oct 2021 | Modified PriceObject schema in response from /availabililty/* endpoints to include provision for commission-payment-model merchants. See /availability/check for example |
13 Oct 2021 | Added section: How to determine if a product option supports pickup |
7 Oct 2021 | Added "TRANSFER_ARRIVAL_DROP_OFF" booking question details in Booking details – conditional booking concepts section |
1 Oct 2021 | Changed 'standard access' to 'full access' in Access to endpoints section |
1 Oct 2021 | Added note about "TRANSFER_PORT_CRUISE_SHIP" booking question to Booking concepts – Booking questions section |
27 Sep 2021 | Added note about time-out recommendation to /bookings/book |
16 Sep 2021 | Removed topX and modified options for sortOrder request parameters in /attraction/reviews/ endpoint |
13 Sep 2021 | Added reference element to Supplier schema of ActiveProduct |
6 Sep 2021 | Modified available options for sortOrder request parameter in /v1/taxonomy/attractions and /v1/search/attractions endpoints |
27 Aug 2021 | Added basic and full-access affiliate types to Access to endpoints section |
26 Aug 2021 | Added Key concepts – Protecting unique content section |
23 Aug 2021 | Added Key concepts – v1 to v2 migration reference – Mapping categories to tags section |
19 Aug 2021 | Added Tripadvisor as an additional reviews provider in /reviews/product endpoint |
12 Aug 2021 | Updated Access to endpoints section to include /products/booking-questions and /bookings/status |
10 Aug 2021 | Bugfix – provider element in request to /reviews/product now listed as 'required' |
5 Aug 2021 | Added new sorting options to /reviews/product endpoint |
1 Jul 2021 | Added Workflows - Update frequency section |
22 Jun 2021 | Deprecated /v1/product/reviews endpoint |
21 Jun 2021 | Added /reviews/product endpoint |
18 Jun 2021 | Added /products/search endpoint |
9 Jun 2021 | Added Booking concepts – supplier communications |
9 Jun 2021 | Added Booking concepts – working with age bands section |
4 Jun 2021 | Added premium viatorUniqueContent element to ActiveProduct |
27 May 2021 | Added Booking-concepts – Per-person and unit pricing section |
21 May 2021 | Added reviews element to responses of product content endpoints |
14 May 2021 | Added Age-bands section to Booking concepts - Booking questions section |
5 May 2021 | Updated Conditional booking questions table in Booking concepts - Booking questions section |
25 Mar 2021 | Added v1 endpoints for affiliate partners |
23 Mar 2021 | Added Resolving references section |
11 Mar 2021 | Added campaign-value parameter to /products/modified-since, /products/bulk and /products/{product-code} endpoints; added AvailabilityScheduleSummary summary schema to /availability/schedules/* endpoint responses |
16 Feb 2021 | Added Determining ratings section; added Conventions - Accept-Encoding section |
21 Jan 2021 | Extended BookingBookRequest schema (used in /bookings/book) to include new AdditionalBookingDetails schema to allow custom voucher text |
18 Jan 2021 | Modified rejectionReasonCode in responses from /bookings/book and /bookings/status endpoints |
12 Jan 2021 | Added Key concepts – Booking confirmation types section as sale of manual confirmation products has now been enabled. |
7 Dec 2020 | Added DayOperatingHours schema array to BookableItemSeason schema in availability-schedules endpoints |
24 Nov 2020 | Added Key concepts – Booking cutoff times section |
12 Nov 2020 | Added Workflows – Checking booking status section |
6 Nov 2020 | Added /bookings/status endpoint specification |
5 Nov 2020 | Added Workflows – Ingesting and updating availability schedules section |
4 Nov 2020 | Updated id values in /products/booking-questions endpoint |
3 Nov 2020 | Added Key concepts – V1 to V2 migration reference section |
28 Oct 2020 | Added sections for Activity, Hop-on hop-off and Unstructured itinerary types |
13 Oct 2020 | - Added maxLength field to BookingQuestion schema in response from /products/booking-questions- Updated AdditionalInfo schema |
6 Oct 2020 | - Added Appendices - Inclusions and exclusions - Modified ActiveProduct schema to include new required Supplier element |
1 Oct 2020 | Added About section |
29 Sep 2020 | Added Key concepts - Availability Schedules section Added legacy helper endpoints /v1/taxonomy/destinations, /v1/taxonomy/attractions, v1/product/reviews, /v1/product/photos |
28 Sep 2020 | Updated response schema for /products/tags |
23 Sep 2020 | Added Key concepts – Booking questions section |
22 Sep 2020 | Added Versioning section |
22 Sep 2020 | Fixed typo in StandardItineraryItem schema (pointsOfInterestLocation -> pointOfIterestLocation ); added explanation of policy window time-stamps & updated response samples in Workflows - Cancellation policy section |
21 Sep 2020 | Added Making a booking section under Workflows |
20 Sep 2020 | Added currency element to /bookings/hold response schema |
17 Sep 2020 | Breaking change: /exchange-rates endpoint refactored |
16 Sep 2020 | Note: ONLY freesale products (those with a confirmation type of "INSTANT") are presently able to be booked. See Ingesting and updating the product catalogue (Filtering-out on-request products) for instructions on how to filter-out on-request products from your catalogue |
16 Sep 2020 | Breaking change: languageGuideDetails element in ActiveProduct schema changed to languageGuides (array of LanguageGuide schema) |
15 Sep 2020 | Breaking change: removed travelerPickup element from /booking/book request |
10 Sep 2020 | Added /bookings/book endpoint specification |
1 Sep 2020 | Added description element to MultiDayTourFoodAndDrinks and InclusionExclusionItem schemata; added version=2.0 to Accept request header parameter across all endpoints |
26 Aug 2020 | CancellationConditionType schema key strings updated (now "STANDARD", "MODERATE", "STRICT" & "ALL_SALES_FINAL"; PricingLineItem updated (affects /availability/check and /bookings/hold-confirm responses); /availability/* endpoints moved to separate 'Availability' section |
25 Aug 2020 | Breaking changes: see below |
25 Aug 2020 | Regenerated response samples |
11 Aug 2020 | Updated paxMix schema in /availability/check |
6 Aug 2020 | Added COVID-safety-measure keys to additionalInfo schema |
4 Aug 2020 | Added /bookings/hold endpoint |
28 July 2020 | Added Ingesting and updating the product catalogue section |
23 July 2020 | Added Product options, Cancellation policy sections |
16 Jul 2020 | Added /bookings/hold endpoint |
3 Jul 2020 | Modified availability endpoint schema and regenerated examples |
1 Jul 2020 | Removed internal-only markup for release |
16 Jun 2020 | Added Workflows->Cancellation API workflow section |
15 Jun 2020 | Removed enum data type specification from UnavailableDate , ageBand , CancellationQuoteBookingStatus , CancellationResultItemReason and CancellationBookingStatus schemata |
18 May 2020 | Refactored LHS nav to use 'summary' name instead of operationId name |
28 April 2020 | Added legacyGuide field to LanguageGuide object specification |
The following breaking changes have been made. Please update your OpenAPI specification by downloading from the link at the top of the page.
A number of name changes have been made to the Product
schema. This affects the following endpoints:
Element | Old name | New name |
---|---|---|
cancellationPolicy.badWeather |
badWeather |
cancelIfBadWeather |
cancellationPolicy.insufficientTravelers |
insufficientTravelers |
cancelIfInsufficientTravelers |
translationInfo.translationAttributions |
translationAttributions |
translationAttribution |
destinations.isPrimary |
isPrimary |
primary |
inclusions[].otherText |
otherText |
otherDescription |
itinerary.routes[].pois |
pois |
pointsOfInterest |
itinerary.itineraryItems[].poiLocation |
poiLocation |
pointsOfInterestLocation |
itinerary.routes[].duration.fixedValueinMinutes |
fixedValueInMinutes |
fixedDurationInMinutes |
itinerary.routes[].duration.fromMinutes |
fromMinutes |
variableDurationFromMinutes |
itinerary.routes[].duration.toMinutes |
toMinutes |
variableDurationToMinutes |
Get full product details for all products modified since a specified time. Initiate a full ingestion only to establish your local copy; this should be a rare occurrence compared to regular updates. Fetch incremental updates through this endpoint on an hourly basis. You are welcome to poll for updates as frequently as every 15 minutes if desired. Be mindful that excessive frequency beyond these recommendations may trigger rate limits.
Note:
status
description to toggle between an "ACTIVE"
and "INACTIVE"
product response.Examples:
Get all products in the Viator inventory with 500 products per response page:
GET https://api.sandbox.viator.com/partner/products/modified-since?count=500
Get the next page of results:
GET https://api.sandbox.viator.com/partner/products/modified-since?count=500&cursor=MTU3NDA0MzU1NQ==
Alternative pagination method (not recommended); e.g., if you have misplaced the cursor value or if for any other reason you wish to get all products modified since 2019-09-17T03:20:45.737043Z:
GET https://api.sandbox.viator.com/partner/products/modified-since?count=500&modified-since=2020-09-30T00%3A00%3A01.737043Z
(Response sample generated on: 2020-10-06)
cursor | string Pagination cursor received from a previous call to this endpoint that points to the desired starting point for the results. Note: Pagination will come into play when the number of results exceeds the figure given in the
|
count required | integer [ 1 .. 500 ] Specifies the maximum number of product detail items to be returned in each response from this endpoint |
campaign-value | string <= 200 characters Affiliate partners only: Specifies the campaign tracking identifier that will be appended to the URL returned in Note: If you wish to use a campaign value that includes non-alphanumeric characters (e.g., '+', '-', etc.), you must URL-encode these characters. |
target-lander | string Affiliate partners only: Specifies the type of landing page customers will be shown when opening the link provided in the Ordinarily, when customers follow the link in Available values:
Our recommendation is for you to allow the default behavior by not including this parameter, unless you have a specific technical or business requirement to do so. |
modified-since | string <date-time> ^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])... Only return products that have been modified since the date and time (UTC) specified by this timestamp Note:
|
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
required | Array of objects (Product) Products that fall within the search/filter criteria |
nextCursor | string Pagination cursor pointing to the next page of results
|
{- "products": [
- {
- "status": "INACTIVE",
- "productCode": "6550P3",
- "language": "en",
- "createdAt": "2020-12-10T00:00:00Z",
- "lastUpdatedAt": "2021-05-31T02:01:01Z"
}, - {
- "status": "INACTIVE",
- "productCode": "259269P1",
- "language": "en",
- "createdAt": "2020-12-10T00:00:00Z",
- "lastUpdatedAt": "2021-05-31T06:26:37Z"
}, - {
- "status": "ACTIVE",
- "productCode": "17556P22",
- "language": "en-US",
- "createdAt": "2020-03-18T08:04:02.760786Z",
- "lastUpdatedAt": "2021-05-31T06:26:37Z",
- "title": " Private Ho Chi Minh City Shopping Tour – Phu My Shore Excursions",
- "ticketInfo": {
- "ticketTypes": [
- "MOBILE_ONLY"
], - "ticketTypeDescription": "Mobile or paper ticket accepted",
- "ticketsPerBooking": "ONE_PER_BOOKING",
- "ticketsPerBookingDescription": "One per booking"
}, - "pricingInfo": {
- "type": "PER_PERSON",
- "ageBands": [
- {
- "ageBand": "INFANT",
- "startAge": 0,
- "endAge": 2,
- "minTravelersPerBooking": 0,
- "maxTravelersPerBooking": 15
}, - {
- "ageBand": "CHILD",
- "startAge": 3,
- "endAge": 11,
- "minTravelersPerBooking": 0,
- "maxTravelersPerBooking": 15
}, - {
- "ageBand": "ADULT",
- "startAge": 12,
- "endAge": 80,
- "minTravelersPerBooking": 1,
- "maxTravelersPerBooking": 15
}
]
}, - "images": [
- {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": true,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}
], - "logistics": {
- "redemption": {
- "redemptionType": "NONE",
- "specialInstructions": ""
}, - "travelerPickup": {
- "pickupOptionType": "PICKUP_EVERYONE",
- "allowCustomTravelerPickup": false,
- "locations": [
- {
- "location": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5GZSKUbt1OQ9sKzR4DSmFzFolySbPhFCpna5D0/PG6wD"
}, - "pickupType": "PORT"
}, - {
- "location": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Prp0akVv8qE+SrTYXPKopPmLfiCZTK/BzhXU1fvlnTf"
}, - "pickupType": "PORT"
}, - {
- "location": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5JaRZv8vmwh2yoeXyutiSDy2yRssmYRUnIVJWxcYHvcR"
}, - "pickupType": "PORT"
}, - {
- "location": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5MLAp1gTj0p0epB6IVH86ncW0isQ0Kt/ApmYGB5zBcGJ"
}, - "pickupType": "PORT"
}, - {
- "location": {
- "ref": "CONTACT_SUPPLIER_LATER"
}, - "pickupType": "OTHER"
}
], - "additionalInfo": "⭐ Meeting point: at port gate (Nha Rong, Hiep Phuoc, Phu Huu, or Phu My port)\n⭐ Port Permit Service:\n 1. Opt to purchase port permit service: For a fee of 25USD/person, our guide and transport can go inside the port, right to your cruise ship for pick-up and drop off. This requires passport details such as full name, passport number, DOB, expiry date and nationality. We recommend this service for safety and comfort during the hot or rainy days, as well a reliable transport service.\n 2. Opt not to purchase port service fee: Please walk out of the port for 7 minutes – 15 minutes or take a shuttle bus inside port gate where our guide and driver will welcome you with a sign and a smile. This does not include a fee."
}
}, - "timeZone": "Asia/Ho_Chi_Minh",
- "description": "With the brand name of bustle and hustle center in Asia, Ho Chi Minh City is charmed with plenty of shopping malls, souvenir shops, and traditional art showrooms. Explore all of them by joining this Ho Chi Minh City day tour from Phu My port, or Nha Rong, Hiep Phuoc, Phu Huu port.\n\n⭐ HIGHLIGHTS:\n\n - Go shopping like locals,\n - Best things, best prices, various choices;\n - Hustle and bustle city;\n - Enjoy lunch with Vietnamese traditional food as Vietnamese pancake & rice noodles with grilled pork/fried roll or Pho– specialty food of the city\n\n⭐ Meeting point: port gate outside. (inside optional) \n\n⭐ Duration: This private tour is approximately 8 hours or longer depending on your time constraints. At the end of the private tour, we always make sure that you return on-time to board the cruise ship.\n\n⭐Tour customizable: Absolutely! (Tell us your specific requirements in the special request form)",
- "inclusions": [
- {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "All entrance fees"
}, - {
- "category": "FOOD_AND_DRINK",
- "categoryDescription": "Food and drink",
- "type": "LUNCH",
- "typeDescription": "Lunch",
- "description": "Lunch as indicated in the itinerary (please note we can cater for any dietary requirements, just be sure to get in touch beforehand)"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Unlimited Bottles of Water"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Round trip on private air-conditioner vehicle from the ports to Ho Chi Minh City"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "English-speaking local guide"
}
], - "exclusions": [
- {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Tips & Other drinks"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Other personal expenses"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Port fee (port permit service)"
}
], - "additionalInfo": [
- {
- "type": "PETS_WELCOME",
- "description": "Pets and service animals are welcome"
}, - {
- "type": "PUBLIC_TRANSPORTATION_NEARBY",
- "description": "Public transportation options are available nearby"
}, - {
- "type": "NO_BACK_PROBLEMS",
- "description": "Not recommended for travelers with spinal injuries"
}, - {
- "type": "PHYSICAL_EASY",
- "description": "Suitable for all physical fitness levels"
}, - {
- "type": "OTHER",
- "description": "What to bring: Sunscreen • Hat • Insect Repellent • Light Jacket • Flashlight or Torch "
}, - {
- "type": "OTHER",
- "description": "What to wear: Please ensure you dress respectfully. Knees and shoulders should be covered at all times. "
}
], - "cancellationPolicy": {
- "type": "STANDARD",
- "description": "For a full refund, cancel at least 24 hours before the scheduled departure time.",
- "cancelIfBadWeather": false,
- "cancelIfInsufficientTravelers": false,
- "refundEligibility": [
- {
- "dayRangeMin": 1,
- "percentageRefundable": 100
}, - {
- "dayRangeMin": 0,
- "dayRangeMax": 1,
- "percentageRefundable": 0
}
]
}, - "bookingConfirmationSettings": {
- "bookingCutoffType": "START_TIME",
- "bookingCutoffInMinutes": 1440,
- "confirmationType": "INSTANT"
}, - "bookingRequirements": {
- "minTravelersPerBooking": 1,
- "maxTravelersPerBooking": 15,
- "requiresAdultForBooking": true
}, - "languageGuides": [
- {
- "type": "GUIDE",
- "language": "en",
- "legacyGuide": "en/SERVICE_GUIDE"
}
], - "bookingQuestions": [
- "PICKUP_POINT",
- "SPECIAL_REQUIREMENTS"
], - "tags": [
- 11928,
- 12039,
- 21736,
- 21946,
- 11930,
- 12075,
- 12056,
- 21733,
- 21768,
- 11941
], - "destinations": [
- {
- "ref": "25711",
- "primary": true
}
], - "itinerary": {
- "itineraryType": "STANDARD",
- "skipTheLine": false,
- "privateTour": true,
- "duration": {
- "fixedDurationInMinutes": 510
}, - "itineraryItems": [
- {
- "pointOfInterestLocation": {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyGlAxNYBHe0Ep2+3MEW9ikM="
}
}, - "duration": {
- "fixedDurationInMinutes": 10
}, - "passByWithoutStopping": false,
- "admissionIncluded": "NOT_APPLICABLE",
- "description": "Welcome to Ho Chi Minh! Our team will be waiting with name signs, big smiles at your port to take you to your cool air-conditioned transport."
}, - {
- "pointOfInterestLocation": {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyHeMs3iO6+A/+DAlt3qilgw="
}
}, - "duration": {
- "fixedDurationInMinutes": 300
}, - "passByWithoutStopping": false,
- "admissionIncluded": "NOT_APPLICABLE",
- "description": " We start our Ho Chi Minh Shore Excursions and visit a local Lacquerware shop. Get a glimpse of this ancient art form by witnessing every detailed step of the manufacturing process under the guidance of local artisans.\nThen, head to the XQ showroom where you can admire how embroidery was made. Gazed at a high quality of artistic embroidery designed with traditional Vietnamese images such as lotus, home-dwelling animals, flowers, landscapes, and so on. Moreover, you have a chance to pick up some unique products as gifts and souvenirs for your friends and family.\nThe next stop is in Sai Gon Square. The center contains a huge scale of retailers and Mercian selling local goods from food, snacks, and fruits to clothing. Most of them are prepared for export that you can purchase some interesting items with reasonable prices. Remember to bargain before deciding to buy anything.\nAfter a delicious meal sampling Pho – Vietnamese traditional noodle soup and spring rolls.\nAfter that, visit Ben Thanh Market – the most famous and bustling market in Ho Chi Minh City. Witness the sight of various stalls full with interesting products from traditional to modern as well as Vietnamese and other countries cuisines. Continue on to the most modern center of the city – Vincom Center Shopping Mall where you enjoy a stroll along hundreds of department stores. The trip ends with a drive back to port."
}, - {
- "pointOfInterestLocation": {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyGlAxNYBHe0Ep2+3MEW9ikM="
}
}, - "duration": {
- "fixedDurationInMinutes": 10
}, - "passByWithoutStopping": false,
- "admissionIncluded": "NOT_APPLICABLE",
- "description": "Trip ends when the driver drops you at the port for the next departure."
}
]
}, - "productOptions": [
- {
- "productOptionCode": "TG2",
- "description": "Duration: 8 hours: We will meet you at Nha Rong port gate.<br/>Pickup included",
- "title": "Pickup at Nha Rong Port gate!",
- "languageGuides": [
- {
- "type": "GUIDE",
- "language": "en",
- "legacyGuide": "en/SERVICE_GUIDE"
}
]
}, - {
- "productOptionCode": "TG3",
- "description": "Duration: 8 hours 30 minutes: We will meet you at Phu Huu or Hiep Phuoc port gate!<br/>Pickup included",
- "title": "Phu Huu, Hiep Phuoc Port",
- "languageGuides": [
- {
- "type": "GUIDE",
- "language": "en",
- "legacyGuide": "en/SERVICE_GUIDE"
}
]
}, - {
- "productOptionCode": "TG1",
- "description": "Pickup included",
- "title": "Phu My Port & Cai Mep Port",
- "languageGuides": [
- {
- "type": "GUIDE",
- "language": "en",
- "legacyGuide": "en/SERVICE_GUIDE"
}
]
}
], - "translationInfo": {
- "containsMachineTranslatedText": false
}, - "supplier": {
- "name": "Scooter Saigon Tour"
}, - "reviews": {
- "reviewCountTotals": [
- {
- "rating": 1,
- "count": 0
}, - {
- "rating": 2,
- "count": 0
}, - {
- "rating": 3,
- "count": 0
}, - {
- "rating": 4,
- "count": 0
}, - {
- "rating": 5,
- "count": 0
}
], - "totalReviews": 0
}, - "viatorUniqueContent": { }
}
], - "nextCursor": "MTYyMjQ0MjM5N3wyNTkyNjlQMXxJTkFDVElWRQ=="
}
Get full product details for all requested products (limited to 500 products per request)
Note:
status
description to toggle between an "ACTIVE"
and "INACTIVE"
product response.(Response sample generated on: 2020-10-06)
campaign-value | string <= 200 characters Affiliate partners only: Specifies the campaign tracking identifier that will be appended to the URL returned in Note: If you wish to use a campaign value that includes non-alphanumeric characters (e.g., '+', '-', etc.), you must URL-encode these characters. |
target-lander | string Affiliate partners only: Specifies the type of landing page customers will be shown when opening the link provided in the Ordinarily, when customers follow the link in Available values:
Our recommendation is for you to allow the default behavior by not including this parameter, unless you have a specific technical or business requirement to do so. |
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
productCodes required | Array of strings <= 500 items List of product codes for which to retrieve full product details |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
status required | string (ProductStatus) Machine-interpretable value indicating this product's current availablility; one of:
|
productCode required | string(?s).*[\S].* Code that is the unique identifier for this product.
|
language | string Code indicating the language into which the natural-language fields in this response will be translated (if necessary) |
createdAt required | string <date-time> Timestamp (UTC) indicating when this product was originally created
|
lastUpdatedAt | string <date-time> Timestamp (UTC) indicating the most recent occasion of this product's details being modified
|
title | string Title of this product
|
required | object (TicketInfo) Ticket/voucher details for this product |
required | object (PricingInfo) Ticket/voucher details for this product |
Array of objects (Image) Images for this product | |
required | object (Logistics) Logistics details for this product |
timeZone required | string(?s).*[\S].* Code for the time zone in which this product operates (IANA TZ database name format)
|
description required | string(?s).*[\S].* Description of this product
|
Array of objects Features that are included with this product package
| |
Array of objects Features that are not included with this product package | |
required | Array of objects (AdditionalInfo) Facts necessary to communicate to travelers regarding this product. Note: Items included only if they apply, if they do not apply they will not be included in the response. |
required | object (CancellationPolicy) Cancellation policy details for this product. |
required | object (BookingConfirmationSettings) How this product's bookings are confirmed For more information, see Booking concepts – Booking cutoff times |
required | object (BookingRequirements) Passenger type and number requirements for booking |
Array of objects (LanguageGuide) Language guides available for this product across all product option codes | |
bookingQuestions required | Array of strings Array of machine-interpretable values specifying the facts that the traveler must provide when booking this product; further details can be retrieved via the /products/booking-questions endpoint |
tags required | Array of integers Array of numeric tag identifiers indicating the product categories into which this product falls To retrieve details about which tags these identifiers refer to, please use the /products/tags endpoint. |
required | Array of objects (Destination) Destinations – i.e., cities, states, countries and regions – in which this product can be considered to operate |
object (Itinerary) Details about the places this product visits See: Key concepts – Itineraries for more information | |
Array of objects (ProductOption) Product options (tour grades) available for this product For more information see: Key concepts: Product options | |
object (TranslationDetails) Information about whether the text in this response was machine-translated | |
required | object (Supplier) Supplier details |
productUrl | string URL for this product on the viator.com site, where the customer will complete their booking. This URL includes all the necessary information for viator to correctly attribute and pay commission for the sale to the referring partner. If For more information, see our guide to Affiliate Attribution on the Viator Partner Resource Center. Note:
|
required | object (ProductReviews) Summary of reviews and ratings for this product Note:
|
object (ViatorUniqueContent) Product details unique to Viator.com Note:
|
{- "productCodes": [
- "5010SYDNEY",
- "2050_PA",
- "2855KENNEDY_TKTS"
]
}
[- {
- "status": "ACTIVE",
- "productCode": "2855KENNEDY_TKTS",
- "language": "en-US",
- "createdAt": "2001-04-01T08:00:00Z",
- "title": "Kennedy Space Center at Cape Canaveral Admission Ticket",
- "ticketInfo": {
- "ticketTypes": [
- "MOBILE_ONLY"
], - "ticketTypeDescription": "Mobile or paper ticket accepted",
- "ticketsPerBooking": "ONE_PER_TRAVELER",
- "ticketsPerBookingDescription": "One per traveler"
}, - "pricingInfo": {
- "type": "PER_PERSON",
- "ageBands": [
- {
- "ageBand": "CHILD",
- "startAge": 3,
- "endAge": 11,
- "minTravelersPerBooking": 0,
- "maxTravelersPerBooking": 9
}, - {
- "ageBand": "ADULT",
- "startAge": 12,
- "endAge": 99,
- "minTravelersPerBooking": 1,
- "maxTravelersPerBooking": 9
}
]
}, - "images": [
- {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Kennedy Space Center at Cape Canaveral",
- "isCover": true,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Kennedy Space Center at Cape Canaveral",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}
], - "logistics": {
- "start": [
- {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyFED5zR8LzZDEzLhzr8k6P4="
}
}
], - "redemption": {
- "redemptionType": "INDIRECT_DELIVERY",
- "specialInstructions": "• This is not your Entrance Ticket.\n• IMPORTANT NOTE: You will receive a gate ready e-ticket or confirmation number from City Sightseeing Orlando within 24 hours of your travel date. Please check your email for the e-ticket or confirmation # and use that on the day of travel for your admission ticket. \n• This Viator voucher is a receipt only\n• KSCVC reserves the right to require photo ID for entry and can cancel ticket for misuse at any time\n• All tickets are nontransferable, non-refundable, and valid only during regularly scheduled operating hours excluding activities/events priced separately.\n• Tours, films, exhibits may be altered or closed due to operational requirements. Not responsible for lost or stolen tickets. No refunds or exchanges."
}, - "travelerPickup": {
- "pickupOptionType": "MEET_EVERYONE_AT_START_POINT",
- "allowCustomTravelerPickup": false
}
}, - "timeZone": "America/New_York",
- "description": "Spend the day exploring the fascinating Kennedy Space Center at Cape Canaveral, just 45 minutes from Orlando. Learn about the history of the US space program and watch stunning IMAX films. Don't miss the chance to walk under a Saturn V rocket, get a close-up view of the Space Shuttle launch pad, try your skills in a shuttle simulator, and experience a virtual moonwalk!\n* Due to COVID-19 tours and exhibits may close due to operational requirements and may not be guaranteed. ",
- "inclusions": [
- {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Kennedy Space Center Bus Tour (when available)"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Astronaut Encounter featuring a veteran NASA astronaut"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Space Shuttle Atlantis"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "All local taxes"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "The Apollo/Saturn V Center (when available)"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Heroes and Legends exhibit featuring the U.S. Astronaut Hall of Fame"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Admission to Kennedy Space Center"
}
], - "exclusions": [
- {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Transportation to and from Kennedy Space Center"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Parking Fees"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Admission during a rocket launch"
}
], - "additionalInfo": [
- {
- "type": "WHEELCHAIR_ACCESSIBLE",
- "description": "Wheelchair accessible"
}, - {
- "type": "STROLLER_ACCESSIBLE",
- "description": "Infants and small children can ride in a pram or stroller"
}, - {
- "type": "INFANTS_MUST_SIT_ON_LAPS",
- "description": "Infants are required to sit on an adult’s lap"
}, - {
- "type": "SURFACES_WHEELCHAIR_ACCESSIBLE",
- "description": "All areas and surfaces are wheelchair accessible"
}, - {
- "type": "PHYSICAL_EASY",
- "description": "Suitable for all physical fitness levels"
}, - {
- "type": "OTHER",
- "description": "Pet kennels are available at no additional charge from the Information Counter inside the entrance"
}, - {
- "type": "OTHER",
- "description": "Strollers are available for rental for $5 plus tax payable at the Space Shop; strollers are on a self-serve basis at the tour stops"
}, - {
- "type": "OTHER",
- "description": "Tickets to view a launch are not included with this ticket and must be purchased separately"
}, - {
- "type": "OTHER",
- "description": "Guests with Disabilities:"
}, - {
- "type": "OTHER",
- "description": "Wheelchair accessible; wheelchairs are available for rental for $10 plus tax payable at the Space Shop"
}, - {
- "type": "OTHER",
- "description": "At the tour stops, wheelchairs will be reserved for guests purchasing rentals"
}, - {
- "type": "OTHER",
- "description": "Captioning systems and descriptive narration are available for the IMAX Theatre presentations"
}, - {
- "type": "OTHER",
- "description": "Crew members are available to retrieve items and assist when necessary"
}
], - "cancellationPolicy": {
- "type": "STANDARD",
- "description": "For a full refund, cancel at least 24 hours before the scheduled departure time.",
- "cancelIfBadWeather": true,
- "cancelIfInsufficientTravelers": false,
- "refundEligibility": [
- {
- "dayRangeMin": 1,
- "percentageRefundable": 100
}, - {
- "dayRangeMin": 0,
- "dayRangeMax": 1,
- "percentageRefundable": 0
}
]
}, - "bookingConfirmationSettings": {
- "bookingCutoffType": "OPENING_TIME",
- "bookingCutoffInMinutes": 0,
- "confirmationType": "INSTANT"
}, - "bookingRequirements": {
- "minTravelersPerBooking": 1,
- "maxTravelersPerBooking": 9,
- "requiresAdultForBooking": true
}, - "bookingQuestions": [
- "SPECIAL_REQUIREMENTS"
], - "tags": [
- 21957,
- 21514,
- 21953,
- 21958,
- 11909,
- 21955,
- 21949,
- 21954,
- 12716,
- 21948,
- 21952,
- 11901,
- 11919,
- 21972
], - "destinations": [
- {
- "ref": "25319",
- "primary": true
}
], - "itinerary": {
- "itineraryType": "STANDARD",
- "skipTheLine": false,
- "privateTour": false,
- "duration": {
- "fixedDurationInMinutes": 1440
}, - "itineraryItems": [
- {
- "pointOfInterestLocation": {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyFED5zR8LzZDEzLhzr8k6P4="
}, - "attractionId": 98
}, - "duration": {
- "fixedDurationInMinutes": 60
}, - "passByWithoutStopping": false,
- "admissionIncluded": "YES",
- "description": "The greatest space adventure on Earth begins at the Kennedy Space Center Visitor Complex. Be sure to check out the 5-story IMAX theaters for breathtaking images captured by the Hubble Space Telescope, plus an astronaut’s view of space in Science on a Sphere.\n\nFor the kids, stop by the Children’s Play Dome, a one-of-a-kind space-themed playground where youngsters can take off in a spacecraft, climb a moon rock wall, crawl through rocket tunnels and slide to the surface of the Moon."
}, - {
- "pointOfInterestLocation": {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyBtn6upKBXhdHUkpF3/q6Z8="
}, - "attractionId": 98
}, - "duration": {
- "fixedDurationInMinutes": 60
}, - "passByWithoutStopping": false,
- "admissionIncluded": "YES",
- "description": "In the Apollo/Saturn V Center, relive the wonder and excitement of the Apollo era in this one-of-a-kind exhibit that celebrates the unprecedented achievement of putting a man on the moon and the joy that was realized in that moment around the world. Also, take a bus tour past some of the most iconic NASA landmarks. Meet a veteran NASA astronaut at the Astronaut Encounter Show. Visit the impressive Rocket Garden, featuring the first rocket to break free from gravity, and honor NASA’s fallen heroes at the 'Heroes and Legends' exhibit featuring the U.S. Astronaut Hall of Fame®. Then learn more about what it takes to explore Mars at Journey to Mars: Explorers Wanted."
}, - {
- "pointOfInterestLocation": {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyIoyDBQ8+Sp2VzaklauyUP4="
}
}, - "duration": {
- "fixedDurationInMinutes": 60
}, - "passByWithoutStopping": false,
- "admissionIncluded": "YES",
- "description": "The journey starts in the Atlantis theater with a close-up view of Space Shuttle Atlantis and more than 60 interactive exhibits. It's a moving celebration of humankind’s greatest achievements. Then in the Shuttle Launch Experience, discover the sights, sounds and feelings of a real Space Shuttle launch. Buckle up and get ready for launch in a one-of-a-kind, custom-designed crew cabin."
}
]
}, - "productOptions": [
- {
- "productOptionCode": "KSCAD",
- "description": "Kennedy Space Center Admission. This is a general admission ticket only which includes local taxes, the KSC Tour and Shuttle Launch Experience. ",
- "title": "KSC Admission"
}
], - "translationInfo": {
- "containsMachineTranslatedText": false
}, - "supplier": {
- "name": "City Sightseeing Orlando"
}, - "reviews": {
- "sources": [
- {
- "provider": "VIATOR",
- "reviewCounts": [
- {
- "rating": 1,
- "count": 8
}, - {
- "rating": 2,
- "count": 6
}, - {
- "rating": 3,
- "count": 8
}, - {
- "rating": 4,
- "count": 14
}, - {
- "rating": 5,
- "count": 54
}
], - "totalCount": 90,
- "averageRating": 4
}
], - "reviewCountTotals": [
- {
- "rating": 1,
- "count": 8
}, - {
- "rating": 2,
- "count": 6
}, - {
- "rating": 3,
- "count": 8
}, - {
- "rating": 4,
- "count": 14
}, - {
- "rating": 5,
- "count": 54
}
], - "totalReviews": 90,
- "combinedAverageRating": 4
}, - "viatorUniqueContent": {
- "title": "Kennedy Space Center at Cape Canaveral",
- "shortDescription": "Visit a landmark of space exploration with admission to the Kennedy Space Center at Cape Canaveral, the launch site for some of America’s most important missions. Your ticket to the Kennedy Space Center includes access to the Space Shuttle 'Atlantis,' a bus tour of the grounds, an astronaut encounter, and the chance to try a shuttle simulator and virtual moonwalk.",
- "longDescription": "Make your way to the Kennedy Space Center at Cape Canaveral, a short drive from Orlando, then spend the day exploring this history and future of the United States’ space program. \n\nGet your bearings on the grounds on a guided bus tour of the Kennedy Space Center, including restricted parts of the working spaceflight facility. One highlight of the Kennedy Space Center is an exhibit of the Space Shuttle 'Atlantis,' with interactive experiences that introduce the people behind this important NASA program, the Hubble Space Telescope, and the International Space Station. \n\nTake a turn at the helm, feel what it’s like to float in space, explore a replica of the International Space Station, and more. Every day at the Kennedy Space Center, a real astronaut joins visitors to discuss missions and the personal experience of space travel, and two IMAX theaters help bring space travel to vivid life. \n\nContinue to a Shuttle Launch Experience for a simulation of the space shuttle’s ascent, with a pre-launch briefing by a space commander veteran, then walk the length of the Saturn V rocket that launched some of America’s brave astronauts and honor NASA’s fallen heroes at the 'Heroes and Legends' exhibit featuring the U.S. Astronaut Hall of Fame®.",
- "highlights": [
- "Admission to the Kennedy Space Center",
- "Bus tour including restricted areas",
- "Explore interactive exhibits",
- "Watch IMAX films",
- "Strap in to a space shuttle simulator",
- "Ideal choice for families"
]
}
}, - {
- "status": "ACTIVE",
- "productCode": "2050_PA",
- "language": "en-US",
- "createdAt": "2004-01-01T08:00:00Z",
- "title": "Louvre Museum Skip the Line Access Guided Tour",
- "ticketInfo": {
- "ticketTypes": [
- "MOBILE_ONLY"
], - "ticketTypeDescription": "Mobile or paper ticket accepted",
- "ticketsPerBooking": "ONE_PER_BOOKING",
- "ticketsPerBookingDescription": "One per booking"
}, - "pricingInfo": {
- "type": "PER_PERSON",
- "ageBands": [
- {
- "ageBand": "INFANT",
- "startAge": 0,
- "endAge": 2,
- "minTravelersPerBooking": 0,
- "maxTravelersPerBooking": 0
}, - {
- "ageBand": "CHILD",
- "startAge": 3,
- "endAge": 17,
- "minTravelersPerBooking": 0,
- "maxTravelersPerBooking": 9
}, - {
- "ageBand": "ADULT",
- "startAge": 18,
- "endAge": 99,
- "minTravelersPerBooking": 1,
- "maxTravelersPerBooking": 9
}
]
}, - "images": [
- {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": true,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Louvre Museum Tour",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "See the Mona Lisa",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Louvre",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}
], - "logistics": {
- "start": [
- {
- "location": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5AEkWiInxLxdH8tQtvT+kdqUjMYFOwoWWohdiS9yg8u5"
}, - "description": "ARC DE TRIOMPHE DU CARROUSEL 75001 Paris Meeting point at the Arc the Triomphe du Carrousel facing the Louvre pyramid"
}
], - "end": [
- {
- "location": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5K9r4Q6Z1F8mMsmWcDvWM4MeZHgn16lfc7Tnz+w9PNGr"
}, - "description": "After the Guided Tour, you can stay longer in the museum to visit, to eat or enjoy shopping for souvenirs."
}
], - "redemption": {
- "redemptionType": "ATTRACTION_START_POINT",
- "specialInstructions": "Meeting time 15 minutes prior to the departure, ARC DE TRIOMPHE DU CARROUSEL 75001 - Paris Meeting point at the Arc the Triomphe du Carrousel facing the Louvre pyramid with our guide with a Paris City Vision sign. [GPS : 48°51'42.3\"N 2°19'59.3\"E]"
}, - "travelerPickup": {
- "pickupOptionType": "MEET_EVERYONE_AT_START_POINT",
- "allowCustomTravelerPickup": false
}
}, - "timeZone": "Europe/Paris",
- "description": "Paris’s Louvre Museum is no less than the world’s biggest museum, visited by 10.5 million in 2018 alone. Learn the secrets of three of its biggest crowd-pleasers, including the mysterious Mona Lisa, on your two-and-a-half-hour guided tour. You’ll waste no time waiting in line and head straight to the Mona Lisa where your knowledgeable guide will regale you with fascinating tales and tidbits about the lady with the unavoidable gaze and the wry smile, before whisking you off to discover two more unmissable masterpieces. Then you’re free to wander around the museum on your own, coming face to face with works by great masters and discovering new personal favorites by lesser-known artists.",
- "inclusions": [
- {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Entry/Admission - Louvre Museum"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Discover the pyramid of Ieoh Ming Pei"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Skip-the-line access to the Louvre Museum"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Live guide"
}
], - "exclusions": [
- {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Lunch"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Hotel pickup and drop-off"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Access to temporary exhibitions"
}
], - "additionalInfo": [
- {
- "type": "STROLLER_ACCESSIBLE",
- "description": "Infants and small children can ride in a pram or stroller"
}, - {
- "type": "PUBLIC_TRANSPORTATION_NEARBY",
- "description": "Public transportation options are available nearby"
}, - {
- "type": "NO_HEART_PROBLEMS",
- "description": "Not recommended for travelers with poor cardiovascular health"
}, - {
- "type": "PHYSICAL_EASY",
- "description": "Suitable for all physical fitness levels"
}, - {
- "type": "OTHER",
- "description": "Cloakroom compulsory for umbrellas, luggage, pushchairs that are not to be taken in the exhibition rooms."
}, - {
- "type": "OTHER",
- "description": "No elevators available during the visit"
}, - {
- "type": "OTHER",
- "description": "This tour does not include the access to temporary exhibitions"
}, - {
- "type": "OTHER",
- "description": "Some works are likely to be temporarily inaccessible due to renovations or work loans"
}, - {
- "type": "OTHER",
- "description": "At the end of the tour, possibility to stay longer after the visit"
}
], - "cancellationPolicy": {
- "type": "STANDARD",
- "description": "For a full refund, cancel at least 24 hours before the scheduled departure time.",
- "cancelIfBadWeather": false,
- "cancelIfInsufficientTravelers": false,
- "refundEligibility": [
- {
- "dayRangeMin": 1,
- "percentageRefundable": 100
}, - {
- "dayRangeMin": 0,
- "dayRangeMax": 1,
- "percentageRefundable": 0
}
]
}, - "bookingConfirmationSettings": {
- "bookingCutoffType": "START_TIME",
- "bookingCutoffInMinutes": 60,
- "confirmationType": "INSTANT"
}, - "bookingRequirements": {
- "minTravelersPerBooking": 1,
- "maxTravelersPerBooking": 9,
- "requiresAdultForBooking": true
}, - "languageGuides": [
- {
- "type": "GUIDE",
- "language": "en",
- "legacyGuide": "en/SERVICE_GUIDE"
}, - {
- "type": "GUIDE",
- "language": "fr",
- "legacyGuide": "fr/SERVICE_GUIDE"
}, - {
- "type": "GUIDE",
- "language": "es",
- "legacyGuide": "es/SERVICE_GUIDE"
}
], - "bookingQuestions": [
- "FULL_NAMES_LAST",
- "SPECIAL_REQUIREMENTS",
- "FULL_NAMES_FIRST",
- "AGEBAND",
- "DATE_OF_BIRTH"
], - "tags": [
- 21953,
- 21956,
- 21951,
- 21971,
- 21960,
- 21949,
- 12029,
- 21959,
- 21954,
- 11938,
- 21948,
- 12046,
- 12028
], - "destinations": [
- {
- "ref": "479",
- "primary": true
}
], - "itinerary": {
- "itineraryType": "STANDARD",
- "skipTheLine": false,
- "privateTour": false,
- "duration": {
- "fixedDurationInMinutes": 150
}, - "itineraryItems": [
- {
- "pointOfInterestLocation": {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyPJQi8F9Q4nGteUvo9GtA7c="
}
}, - "duration": { },
- "passByWithoutStopping": true,
- "admissionIncluded": "NOT_APPLICABLE",
- "description": "Start your tour in the center of Paris where your guide awaits, eager to impart their extensive art history knowledge. Your tour strats at the meeting point, Arc de Triomphe du Carroussel, facing the Louvre Pyramid, it commemorates the victory of Napoleon I at the Battle of Austerlitz."
}, - {
- "pointOfInterestLocation": {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyG9I3amfEs6tVmERGo1ogOs="
}, - "attractionId": 572
}, - "duration": {
- "fixedDurationInMinutes": 10
}, - "passByWithoutStopping": false,
- "admissionIncluded": "NOT_APPLICABLE",
- "description": "First, take a short stroll through the Tuileries Garden to Paris' Louvre Museum and appreciate the grandeur of this former palace as you approach."
}, - {
- "pointOfInterestLocation": {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyEK+bImyj6InAoXhp5mNP2A="
}, - "attractionId": 73
}, - "duration": {
- "fixedDurationInMinutes": 120
}, - "passByWithoutStopping": false,
- "admissionIncluded": "YES",
- "description": "Want an in-depth description of the Louvre’s most famous pieces? Don’t want to wait in line? This is the tour for you! The Louvre, formerly a royal palace, has become the world’s largest museums. You will discover the museum’s most famous works: Leonardo da Vinci’s Mona Lisa, the Venus de Milo, the Winged Victory of Samothrace...\nLearn everything you’ve ever wanted to know about Da Vinci and his illustrious Mona Lisa. Then turn your attention to the 18-foot tall Victory of Samothrace, one of the world’s most renowned sculptures. Now you’re on a cultural roll, and can’t wait to hear about the Venus de Milo, your second armless sculpture of the day. With your appetite truly whetted, bid your guide farewell then you’re free investigate the rest of the museum, head to the gift shop or grab a bench and watch the world go by! "
}, - {
- "pointOfInterestLocation": {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyEK+bImyj6InAoXhp5mNP2A="
}, - "attractionId": 73
}, - "duration": { },
- "passByWithoutStopping": true,
- "admissionIncluded": "NOT_APPLICABLE",
- "description": "End of the tour at the Louvre Museum where you can spend more time after the guided visit."
}
]
}, - "productOptions": [
- {
- "productOptionCode": "TG13",
- "description": "Louvre Afternoon: Standard walking tour with maximum 25 people. Commentary from your English speaking guide. ",
- "title": "Guided in English",
- "languageGuides": [
- {
- "type": "GUIDE",
- "language": "en",
- "legacyGuide": "en/SERVICE_GUIDE"
}
]
}, - {
- "productOptionCode": "TG17",
- "description": "",
- "title": "Guided in Spanish",
- "languageGuides": [
- {
- "type": "GUIDE",
- "language": "es",
- "legacyGuide": "es/SERVICE_GUIDE"
}
]
}, - {
- "productOptionCode": "TG23",
- "description": "(GLPG) Small Group Option ",
- "title": "Small Group 1 to 8 PAX Max",
- "languageGuides": [
- {
- "type": "GUIDE",
- "language": "en",
- "legacyGuide": "en/SERVICE_GUIDE"
}
]
}
], - "translationInfo": {
- "containsMachineTranslatedText": false
}, - "supplier": {
- "name": "Paris CityVision"
}, - "reviews": {
- "sources": [
- {
- "provider": "VIATOR",
- "reviewCounts": [
- {
- "rating": 1,
- "count": 143
}, - {
- "rating": 2,
- "count": 187
}, - {
- "rating": 3,
- "count": 214
}, - {
- "rating": 4,
- "count": 616
}, - {
- "rating": 5,
- "count": 982
}
], - "totalCount": 2142,
- "averageRating": 4
}
], - "reviewCountTotals": [
- {
- "rating": 1,
- "count": 143
}, - {
- "rating": 2,
- "count": 187
}, - {
- "rating": 3,
- "count": 214
}, - {
- "rating": 4,
- "count": 616
}, - {
- "rating": 5,
- "count": 982
}
], - "totalReviews": 2142,
- "combinedAverageRating": 4
}, - "viatorUniqueContent": {
- "shortDescription": "Paris’ Louvre is one of the world’s largest art museums, so don't waste your time waiting in line. Head straight inside, with your priority access admission, to see three of its biggest crowd-pleasers, including the unavoidable gaze and wry smile of Da Vinci’s “Mona Lisa.\" On this guided tour, hear fascinating tales and tidbits about these unmissable masterpieces. After coming face to face with several artworks by great masters, you’re free to explore the Louvre independently.",
- "longDescription": "Start your tour in central Paris where your guide awaits, eager to impart their extensive art history knowledge with an in-depth description of the Louvre’s most famous artworks. First, take a short stroll through the Tuileries Garden to Paris' Louvre Museum and appreciate the grandeur of this former palace as you approach. Your skip-the-line ticket lets you sail right past the long lines, right into the heart of the galleries with a direct route to the \"Mona Lisa.\"\n\nLearn about Da Vinci and his globally renowned painting while you benefit from your guide's expert insights. Then turn your attention to the \"Winged Victory of Samothrace,\" one of the world’s most acclaimed sculptures. Finally, gazing at the \"Venus de Milo\" armless sculpture, your guide continues to reveal stories surrounding both the artwork and the artist. \n\nWith your appetite whetted, bid your guide farewell once your tour has finished. Then you’re free to explore the rest of the museum independently, including the gift shop.",
- "insiderTips": "Skip the lines with this guided tour into the Louvre and stay as long as you want after it closes. ",
- "highlights": [
- "Guided tour of the Louvre Museum's three most famous artworks",
- "Skip the line with prioritized entry without queuing",
- "Head straight to the “Mona Lisa” and gain insight about its artistic heritage",
- "Opportunity to stay on at the Louvre after your tour has finished"
]
}
}, - {
- "status": "ACTIVE",
- "productCode": "5010SYDNEY",
- "language": "en-US",
- "createdAt": "2008-01-22T08:00:00Z",
- "title": "Big Bus Sydney and Bondi Hop-on Hop-off Tour",
- "ticketInfo": {
- "ticketTypes": [
- "MOBILE_ONLY"
], - "ticketTypeDescription": "Mobile or paper ticket accepted",
- "ticketsPerBooking": "ONE_PER_BOOKING",
- "ticketsPerBookingDescription": "One per booking"
}, - "pricingInfo": {
- "type": "PER_PERSON",
- "ageBands": [
- {
- "ageBand": "INFANT",
- "startAge": 0,
- "endAge": 4,
- "minTravelersPerBooking": 0,
- "maxTravelersPerBooking": 9
}, - {
- "ageBand": "CHILD",
- "startAge": 5,
- "endAge": 15,
- "minTravelersPerBooking": 0,
- "maxTravelersPerBooking": 9
}, - {
- "ageBand": "ADULT",
- "startAge": 16,
- "endAge": 99,
- "minTravelersPerBooking": 0,
- "maxTravelersPerBooking": 9
}
]
}, - "images": [
- {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": true,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Sydney and Bondi Hop-On Hop-Off Tour",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "The Rocks",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Bondi Beach",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Selfies at Bondi Beach",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Visit icons",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Big Bus App provides live tracking",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}
], - "logistics": {
- "redemption": {
- "redemptionType": "NONE",
- "specialInstructions": "Sydney tours depart and finish at Stop 1. First tour starts at 10am, frequency every 2hrs\n\nDeparture point: Board the bus at any of the following stops:\n\nSydney Route\nStop 1 Circular Quay \nStop 2 Sydney Tower/Westfield Sydney\nStop 3 Cook and Phillip Park/Australian Museum\nStop 4 William Street\nStop 5 Kings Cross\nStop 6 El Alamein Fountain\nStop 7 Woolloomooloo\nStop 8 Sydney Opera House\nStop 9 Botanic Gardens\nStop 10 State Library\nStop 11 Hyde Park North\nStop 12 Central Station\nStop 13 Power House Museum\nStop 14 Sydney Fish Markets\nStop 15 The Star\nStop 16 Maritime Museum\nStop 17 International Convention Centre\nStop 18 Chinese Gardens/Chinatown\nStop 19 SEA LIFE Sydney Aquarium\nStop 20 King Street Wharf\nStop 21 Barangaroo\nStop 22 Sydney Harbour Bridge\nStop 23 The Rocks\n\nFor Cruise Ship Passengers:\nThe Overseas Passenger Terminal: Stop 23 The Rocks\nFor White Bay Terminal Customers shuttled to SEA LIFE Sydney Aquarium: Stop 19 SEA LIFE Sydney Aquarium\nFor White Bay Terminal Customers shuttled to Dawes Point: Stop 22 Sydney Harbour Bridge\n\nWe have introduced a number of new health & safety measures to reduce the risk associated with the spread of Covid-19 in line with government advice and requirements of the local health authorities. These include regular cleaning of buses & social distancing measures. To uphold these new safety and hygiene standards in keeping our guests safe during the Covid-19 Pandemic, we may have to operate a reduced service and changes to ticket inclusions. This may also include frequency of departures, changes to routes & reduction/removal of stops. Customers are advised to visit our website or download our app to find out more on the new health & safety measures\n*Departure and frequency subject to change"
}, - "travelerPickup": {
- "pickupOptionType": "PICKUP_AND_MEET_AT_START_POINT",
- "allowCustomTravelerPickup": true,
- "locations": [
- {
- "location": {
- "ref": "MEET_AT_DEPARTURE_POINT"
}, - "pickupType": "OTHER"
}, - {
- "location": {
- "ref": "CONTACT_SUPPLIER_LATER"
}, - "pickupType": "OTHER"
}
], - "additionalInfo": "Location Name: Main Stops: Central Station or Circular Quay \n\nOR \n\nBoard the bus at any of the following stops:\n\nSydney Route\n\nStop 1 Circular Quay (Corner of Alfred and George Streets)\n\nStop 2 Sydney Tower / Westfield Sydney\n\nStop 3 Cook and Phillip Park / Australian Museum\n\nStop 4 William Street\n\nStop 5 Kings Cross\n\nStop 6 El Almein Fountain\n\nStop 7 Woolloomooloo\n\nStop 8 Sydney Opera House\n\nStop 9 Botanic Gardens\n\nStop 10 State Library\n\nStop 11 Hyde Park North\n\nStop 12 Central Station\n\nStop 13 Power House Museum\n\nStop 14 Sydney Fish Markets\n\nStop 15 The Star\n\nStop 16 Maritime Museum\n\nStop 17 International Convention Centre (ICC) \n\nStop 18 Chinese Gardens / Chinatown\n\nStop 19 SEA LIFE Sydney Aquarium\n\nStop 20 King Street Wharf\n\nStop 21 Barangaroo\n\nStop 22 Sydney Harbour Bridge\n\nStop 23 The Rocks\n\nStop 1 Circular Quay (Corner of Alfred and George Streets)\n\nBondi Tour \n\nStop 24 Central Station\n\nStop 25 Town Hall (Stop temporarily closed)\n\nStop 26 Australian Museum \n\nStop 27 100 William Street\n\nStop 28 Paddington Town Hall\n\nStop 29 Centennial Parklands\n\nStop 30 Bondi Beach\n\nStop 31 North Bondi\n\nStop 32 Rose Bay\n\nStop 33 Double Bay\n\nStop 24 Central Station\nLocation Address: Central Station on Eddy Avenue\n\nDirections: Information for Cruise Ship Passengers: \n\nDepending on where your ship is docking, the closest stops to board the Big Bus are: \n\nFor ships docked at the Overseas Passenger Terminal: Stop 23 The Rocks\n\nFor White Bay Terminal Customers shuttled to SEA LIFE Sydney Aquairum: Stop 19 SEA LIFE Sydney Aquarium\n\nFor White Bay Terminal Customers shuttled to Dawes Point: Stop 22 Sydney Harbour Bridge\n"
}
}, - "timeZone": "Australia/Sydney",
- "description": "Explore Sydney and Bondi Beach on this hop-on hop-off sightseeing tour, which takes you by double-decker bus to 34 stops around the city including Sydney Opera House, Sydney Harbour Bridge, Darling Harbour, Bondi Beach and more. Enjoy unobstructed views and recorded commentary on board. Simply hop off to walk around and sightsee in depth. Your ticket is valid for 24 or 48 hours, so you can experience Sydney and Bondi's most noteworthy attractions, sights, and shopping and dining areas at your own pace.",
- "inclusions": [
- {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Up to 23 stops to Hop-on and Hop-off "
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Pre-recorded commentary in English, French, Spanish, German, Italian, Mandarin, Japanese, Korean"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Choice of 24 hour or 48 hour pass"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "4 Merlin Attractions with Deluxe Plus: Tower Eye, Madame Tussauds, Sea Life Aquarium, Sydney Zoo"
}
], - "exclusions": [
- {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Food and drinks"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Admission"
}
], - "additionalInfo": [
- {
- "type": "WHEELCHAIR_ACCESSIBLE",
- "description": "Wheelchair accessible"
}, - {
- "type": "STROLLER_ACCESSIBLE",
- "description": "Infants and small children can ride in a pram or stroller"
}, - {
- "type": "PUBLIC_TRANSPORTATION_NEARBY",
- "description": "Public transportation options are available nearby"
}, - {
- "type": "INFANTS_MUST_SIT_ON_LAPS",
- "description": "Infants are required to sit on an adult’s lap"
}, - {
- "type": "TRANSPORTATION_WHEELCHAIR_ACCESSIBLE",
- "description": "Transportation options are wheelchair accessible"
}, - {
- "type": "SURFACES_WHEELCHAIR_ACCESSIBLE",
- "description": "All areas and surfaces are wheelchair accessible"
}, - {
- "type": "PHYSICAL_EASY",
- "description": "Suitable for all physical fitness levels"
}, - {
- "type": "OTHER",
- "description": "When booking the 24 or 48 hour Family Pass, only the lead passenger name is required for a booking of up to 2 Adults and 2 children 16 years and under. At time of booking you only need to enter 1 adult to complete your booking"
}, - {
- "type": "OTHER",
- "description": "Infants aged 0 to 4 years travel free of charge"
}
], - "cancellationPolicy": {
- "type": "STANDARD",
- "description": "For a full refund, cancel at least 24 hours before the scheduled departure time.",
- "cancelIfBadWeather": false,
- "cancelIfInsufficientTravelers": false,
- "refundEligibility": [
- {
- "dayRangeMin": 1,
- "percentageRefundable": 100
}, - {
- "dayRangeMin": 0,
- "dayRangeMax": 1,
- "percentageRefundable": 0
}
]
}, - "bookingConfirmationSettings": {
- "bookingCutoffType": "CLOSING_TIME",
- "bookingCutoffInMinutes": 0,
- "confirmationType": "INSTANT"
}, - "bookingRequirements": {
- "minTravelersPerBooking": 1,
- "maxTravelersPerBooking": 9,
- "requiresAdultForBooking": false
}, - "languageGuides": [
- {
- "type": "AUDIO",
- "language": "de",
- "legacyGuide": "de/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ko",
- "legacyGuide": "ko/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "cmn",
- "legacyGuide": "cmn/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ja",
- "legacyGuide": "ja/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "en",
- "legacyGuide": "en/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "it",
- "legacyGuide": "it/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "fr",
- "legacyGuide": "fr/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "es",
- "legacyGuide": "es/SERVICE_AUDIO"
}
], - "bookingQuestions": [
- "PICKUP_POINT",
- "SPECIAL_REQUIREMENTS"
], - "tags": [
- 20226,
- 21957,
- 21954,
- 12011,
- 21953,
- 11930,
- 12075,
- 21951,
- 21952,
- 21955,
- 21960,
- 12058
], - "destinations": [
- {
- "ref": "357",
- "primary": true
}
], - "itinerary": {
- "itineraryType": "HOP_ON_HOP_OFF",
- "skipTheLine": false,
- "privateTour": false,
- "duration": {
- "fixedDurationInMinutes": 90
}, - "routes": [
- {
- "operatingSchedule": "1st bus departs from Stop 1 Circular Quay at 10.00am.\nFrequency every approx. 2hrs\nLast bus departs from stop 1 at 2.00pm\n\nWe have introduced a number of new health & safety measures to reduce the risk associated with the spread of Covid-19 in line with government advice and requirements of the local health authorities. These include regular cleaning of buses and social distancing measures.\n\nTo uphold these new safety and hygiene standards in keeping our guests safe during the Covid-19 Pandemic, we may have to operate a reduced service and changes to ticket inclusions. This may also include frequency of departures, changes to routes and reduction/removal of stops.\n\nCustomers are advised to visit our website or to download our app to find out more about our new health and safety measures and for the most update service information.",
- "duration": {
- "fixedDurationInMinutes": 90
}, - "name": "Red Route - Sydney Icons",
- "stops": [
- {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5K7G12Q1llmLrmRJIk0TdocBlTVEtwme9qSWX6C278au"
}, - "description": "Circular Quay, George St, cnr Alfred St. (opp DFS Galleria)"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5HJ50dRnnDILDxHC0aDaFxp7pTMyhWhGCLGcIKI9V5BA"
}, - "description": "Sydney Tower/ Westfield"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Mv6/3Z1RgMBjz9oqxyhztkA6KfIY6OeeBp2qBzILHki"
}, - "description": "Australian Museum"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5GfD9/r94v5E7ec6JhnTyPBYBVIlTPe90wri6KfBJ/3r"
}, - "description": "William St, Kings Cross"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5EArKxA8IGKJOAtvZA9gnG293GkjeAbMJpoT5DSKVehb"
}, - "description": "Kings Cross Train Station on Darlinghurst Rd."
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5P7POvXGTsgLr6rGhJvV1wLWD9oxK1S8ZuFp0s3YwlJE"
}, - "description": "El Alamein Fountain"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5ACff5Q2zP9vFXOw9FH3eF7yRd7bGGRtyk2lqFhlREAt"
}, - "description": "Cowper Wharf Rd, outside the Woollomooloo Hotel"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5I5AE5g4LP5dY98J8ghN4/vPyoUmNn0HAueiT/4BsTiA"
}, - "description": "Sydney Opera House"
}, - {
- "stopLocation": {
- "ref": "LOC-RaYlfRSLaIsd0SlazqDQk8e54+y7uNF4J0I11kE8Ii8cwkm0vCSG+ZztYfJJRbt0KTk0NysGp6dMWXv4p77oUmK3coCyUqu6DXxO76qTrWsLalj/zVmVD2J+1NP6fLzuMq0WIkTksMvfwmuPHz2N9rNji8WDeSEgjNKqwoFyCRIDqCtU5RfaZK9jt8drOR43"
}, - "description": "Botanical Garden, Scenic Walk to Mrs Macquarie Chair"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5LRwqJKFdYT/NE2veaGkHLWENZDuCwCCiRLcjTd7PqGY"
}, - "description": "State Library"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5BbfWr/ii8iOxx2DStje8nHIdx9CAh7gf7NPEIFCHKL1"
}, - "description": "Hyde Park"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5FI1mHyCaXwS9wxehYVQCOOTTK4QPvyWSsuyJVy56VaP"
}, - "description": "Central Station, Pitt Street, Bus Bay 18"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5NHfg7MK3dZMTjtjXEnP5D/jV7Yy7mPzODBPDoeVZr9e"
}, - "description": "Powerhouse Museum"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5HBLzybR31ZsrP5qW3qwBjRHx6ntCZRNm8cOOvKxxGyd"
}, - "description": "Harris St, cnr Pyrmont Bridge Rd"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5DX5DvzbKukJ55Me52VGaWSV8CWqkzPk6r2wuRX3U3yA"
}, - "description": "The Star Casino"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5HpFZkDuM/qUVqhNXtjdmVzLEhp+BkbuI8eNpIbpbFqX"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5PGU0wAVQ0RW8MeIV5ohu7OBBjnRF+BV8/noyelhf/VY"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5LPxfFx4wrlGiogB0uCdwnR8xwXSMViDV9xHSZFXwlgF"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5CNRoVowNq5eTkOjeSjSf9EwwqEbn2u377NW1YQ+RvtO"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5BNxjJyUZVdmHdWkDLSLjPyXs3j6l/Vqe3GSLEHU9HRp"
}, - "description": "Kings Street Wharf"
}, - {
- "stopLocation": {
- "ref": "LOC-RaYlfRSLaIsd0SlazqDQk4LV2eLlxVCe/1kX91/IlstRTqHdLI0/0vzEAOQaCcSUjmQIRfYW00qGw6sm037L4jV0gLdiqLx7h3dOq3ZyyCuQBdMO3uEtHX3dHjSNC6AS8nW6DHvbz7JX4X6Stw784gMC89fy0iCGSReZVvB4zexP75e3NmpGZ9dYuPlDINoN"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5I9yyQO1tqD6mYvR0+/R3hfkBFH5QSJjP1VJ0a/86OPO"
}, - "description": "Sydney Harbour Bridge"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5OiZZJfU/dyO0L+ERI/TFlA102O66T1JygFmomnS5cve"
}, - "description": ""
}
], - "pointsOfInterest": [
- {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyGniY1cnTSNGXvoWDyr5vhs="
}, - "attractionId": 14165
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyCzyo6wwCKGRHcxNqYlfatw="
}, - "attractionId": 13157
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyHJe5R5nK3iDf2MIKn5yhsk="
}, - "attractionId": 283
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyBvBUWF3oTuQ+A4WgL/BbWE="
}, - "attractionId": 299
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyHLWgpJJiuuNR8fSoRCktCk="
}
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyHB77jr9RLFsREdqFdB0ns0="
}, - "attractionId": 297
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyEOSe30+PQplXmvYDB6Y69o="
}, - "attractionId": 285
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyPjdOMb6oyegNKsCaMW+mC8="
}, - "attractionId": 293
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyJAUw730EjP5mWrCgpu+F0E="
}, - "attractionId": 13185
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyCEGaRsghN+Rpgi6nKCvmYM="
}, - "attractionId": 8355
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyHH90UK3yOaKctqyRQZnZas="
}, - "attractionId": 292
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyOpVZOtDzRIQN0hQemyFBDs="
}
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyEppV2gz4/8Tq3G15eOtfUM="
}, - "attractionId": 14103
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyKFpdgR8oQgOUV8gzqyVpVo="
}
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyKPQsNtBopr25P980NGeKOQ="
}, - "attractionId": 298
}
]
}, - {
- "operatingSchedule": "1st bus departs from Stop 12/24 Central Station at 10.15am.\nFrequency every 2hrs\nLast bus departs from stop 12/24 at 2.15pm",
- "duration": {
- "fixedDurationInMinutes": 90
}, - "name": "Blue Route - Bondi Lifestyle",
- "stops": [
- {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Psa0O7zv6as2RgNgIaUx0EFjKH/7fL3wV6nAS8iPXkO"
}, - "description": "Central Station, Pitt Street, Bus Bay 18"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Mv6/3Z1RgMBjz9oqxyhztkA6KfIY6OeeBp2qBzILHki"
}, - "description": "Australian Museum "
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Nh4BzPY4JhOxIuD4/Do8pUJ7t+9MCl62rbq6KVnaek/"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5HyrAalNU3M4hS1T1NGhMtCdFsSEh+RkFpJBmFZX9No8"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5ADNeEAMR25x+3AtosA/mPk102O66T1JygFmomnS5cve"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5DlsAklW6JtKr4LQsnhsvv7JxEYbLQWAsKDqTrCu41p4"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5BLsCa3M6INxXNpkE2r1BTHxvB0gY1MP6WB9Yxso16Ot"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5PrdhQ/J96Gq+dweFD3sOSrkBFH5QSJjP1VJ0a/86OPO"
}, - "description": ""
}
], - "pointsOfInterest": [
- {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyIiKlXuqcCaUR/8Ng7CZSLI="
}, - "attractionId": 14159
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyOEUrjaNrfQuPK4sfYmEGio="
}
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyPTry/4ZvItH2jj+ziZ16zY="
}
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyCs+n26oP6pvXz2mRpQ6QlA="
}
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyI5+u+JgfxCzNB+Yaph1xug="
}
}
]
}
]
}, - "productOptions": [
- {
- "productOptionCode": "48HOUR",
- "description": "48 Hour Premium Ticket: Unlimited use on Big Bus Sydney & Bondi Tour for 48 hours from time of first use PLUS a guided walking tour of The Rocks, Syd",
- "title": "48 Hour Premium Ticket ",
- "languageGuides": [
- {
- "type": "AUDIO",
- "language": "cmn",
- "legacyGuide": "cmn/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "fr",
- "legacyGuide": "fr/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ko",
- "legacyGuide": "ko/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ja",
- "legacyGuide": "ja/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "it",
- "legacyGuide": "it/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "en",
- "legacyGuide": "en/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "de",
- "legacyGuide": "de/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "es",
- "legacyGuide": "es/SERVICE_AUDIO"
}
]
}, - {
- "productOptionCode": "TG1",
- "description": "Hop-on Hop-Off and Attractions: 48hr Big Bus Tours, 1-day Hop-On Hop-Off Harbour Cruise, 4 Attractions: Tower Eye, Madame Tussauds, Wildlife Zoo, Aquarium<br/>Duration: 2 days<br/>2 routes: Sydney & Bondi Beach",
- "title": "48Hour Deluxe PLUS Attractions",
- "languageGuides": [
- {
- "type": "AUDIO",
- "language": "cmn",
- "legacyGuide": "cmn/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "fr",
- "legacyGuide": "fr/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ko",
- "legacyGuide": "ko/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ja",
- "legacyGuide": "ja/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "it",
- "legacyGuide": "it/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "en",
- "legacyGuide": "en/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "de",
- "legacyGuide": "de/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "es",
- "legacyGuide": "es/SERVICE_AUDIO"
}
]
}, - {
- "productOptionCode": "DELUXE",
- "description": "Big Bus and Habour Cruise: Combine two great Sydney experiences into one with a hop-on hop off Big Bus Tours and a hop-on hop-off Sydney Harbour cruise <br/>2 routes: Sydney & Bondi Beach",
- "title": "48 Hour Deluxe Bus and Cruise",
- "languageGuides": [
- {
- "type": "AUDIO",
- "language": "cmn",
- "legacyGuide": "cmn/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "fr",
- "legacyGuide": "fr/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ko",
- "legacyGuide": "ko/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ja",
- "legacyGuide": "ja/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "it",
- "legacyGuide": "it/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "en",
- "legacyGuide": "en/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "de",
- "legacyGuide": "de/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "es",
- "legacyGuide": "es/SERVICE_AUDIO"
}
]
}, - {
- "productOptionCode": "TG2",
- "description": "Suggested Start point: Departure from Stop 1 - Circular Quay, George St (opposite DFS Galleria near the corner of Alfred St) at 10am, 12pm and 2pm.<br/>Duration: 1 day<br/>Red Route: Limited Hop on Hop off with stops around the city including Sydney Opera House, Sydney Harbour Bridge, Darling Harbour & more<br/>One Free Child Ticket: For a limited time, you get one free child tickets with every adult ticket purchased.",
- "title": "Sydney Highlights Tour",
- "languageGuides": [
- {
- "type": "AUDIO",
- "language": "cmn",
- "legacyGuide": "cmn/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "fr",
- "legacyGuide": "fr/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ko",
- "legacyGuide": "ko/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ja",
- "legacyGuide": "ja/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "it",
- "legacyGuide": "it/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "en",
- "legacyGuide": "en/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "de",
- "legacyGuide": "de/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "es",
- "legacyGuide": "es/SERVICE_AUDIO"
}
]
}, - {
- "productOptionCode": "24HOUR",
- "description": "Unlimited use on Big Bus Sydney & Bondi Hop-on Hop-off Tour for 24 hours from time of first use",
- "title": "24 Hour Classic Ticket ",
- "languageGuides": [
- {
- "type": "AUDIO",
- "language": "cmn",
- "legacyGuide": "cmn/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "fr",
- "legacyGuide": "fr/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ko",
- "legacyGuide": "ko/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ja",
- "legacyGuide": "ja/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "it",
- "legacyGuide": "it/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "en",
- "legacyGuide": "en/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "de",
- "legacyGuide": "de/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "es",
- "legacyGuide": "es/SERVICE_AUDIO"
}
]
}
], - "translationInfo": {
- "containsMachineTranslatedText": false
}, - "supplier": {
- "name": "Big Bus Tours"
}, - "reviews": {
- "sources": [
- {
- "provider": "VIATOR",
- "reviewCounts": [
- {
- "rating": 1,
- "count": 36
}, - {
- "rating": 2,
- "count": 100
}, - {
- "rating": 3,
- "count": 169
}, - {
- "rating": 4,
- "count": 390
}, - {
- "rating": 5,
- "count": 578
}
], - "totalCount": 1273,
- "averageRating": 4
}
], - "reviewCountTotals": [
- {
- "rating": 1,
- "count": 36
}, - {
- "rating": 2,
- "count": 100
}, - {
- "rating": 3,
- "count": 169
}, - {
- "rating": 4,
- "count": 390
}, - {
- "rating": 5,
- "count": 578
}
], - "totalReviews": 1273,
- "combinedAverageRating": 4
}, - "viatorUniqueContent": {
- "shortDescription": "Join a hop-on hop-off sightseeing tour by double-decker bus to discover the highlights of Sydney and Bondi Beach. Enjoy unobstructed views and recorded onboard commentary as you travel along two routes to top destinations like Sydney Harbour Bridge, Sydney Opera House, Darling Harbour, and Bondi Beach. Go in-depth at any given place by simply hopping off the bus to explore. You can experience Sydney and Bondi's most noteworthy attractions at your own pace with your choice of ticket, valid for either 24 or 48 hours.",
- "longDescription": "The warm and mild year-round climate in Sydney and Bondi makes the open-air double-decker bus tour an ideal sightseeing option. Travel to numerous Sydney highlights, including the historic Rocks district, Sydney Opera House, Sydney Harbour Bridge and Sydney’s CBD (Central Business District). Bondi Beach is a suburb with a popular beach located just east of Sydney’s city center. Enjoy the spacious beach and warm sea, or check out the cafes, restaurants, and shops around town, many with fantastic ocean views. \n\nHop off the bus to browse the stores in modern shopping areas or admire local institutions like the bustling Sydney Fish Market. Stretch your legs as you stroll around the Royal Botanic Gardens or take tree-shaded paths through Hyde Park. \n\nHop aboard the open-top, double-decker bus at any of the conveniently located stops around the city. Enjoy pre-recorded commentary, available in several languages, as you sit back and relax on the full ride. Hop off the bus to explore any given destination at your own pace.\n\nThe Sydney and Bondi tours connect at Cook and Phillip Park, 100 William Street or Central Station stop. Tickets are valid for 24 or 48 hours from first use. Please check the current schedule for operating hours; the bus does not operate 24 hours per day. Families can save with the Family Pass, which is valid for two adults and two children.",
- "insiderTips": "This tour takes you to Sydney’s top destinations so you don’t have to worry about transportation.",
- "highlights": [
- "Big Bus hop-on hop-off bus tour of Sydney and Bondi Beach\n",
- "Enjoy great views of Sydney's highlights from the open-top, double-decker bus",
- "Learn about Sydney's sights and history from onboard pre-recorded commentary\n",
- "Sightsee at your own pace with your ticket that is valid for 24 or 48 hours"
]
}
}
]
Get full product details for a single product.
Note:
status
description to toggle between an "ACTIVE"
and "INACTIVE"
product response.Example: Get details for "Big Bus Sydney and Bondi Hop-on Hop-off Tour" (product code: 5010SYDNEY):
GET https://api.sandbox.viator.com/partner/products/5010SYDNEY
(Response samples generated on: 2021-03-29)
product-code required | string Retrieve details of the product identified by this product code |
campaign-value | string <= 200 characters Affiliate partners only: Specifies the campaign tracking identifier that will be appended to the URL returned in Note: If you wish to use a campaign value that includes non-alphanumeric characters (e.g., '+', '-', etc.), you must URL-encode these characters. |
target-lander | string Affiliate partners only: Specifies the type of landing page customers will be shown when opening the link provided in the Ordinarily, when customers follow the link in Available values:
Our recommendation is for you to allow the default behavior by not including this parameter, unless you have a specific technical or business requirement to do so. |
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
status required | string (ProductStatus) Machine-interpretable value indicating this product's current availablility; one of:
|
productCode required | string(?s).*[\S].* Code that is the unique identifier for this product.
|
language | string Code indicating the language into which the natural-language fields in this response will be translated (if necessary) |
createdAt required | string <date-time> Timestamp (UTC) indicating when this product was originally created
|
lastUpdatedAt | string <date-time> Timestamp (UTC) indicating the most recent occasion of this product's details being modified
|
title | string Title of this product
|
required | object (TicketInfo) Ticket/voucher details for this product |
required | object (PricingInfo) Ticket/voucher details for this product |
Array of objects (Image) Images for this product | |
required | object (Logistics) Logistics details for this product |
timeZone required | string(?s).*[\S].* Code for the time zone in which this product operates (IANA TZ database name format)
|
description required | string(?s).*[\S].* Description of this product
|
Array of objects Features that are included with this product package
| |
Array of objects Features that are not included with this product package | |
required | Array of objects (AdditionalInfo) Facts necessary to communicate to travelers regarding this product. Note: Items included only if they apply, if they do not apply they will not be included in the response. |
required | object (CancellationPolicy) Cancellation policy details for this product. |
required | object (BookingConfirmationSettings) How this product's bookings are confirmed For more information, see Booking concepts – Booking cutoff times |
required | object (BookingRequirements) Passenger type and number requirements for booking |
Array of objects (LanguageGuide) Language guides available for this product across all product option codes | |
bookingQuestions required | Array of strings Array of machine-interpretable values specifying the facts that the traveler must provide when booking this product; further details can be retrieved via the /products/booking-questions endpoint |
tags required | Array of integers Array of numeric tag identifiers indicating the product categories into which this product falls To retrieve details about which tags these identifiers refer to, please use the /products/tags endpoint. |
required | Array of objects (Destination) Destinations – i.e., cities, states, countries and regions – in which this product can be considered to operate |
object (Itinerary) Details about the places this product visits See: Key concepts – Itineraries for more information | |
Array of objects (ProductOption) Product options (tour grades) available for this product For more information see: Key concepts: Product options | |
object (TranslationDetails) Information about whether the text in this response was machine-translated | |
required | object (Supplier) Supplier details |
productUrl | string URL for this product on the viator.com site, where the customer will complete their booking. This URL includes all the necessary information for viator to correctly attribute and pay commission for the sale to the referring partner. If For more information, see our guide to Affiliate Attribution on the Viator Partner Resource Center. Note:
|
required | object (ProductReviews) Summary of reviews and ratings for this product Note:
|
object (ViatorUniqueContent) Product details unique to Viator.com Note:
|
{- "status": "ACTIVE",
- "productCode": "5010SYDNEY",
- "language": "en",
- "createdAt": "2008-01-22T08:00:00Z",
- "title": "Big Bus Sydney and Bondi Hop-on Hop-off Tour",
- "ticketInfo": {
- "ticketTypes": [
- "MOBILE_ONLY"
], - "ticketTypeDescription": "Mobile or paper ticket accepted",
- "ticketsPerBooking": "ONE_PER_BOOKING",
- "ticketsPerBookingDescription": "One per booking"
}, - "pricingInfo": {
- "type": "PER_PERSON",
- "ageBands": [
- {
- "ageBand": "INFANT",
- "startAge": 0,
- "endAge": 4,
- "minTravelersPerBooking": 0,
- "maxTravelersPerBooking": 9
}, - {
- "ageBand": "CHILD",
- "startAge": 5,
- "endAge": 15,
- "minTravelersPerBooking": 0,
- "maxTravelersPerBooking": 9
}, - {
- "ageBand": "ADULT",
- "startAge": 16,
- "endAge": 99,
- "minTravelersPerBooking": 0,
- "maxTravelersPerBooking": 9
}
]
}, - "images": [
- {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": true,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Sydney and Bondi Hop-On Hop-Off Tour",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "The Rocks",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Bondi Beach",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Selfies at Bondi Beach",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Visit icons",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Big Bus App provides live tracking",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}, - {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": false,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}
], - "logistics": {
- "redemption": {
- "redemptionType": "NONE",
- "specialInstructions": "Sydney tours depart and finish at Stop 1. First tour starts at 10am, frequency every 2hrs\n\nDeparture point: Board the bus at any of the following stops:\n\nSydney Route\nStop 1 Circular Quay \nStop 2 Sydney Tower/Westfield Sydney\nStop 3 Cook and Phillip Park/Australian Museum\nStop 4 William Street\nStop 5 Kings Cross\nStop 6 El Alamein Fountain\nStop 7 Woolloomooloo\nStop 8 Sydney Opera House\nStop 9 Botanic Gardens\nStop 10 State Library\nStop 11 Hyde Park North\nStop 12 Central Station\nStop 13 Power House Museum\nStop 14 Sydney Fish Markets\nStop 15 The Star\nStop 16 Maritime Museum\nStop 17 International Convention Centre\nStop 18 Chinese Gardens/Chinatown\nStop 19 SEA LIFE Sydney Aquarium\nStop 20 King Street Wharf\nStop 21 Barangaroo\nStop 22 Sydney Harbour Bridge\nStop 23 The Rocks\n\nFor Cruise Ship Passengers:\nThe Overseas Passenger Terminal: Stop 23 The Rocks\nFor White Bay Terminal Customers shuttled to SEA LIFE Sydney Aquarium: Stop 19 SEA LIFE Sydney Aquarium\nFor White Bay Terminal Customers shuttled to Dawes Point: Stop 22 Sydney Harbour Bridge\n\nWe have introduced a number of new health & safety measures to reduce the risk associated with the spread of Covid-19 in line with government advice and requirements of the local health authorities. These include regular cleaning of buses & social distancing measures. To uphold these new safety and hygiene standards in keeping our guests safe during the Covid-19 Pandemic, we may have to operate a reduced service and changes to ticket inclusions. This may also include frequency of departures, changes to routes & reduction/removal of stops. Customers are advised to visit our website or download our app to find out more on the new health & safety measures\n*Departure and frequency subject to change"
}, - "travelerPickup": {
- "pickupOptionType": "PICKUP_AND_MEET_AT_START_POINT",
- "allowCustomTravelerPickup": true,
- "locations": [
- {
- "location": {
- "ref": "MEET_AT_DEPARTURE_POINT"
}, - "pickupType": "OTHER"
}, - {
- "location": {
- "ref": "CONTACT_SUPPLIER_LATER"
}, - "pickupType": "OTHER"
}
], - "additionalInfo": "Location Name: Main Stops: Central Station or Circular Quay \n\nOR \n\nBoard the bus at any of the following stops:\n\nSydney Route\n\nStop 1 Circular Quay (Corner of Alfred and George Streets)\n\nStop 2 Sydney Tower / Westfield Sydney\n\nStop 3 Cook and Phillip Park / Australian Museum\n\nStop 4 William Street\n\nStop 5 Kings Cross\n\nStop 6 El Almein Fountain\n\nStop 7 Woolloomooloo\n\nStop 8 Sydney Opera House\n\nStop 9 Botanic Gardens\n\nStop 10 State Library\n\nStop 11 Hyde Park North\n\nStop 12 Central Station\n\nStop 13 Power House Museum\n\nStop 14 Sydney Fish Markets\n\nStop 15 The Star\n\nStop 16 Maritime Museum\n\nStop 17 International Convention Centre (ICC) \n\nStop 18 Chinese Gardens / Chinatown\n\nStop 19 SEA LIFE Sydney Aquarium\n\nStop 20 King Street Wharf\n\nStop 21 Barangaroo\n\nStop 22 Sydney Harbour Bridge\n\nStop 23 The Rocks\n\nStop 1 Circular Quay (Corner of Alfred and George Streets)\n\nBondi Tour \n\nStop 24 Central Station\n\nStop 25 Town Hall (Stop temporarily closed)\n\nStop 26 Australian Museum \n\nStop 27 100 William Street\n\nStop 28 Paddington Town Hall\n\nStop 29 Centennial Parklands\n\nStop 30 Bondi Beach\n\nStop 31 North Bondi\n\nStop 32 Rose Bay\n\nStop 33 Double Bay\n\nStop 24 Central Station\nLocation Address: Central Station on Eddy Avenue\n\nDirections: Information for Cruise Ship Passengers: \n\nDepending on where your ship is docking, the closest stops to board the Big Bus are: \n\nFor ships docked at the Overseas Passenger Terminal: Stop 23 The Rocks\n\nFor White Bay Terminal Customers shuttled to SEA LIFE Sydney Aquairum: Stop 19 SEA LIFE Sydney Aquarium\n\nFor White Bay Terminal Customers shuttled to Dawes Point: Stop 22 Sydney Harbour Bridge\n"
}
}, - "timeZone": "Australia/Sydney",
- "description": "Explore Sydney and Bondi Beach on this hop-on hop-off sightseeing tour, which takes you by double-decker bus to 34 stops around the city including Sydney Opera House, Sydney Harbour Bridge, Darling Harbour, Bondi Beach and more. Enjoy unobstructed views and recorded commentary on board. Simply hop off to walk around and sightsee in depth. Your ticket is valid for 24 or 48 hours, so you can experience Sydney and Bondi's most noteworthy attractions, sights, and shopping and dining areas at your own pace.",
- "inclusions": [
- {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Up to 23 stops to Hop-on and Hop-off "
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Pre-recorded commentary in English, French, Spanish, German, Italian, Mandarin, Japanese, Korean"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Choice of 24 hour or 48 hour pass"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "4 Merlin Attractions with Deluxe Plus: Tower Eye, Madame Tussauds, Sea Life Aquarium, Sydney Zoo"
}
], - "exclusions": [
- {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Food and drinks"
}, - {
- "category": "OTHER",
- "categoryDescription": "Other",
- "type": "OTHER",
- "typeDescription": "Other",
- "otherDescription": "Admission"
}
], - "additionalInfo": [
- {
- "type": "WHEELCHAIR_ACCESSIBLE",
- "description": "Wheelchair accessible"
}, - {
- "type": "STROLLER_ACCESSIBLE",
- "description": "Infants and small children can ride in a pram or stroller"
}, - {
- "type": "PUBLIC_TRANSPORTATION_NEARBY",
- "description": "Public transportation options are available nearby"
}, - {
- "type": "INFANTS_MUST_SIT_ON_LAPS",
- "description": "Infants are required to sit on an adult’s lap"
}, - {
- "type": "TRANSPORTATION_WHEELCHAIR_ACCESSIBLE",
- "description": "Transportation options are wheelchair accessible"
}, - {
- "type": "SURFACES_WHEELCHAIR_ACCESSIBLE",
- "description": "All areas and surfaces are wheelchair accessible"
}, - {
- "type": "PHYSICAL_EASY",
- "description": "Suitable for all physical fitness levels"
}, - {
- "type": "OTHER",
- "description": "When booking the 24 or 48 hour Family Pass, only the lead passenger name is required for a booking of up to 2 Adults and 2 children 16 years and under. At time of booking you only need to enter 1 adult to complete your booking"
}, - {
- "type": "OTHER",
- "description": "Infants aged 0 to 4 years travel free of charge"
}
], - "cancellationPolicy": {
- "type": "STANDARD",
- "description": "For a full refund, cancel at least 24 hours before the scheduled departure time.",
- "cancelIfBadWeather": false,
- "cancelIfInsufficientTravelers": false,
- "refundEligibility": [
- {
- "dayRangeMin": 1,
- "percentageRefundable": 100
}, - {
- "dayRangeMin": 0,
- "dayRangeMax": 1,
- "percentageRefundable": 0
}
]
}, - "bookingConfirmationSettings": {
- "bookingCutoffType": "CLOSING_TIME",
- "bookingCutoffInMinutes": 0,
- "confirmationType": "INSTANT"
}, - "bookingRequirements": {
- "minTravelersPerBooking": 1,
- "maxTravelersPerBooking": 9,
- "requiresAdultForBooking": false
}, - "languageGuides": [
- {
- "type": "AUDIO",
- "language": "de",
- "legacyGuide": "de/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ko",
- "legacyGuide": "ko/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "cmn",
- "legacyGuide": "cmn/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ja",
- "legacyGuide": "ja/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "en",
- "legacyGuide": "en/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "it",
- "legacyGuide": "it/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "fr",
- "legacyGuide": "fr/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "es",
- "legacyGuide": "es/SERVICE_AUDIO"
}
], - "bookingQuestions": [
- "PICKUP_POINT",
- "SPECIAL_REQUIREMENTS"
], - "tags": [
- 20226,
- 21957,
- 21954,
- 12011,
- 21953,
- 11930,
- 12075,
- 21951,
- 21952,
- 21955,
- 21960,
- 12058
], - "destinations": [
- {
- "ref": "357",
- "primary": true
}
], - "itinerary": {
- "itineraryType": "HOP_ON_HOP_OFF",
- "skipTheLine": false,
- "privateTour": false,
- "duration": {
- "fixedDurationInMinutes": 90
}, - "routes": [
- {
- "operatingSchedule": "1st bus departs from Stop 1 Circular Quay at 10.00am.\nFrequency every approx. 2hrs\nLast bus departs from stop 1 at 2.00pm\n\nWe have introduced a number of new health & safety measures to reduce the risk associated with the spread of Covid-19 in line with government advice and requirements of the local health authorities. These include regular cleaning of buses and social distancing measures.\n\nTo uphold these new safety and hygiene standards in keeping our guests safe during the Covid-19 Pandemic, we may have to operate a reduced service and changes to ticket inclusions. This may also include frequency of departures, changes to routes and reduction/removal of stops.\n\nCustomers are advised to visit our website or to download our app to find out more about our new health and safety measures and for the most update service information.",
- "duration": {
- "fixedDurationInMinutes": 90
}, - "name": "Red Route - Sydney Icons",
- "stops": [
- {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5K7G12Q1llmLrmRJIk0TdocBlTVEtwme9qSWX6C278au"
}, - "description": "Circular Quay, George St, cnr Alfred St. (opp DFS Galleria)"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5HJ50dRnnDILDxHC0aDaFxp7pTMyhWhGCLGcIKI9V5BA"
}, - "description": "Sydney Tower/ Westfield"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Mv6/3Z1RgMBjz9oqxyhztkA6KfIY6OeeBp2qBzILHki"
}, - "description": "Australian Museum"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5GfD9/r94v5E7ec6JhnTyPBYBVIlTPe90wri6KfBJ/3r"
}, - "description": "William St, Kings Cross"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5EArKxA8IGKJOAtvZA9gnG293GkjeAbMJpoT5DSKVehb"
}, - "description": "Kings Cross Train Station on Darlinghurst Rd."
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5P7POvXGTsgLr6rGhJvV1wLWD9oxK1S8ZuFp0s3YwlJE"
}, - "description": "El Alamein Fountain"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5ACff5Q2zP9vFXOw9FH3eF7yRd7bGGRtyk2lqFhlREAt"
}, - "description": "Cowper Wharf Rd, outside the Woollomooloo Hotel"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5I5AE5g4LP5dY98J8ghN4/vPyoUmNn0HAueiT/4BsTiA"
}, - "description": "Sydney Opera House"
}, - {
- "stopLocation": {
- "ref": "LOC-RaYlfRSLaIsd0SlazqDQk8e54+y7uNF4J0I11kE8Ii8cwkm0vCSG+ZztYfJJRbt0KTk0NysGp6dMWXv4p77oUmK3coCyUqu6DXxO76qTrWsLalj/zVmVD2J+1NP6fLzuMq0WIkTksMvfwmuPHz2N9rNji8WDeSEgjNKqwoFyCRIDqCtU5RfaZK9jt8drOR43"
}, - "description": "Botanical Garden, Scenic Walk to Mrs Macquarie Chair"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5LRwqJKFdYT/NE2veaGkHLWENZDuCwCCiRLcjTd7PqGY"
}, - "description": "State Library"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5BbfWr/ii8iOxx2DStje8nHIdx9CAh7gf7NPEIFCHKL1"
}, - "description": "Hyde Park"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5FI1mHyCaXwS9wxehYVQCOOTTK4QPvyWSsuyJVy56VaP"
}, - "description": "Central Station, Pitt Street, Bus Bay 18"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5NHfg7MK3dZMTjtjXEnP5D/jV7Yy7mPzODBPDoeVZr9e"
}, - "description": "Powerhouse Museum"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5HBLzybR31ZsrP5qW3qwBjRHx6ntCZRNm8cOOvKxxGyd"
}, - "description": "Harris St, cnr Pyrmont Bridge Rd"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5DX5DvzbKukJ55Me52VGaWSV8CWqkzPk6r2wuRX3U3yA"
}, - "description": "The Star Casino"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5HpFZkDuM/qUVqhNXtjdmVzLEhp+BkbuI8eNpIbpbFqX"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5PGU0wAVQ0RW8MeIV5ohu7OBBjnRF+BV8/noyelhf/VY"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5LPxfFx4wrlGiogB0uCdwnR8xwXSMViDV9xHSZFXwlgF"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5CNRoVowNq5eTkOjeSjSf9EwwqEbn2u377NW1YQ+RvtO"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5BNxjJyUZVdmHdWkDLSLjPyXs3j6l/Vqe3GSLEHU9HRp"
}, - "description": "Kings Street Wharf"
}, - {
- "stopLocation": {
- "ref": "LOC-RaYlfRSLaIsd0SlazqDQk4LV2eLlxVCe/1kX91/IlstRTqHdLI0/0vzEAOQaCcSUjmQIRfYW00qGw6sm037L4jV0gLdiqLx7h3dOq3ZyyCuQBdMO3uEtHX3dHjSNC6AS8nW6DHvbz7JX4X6Stw784gMC89fy0iCGSReZVvB4zexP75e3NmpGZ9dYuPlDINoN"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5I9yyQO1tqD6mYvR0+/R3hfkBFH5QSJjP1VJ0a/86OPO"
}, - "description": "Sydney Harbour Bridge"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5OiZZJfU/dyO0L+ERI/TFlA102O66T1JygFmomnS5cve"
}, - "description": ""
}
], - "pointsOfInterest": [
- {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyGniY1cnTSNGXvoWDyr5vhs="
}, - "attractionId": 14165
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyCzyo6wwCKGRHcxNqYlfatw="
}, - "attractionId": 13157
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyHJe5R5nK3iDf2MIKn5yhsk="
}, - "attractionId": 283
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyBvBUWF3oTuQ+A4WgL/BbWE="
}, - "attractionId": 299
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyHLWgpJJiuuNR8fSoRCktCk="
}
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyHB77jr9RLFsREdqFdB0ns0="
}, - "attractionId": 297
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyEOSe30+PQplXmvYDB6Y69o="
}, - "attractionId": 285
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyPjdOMb6oyegNKsCaMW+mC8="
}, - "attractionId": 293
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyJAUw730EjP5mWrCgpu+F0E="
}, - "attractionId": 13185
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyCEGaRsghN+Rpgi6nKCvmYM="
}, - "attractionId": 8355
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyHH90UK3yOaKctqyRQZnZas="
}, - "attractionId": 292
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyOpVZOtDzRIQN0hQemyFBDs="
}
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyEppV2gz4/8Tq3G15eOtfUM="
}, - "attractionId": 14103
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyKFpdgR8oQgOUV8gzqyVpVo="
}
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyKPQsNtBopr25P980NGeKOQ="
}, - "attractionId": 298
}
]
}, - {
- "operatingSchedule": "1st bus departs from Stop 12/24 Central Station at 10.15am.\nFrequency every 2hrs\nLast bus departs from stop 12/24 at 2.15pm",
- "duration": {
- "fixedDurationInMinutes": 90
}, - "name": "Blue Route - Bondi Lifestyle",
- "stops": [
- {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Psa0O7zv6as2RgNgIaUx0EFjKH/7fL3wV6nAS8iPXkO"
}, - "description": "Central Station, Pitt Street, Bus Bay 18"
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Mv6/3Z1RgMBjz9oqxyhztkA6KfIY6OeeBp2qBzILHki"
}, - "description": "Australian Museum "
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5Nh4BzPY4JhOxIuD4/Do8pUJ7t+9MCl62rbq6KVnaek/"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5HyrAalNU3M4hS1T1NGhMtCdFsSEh+RkFpJBmFZX9No8"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5ADNeEAMR25x+3AtosA/mPk102O66T1JygFmomnS5cve"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5DlsAklW6JtKr4LQsnhsvv7JxEYbLQWAsKDqTrCu41p4"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5BLsCa3M6INxXNpkE2r1BTHxvB0gY1MP6WB9Yxso16Ot"
}, - "description": ""
}, - {
- "stopLocation": {
- "ref": "LOC-o0AXGEKPN4wJ9sIG0RAn5PrdhQ/J96Gq+dweFD3sOSrkBFH5QSJjP1VJ0a/86OPO"
}, - "description": ""
}
], - "pointsOfInterest": [
- {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyIiKlXuqcCaUR/8Ng7CZSLI="
}, - "attractionId": 14159
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyOEUrjaNrfQuPK4sfYmEGio="
}
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyPTry/4ZvItH2jj+ziZ16zY="
}
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyCs+n26oP6pvXz2mRpQ6QlA="
}
}, - {
- "location": {
- "ref": "LOC-6eKJ+or5y8o99Qw0C8xWyI5+u+JgfxCzNB+Yaph1xug="
}
}
]
}
]
}, - "productOptions": [
- {
- "productOptionCode": "48HOUR",
- "description": "48 Hour Premium Ticket: Unlimited use on Big Bus Sydney & Bondi Tour for 48 hours from time of first use PLUS a guided walking tour of The Rocks, Syd",
- "title": "48 Hour Premium Ticket ",
- "languageGuides": [
- {
- "type": "AUDIO",
- "language": "cmn",
- "legacyGuide": "cmn/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "fr",
- "legacyGuide": "fr/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ko",
- "legacyGuide": "ko/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ja",
- "legacyGuide": "ja/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "it",
- "legacyGuide": "it/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "en",
- "legacyGuide": "en/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "de",
- "legacyGuide": "de/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "es",
- "legacyGuide": "es/SERVICE_AUDIO"
}
]
}, - {
- "productOptionCode": "TG1",
- "description": "Hop-on Hop-Off and Attractions: 48hr Big Bus Tours, 1-day Hop-On Hop-Off Harbour Cruise, 4 Attractions: Tower Eye, Madame Tussauds, Wildlife Zoo, Aquarium<br/>Duration: 2 days<br/>2 routes: Sydney & Bondi Beach",
- "title": "48Hour Deluxe PLUS Attractions",
- "languageGuides": [
- {
- "type": "AUDIO",
- "language": "cmn",
- "legacyGuide": "cmn/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "fr",
- "legacyGuide": "fr/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ko",
- "legacyGuide": "ko/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ja",
- "legacyGuide": "ja/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "it",
- "legacyGuide": "it/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "en",
- "legacyGuide": "en/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "de",
- "legacyGuide": "de/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "es",
- "legacyGuide": "es/SERVICE_AUDIO"
}
]
}, - {
- "productOptionCode": "DELUXE",
- "description": "Big Bus and Habour Cruise: Combine two great Sydney experiences into one with a hop-on hop off Big Bus Tours and a hop-on hop-off Sydney Harbour cruise <br/>2 routes: Sydney & Bondi Beach",
- "title": "48 Hour Deluxe Bus and Cruise",
- "languageGuides": [
- {
- "type": "AUDIO",
- "language": "cmn",
- "legacyGuide": "cmn/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "fr",
- "legacyGuide": "fr/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ko",
- "legacyGuide": "ko/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ja",
- "legacyGuide": "ja/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "it",
- "legacyGuide": "it/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "en",
- "legacyGuide": "en/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "de",
- "legacyGuide": "de/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "es",
- "legacyGuide": "es/SERVICE_AUDIO"
}
]
}, - {
- "productOptionCode": "TG2",
- "description": "Suggested Start point: Departure from Stop 1 - Circular Quay, George St (opposite DFS Galleria near the corner of Alfred St) at 10am, 12pm and 2pm.<br/>Duration: 1 day<br/>Red Route: Limited Hop on Hop off with stops around the city including Sydney Opera House, Sydney Harbour Bridge, Darling Harbour & more<br/>One Free Child Ticket: For a limited time, you get one free child tickets with every adult ticket purchased.",
- "title": "Sydney Highlights Tour",
- "languageGuides": [
- {
- "type": "AUDIO",
- "language": "cmn",
- "legacyGuide": "cmn/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "fr",
- "legacyGuide": "fr/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ko",
- "legacyGuide": "ko/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ja",
- "legacyGuide": "ja/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "it",
- "legacyGuide": "it/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "en",
- "legacyGuide": "en/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "de",
- "legacyGuide": "de/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "es",
- "legacyGuide": "es/SERVICE_AUDIO"
}
]
}, - {
- "productOptionCode": "24HOUR",
- "description": "Unlimited use on Big Bus Sydney & Bondi Hop-on Hop-off Tour for 24 hours from time of first use",
- "title": "24 Hour Classic Ticket ",
- "languageGuides": [
- {
- "type": "AUDIO",
- "language": "cmn",
- "legacyGuide": "cmn/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "fr",
- "legacyGuide": "fr/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ko",
- "legacyGuide": "ko/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "ja",
- "legacyGuide": "ja/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "it",
- "legacyGuide": "it/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "en",
- "legacyGuide": "en/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "de",
- "legacyGuide": "de/SERVICE_AUDIO"
}, - {
- "type": "AUDIO",
- "language": "es",
- "legacyGuide": "es/SERVICE_AUDIO"
}
]
}
], - "translationInfo": {
- "containsMachineTranslatedText": false
}, - "supplier": {
- "name": "Big Bus Tours"
}, - "reviews": {
- "sources": [
- {
- "provider": "VIATOR",
- "reviewCounts": [
- {
- "rating": 1,
- "count": 36
}, - {
- "rating": 2,
- "count": 100
}, - {
- "rating": 3,
- "count": 169
}, - {
- "rating": 4,
- "count": 390
}, - {
- "rating": 5,
- "count": 578
}
], - "totalCount": 1273,
- "averageRating": 4
}
], - "reviewCountTotals": [
- {
- "rating": 1,
- "count": 36
}, - {
- "rating": 2,
- "count": 100
}, - {
- "rating": 3,
- "count": 169
}, - {
- "rating": 4,
- "count": 390
}, - {
- "rating": 5,
- "count": 578
}
], - "totalReviews": 1273,
- "combinedAverageRating": 4
}, - "viatorUniqueContent": {
- "shortDescription": "Join a hop-on hop-off sightseeing tour by double-decker bus to discover the highlights of Sydney and Bondi Beach. Enjoy unobstructed views and recorded onboard commentary as you travel along two routes to top destinations like Sydney Harbour Bridge, Sydney Opera House, Darling Harbour, and Bondi Beach. Go in-depth at any given place by simply hopping off the bus to explore. You can experience Sydney and Bondi's most noteworthy attractions at your own pace with your choice of ticket, valid for either 24 or 48 hours.",
- "longDescription": "The warm and mild year-round climate in Sydney and Bondi makes the open-air double-decker bus tour an ideal sightseeing option. Travel to numerous Sydney highlights, including the historic Rocks district, Sydney Opera House, Sydney Harbour Bridge and Sydney’s CBD (Central Business District). Bondi Beach is a suburb with a popular beach located just east of Sydney’s city center. Enjoy the spacious beach and warm sea, or check out the cafes, restaurants, and shops around town, many with fantastic ocean views. \n\nHop off the bus to browse the stores in modern shopping areas or admire local institutions like the bustling Sydney Fish Market. Stretch your legs as you stroll around the Royal Botanic Gardens or take tree-shaded paths through Hyde Park. \n\nHop aboard the open-top, double-decker bus at any of the conveniently located stops around the city. Enjoy pre-recorded commentary, available in several languages, as you sit back and relax on the full ride. Hop off the bus to explore any given destination at your own pace.\n\nThe Sydney and Bondi tours connect at Cook and Phillip Park, 100 William Street or Central Station stop. Tickets are valid for 24 or 48 hours from first use. Please check the current schedule for operating hours; the bus does not operate 24 hours per day. Families can save with the Family Pass, which is valid for two adults and two children.",
- "insiderTips": "This tour takes you to Sydney’s top destinations so you don’t have to worry about transportation.",
- "highlights": [
- "Big Bus hop-on hop-off bus tour of Sydney and Bondi Beach\n",
- "Enjoy great views of Sydney's highlights from the open-top, double-decker bus",
- "Learn about Sydney's sights and history from onboard pre-recorded commentary\n",
- "Sightsee at your own pace with your ticket that is valid for 24 or 48 hours"
]
}
}
Get details for all tags (includes all languages/localizations) Tags should be cached and refreshed weekly.
To learn more about tags, see this article: Viator tags, explained
Note: If no response is received for a given tag reference, this means that the tag was removed from our database and the associated product has not yet been updated with a replacement tag. If this occurs, please disregard the removed tag.
Note: The example response has been truncated to five entries for brevity.
(Response sample generated on: 2020-08-25)
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
required | Array of objects (TagWithAllLocalizations) |
{- "tags": [
- {
- "tagId": 11980,
- "allNamesByLocale": {
- "de": "Mehrtägige Touren von Mailand an die italienische Riviera",
- "no": "Turer over flere dager fra Milan til den italienske riviera",
- "sv": "Turer på flera dagar till italienska rivieran från Milano",
- "pt": "Viagens de um dia para a Riviera Italiana saindo de Milão",
- "en_AU": "Italian Riviera Multi Day Trips from Milan",
- "en": "Italian Riviera Multi Day Trips from Milan",
- "it": "Escursioni di più giorni sulla riviera ligure da Milano",
- "fr": "Excursions de plusieurs jours sur la riviera italienne depuis Milan",
- "en_UK": "Italian Riviera Multi Day Trips from Milan",
- "es": "Excursiones de varios días a la Riviera italiana desde Milán",
- "zh": "米兰至意大利里维埃拉多日游",
- "zh_HK": "米蘭出發意大利里維埃拉多日遊",
- "zh_TW": "米蘭出發的義大利里維耶拉一日遊",
- "ja": "ミラノ発イタリアン リヴィエラの複数日にまたがるツアー",
- "zh_CN": "米兰至意大利里维埃拉多日游",
- "da": "Flerdagesture til Den Italienske Riviera fra Milano",
- "nl": "Meerdaagse tochten naar de Italiaanse Rivièra vanaf Milaan"
}
}, - {
- "tagId": 21768,
- "parentTagIds": [
- 21701,
- 21913
], - "allNamesByLocale": {
- "de": "Landausflüge",
- "no": "Utflukter på land",
- "sv": "Utflykter i land",
- "pt": "Excursões de cruzeiro",
- "en_AU": "Shore Excursions",
- "en": "Shore Excursions",
- "it": "Escursioni a terra",
- "fr": "Excursions en bord de mer",
- "en_UK": "Shore Excursions",
- "es": "Excursiones por la costa",
- "zh": "岸上游览",
- "zh_HK": "海岸短程旅行",
- "zh_TW": "岸上觀光",
- "ja": "寄港地観光",
- "zh_CN": "岸上游览",
- "da": "Kystudflugter",
- "nl": "Kustexcursies"
}
}, - {
- "tagId": 21767,
- "parentTagIds": [
- 12040,
- 21912
], - "allNamesByLocale": {
- "de": "Schwimmwettbewerbe",
- "no": "Svømmekonkurranser",
- "sv": "Simningstävlingar",
- "pt": "Competições de natação",
- "en_AU": "Swimming Competitions",
- "en": "Swimming Competitions",
- "it": "Gare di nuoto",
- "fr": "Compétitions de natation",
- "en_UK": "Swimming Competitions",
- "es": "Competiciones de natación",
- "zh": "游泳比赛",
- "zh_HK": "游泳比賽",
- "zh_TW": "游泳比賽",
- "ja": "水泳大会",
- "zh_CN": "游泳比赛",
- "da": "Svømmekonkurrencer",
- "nl": "Zwemwedstrijden"
}
}, - {
- "tagId": 21766,
- "parentTagIds": [
- 12040,
- 21912
], - "allNamesByLocale": {
- "de": "Snowboard-Wettbewerbe",
- "no": "Konkurranser i snøbrettkjøring",
- "sv": "Snowboardtävlingar",
- "pt": "Competições de snowboard",
- "en_AU": "Snowboarding Competitions",
- "en": "Snowboarding Competitions",
- "it": "Gare di snowboard",
- "fr": "Compétitions de snowboard",
- "en_UK": "Snowboarding Competitions",
- "es": "Competiciones de snowboard",
- "zh": "单板滑雪竞赛",
- "zh_HK": "單板滑雪競賽",
- "zh_TW": "滑雪板比賽",
- "ja": "スノーボード大会",
- "zh_CN": "单板滑雪竞赛",
- "da": "Snowboardkonkurrencer",
- "nl": "Snowboardwedstrijden"
}
}, - {
- "tagId": 11966,
- "parentTagIds": [
- 21442,
- 21909,
- 21715,
- 21913
], - "allNamesByLocale": {
- "de": "Fahrten im Glasbodenboot",
- "no": "Båtturer med glassbunn",
- "sv": "Rundturer med glasbottenbåt",
- "pt": "Passeios em barcos com fundo de vidro",
- "en_AU": "Glass Bottom Boat Tours",
- "en": "Glass Bottom Boat Tours",
- "it": "Escursioni in barca con il fondo in vetro",
- "fr": "Tours en bateau à fond vitré",
- "en_UK": "Glass Bottom Boat Tours",
- "es": "Paseos en barco con fondo de cristal",
- "zh": "玻璃底小船游览",
- "zh_HK": "玻璃船旅遊",
- "zh_TW": "玻璃船遊覽",
- "ja": "グラスボトムボートツアー",
- "zh_CN": "玻璃底小船游览",
- "da": "Airboat-ture",
- "nl": "Tours in boot met glazen bodem"
}
}, - {
- "tagId": 11965,
- "parentTagIds": [
- 11890,
- 21911,
- 21442,
- 21909,
- 21701,
- 21913
], - "allNamesByLocale": {
- "de": "Bootstouren mit Abendessen",
- "no": "Middagscruise",
- "sv": "Middagskryssningar",
- "pt": "Cruzeiros com jantar",
- "en_AU": "Dinner Cruises",
- "en": "Dinner Cruises",
- "it": "Crociere con cena",
- "fr": "Dîners-croisières",
- "en_UK": "Dinner Cruises",
- "es": "Cruceros con cena",
- "zh": "晚餐游览船",
- "zh_HK": "晚餐郵輪",
- "zh_TW": "晚餐郵輪之旅",
- "ja": "ディナークルーズ",
- "zh_CN": "晚餐游览船",
- "da": "Sejlture med middag",
- "nl": "Dinercruises"
}
}, - {
- "tagId": 11968,
- "parentTagIds": [
- 21442,
- 21909,
- 21715,
- 21913
], - "allNamesByLocale": {
- "de": "Airboat-Touren",
- "no": "Luftbåt-turer",
- "sv": "Träskbåtsturer",
- "pt": "Passeios de aerobarco",
- "en_AU": "Airboat Tours",
- "en": "Airboat Tours",
- "it": "Gite in idroscivolante",
- "fr": "Circuits en hydroglisseur",
- "en_UK": "Airboat Tours",
- "es": "Recorridos en hidrodeslizador",
- "zh": "飞艇游览",
- "zh_HK": "汽船旅遊",
- "zh_TW": "汽船遊覽",
- "ja": "エアボートツアー",
- "zh_CN": "飞艇游览",
- "da": "Luftbådsture",
- "nl": "Moerasboottours"
}
}, - {
- "tagId": 11967,
- "parentTagIds": [
- 21442,
- 21909,
- 11890,
- 21911,
- 21701,
- 21913
], - "allNamesByLocale": {
- "de": "Bootstouren mit Brunch",
- "no": "Brunsjcruise",
- "sv": "Brunchkryssningar",
- "pt": "Cruzeiros com brunch",
- "en_AU": "Brunch Cruises",
- "en": "Brunch Cruises",
- "it": "Crociere con brunch",
- "fr": "Croisières brunch",
- "en_UK": "Brunch Cruises",
- "es": "Cruceros con brunch",
- "zh": "早午餐游览船",
- "zh_HK": "早午餐郵輪",
- "zh_TW": "早午餐郵輪之旅",
- "ja": "ブランチクルーズ",
- "zh_CN": "早午餐游览船",
- "da": "Sejlture med brunch",
- "nl": "Brunchcruises"
}
}
]
}
Get full details of all available preset booking questions. Booking questions should be cached and refreshed monthly.
Note: This endpoint is only available to affiliate partners with API access level "Full Access + Booking" and merchant partners.
(Response sample generated on: 2020-08-25)
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
required | Array of objects (BookingQuestion) Booking questions for this product |
{- "bookingQuestions": [
- {
- "legacyBookingQuestionId": 1,
- "id": "DATE_OF_BIRTH",
- "type": "DATE",
- "group": "PER_TRAVELER",
- "label": "Date of birth",
- "required": "MANDATORY",
- "maxLength": 100
}, - {
- "legacyBookingQuestionId": 2,
- "id": "HEIGHT",
- "type": "NUMBER_AND_UNIT",
- "group": "PER_TRAVELER",
- "label": "Traveler height in feet or centimeters (required for safety reasons)",
- "units": [
- "cm",
- "ft"
], - "required": "MANDATORY",
- "maxLength": 50
}, - {
- "legacyBookingQuestionId": 3,
- "id": "PASSPORT_EXPIRY",
- "type": "DATE",
- "group": "PER_TRAVELER",
- "label": "Passport expiration date",
- "required": "MANDATORY",
- "maxLength": 100
}, - {
- "legacyBookingQuestionId": 4,
- "id": "PASSPORT_NATIONALITY",
- "type": "STRING",
- "group": "PER_TRAVELER",
- "label": "Passport country of issue",
- "hint": "E.g. Australia, China",
- "required": "MANDATORY",
- "maxLength": 255
}, - {
- "legacyBookingQuestionId": 5,
- "id": "PASSPORT_PASSPORT_NO",
- "type": "STRING",
- "group": "PER_TRAVELER",
- "label": "Passport number",
- "hint": "E.g. 0123456, 6543210",
- "required": "MANDATORY",
- "maxLength": 255
}, - {
- "legacyBookingQuestionId": 6,
- "id": "PICKUP_POINT",
- "type": "LOCATION_REF_OR_FREE_TEXT",
- "group": "PER_BOOKING",
- "label": "Hotel pickup",
- "hint": "E.g. 1234 Cedar Way, Brooklyn NY 00123",
- "units": [
- "LOCATION_REFERENCE",
- "FREETEXT"
], - "required": "CONDITIONAL",
- "maxLength": 1000
}, - {
- "legacyBookingQuestionId": 7,
- "id": "TRANSFER_AIR_ARRIVAL_AIRLINE",
- "type": "STRING",
- "group": "PER_BOOKING",
- "label": "Name of arrival airline",
- "hint": "E.g. United Airlines",
- "required": "CONDITIONAL",
- "maxLength": 255
}, - {
- "legacyBookingQuestionId": 8,
- "id": "TRANSFER_AIR_ARRIVAL_FLIGHT_NO",
- "type": "STRING",
- "group": "PER_BOOKING",
- "label": "Arrival flight number",
- "hint": "E.g. UA864",
- "required": "CONDITIONAL",
- "maxLength": 255
}, - {
- "legacyBookingQuestionId": 9,
- "id": "TRANSFER_AIR_DEPARTURE_AIRLINE",
- "type": "STRING",
- "group": "PER_BOOKING",
- "label": "Name of departure airline",
- "hint": "E.g. United Airlines",
- "required": "CONDITIONAL",
- "maxLength": 255
}, - {
- "legacyBookingQuestionId": 10,
- "id": "TRANSFER_AIR_DEPARTURE_FLIGHT_NO",
- "type": "STRING",
- "group": "PER_BOOKING",
- "label": "Departure flight number",
- "hint": "E.g. UA864",
- "required": "CONDITIONAL",
- "maxLength": 255
}, - {
- "legacyBookingQuestionId": 11,
- "id": "TRANSFER_ARRIVAL_DROP_OFF",
- "type": "LOCATION_REF_OR_FREE_TEXT",
- "group": "PER_BOOKING",
- "label": "Dropoff address",
- "hint": "E.g. 1234 Cedar Way, Brooklyn NY 00123",
- "units": [
- "LOCATION_REFERENCE",
- "FREETEXT"
], - "required": "CONDITIONAL",
- "maxLength": 1000
}, - {
- "legacyBookingQuestionId": 12,
- "id": "TRANSFER_ARRIVAL_TIME",
- "type": "TIME",
- "group": "PER_BOOKING",
- "label": "Arrival time",
- "required": "CONDITIONAL",
- "maxLength": 100
}, - {
- "legacyBookingQuestionId": 13,
- "id": "TRANSFER_DEPARTURE_DATE",
- "type": "DATE",
- "group": "PER_BOOKING",
- "label": "Departure date",
- "required": "CONDITIONAL",
- "maxLength": 100
}, - {
- "legacyBookingQuestionId": 14,
- "id": "TRANSFER_DEPARTURE_PICKUP",
- "type": "LOCATION_REF_OR_FREE_TEXT",
- "group": "PER_BOOKING",
- "label": "Pickup address",
- "hint": "E.g. 1234 Cedar Way, Brooklyn NY 00123",
- "units": [
- "LOCATION_REFERENCE",
- "FREETEXT"
], - "required": "CONDITIONAL",
- "maxLength": 1000
}, - {
- "legacyBookingQuestionId": 15,
- "id": "TRANSFER_DEPARTURE_TIME",
- "type": "TIME",
- "group": "PER_BOOKING",
- "label": "Departure time",
- "required": "CONDITIONAL",
- "maxLength": 100
}, - {
- "legacyBookingQuestionId": 16,
- "id": "TRANSFER_PORT_ARRIVAL_TIME",
- "type": "TIME",
- "group": "PER_BOOKING",
- "label": "Disembarkation time",
- "required": "CONDITIONAL",
- "maxLength": 100
}, - {
- "legacyBookingQuestionId": 17,
- "id": "TRANSFER_PORT_CRUISE_SHIP",
- "type": "STRING",
- "group": "PER_BOOKING",
- "label": "Name of cruise ship",
- "hint": "E.g. Brilliance of the Seas",
- "required": "CONDITIONAL",
- "maxLength": 255
}, - {
- "legacyBookingQuestionId": 18,
- "id": "TRANSFER_PORT_DEPARTURE_TIME",
- "type": "STRING",
- "group": "PER_BOOKING",
- "label": "Boarding time",
- "required": "CONDITIONAL",
- "maxLength": 100
}, - {
- "legacyBookingQuestionId": 19,
- "id": "TRANSFER_RAIL_ARRIVAL_LINE",
- "type": "TIME",
- "group": "PER_BOOKING",
- "label": "Name of arrival rail provider",
- "hint": "E.g. Amtrak",
- "required": "CONDITIONAL",
- "maxLength": 255
}, - {
- "legacyBookingQuestionId": 20,
- "id": "TRANSFER_RAIL_ARRIVAL_STATION",
- "type": "STRING",
- "group": "PER_BOOKING",
- "label": "Name of arrival station",
- "hint": "E.g. Central Station",
- "required": "CONDITIONAL",
- "maxLength": 255
}, - {
- "legacyBookingQuestionId": 21,
- "id": "TRANSFER_RAIL_DEPARTURE_LINE",
- "type": "TIME",
- "group": "PER_BOOKING",
- "label": "Name of departure rail provider",
- "hint": "E.g. Amtrak",
- "required": "CONDITIONAL",
- "maxLength": 255
}, - {
- "legacyBookingQuestionId": 22,
- "id": "TRANSFER_RAIL_DEPARTURE_STATION",
- "type": "STRING",
- "group": "PER_BOOKING",
- "label": "Name of departure station",
- "hint": "E.g. Central Station",
- "required": "CONDITIONAL",
- "maxLength": 255
}, - {
- "legacyBookingQuestionId": 23,
- "id": "WEIGHT",
- "type": "NUMBER_AND_UNIT",
- "group": "PER_TRAVELER",
- "label": "Traveler weight in pounds or kilograms (required for safety reasons)",
- "units": [
- "kg",
- "lbs"
], - "required": "MANDATORY",
- "maxLength": 50
}, - {
- "legacyBookingQuestionId": 24,
- "id": "FULL_NAMES_FIRST",
- "type": "STRING",
- "group": "PER_TRAVELER",
- "label": "First name",
- "required": "MANDATORY",
- "maxLength": 50
}, - {
- "legacyBookingQuestionId": 25,
- "id": "FULL_NAMES_LAST",
- "type": "STRING",
- "group": "PER_TRAVELER",
- "label": "Last name",
- "required": "MANDATORY",
- "maxLength": 50
}, - {
- "legacyBookingQuestionId": 26,
- "id": "DISEMBARKATION_TIME",
- "type": "TIME",
- "group": "PER_BOOKING",
- "label": "Disembarkation time",
- "required": "MANDATORY",
- "maxLength": 100
}, - {
- "legacyBookingQuestionId": 27,
- "id": "SPECIAL_REQUIREMENTS",
- "type": "STRING",
- "group": "PER_BOOKING",
- "label": "Special requirements",
- "required": "OPTIONAL",
- "maxLength": 1000
}, - {
- "legacyBookingQuestionId": 30,
- "id": "AGEBAND",
- "type": "STRING",
- "group": "PER_TRAVELER",
- "label": "Age band",
- "allowedAnswers": [
- "ADULT",
- "SENIOR",
- "YOUTH",
- "CHILD",
- "INFANT",
- "TRAVELER"
], - "required": "MANDATORY",
- "maxLength": 50
}, - {
- "legacyBookingQuestionId": 31,
- "id": "TRANSFER_ARRIVAL_MODE",
- "type": "STRING",
- "group": "PER_BOOKING",
- "label": "Arrival mode",
- "allowedAnswers": [
- "AIR",
- "RAIL",
- "SEA",
- "OTHER"
], - "required": "MANDATORY",
- "maxLength": 50
}, - {
- "legacyBookingQuestionId": 32,
- "id": "TRANSFER_DEPARTURE_MODE",
- "type": "STRING",
- "group": "PER_BOOKING",
- "label": "Departure mode",
- "allowedAnswers": [
- "AIR",
- "RAIL",
- "SEA"
], - "required": "MANDATORY",
- "maxLength": 50
}
]
}
Returns a list of filtered, ordered and sorted product summaries for products that match the given search criteria. This endpoint must not be used to ingest the catalog of products, the /products/modified-since endpoint must be used for that purpose.
If you’re a Basic Access Affiliate Partner, this endpoint provides all the essential functionality that you need to implement in order to use the Viator API. The following article describes how to do this in the most efficient way: Golden Path – Basic Access Affiliate Partners.
Note: At present, only active products are returned
campaign-value | string <= 200 characters Affiliate partners only: Specifies the campaign tracking identifier that will be appended to the URL returned in Note: If you wish to use a campaign value that includes non-alphanumeric characters (e.g., '+', '-', etc.), you must URL-encode these characters. |
target-lander | string Affiliate partners only: Specifies the type of landing page customers will be shown when opening the link provided in the Ordinarily, when customers follow the link in Available values:
Our recommendation is for you to allow the default behavior by not including this parameter, unless you have a specific technical or business requirement to do so. |
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
required | object (ProductSearchFiltering) Only return products that match all the criteria provided here. |
object (ProductSearchSorting) How the search results will be sorted | |
object (ProductSearchPagination) Pagination details specifying which search results to return based on start position and item count | |
currency required | string <currency> Currency code for all prices provided in the request; and, the currency in which all pricing will be denominated in the response. One of:
Note: The currency you display to your users may not be the currency they see when they click through to the viator.com site. Instead, they will see the default currency for the locale from which they are accessing the site. |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
required | Array of objects (ProductSummary) List of products matching the filtering criteria, sorted and paginated as specified in the request |
totalCount | integer Total number of products matching the filtering criteria – these may be accessed via multiple calls to this service using the pagination feature. |
{- "filtering": {
- "destination": "732",
- "tags": [
- 21972
], - "flags": [
- "LIKELY_TO_SELL_OUT",
- "FREE_CANCELLATION"
], - "lowestPrice": 5,
- "highestPrice": 500,
- "startDate": "2023-01-30",
- "endDate": "2023-02-28",
- "includeAutomaticTranslations": true,
- "confirmationType": "INSTANT",
- "durationInMinutes": {
- "from": 20,
- "to": 360
}, - "rating": {
- "from": 3,
- "to": 5
}
}, - "sorting": {
- "sort": "TRAVELER_RATING",
- "order": "DESCENDING"
}, - "pagination": {
- "start": 1,
- "count": 5
}, - "currency": "USD"
}
{- "products": [
- {
- "productCode": "62330P2",
- "title": "Private 4 Hour Tour of Edinburgh in a Spacious 6-seater Mercedes",
- "description": "During your private 4-Hour Tour soak up the amazing sights of both the Old and New Town of Edinburgh. You will be shown around in a comfortable and spacious vehicle by one of our experienced driver-guides. \n\nThis private tour is perfect for the visitor who has limited time and who wants to see all of the major attractions. You will have time to get out, walk around and take photos and to learn about this beautiful medieval city from your guide. \n\nOr perhaps, you are a visitor who simply wants a shorter tour to orientate yourself to the layout of the city with hints and tips from your guide on the best places to visit, eat and shop in your own time. Here are just some of the places that you will be able to stop at on your tour:\n\nEdinburgh Castle\n\nGrassmarket\n\nGreyfriars Bobby\n\nRoyal Mile\n\nSt Giles Cathedral\n\nMercat Cross\n\nPalace of Holyrood House\n\nArthur's Seat\n\nCalton Hill\n\nWalter Scott Monument\n\nNew Town\n\nDean Village",
- "images": [
- {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Your Guide and Vehicle",
- "isCover": true,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}
], - "reviews": {
- "sources": [
- {
- "provider": "VIATOR",
- "totalCount": 9,
- "averageRating": 5
}, - {
- "provider": "TRIPADVISOR",
- "totalCount": 44,
- "averageRating": 5
}
], - "totalReviews": 53,
- "combinedAverageRating": 5
}, - "duration": {
- "fixedDurationInMinutes": 240
}, - "confirmationType": "INSTANT",
- "itineraryType": "STANDARD",
- "pricing": {
- "summary": {
- "fromPrice": 402.32,
- "fromPriceBeforeDiscount": 402.32
}, - "currency": "USD"
}, - "destinations": [
- {
- "ref": "739",
- "primary": true
}
], - "tags": [
- 21946,
- 11930,
- 21956,
- 21951,
- 21955,
- 21960,
- 12029,
- 11938,
- 20757,
- 21952,
- 22083,
- 11929,
- 12028,
- 11941,
- 21972
], - "flags": [
- "FREE_CANCELLATION",
- "PRIVATE_TOUR",
- "LIKELY_TO_SELL_OUT"
], - "translationInfo": {
- "containsMachineTranslatedText": false,
- "translationSource": "ORIGINAL"
}
}, - {
- "productCode": "196210P1",
- "title": "Award-winning circular cycle tour of Edinburgh! ",
- "description": "This is a cycle tour you won't find anywhere else. I shall take you where other tourists will not know about. There are other cycle tours in Edinburgh, but as I take small groups, you will be able to go at your own pace, ask as many questions as you like and take numerous photos without pressure of being rushed. This tour requires you to be able to cycle for a maximum distance of 20 miles with regular stops and at a slow -steady pace. This tour is not suitable for under 12 years. From Craigmillar Caste, to the stunning Dean Village, Leith and Portobello, you will be cycling through all the 'must-see' parts of Edinburgh that are off the tourist trail. E-bikes can be hired at an additional cost of £15pp cash on the day. Please let me know if you would like this option. (If you think you would prefer a shorter tour, please check out our 'cycle tour to the coast' which is 12 miles, 3 hours)",
- "images": [
- {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Foothills of Arthur's Seat, our extinct Volcano ",
- "isCover": true,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}
], - "reviews": {
- "sources": [
- {
- "provider": "VIATOR",
- "totalCount": 2,
- "averageRating": 5
}, - {
- "provider": "TRIPADVISOR",
- "totalCount": 37,
- "averageRating": 5
}
], - "totalReviews": 39,
- "combinedAverageRating": 5
}, - "duration": {
- "fixedDurationInMinutes": 270
}, - "confirmationType": "INSTANT",
- "itineraryType": "ACTIVITY",
- "pricing": {
- "summary": {
- "fromPrice": 87.89,
- "fromPriceBeforeDiscount": 87.89
}, - "currency": "USD"
}, - "destinations": [
- {
- "ref": "739",
- "primary": true
}
], - "tags": [
- 21946,
- 22083,
- 12046,
- 21702,
- 21860,
- 21972,
- 11911
], - "flags": [
- "FREE_CANCELLATION"
], - "translationInfo": {
- "containsMachineTranslatedText": false,
- "translationSource": "ORIGINAL"
}
}, - {
- "productCode": "196210P3",
- "title": "Award-winning cycle tour to Edinburgh's coast ",
- "description": "Leanne, your guide will ensure we go at your pace, ask as many questions as you like and enjoy the ride with your little ones, without the feeling of being rushed in a large group.\nLeanne can modify the route to suit your families' ability and the beauty of this ride is that is it mainly on dedicated cycle paths. This is a fun ride with the promise of an ice cream (or coffee!) on the beach or inside to warm up if in winter. It is a 10 mile round trip. \n",
- "images": [
- {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": true,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}
], - "reviews": {
- "sources": [
- {
- "provider": "VIATOR",
- "totalCount": 2,
- "averageRating": 5
}, - {
- "provider": "TRIPADVISOR",
- "totalCount": 28,
- "averageRating": 5
}
], - "totalReviews": 30,
- "combinedAverageRating": 5
}, - "duration": {
- "fixedDurationInMinutes": 180
}, - "confirmationType": "INSTANT",
- "itineraryType": "ACTIVITY",
- "pricing": {
- "summary": {
- "fromPrice": 71.8,
- "fromPriceBeforeDiscount": 71.8
}, - "currency": "USD"
}, - "destinations": [
- {
- "ref": "739",
- "primary": true
}
], - "tags": [
- 21946,
- 22083,
- 12046,
- 21702,
- 21860,
- 21972,
- 11911
], - "flags": [
- "FREE_CANCELLATION"
], - "translationInfo": {
- "containsMachineTranslatedText": false,
- "translationSource": "ORIGINAL"
}
}, - {
- "productCode": "3830P1",
- "title": "Small-Group 90-minute Tour in Greyfriars Kirkyard",
- "description": "Visit the graves of some of the lesser-known characters buried in Greyfriars Kirkyard, including the lecturer who taught Charles Darwin, the actor buried in full theatrical costume, and the First World War ace pilot.\n\nDid you know Greyfriars cemetery has links to golf, the moon ... and turnips? Who was the mysterious Miss Cathcart? Who was the man who fought a duel in London's Hyde Park? Where is the bestselling novelist from the 1770s buried? \n\nAlthough not our main focus, we will also point out the graves with links to Harry Potter on this fascinating walk around Greyfriars cemetery. No pesky ghosts interrupting! ",
- "images": [
- {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": true,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}
], - "reviews": {
- "sources": [
- {
- "provider": "TRIPADVISOR",
- "totalCount": 70,
- "averageRating": 5
}
], - "totalReviews": 70,
- "combinedAverageRating": 4.9857144
}, - "duration": {
- "fixedDurationInMinutes": 90
}, - "confirmationType": "INSTANT",
- "itineraryType": "STANDARD",
- "pricing": {
- "summary": {
- "fromPrice": 18.57,
- "fromPriceBeforeDiscount": 18.57
}, - "currency": "USD"
}, - "destinations": [
- {
- "ref": "739",
- "primary": true
}
], - "tags": [
- 21953,
- 21956,
- 22107,
- 21951,
- 12029,
- 21959,
- 21954,
- 21510,
- 21952,
- 12046,
- 21860,
- 12028,
- 21972
], - "flags": [
- "FREE_CANCELLATION"
], - "translationInfo": {
- "containsMachineTranslatedText": false,
- "translationSource": "ORIGINAL"
}
}, - {
- "productCode": "195458P1",
- "title": "The Chocolatarium Chocolate Tour Experience in Edinburgh",
- "description": "A chocolate experience to remember! \n\nSee and touch the fruit of the chocolate tree, and learn all about how the beans are transformed into delicious chocolate.\n\nHave fun making your own Scottish-themed chocolate to take home! You can even make a chocolate Greyfriar's Bobby, a chocolate Nessie or a chocolate Edinburgh Castle!\n\nNext, come to the tasting room with a wide selection of chocolates from both Scottish and international chocolate makers. There are over 30 varieties to choose from including Haggis chocolate, Japanese chocolate, chilli chocolate, gin chocolate and many, many more. \n\nFinally, wrap your delicious chocolates to take home to enjoy or give as a gift.\n\nChocolate samples are provided throughout the tour. Vegan or milk-free options are available. \n\nSuitable for adults and children aged 6+.\n(Not suitable for children under 6)",
- "images": [
- {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": true,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}
], - "reviews": {
- "sources": [
- {
- "provider": "VIATOR",
- "totalCount": 119,
- "averageRating": 5
}, - {
- "provider": "TRIPADVISOR",
- "totalCount": 1736,
- "averageRating": 5
}
], - "totalReviews": 1855,
- "combinedAverageRating": 4.967116
}, - "duration": {
- "fixedDurationInMinutes": 90
}, - "confirmationType": "INSTANT",
- "itineraryType": "ACTIVITY",
- "pricing": {
- "summary": {
- "fromPrice": 27.23,
- "fromPriceBeforeDiscount": 27.23
}, - "currency": "USD"
}, - "destinations": [
- {
- "ref": "739",
- "primary": true
}
], - "tags": [
- 21571,
- 20757,
- 20205,
- 22083,
- 11890,
- 21860,
- 21972,
- 22097
], - "flags": [
- "FREE_CANCELLATION",
- "LIKELY_TO_SELL_OUT"
], - "translationInfo": {
- "containsMachineTranslatedText": false,
- "translationSource": "ORIGINAL"
}
}
], - "totalCount": 14
}
Get a list of attractions associated with a given destinationId
, along with all relevant information about them, including products mapped.
Attractions should be cached and refreshed weekly.
Note:
campaign-value | string <= 200 characters Affiliate partners only: Specifies the campaign tracking identifier that will be appended to the URL returned in Note: If you wish to use a campaign value that includes non-alphanumeric characters (e.g., '+', '-', etc.), you must URL-encode these characters. |
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
destinationId required | integer Unique numeric identifier of the destination to retrieve attractions for |
object How the search results will be sorted | |
object Pagination details specifying which search results to return based on start position and item count |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
Array of objects (AttractionDetails) | |
totalCount | integer <int32> Total number of products matching the filtering criteria – these may be accessed via multiple calls to this service using the pagination feature |
{- "destinationId": 0,
- "sorting": {
- "sort": "DEFAULT"
}, - "pagination": {
- "start": 1,
- "count": 30
}
}
{- "attractions": [
- {
- "attractionId": 0,
- "name": "string",
- "destinations": [
- {
- "id": 0,
- "primary": true
}
], - "attractionUrl": "string",
- "productCount": 0,
- "productCodes": [
- "string"
], - "images": [
- {
- "height": 0,
- "width": 0,
- "url": "string"
}
], - "reviews": {
- "sources": [
- {
- "provider": "string",
- "reviewCounts": [
- {
- "rating": 0,
- "count": 0
}
], - "totalCount": 0
}
], - "reviewCountTotals": [
- {
- "rating": 0,
- "count": 0
}
], - "totalReviews": 0,
- "combinedAverageRating": 0
}, - "freeAttraction": true,
- "openingHours": "string",
- "viatorUniqueContent": {
- "introduction": "string",
- "overview": {
- "sections": [
- {
- "title": "string",
- "text": "string"
}
]
}
}, - "translationInfo": {
- "containsMachineTranslatedText": true,
- "translationSource": "string",
- "translationAttribution": "string"
}, - "center": {
- "latitude": 0,
- "longitude": 0
}, - "address": {
- "street": "string",
- "city": "string",
- "state": "string",
- "postcode": "string"
}
}
], - "totalCount": 0
}
Get all relevant information about a specific attractionId
, including products mapped.
Note:
campaign-value | string <= 200 characters Affiliate partners only: Specifies the campaign tracking identifier that will be appended to the URL returned in Note: If you wish to use a campaign value that includes non-alphanumeric characters (e.g., '+', '-', etc.), you must URL-encode these characters. |
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
attractionId required | integer Unique numeric identifier for this attraction |
name required | string Natural-language title of this attraction Note: This field contains natural language suitable for display to the user; content will be translated (if necessary) into the language specified in the Accept-Language header parameter |
required | Array of objects Destinations associated with this attraction |
attractionUrl required | string URL to forward users to in order to complete their purchase on the Viator site This URL includes all the necessary information for Viator to correctly attribute and pay commission for the sale to the referring partner. If For more information, see our guide to Affiliate Attribution on the Viator Partner Resource Center. Note:
Example: |
productCount required | integer Number of products associated with the attraction |
productCodes required | Array of strings List of |
required | Array of objects (ImageVariant) Images for this attraction |
object (ProductReviewsSummary) Summary of reviews and ratings for this attraction Note:
| |
freeAttraction | boolean Identifies if a admission fee is required to access this attraction |
openingHours | string This attraction Opening Hours |
object Attraction details unique to Viator.com Note:
| |
object (TranslationDetails) Information about whether the text in this response was machine-translated | |
object (LocationCenter) Geographic coordinates (latitude/longitude) for this location | |
object Address details for this attraction |
{- "attractionId": 0,
- "name": "string",
- "destinations": [
- {
- "id": 0,
- "primary": true
}
], - "attractionUrl": "string",
- "productCount": 0,
- "productCodes": [
- "string"
], - "images": [
- {
- "height": 0,
- "width": 0,
- "url": "string"
}
], - "reviews": {
- "sources": [
- {
- "provider": "string",
- "reviewCounts": [
- {
- "rating": 0,
- "count": 0
}
], - "totalCount": 0
}
], - "reviewCountTotals": [
- {
- "rating": 0,
- "count": 0
}
], - "totalReviews": 0,
- "combinedAverageRating": 0
}, - "freeAttraction": true,
- "openingHours": "string",
- "viatorUniqueContent": {
- "introduction": "string",
- "overview": {
- "sections": [
- {
- "title": "string",
- "text": "string"
}
]
}
}, - "translationInfo": {
- "containsMachineTranslatedText": true,
- "translationSource": "string",
- "translationAttribution": "string"
}, - "center": {
- "latitude": 0,
- "longitude": 0
}, - "address": {
- "street": "string",
- "city": "string",
- "state": "string",
- "postcode": "string"
}
}
Check real-time availability and pricing for a product depending on the date, pax-mix, start time and/or product option.
We recommend using the pricing information returned by this endpoint as the source of truth for the amount you will be invoiced by Viator for the sale of the product in question.
The third response example – 265910P1 (commission payment model) – shows the alternative PriceObject for merchants using the commission payment model.
Note: This service should only be used to determine the availability of a product immediately prior to booking. Bulk operations pertaining to product availability; e.g., generating a calendar of availability for a product, should use the availability schedule endpoints.
(Response sample generated on: 2021-04-06)
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
productCode required | string(?s).*[\S].* Retrieve availability details for the product identified by this product code |
productOptionCode | string Retrieve availability details for the product option (tour grade) identified by this product option code For more information see: Key concepts: Product options |
startTime | string <time> Retrieve availability details only for items that start at this time. If this parameter is omitted, information about all available starting times for the specified date will be included in the response.
|
travelDate required | string <date> Retrieve availability details for items that operate on this date |
currency required | string(?s).*[\S].* Display pricing in the currency identified by this 3-letter code
|
required | Array of objects (PaxMixItem) Passenger-mix information |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
currency required | string(?s).*[\S].* Currency in which pricing is expressed in this response (as specified in the request) |
productCode required | string(?s).*[\S].* Product code of the product that this availability response pertains to |
travelDate required | string <date> Date of travel for all bookable items returned in this response (relative to the time zone in which the product operates) |
required | Array of objects (CheckAvailabilityBookableItem) Bookable items for this product |
{- "productCode": "5010SYDNEY",
- "travelDate": "2020-12-12",
- "currency": "AUD",
- "paxMix": [
- {
- "ageBand": "ADULT",
- "numberOfTravelers": 2
}, - {
- "ageBand": "CHILD",
- "numberOfTravelers": 2
}
]
}
{- "currency": "AUD",
- "productCode": "5010SYDNEY",
- "travelDate": "2021-12-12",
- "bookableItems": [
- {
- "productOptionCode": "TG3",
- "available": true,
- "lineItems": [
- {
- "ageBand": "ADULT",
- "numberOfTravelers": 2,
- "subtotalPrice": {
- "price": {
- "recommendedRetailPrice": 118.5,
- "partnerNetPrice": 93.46
}
}
}, - {
- "ageBand": "CHILD",
- "numberOfTravelers": 2,
- "subtotalPrice": {
- "price": {
- "recommendedRetailPrice": 82,
- "partnerNetPrice": 64.7
}
}
}
], - "totalPrice": {
- "price": {
- "recommendedRetailPrice": 200.5,
- "partnerNetPrice": 158.16,
- "bookingFee": 9.49,
- "partnerTotalPrice": 167.65
}
}
}, - {
- "productOptionCode": "48HOUR",
- "available": true,
- "lineItems": [
- {
- "ageBand": "ADULT",
- "numberOfTravelers": 2,
- "subtotalPrice": {
- "price": {
- "recommendedRetailPrice": 149.4,
- "partnerNetPrice": 117.9
}
}
}, - {
- "ageBand": "CHILD",
- "numberOfTravelers": 2,
- "subtotalPrice": {
- "price": {
- "recommendedRetailPrice": 91.1,
- "partnerNetPrice": 71.88
}
}
}
], - "totalPrice": {
- "price": {
- "recommendedRetailPrice": 240.5,
- "partnerNetPrice": 189.78,
- "bookingFee": 11.39,
- "partnerTotalPrice": 201.17
}
}
}, - {
- "productOptionCode": "TG1",
- "available": true,
- "lineItems": [
- {
- "ageBand": "ADULT",
- "numberOfTravelers": 2,
- "subtotalPrice": {
- "price": {
- "recommendedRetailPrice": 200.5,
- "partnerNetPrice": 158.16
}
}
}, - {
- "ageBand": "CHILD",
- "numberOfTravelers": 2,
- "subtotalPrice": {
- "price": {
- "recommendedRetailPrice": 131.6,
- "partnerNetPrice": 103.84
}
}
}
], - "totalPrice": {
- "price": {
- "recommendedRetailPrice": 332.1,
- "partnerNetPrice": 262,
- "bookingFee": 15.72,
- "partnerTotalPrice": 277.72
}
}
}
]
}
Get availability and pricing details for all product options of the requested product. The pricing is returned in the supplier's currency. We recommend using the /exchange-rates endpoint to get the Viator exchange rates and apply them for pricing conversion.
Note: This endpoint should not be used for ingesting or updating the availability and pricing details for the entire catalog of Viator products. Instead, please use the /availability/schedules/modified-since endpoint for that purpose.
(Response sample generated on: 2021-03-12)
product-code required | string Retrieve availability details for the product identified by this product code |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
productCode required | string(?s).*[\S].* Unique identifier for this product |
required | Array of objects (ProductBookableItemSchedule) Bookable items for this product |
currency required | string(?s).*[\S].* Three letter currency code for all pricing information in this response; based on the supplier's currency. |
required | object (AvailabilityScheduleSummary) Information about the lowest price available for this product Note: The pricing information given here is based on the recommended retail price (RRP). While affiliate partners must sell at this price, merchant partners set their own prices according to their own margins and booking fees; therefore, merchant partners must calculate their own from-price for display, rather than using these values, unless they have elected to sell at the RRP. |
{- "productCode": "5010SYDNEY",
- "bookableItems": [
- {
- "productOptionCode": "TG1",
- "seasons": [
- {
- "startDate": "2021-01-15",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "INFANT",
- "price": {
- "original": {
- "recommendedRetailPrice": 0,
- "partnerNetPrice": 0,
- "bookingFee": 0,
- "partnerTotalPrice": 0
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 65.8,
- "partnerNetPrice": 51.92,
- "bookingFee": 3.12,
- "partnerTotalPrice": 55.04
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 100.25,
- "partnerNetPrice": 79.08,
- "bookingFee": 4.74,
- "partnerTotalPrice": 83.82
}
}
}
], - "unavailableDates": [
- {
- "date": "2021-12-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-05",
- "reason": "SOLD_OUT"
}
]
}
], - "operatingHours": [
- {
- "dayOfWeek": "MONDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "TUESDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "WEDNESDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "THURSDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "FRIDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "SATURDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "SUNDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG3",
- "seasons": [
- {
- "startDate": "2021-03-23",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 41,
- "partnerNetPrice": 32.35,
- "bookingFee": 1.94,
- "partnerTotalPrice": 34.29
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 59.25,
- "partnerNetPrice": 46.73,
- "bookingFee": 2.8,
- "partnerTotalPrice": 49.53
}
}
}
], - "unavailableDates": [
- {
- "date": "2021-08-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-02",
- "reason": "SOLD_OUT"
}
]
}
], - "operatingHours": [
- {
- "dayOfWeek": "MONDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "TUESDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "WEDNESDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "THURSDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "FRIDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "SATURDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "SUNDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}
]
}
]
}, - {
- "productOptionCode": "24HOUR",
- "seasons": [
- {
- "startDate": "2021-02-01",
- "endDate": "2021-04-30",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 38.9,
- "partnerNetPrice": 30.67,
- "bookingFee": 1.84,
- "partnerTotalPrice": 32.51
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 56.15,
- "partnerNetPrice": 44.3,
- "bookingFee": 2.66,
- "partnerTotalPrice": 46.96
}
}
}
], - "unavailableDates": [
- {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}
]
}
], - "operatingHours": [
- {
- "dayOfWeek": "MONDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "TUESDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "WEDNESDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "THURSDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "FRIDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "SATURDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "SUNDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}
]
}
]
}, - {
- "productOptionCode": "48HOUR",
- "seasons": [
- {
- "startDate": "2021-04-01",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "INFANT",
- "price": {
- "original": {
- "recommendedRetailPrice": 0,
- "partnerNetPrice": 0,
- "bookingFee": 0,
- "partnerTotalPrice": 0
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 45.55,
- "partnerNetPrice": 35.94,
- "bookingFee": 2.16,
- "partnerTotalPrice": 38.1
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 74.7,
- "partnerNetPrice": 58.95,
- "bookingFee": 3.54,
- "partnerTotalPrice": 62.49
}
}
}
], - "unavailableDates": [
- {
- "date": "2022-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-08-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-12-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-06-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-09-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-07-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-11-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2022-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-05-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-10-25",
- "reason": "SOLD_OUT"
}
]
}
], - "operatingHours": [
- {
- "dayOfWeek": "MONDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "TUESDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "WEDNESDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "THURSDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "FRIDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "SATURDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "SUNDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}
]
}
]
}
], - "currency": "AUD",
- "summary": {
- "fromPrice": 56.15
}
}
Get availability and pricing details for all product options of all requested products. The pricing is returned in the supplier's currency. We recommend using the /exchange-rates endpoint to get the Viator exchange rates and apply them for pricing conversion.
Note: This endpoint should not be used for ingesting or updating the availability and pricing details for the entire catalog of Viator products. Instead, please use the /availability/schedules/modified-since endpoint for that purpose.
(Response sample generated on: 2021-03-12)
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
productCodes required | Array of strings <= 500 items List of product codes for which to retrieve availability schedules |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
required | Array of objects (ProductAvailabilitySchedule) Array of availability schedule objects |
{- "productCodes": [
- "265910P1",
- "5010SYDNEY"
]
}
{- "availabilitySchedules": [
- {
- "productCode": "265910P1",
- "bookableItems": [
- {
- "productOptionCode": "TG1",
- "seasons": [
- {
- "startDate": "2020-05-22",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "09:30"
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "maxTravelers": 8,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 200,
- "partnerNetPrice": 159.75,
- "bookingFee": 9.58,
- "partnerTotalPrice": 169.33
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "maxTravelers": 8,
- "ageBand": "YOUTH",
- "price": {
- "original": {
- "recommendedRetailPrice": 260,
- "partnerNetPrice": 207.68,
- "bookingFee": 12.46,
- "partnerTotalPrice": 220.14
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 2,
- "maxTravelers": 9,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 400,
- "partnerNetPrice": 319.5,
- "bookingFee": 19.17,
- "partnerTotalPrice": 338.67
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "maxTravelers": 8,
- "ageBand": "SENIOR",
- "price": {
- "original": {
- "recommendedRetailPrice": 350,
- "partnerNetPrice": 279.56,
- "bookingFee": 16.77,
- "partnerTotalPrice": 296.33
}
}
}
]
}
]
}
]
}
], - "currency": "AUD",
- "summary": {
- "fromPrice": 400
}
}, - {
- "productCode": "5010SYDNEY",
- "bookableItems": [
- {
- "productOptionCode": "48HOUR",
- "seasons": [
- {
- "startDate": "2020-12-01",
- "endDate": "2022-03-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "INFANT",
- "price": {
- "original": {
- "recommendedRetailPrice": 0,
- "partnerNetPrice": 0,
- "bookingFee": 0,
- "partnerTotalPrice": 0
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 45,
- "partnerNetPrice": 35.94,
- "bookingFee": 2.16,
- "partnerTotalPrice": 38.1
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 71.1,
- "partnerNetPrice": 56.79,
- "bookingFee": 3.41,
- "partnerTotalPrice": 60.2
}
}
}
], - "unavailableDates": [
- {
- "date": "2020-12-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-16",
- "reason": "SOLD_OUT"
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG1",
- "seasons": [
- {
- "startDate": "2020-12-01",
- "endDate": "2022-03-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 45,
- "partnerNetPrice": 35.94,
- "bookingFee": 2.16,
- "partnerTotalPrice": 38.1
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 135,
- "partnerNetPrice": 107.83,
- "bookingFee": 6.47,
- "partnerTotalPrice": 114.3
}
}
}
], - "unavailableDates": [
- {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}
]
}
]
}
]
}, - {
- "productOptionCode": "DELUXE",
- "seasons": [
- {
- "startDate": "2020-12-01",
- "endDate": "2022-03-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 58.5,
- "partnerNetPrice": 46.72,
- "bookingFee": 2.8,
- "partnerTotalPrice": 49.52
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 89.1,
- "partnerNetPrice": 71.16,
- "bookingFee": 4.27,
- "partnerTotalPrice": 75.43
}
}
}
], - "unavailableDates": [
- {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-12",
- "reason": "SOLD_OUT"
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG2",
- "seasons": [
- {
- "startDate": "2020-07-22",
- "endDate": "2021-03-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "INFANT",
- "price": {
- "original": {
- "recommendedRetailPrice": 0,
- "partnerNetPrice": 0,
- "bookingFee": 0,
- "partnerTotalPrice": 0
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 5,
- "partnerNetPrice": 3.99,
- "bookingFee": 0.24,
- "partnerTotalPrice": 4.23
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 36,
- "partnerNetPrice": 28.76,
- "bookingFee": 1.73,
- "partnerTotalPrice": 30.49
}
}
}
], - "unavailableDates": [
- {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}
]
}
], - "operatingHours": [
- {
- "dayOfWeek": "MONDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "THURSDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "FRIDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "SATURDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}, - {
- "dayOfWeek": "SUNDAY",
- "operatingHours": [
- {
- "opensAt": "10:00:00",
- "closesAt": "14:00:00"
}
]
}
]
}
]
}, - {
- "productOptionCode": "24HOUR",
- "seasons": [
- {
- "startDate": "2020-12-01",
- "endDate": "2022-03-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 40.5,
- "partnerNetPrice": 32.34,
- "bookingFee": 1.94,
- "partnerTotalPrice": 34.28
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 58.5,
- "partnerNetPrice": 46.72,
- "bookingFee": 2.8,
- "partnerTotalPrice": 49.52
}
}
}
], - "unavailableDates": [
- {
- "date": "2020-12-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-02",
- "reason": "SOLD_OUT"
}
]
}
]
}
]
}
], - "currency": "AUD",
- "summary": {
- "fromPrice": 52.65
}
}
]
}
Get full future availability details for all products modified since the specified time. The pricing is returned in the supplier's currency. We recommend using the /exchange-rates endpoint to get the Viator exchange rates and apply them for pricing conversion. Initiate a full ingestion only to establish your local copy; this should be a rare occurrence compared to regular updates. Fetch incremental updates through this endpoint on an hourly basis. You are welcome to poll for updates as frequently as every 15 minutes if desired. Be mindful that excessive frequency beyond these recommendations may trigger rate limits.
(Response sample generated on: 2021-03-12)
cursor | string Pagination cursor received from a previous call to this endpoint that points to the desired starting point for the results. Note: Pagination will come into play when the number of results
exceeds the figure given in the
|
count | integer [ 1 .. 500 ] The maximum number of products to be returned in response.
|
modified-since | string <date-time> ^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])... Only retrieve availabilty schedules that have been modified since the date and time (UTC) specified by this timestamp Note:
|
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
required | Array of objects (ProductAvailabilitySchedule) Array of availability schedule objects |
nextCursor | string A cursor to use when fetching the next set of products.
|
{- "availabilitySchedules": [
- {
- "productCode": "182465P24",
- "bookableItems": [
- {
- "productOptionCode": "TG91",
- "seasons": [
- {
- "startDate": "2020-01-06",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "09:00",
- "unavailableDates": [
- {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}
]
}, - {
- "startTime": "14:00",
- "unavailableDates": [
- {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "INFANT",
- "price": {
- "original": {
- "recommendedRetailPrice": 0,
- "partnerNetPrice": 0,
- "bookingFee": 0,
- "partnerTotalPrice": 0
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 59,
- "partnerNetPrice": 50.27,
- "bookingFee": 3.02,
- "partnerTotalPrice": 53.29
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 139,
- "partnerNetPrice": 118.43,
- "bookingFee": 7.11,
- "partnerTotalPrice": 125.54
}
}
}
]
}
]
}
]
}
], - "currency": "EUR",
- "summary": {
- "fromPrice": 139
}
}, - {
- "productCode": "62272P25",
- "bookableItems": [
- {
- "productOptionCode": "TG2",
- "seasons": [
- {
- "startDate": "2020-11-11",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "08:30"
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "maxTravelers": 10,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 35,
- "partnerNetPrice": 27.96,
- "bookingFee": 1.68,
- "partnerTotalPrice": 29.64
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 4,
- "maxTravelers": 5,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 53,
- "partnerNetPrice": 42.33,
- "bookingFee": 2.54,
- "partnerTotalPrice": 44.87
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 6,
- "maxTravelers": 10,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 47,
- "partnerNetPrice": 37.54,
- "bookingFee": 2.25,
- "partnerTotalPrice": 39.79
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 2,
- "maxTravelers": 3,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 60,
- "partnerNetPrice": 47.93,
- "bookingFee": 2.88,
- "partnerTotalPrice": 50.81
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG1",
- "seasons": [
- {
- "startDate": "2018-10-03",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "08:30",
- "unavailableDates": [
- {
- "date": "2021-01-27",
- "reason": "NOT_OPERATING"
}, - {
- "date": "2021-01-28",
- "reason": "NOT_OPERATING"
}, - {
- "date": "2021-01-30",
- "reason": "NOT_OPERATING"
}, - {
- "date": "2021-01-31",
- "reason": "NOT_OPERATING"
}, - {
- "date": "2021-02-14",
- "reason": "NOT_OPERATING"
}, - {
- "date": "2021-02-13",
- "reason": "NOT_OPERATING"
}, - {
- "date": "2021-02-12",
- "reason": "NOT_OPERATING"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "NOT_OPERATING"
}, - {
- "date": "2021-02-11",
- "reason": "NOT_OPERATING"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "maxTravelers": 10,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 35,
- "partnerNetPrice": 27.96,
- "bookingFee": 1.68,
- "partnerTotalPrice": 29.64
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 2,
- "maxTravelers": 3,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 68,
- "partnerNetPrice": 54.32,
- "bookingFee": 3.26,
- "partnerTotalPrice": 57.58
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 4,
- "maxTravelers": 5,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 50,
- "partnerNetPrice": 39.94,
- "bookingFee": 2.4,
- "partnerTotalPrice": 42.34
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 6,
- "maxTravelers": 10,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 47,
- "partnerNetPrice": 37.54,
- "bookingFee": 2.25,
- "partnerTotalPrice": 39.79
}
}
}
]
}
]
}
]
}
], - "currency": "SGD",
- "summary": {
- "fromPrice": 60
}
}, - {
- "productCode": "5672P9",
- "bookableItems": [
- {
- "productOptionCode": "TG1",
- "seasons": [
- {
- "startDate": "2021-01-01",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "08:30",
- "unavailableDates": [
- {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 50,
- "partnerNetPrice": 39.95,
- "bookingFee": 2.4,
- "partnerTotalPrice": 42.35
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG12",
- "seasons": [
- {
- "startDate": "2021-01-01",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "10:00",
- "unavailableDates": [
- {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 50,
- "partnerNetPrice": 39.95,
- "bookingFee": 2.4,
- "partnerTotalPrice": 42.35
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG11",
- "seasons": [
- {
- "startDate": "2021-01-01",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "09:30",
- "unavailableDates": [
- {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 50,
- "partnerNetPrice": 39.95,
- "bookingFee": 2.4,
- "partnerTotalPrice": 42.35
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG17",
- "seasons": [
- {
- "startDate": "2021-01-01",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "12:30",
- "unavailableDates": [
- {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 50,
- "partnerNetPrice": 39.95,
- "bookingFee": 2.4,
- "partnerTotalPrice": 42.35
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG19",
- "seasons": [
- {
- "startDate": "2019-10-11",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "14:00",
- "unavailableDates": [
- {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-11-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 50,
- "partnerNetPrice": 39.95,
- "bookingFee": 2.4,
- "partnerTotalPrice": 42.35
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG14",
- "seasons": [
- {
- "startDate": "2021-01-01",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "11:00",
- "unavailableDates": [
- {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 50,
- "partnerNetPrice": 39.95,
- "bookingFee": 2.4,
- "partnerTotalPrice": 42.35
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG6",
- "seasons": [
- {
- "startDate": "2021-01-01",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "08:00",
- "unavailableDates": [
- {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 2,
- "maxTravelers": 9,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 50,
- "partnerNetPrice": 39.94,
- "bookingFee": 2.4,
- "partnerTotalPrice": 42.34
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG10",
- "seasons": [
- {
- "startDate": "2021-01-01",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "09:00",
- "unavailableDates": [
- {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 50,
- "partnerNetPrice": 39.95,
- "bookingFee": 2.4,
- "partnerTotalPrice": 42.35
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG18",
- "seasons": [
- {
- "startDate": "2021-01-01",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "13:30",
- "unavailableDates": [
- {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 50,
- "partnerNetPrice": 39.95,
- "bookingFee": 2.4,
- "partnerTotalPrice": 42.35
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG15",
- "seasons": [
- {
- "startDate": "2021-01-01",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "08:00",
- "unavailableDates": [
- {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}
]
}, - {
- "startTime": "10:00",
- "unavailableDates": [
- {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}
]
}, - {
- "startTime": "11:30",
- "unavailableDates": [
- {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}
]
}, - {
- "startTime": "10:30",
- "unavailableDates": [
- {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}
]
}, - {
- "startTime": "09:00",
- "unavailableDates": [
- {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}
]
}, - {
- "startTime": "11:00",
- "unavailableDates": [
- {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}
]
}, - {
- "startTime": "08:30",
- "unavailableDates": [
- {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}
]
}, - {
- "startTime": "09:30",
- "unavailableDates": [
- {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}
]
}, - {
- "startTime": "13:00",
- "unavailableDates": [
- {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 50,
- "partnerNetPrice": 39.95,
- "bookingFee": 2.4,
- "partnerTotalPrice": 42.35
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG16",
- "seasons": [
- {
- "startDate": "2021-01-01",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "12:00",
- "unavailableDates": [
- {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 50,
- "partnerNetPrice": 39.95,
- "bookingFee": 2.4,
- "partnerTotalPrice": 42.35
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG13",
- "seasons": [
- {
- "startDate": "2021-01-01",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "10:30",
- "unavailableDates": [
- {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 50,
- "partnerNetPrice": 39.95,
- "bookingFee": 2.4,
- "partnerTotalPrice": 42.35
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG20",
- "seasons": [
- {
- "startDate": "2021-01-01",
- "endDate": "2021-12-31",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "14:30",
- "unavailableDates": [
- {
- "date": "2021-01-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-04-27",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 50,
- "partnerNetPrice": 39.95,
- "bookingFee": 2.4,
- "partnerTotalPrice": 42.35
}
}
}
]
}
]
}
]
}
], - "currency": "USD",
- "summary": {
- "fromPrice": 50
}
}, - {
- "productCode": "51192P79",
- "bookableItems": [
- {
- "productOptionCode": "TG12",
- "seasons": [
- {
- "startDate": "2020-11-13",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "09:30"
}, - {
- "startTime": "13:30",
- "unavailableDates": [
- {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}
]
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "INFANT",
- "price": {
- "original": {
- "recommendedRetailPrice": 0,
- "partnerNetPrice": 0,
- "bookingFee": 0,
- "partnerTotalPrice": 0
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 35,
- "partnerNetPrice": 27.96,
- "bookingFee": 1.68,
- "partnerTotalPrice": 29.64
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 49,
- "partnerNetPrice": 39.14,
- "bookingFee": 2.35,
- "partnerTotalPrice": 41.49
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG10",
- "seasons": [
- {
- "startDate": "2020-11-13",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "13:30",
- "unavailableDates": [
- {
- "date": "2021-03-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-16",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-23",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-30",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-29",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-02",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-09",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-01",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-08",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-06",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-11",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-18",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-25",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-20",
- "reason": "SOLD_OUT"
}, - {
- "date": "2020-12-31",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-13",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-04",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-24",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-27",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-07",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-10",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-17",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-22",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-21",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-15",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-26",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-14",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-03",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-19",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-03-28",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-05",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-02-12",
- "reason": "SOLD_OUT"
}, - {
- "date": "2021-01-29",
- "reason": "SOLD_OUT"
}
]
}, - {
- "startTime": "09:30"
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "INFANT",
- "price": {
- "original": {
- "recommendedRetailPrice": 0,
- "partnerNetPrice": 0,
- "bookingFee": 0,
- "partnerTotalPrice": 0
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 35,
- "partnerNetPrice": 27.96,
- "bookingFee": 1.68,
- "partnerTotalPrice": 29.64
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 49,
- "partnerNetPrice": 39.14,
- "bookingFee": 2.35,
- "partnerTotalPrice": 41.49
}
}
}
]
}
]
}
]
}
], - "currency": "EUR",
- "summary": {
- "fromPrice": 49
}
}, - {
- "productCode": "182465P31",
- "bookableItems": [
- {
- "productOptionCode": "TG164",
- "seasons": [
- {
- "startDate": "2020-01-06",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "19:30"
}, - {
- "startTime": "20:30"
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "INFANT",
- "price": {
- "original": {
- "recommendedRetailPrice": 0,
- "partnerNetPrice": 0,
- "bookingFee": 0,
- "partnerTotalPrice": 0
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 35,
- "partnerNetPrice": 29.82,
- "bookingFee": 1.79,
- "partnerTotalPrice": 31.61
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 69,
- "partnerNetPrice": 58.79,
- "bookingFee": 3.53,
- "partnerTotalPrice": 62.32
}
}
}
]
}
]
}
]
}, - {
- "productOptionCode": "TG165",
- "seasons": [
- {
- "startDate": "2020-01-06",
- "pricingRecords": [
- {
- "daysOfWeek": [
- "MONDAY",
- "TUESDAY",
- "WEDNESDAY",
- "THURSDAY",
- "FRIDAY",
- "SATURDAY",
- "SUNDAY"
], - "timedEntries": [
- {
- "startTime": "21:30"
}
], - "pricingDetails": [
- {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "INFANT",
- "price": {
- "original": {
- "recommendedRetailPrice": 0,
- "partnerNetPrice": 0,
- "bookingFee": 0,
- "partnerTotalPrice": 0
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "CHILD",
- "price": {
- "original": {
- "recommendedRetailPrice": 55,
- "partnerNetPrice": 46.86,
- "bookingFee": 2.81,
- "partnerTotalPrice": 49.67
}
}
}, - {
- "pricingPackageType": "PER_PERSON",
- "minTravelers": 1,
- "ageBand": "ADULT",
- "price": {
- "original": {
- "recommendedRetailPrice": 89,
- "partnerNetPrice": 75.83,
- "bookingFee": 4.55,
- "partnerTotalPrice": 80.38
}
}
}
]
}
]
}
]
}
], - "currency": "EUR",
- "summary": {
- "fromPrice": 69
}
}
], - "nextCursor": "MTYwNTA2ODAwOXw1NjcyUDk="
}
Requests the creation of a hold for each item in the cart.
A hold is a guarantee that either the price or availability (or both) of the product will be retained until a booking request is made using the /bookings/cart/book endpoint.
A hold consists of two components - availability and pricing. The response to this service indicates whether one, both or neither has been granted, and until when for each item.
This endpoint must not be used to check availability of a product. Instead, always use the /availability/check endpoint to perform the final availability check.
Note: This endpoint is only available to affiliate partners with API access level "Full Access + Booking" and merchant partners.
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
partnerCartRef required | string (PartnerCartReference) <= 100 characters (?s).*[\S].* Partner-generated unique cart reference for this group of bookable items. |
currency required | string (Currency) Merchant Partners: One of Affiliate Partners with API access level "Full Access + Booking": One of |
required | Array of objects (BookingsCartHoldRequestItem) List of bookable items (Limited to 16) |
paymentDataSubmissionMode | string Defines the payment solution used to submit payment details, two modes are supported:
Note: This element is only applicable for affiliate partners with API access level "Full Access + Booking". |
hostingUrl | string The URL of the page where the payment form is hosted. This is required if This should include the protocol, domain and any non-standard port excluding the trailing ‘/’.
E.g.: |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
cartRef required | string (CartReference) Viator-generated unique reference for this cart of bookable items, e.g. |
partnerCartRef required | string (PartnerCartReference) <= 100 characters (?s).*[\S].* Partner-generated unique cart reference for this group of bookable items. |
currency required | string (Currency) Merchant Partners: One of Affiliate Partners with API access level "Full Access + Booking": One of |
required | Array of any List of bookable items. |
required | object The total price of all bookable items. |
paymentDataSubmissionUrl | string The API URL to provide payment details to the Viator payment gateway. Only returned if |
paymentSessionToken | string The payment session token, if |
{- "currency": "AUD",
- "partnerCartRef": "lW83mqyU",
- "items": [
- {
- "partnerBookingRef": "irk5vCJ7",
- "productCode": "172432P20",
- "productOptionCode": "TG2",
- "startTime": "09:00",
- "travelDate": "2023-08-20",
- "paxMix": [
- {
- "ageBand": "ADULT",
- "numberOfTravelers": 2
}
]
}
], - "paymentDataSubmissionMode": "VIATOR_FORM",
}
{- "cartRef": "CR-cb9c9d63017a63c96454e4a5b0b153eb",
- "partnerCartRef": "lW83mqyU",
- "currency": "AUD",
- "items": [
- {
- "partnerBookingRef": "irk5vCJ7",
- "bookingRef": "BR-593038025",
- "status": "BOOKABLE",
- "lineItems": [
- {
- "ageBand": "ADULT",
- "numberOfTravelers": 2,
- "subtotalPrice": {
- "price": {
- "recommendedRetailPrice": 13.6,
- "partnerNetPrice": 12.52
}
}
}
], - "itemTotalPrice": {
- "price": {
- "recommendedRetailPrice": 13.6,
- "partnerNetPrice": 12.52,
- "bookingFee": 0,
- "commission": 1.08,
- "partnerTotalPrice": 12.52
}
}, - "bookingHoldInfo": {
- "availability": {
- "status": "HOLD_NOT_PROVIDED"
}, - "pricing": {
- "status": "HOLDING",
- "validUntil": "2023-07-21T03:17:37.494535Z"
}
}
}
], - "totalHeldPrice": {
- "price": {
- "recommendedRetailPrice": 13.6,
- "partnerNetPrice": 12.52,
- "bookingFee": 0,
- "commission": 1.08,
- "partnerTotalPrice": 12.52
}
}, - "paymentSessionToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImVlZTgzNTdmLTJjMWMtNGFmOS1iNGY5LTMzZDgzMGIzODI2ZCJ9.eyJjaGVja291dFNlc3Npb25JZCI6IkNTSS1TLWE1c3ZvNDdub3ZhNHRkc2VidWg2aWkzd2JtIiwibWVyY2hhbnRJZCI6Ik1FUi1WSUFUT1IiLCJjbGllbnRJZCI6IlBBUlRORVI6QVBJLWVuOkFGRklMSUFURTo4MjAxNiIsImFtb3VudCI6MTIuNTIsImN1cnJlbmN5IjoiQVVEIiwibG9jYWxlIjoiZW4iLCJjcmVkaXRDYXJkRW50cnlVcmwiOiJodHRwczovL2FwaS5zdGFnaW5nLnRhcGF5bWVudHMuY29tL3VpL3YxL2NoZWNrb3V0L0NTSS1TLWE1c3ZvNDdub3ZhNHRkc2VidWg2aWkzd2JtL2NjZW50cnkiLCJhdWdtZW50VG9rZW5VcmwiOiJodHRwczovL2NoZWNrb3V0LWFwaS1oYXJlLnBheW1lbnRzLWRldi50YW1nLmNsb3VkL3YxL2NoZWNrb3V0L2F1Z21lbnRlZFBheW1lbnRTZXNzaW9uIiwidGhyZWVEU0RhdGFVcmwiOiJodHRwczovL2NoZWNrb3V0LWFwaS1oYXJlLnBheW1lbnRzLWRldi50YW1nLmNsb3VkL3YxL2NoZWNrb3V0LzNkcyIsImxvZ2dpbmdVcmwiOiJodHRwczovL2NoZWNrb3V0LWFwaS1oYXJlLnBheW1lbnRzLWRldi50YW1nLmNsb3VkL3YxL2NoZWNrb3V0L2xvZyIsImZpbmdlcnByaW50U3VibWlzc2lvblVybCI6Imh0dHBzOi8vY2hlY2tvdXQtYXBpLWhhcmUucGF5bWVudHMtZGV2LnRhbWcuY2xvdWQvdjEvY2hlY2tvdXQvZGV2aWNlRmluZ2VycHJpbnQiLCJwcm9maWxpbmdDb25maWd1cmF0aW9uIjp7ImNsaWVudElkIjoiVmdaZ0ZSMF9SMmhhVVBKV0F6OFlsemZGa2NNIiwiaG9zdG5hbWUiOiJ0ZXN0LmFjY2RhYi5uZXQiLCJmaW5nZXJwcmludElkIjoiSU5BVVRILTlhNTlkMTI4LWQzYjQtNDUyOS1iNmE2LTVmYjk3OWQwNTc3YiJ9LCJwdXJjaGFzZUNvbnRleHRzIjpbXX0.BgBJadCdH95l3Re1ohYujYjHwSaVTds5MQ_H7WfUeMpuuXbTEzIvPF8YtBlDQ-aL66yBirrorol8RetAUb_phhLXO6scsAgsZEmgTPe6-dqbrjB3IkdJcf5bbdUDbyykUkY2Tf4vhYZc3UhR0fOCc_Ibdhpkt7bfA0O7bnTrAHGaE6Tl1328xuGthdSggFBdaNSVPoeEl4CTb2Q1tYotuFlUcLawzQgravgWWfMvPN9V6sDiP17bROSigXw0f3IBKs5JYKKMYpHLSJ370DasuMTJ8_5kXUXq8thXEHJOh0cGurOhx32gDUUuCAuRwBRa9HeEgig7RrN0UmlSs7_iEQ"
}
Requests a booking for each item in the cart.
PENDING
); or,CONFIRMED
if it was eventually successful, or REJECTED
if there are valid reasons why it could not be booked; such as, if it was booked-out or other changes to availability occurred; or,partnerBookingRef
Note: This endpoint is only available to affiliate partners with API access level "Full Access + Booking" and merchant partners.
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
cartRef required | string (CartReference) Viator-generated unique reference for this cart of bookable items, e.g. |
required | object (BookerInfo) Name details for the person making this booking. |
required | object (CartBookCommunicationInfo) Details for correspondence regarding this booking. See: Booking concepts – Supplier communications for information about closed-loop communication. |
object Optional extra details to include with the booking. | |
required | Array of objects (BookingsCartBookRequestItem) List of bookable items. |
paymentToken | string The payment token obtained from the payments endpoint or from the iframe Javascript library. |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
cartRef required | string (CartReference) Viator-generated unique reference for this cart of bookable items, e.g. |
partnerCartRef required | string (PartnerCartReference) <= 100 characters (?s).*[\S].* Partner-generated unique cart reference for this group of bookable items. |
currency required | string (Currency) Merchant Partners: One of Affiliate Partners with API access level "Full Access + Booking": One of |
required | Array of any List of bookable items. |
object Voucher information for this booking. | |
required | object The total price of all confirmed bookable items. |
required | object The total price of all pending bookable items. |
{- "cartRef": "CR-cb9c9d63017a63c96454e4a5b0b153eb",
- "bookerInfo": {
- "firstName": "Jane",
- "lastName": "Doe"
}, - "communication": {
- "email": "jane.doe@example.com",
- "phone": "+61 444444444"
}, - "items": [
- {
- "bookingRef": "BR-593038025",
- "bookingQuestionAnswers": [
- {
- "question": "SPECIAL_REQUIREMENTS",
- "answer": "No blue M&Ms"
}
], - "languageGuide": {
- "type": "GUIDE",
- "language": "cmn",
- "legacyGuide": "cmn/SERVICE_GUIDE"
}
}
], - "paymentToken": "STK-czhiz2jbqjdeff5gptqbhoscb4"
}
{- "cartRef": "CR-cb9c9d63017a63c96454e4a5b0b153eb",
- "partnerCartRef": "lW83mqyU",
- "currency": "AUD",
- "items": [
- {
- "partnerBookingRef": "irk5vCJ7",
- "bookingRef": "BR-593038025",
- "status": "CONFIRMED",
- "lineItems": [
- {
- "ageBand": "ADULT",
- "numberOfTravelers": 2,
- "subtotalPrice": {
- "price": {
- "recommendedRetailPrice": 13.6,
- "partnerNetPrice": 12.52
}
}
}
], - "itemTotalPrice": {
- "price": {
- "recommendedRetailPrice": 13.6,
- "partnerNetPrice": 12.52,
- "bookingFee": 0,
- "commission": 1.08,
- "partnerTotalPrice": 12.52
}
}, - "cancellationPolicy": {
- "type": "STANDARD",
- "description": "For a full refund, cancel at least 24 hours before the scheduled departure time.",
- "cancelIfBadWeather": true,
- "cancelIfInsufficientTravelers": false,
- "refundEligibility": [
- {
- "dayRangeMin": 1,
- "percentageRefundable": 100,
- "startTimestamp": "2023-07-21T02:19:02Z",
- "endTimestamp": "2023-08-18T22:59:59Z"
}, - {
- "dayRangeMin": 0,
- "dayRangeMax": 1,
- "percentageRefundable": 0,
- "startTimestamp": "2023-08-18T23:00:00Z",
- "endTimestamp": "2023-08-19T23:00:00Z"
}
]
}, - "voucherInfo": {
- "format": "HTML",
- "type": "STANDARD"
}
}
], - "voucherInfo": {
- "format": "HTML",
- "type": "STANDARD"
}, - "totalConfirmedPrice": {
- "price": {
- "recommendedRetailPrice": 13.6,
- "partnerNetPrice": 12.52,
- "bookingFee": 0,
- "commission": 1.08,
- "partnerTotalPrice": 12.52
}
}, - "totalPendingPrice": {
- "price": {
- "recommendedRetailPrice": 0,
- "partnerNetPrice": 0,
- "bookingFee": 0,
- "commission": 0,
- "partnerTotalPrice": 0
}
}
}
Note: This endpoint is only available to merchant partners.
Requests the creation of a booking-hold - a guarantee that either the price or availability (or both) of the product will be retained until a booking request is made using the /bookings/book endpoint.
The booking-hold consists of two components - availability and pricing. The response to this service indicates whether one, both or neither has been granted, and until when.
The length of time for which the availability hold will be granted is determined by the supplier, and therefore varies between products.
The length of time for the pricing-hold is determined by Viator, and is therefore standard across all products.
This endpoint must not be used to check availability of a product. Instead, always use the /availability/check endpoint to perform the final availability check.
(Response sample generated on: 2020-08-25)
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
exp-demo | boolean Default: false Example: true Specifies whether this request is a demo/test booking. Demo bookings do not send any notifications and are automatically confirmed. Also, manual-confirmation products behave as if they were instant-confirmation products. Set this value to true when:
Set this value to false when:
|
productCode required | string(?s).*[\S].* Unique identifier for the product |
productOptionCode | string Product option identifier. For more information see: Key concepts: Product options |
startTime | string Starting time for the item in the case that the product/product option has multiple start times. Note: This element must be included for products that have multiple starting times. |
currency required | string.*[\S].* Three-letter currency code for the currency in which to return pricing information; one of:
|
travelDate required | string <date> Date of travel (according to the time zone in which the product operates) |
required | Array of objects (PaxMixItem) Passenger details |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
bookingRef required | string(?s).*[\S].* Viator-generated booking reference for this booked item in format This value can be used in the request to:
|
required | object (BookingHoldInfo) Availability and pricing hold information. |
currency | string Three-letter currency code for the currency in which pricing information is displayed; one of:
|
Array of objects (PricingLineItem) Array of pricing details for each traveler in this booking | |
object Details about the total price of this booking |
{- "productCode": "3857NYCNIA",
- "productOptionCode": "NIA",
- "travelDate": "2021-04-01",
- "currency": "AUD",
- "startTime": "06:30",
- "paxMix": [
- {
- "ageBand": "ADULT",
- "numberOfTravelers": 2
}
]
}
{- "bookingRef": "BR-788161184",
- "bookingHoldInfo": {
- "availability": {
- "status": "HOLD_NOT_PROVIDED"
}, - "pricing": {
- "status": "HOLDING",
- "validUntil": "2020-09-21T00:18:47.233Z"
}
}, - "currency": "AUD",
- "lineItems": [
- {
- "ageBand": "ADULT",
- "numberOfTravelers": 2,
- "subtotalPrice": {
- "price": {
- "recommendedRetailPrice": 601.68,
- "partnerNetPrice": 463.3
}
}
}
], - "totalPrice": {
- "price": {
- "recommendedRetailPrice": 601.68,
- "partnerNetPrice": 463.3,
- "bookingFee": 27.8,
- "partnerTotalPrice": 491.1
}
}
}
Requests a booking for a product.
Note:
totalPrice
element in the response from this endpoint."PENDING"
); or,"CONFIRMED"
if it was eventually successful, or "REJECTED"
if there are valid reasons why it could not be booked; such as, if it was booked-out or other changes to availability occurred; or,"partnerBookingRef"
(Response sample generated on: 2020-08-25)
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
exp-demo | boolean Default: false Example: true Specifies whether this request is a demo/test booking. Demo bookings do not send any notifications and are automatically confirmed. Also, manual-confirmation products behave as if they were instant-confirmation products. Set this value to true when:
Set this value to false when:
|
productCode required | string(?s).*[\S].* Unique identifier for the product |
productOptionCode | string Product option identifier. For more information see: Key concepts: Product options |
startTime | string Starting time for the item in the case that the product/product option has multiple start times. Note: This element must be included for products that have multiple starting times. |
currency required | string.*[\S].* Three-letter currency code for the currency in which to return pricing information; one of:
|
travelDate required | string <date> Date of travel (according to the time zone in which the product operates) |
required | Array of objects (PaxMixItem) Passenger details |
bookingRef | string The booking reference code that is generated by Viator and returned in the |
partnerBookingRef required | string <= 100 characters (?s).*[\S].* Partner-generated unique booking reference for this bookable item |
object Specifies which language and what type of language guide to include if language guides are available for this product. Note: This element must be included in order to book products that offer language guides. | |
required | object (BookerInfo) Name details for the person making this booking. |
Array of objects (BookingQuestionAnswers) Answers to booking questions required for this booking
| |
required | object (CommunicationInfo) Details for correspondence regarding this booking. See: Booking concepts – Supplier communications for information about closed-loop communication. |
object (AdditionalBookingDetails-2) Optional extra details to include with booking |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
status | string Indicates the outcome of the booking request; one of:
|
rejectionReasonCode | string In the case that
|
bookingRef | string Viator-generated booking reference number |
partnerBookingRef | string Partner-generated booking reference number (if sent in the request) |
currency | string One of the available billing currencies:
|
Array of objects (PricingLineItem) Array of pricing details for each traveler in this booking | |
object Total price of this booking | |
object (CancellationPolicy) Cancellation policy details for this product. | |
object (VoucherInfo) Voucher information for this booking. |
{- "productCode": "5010SYDNEY",
- "productOptionCode": "48HOUR",
- "currency": "AUD",
- "partnerBookingRef": "BR-581567752",
- "travelDate": "2020-11-30",
- "paxMix": [
- {
- "ageBand": "ADULT",
- "numberOfTravelers": 1
}
], - "languageGuide": {
- "type": "AUDIO",
- "language": "en",
- "legacyGuide": "en/SERVICE_AUDIO"
}, - "bookingRef": "BR-581567752",
- "bookerInfo": {
- "firstName": "Simon",
- "lastName": "Nettle"
}, - "bookingQuestionAnswers": [
- {
- "question": "AGEBAND",
- "answer": "ADULT",
- "travelerNum": 1
}, - {
- "question": "FULL_NAMES_LAST",
- "answer": "Nettle",
- "travelerNum": 1
}, - {
- "question": "FULL_NAMES_FIRST",
- "answer": "Simon",
- "travelerNum": 1
}, - {
- "question": "SPECIAL_REQUIREMENTS",
- "answer": "NO",
- "travelerNum": 1
}
], - "communication": {
- "email": "snettle@tripadvisor.com",
- "phone": "+61 431532778"
}, - "additionalBookingDetails": {
- "voucherDetails": {
- "companyName": "Booking King",
- "email": "support@bookingking.com",
- "phone": "+61400500600",
- "voucherText": "For any enquiries, please visit our customer support page at https://support.bookingking.com"
}
}
}
{- "status": "CONFIRMED",
- "bookingRef": "BR-581567752",
- "partnerBookingRef": "BR-581567752",
- "currency": "AUD",
- "lineItems": [
- {
- "ageBand": "ADULT",
- "numberOfTravelers": 1,
- "subtotalPrice": {
- "price": {
- "recommendedRetailPrice": 71.1,
- "partnerNetPrice": 56.79
}
}
}
], - "totalPrice": {
- "price": {
- "recommendedRetailPrice": 71.1,
- "partnerNetPrice": 56.79,
- "bookingFee": 3.41,
- "partnerTotalPrice": 60.2
}
}, - "cancellationPolicy": {
- "type": "STANDARD",
- "description": "For a full refund, cancel at least 24 hours before the scheduled departure time.",
- "cancelIfBadWeather": false,
- "cancelIfInsufficientTravelers": false,
- "refundEligibility": [
- {
- "dayRangeMin": 1,
- "percentageRefundable": 100,
- "startTimestamp": "2020-08-25T00:36:49.69005Z",
- "endTimestamp": "2020-11-28T13:00:00Z"
}, - {
- "dayRangeMin": 0,
- "dayRangeMax": 1,
- "percentageRefundable": 0,
- "startTimestamp": "2020-11-28T13:00:00Z",
- "endTimestamp": "2020-11-29T13:00:00Z"
}
]
}, - "voucherInfo": {
- "format": "HTML",
- "type": "STANDARD"
}
}
Note: This endpoint is only available to affiliate partners with API access level "Full Access + Booking" and merchant partners.
Requests the status of an existing booking using either the Viator-generated booking reference (bookingRef
) or the reference generated by the partner (partnerBookingRef
). For bookings made through v1 endpoints, only Viator-generated booking reference is supported. Checking the status of a booking is only necessary for manual-confirmation products, and should only be called intermittently, no more than once every 3 minutes. Hourly checks are recommended.
Checking the status of a booking is only necessary for manual-confirmation products, and should only be called intermittently, no more than once every 3 minutes.
(Response sample generated on: 2020-11-10)
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
bookingRef | string The booking reference code (in format |
partnerBookingRef | string <= 100 characters (?s).*[\S].* The booking reference code generated by you (the partner) that was provided in in the request to /bookings/book) for the booking for which to retrieve status information |
voucherFormat | string File format of the voucher; one of:
Default is |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
status | string Indicates the outcome of the booking request; one of:
|
rejectionReasonCode | string In the case that
|
bookingRef | string Viator-generated booking reference number |
partnerBookingRef | string Partner-generated booking reference number (if sent in the request) |
currency | string One of the available billing currencies:
|
Array of objects (PricingLineItem) Array of pricing details for each traveler in this booking | |
object Total price of this booking | |
object (CancellationPolicy) Cancellation policy details for this product. | |
object (VoucherInfo) Voucher information for this booking. |
{- "bookingRef": "BR-791143912"
}
{- "status": "CONFIRMED",
- "bookingRef": "BR-791143912",
- "partnerBookingRef": "BR-791143912",
- "currency": "USD",
- "lineItems": [
- {
- "ageBand": "ADULT",
- "numberOfTravelers": 2,
- "subtotalPrice": {
- "price": {
- "recommendedRetailPrice": 21.4,
- "partnerNetPrice": 20.52
}
}
}
], - "totalPrice": {
- "price": {
- "recommendedRetailPrice": 21.4,
- "partnerNetPrice": 20.52,
- "bookingFee": 1.23,
- "partnerTotalPrice": 21.75
}
}, - "cancellationPolicy": {
- "type": "STANDARD",
- "description": "For a full refund, cancel at least 24 hours before the scheduled departure time.",
- "cancelIfBadWeather": false,
- "cancelIfInsufficientTravelers": false,
- "refundEligibility": [
- {
- "dayRangeMin": 2,
- "percentageRefundable": 100,
- "startTimestamp": "2020-11-10T02:04:15Z",
- "endTimestamp": "2021-03-30T23:00:00Z"
}, - {
- "dayRangeMin": 0,
- "dayRangeMax": 1,
- "percentageRefundable": 0,
- "startTimestamp": "2021-03-31T23:00:00Z",
- "endTimestamp": "2021-04-01T23:00:00Z"
}
]
}, - "voucherInfo": {
- "format": "HTML",
- "type": "STANDARD"
}
}
Retrieves a dictionary of unique identification codes (cancellationReasonCode
) and their associated natural-language descriptions (cancellationReasonText
). Cancellation reasons should be cached and refreshed monthly.
Note:
(Response sample generated on: 2022-07-22)
type | string Default: "CUSTOMER" Specifies which set of cancellation reasons to retrieve; one of:
|
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
Array of objects (CancellationReason) Array of cancellation reason codes and their asssociated texts for display to the user |
{- "reasons": [
- {
- "cancellationReasonText": "Supplier No Show",
- "cancellationReasonCode": "Customer_Service.Supplier_no_show"
}, - {
- "cancellationReasonText": "Chose a different/cheaper tour",
- "cancellationReasonCode": "Customer_Service.Chose_a_different_cheaper_tour"
}, - {
- "cancellationReasonText": "Unexpected medical circumstances",
- "cancellationReasonCode": "Customer_Service.Unexpected_medical_circumstances"
}, - {
- "cancellationReasonText": "Weather",
- "cancellationReasonCode": "Customer_Service.Weather"
}, - {
- "cancellationReasonText": "Booked wrong tour date",
- "cancellationReasonCode": "Customer_Service.Booked_wrong_tour_date"
}, - {
- "cancellationReasonText": "Duplicate Booking",
- "cancellationReasonCode": "Customer_Service.Duplicate_Booking"
}, - {
- "cancellationReasonText": "Significant global event",
- "cancellationReasonCode": "Customer_Service.Significant_global_event"
}, - {
- "cancellationReasonText": "I canceled my entire trip",
- "cancellationReasonCode": "Customer_Service.I_canceled_my_entire_trip"
}
]
}
Gets the cancellation quote for an existing booking.
Note: This endpoint is only available to affiliate partners with API access level "Full Access + Booking" and merchant partners.
For more information about how to perform cancellations using this API, see the Cancellation API workflow section and our in-depth guide about cancellation policies and how to handle cancellations: All you need to know about cancellation policies.
(Response sample generated on: 2020-08-25)
booking-reference required | string The booking reference code (in format |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
bookingId required | string Booking reference number for this booking
|
object (RefundDetails) Details of the refund. Note: Bookings that have not been confirmed by the supplier and have a status of | |
status required | string (CancellationQuoteBookingStatus) Machine-interpretable string indicating the cancellation status of this itinerary item:
|
{- "bookingId": "BR-581567752",
- "refundDetails": {
- "itemPrice": 60.2,
- "refundAmount": 60.2,
- "refundPercentage": 100,
- "currencyCode": "AUD"
}, - "status": "CANCELLABLE"
}
Cancels existing booking with given Viator-generated booking-reference
Note: This endpoint is only available to affiliate partners with API access level "Full Access + Booking" and merchant partners.
For more information about how to perform cancellations using this API, see the Cancellation API workflow section and our in-depth guide about cancellation policies and how to handle cancellations: All you need to know about cancellation policies.
(Response sample generated on: 2020-08-25)
booking-reference required | string The booking reference code (in format |
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
reasonCode required | string Machine-interpretable identification code for this cancellation reason, retrieved from /bookings/cancel-reasons |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
bookingId required | string Booking reference code for this booking
|
reason | string (CancellationResultItemReason) Machine-interpretable reason code indicating why the cancellation was not successful
Note: This field will not be present in the response if the cancellation was successful |
status required | string (CancellationBookingStatus) Machine-interpretable string indicating the outcome of the booking cancellation request. One of:
|
{- "reasonCode": "Customer_Service.I_canceled_my_entire_trip"
}
{- "bookingId": "BR-581567752",
- "status": "ACCEPTED"
}
Gets all booking-event notifications relevant to the partner since a point in time indicated by a timestamp or pagination cursor. This endpoint should be polled every 5 minutes. In order to stop notification emails sent by Viator for supplier cancellations you must send an acknowledge using /bookings/modified-since/acknowledge endpoint. See the guide on how to automate the flow for supplier cancellations in this article: Automating supplier cancellations in V.2 Partner API. Viator will not send notification emails for customer initiated cancellations.
Note: This endpoint is only available to affiliate partners with API access level "Full Access + Booking" and merchant partners.
modified-since | string <date-time> ^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])... Only retrieve booking events that have occurred since the point in time indicated by this timestamp. Note:
|
cursor | string Pagination cursor received from a previous call to this endpoint that points to the starting point for the next page of results. Note: Pagination will come into play when the number of results exceeds the figure given in the |
count | integer [ 1 .. 50 ] Default: 50 Specifies the maximum number of booking events to be included in each page of results returned from this endpoint. |
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
required | Array of objects (BookingEvent) List of booking event notifications |
nextCursor | string The cursor to use to fetch the next page of booking notification events. Example: |
{- "bookings": [
- {
- "transactionRef": "1234",
- "eventType": "CANCELLATION",
- "acknowledgeBy": "2022-04-08T09:22:48Z",
- "bookingRef": "BR-204104077",
- "partnerBookingRef": "BK2041040771234567",
- "lastUpdated": "2022-04-07T13:25:00Z",
- "bookedItem": {
- "productCode": "281620P2",
- "productOptionCode": "TG1",
- "travelDate": "2022-05-12",
- "travelTime": "09:30"
}, - "cancellation": {
- "cancellationReasonCode": "Supplier_Support.Significant_global_event",
- "refundDetails": {
- "itemPrice": 59.4,
- "refundAmount": 59.4,
- "refundPercentage": 100,
- "currencyCode": "AUD"
}
}
}, - {
- "transactionRef": "1235",
- "eventType": "CANCELLATION",
- "acknowledgeBy": "2022-04-08T09:22:48Z",
- "bookingRef": "BR-204104078",
- "partnerBookingRef": "BK2041040771234568",
- "lastUpdated": "2022-04-08T09:17:48Z",
- "bookedItem": {
- "productCode": "172432P11",
- "productOptionCode": "TG1",
- "travelDate": "2022-05-14",
- "travelTime": "09:30"
}, - "cancellation": {
- "cancellationReasonCode": "Supplier_Support.Weather",
- "refundDetails": {
- "itemPrice": 120,
- "refundAmount": 120,
- "refundPercentage": 100,
- "currencyCode": "EUR"
}
}
}
], - "nextCursor": "MTYxMjc2OTM4NXwxNTU5MTlQMXxJTkFDVElWRQ=="
}
Acknowledges receipt of one or more booking event notifications returned by the /bookings/modified-since endpoint. Merchants who wish to assume control of the customer service workflow surrounding booking change events must carry out this step before the time indicated in the bookings[].acknowledgeBy
field, otherwise Viator will automatically send a cancellation notification to the email address provided by the partner for cancellation notifications.
This endpoint should be called in order to stop notification emails from being sent by Viator. See the guide on how to automate the flow for supplier cancellations in this article: Automating supplier cancellations in V.2 Partner API
Note: This endpoint is only available to affiliate partners with API access level "Full Access + Booking" and merchant partners.
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
transactionRefs required | Array of strings List of booking event notification reference codes for which to acknowledge receipt |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
{- "transactionRefs": [
- "PBE-e60bb92c-f1fc-11ec-b939-0242ac120002",
- "PBE-e60bb92c-f1fc-11ec-b939-0242ac120003"
]
}
{- "code": "BAD_REQUEST",
- "message": "Invalid request",
- "timestamp": "2019-09-17T03:20:45.737043Z",
- "trackingId": "string"
}
Creates a payment token from raw credit card details for use with the /bookings/cart/book endpoint.
The URL should not be constructed manually, instead use the paymentDataSubmissionUrl
value returned from the /bookings/cart/hold endpoint.
When using the API payment solution, it is a requirement that you implement our fraud prevention solution. See Implementing the API Solution for more details.
Note:
sessionToken required | string Example: CSI-P-kwftrgmrbfbglkaw4espjdr52e The Note: The |
Content-Type required | any Example: application/json Identifies the payload as application/json. |
x-trip-clientid required | any Example: P0123456789 This is your unique partner identifier, which you can find in the Viator Partner Program: https://partners.viator.com/login |
x-trip-requestid required | any Example: 9dbb490a-d953-4a9b-875a-728b5f335b29 Any client-side generated request identifier, unique per request. |
User-Agent required | any Example: curl/8.8.0 value should be appropriate to the client you are using, e.g. "curl/8.8.0" |
required | object (PaymentAccountsRequest) Wrapper element around payment data. |
required | object (PaymentAccounts) |
{- "paymentAccounts": {
- "creditCards": [
- {
- "number": "4111111111111111",
- "cvv": "234",
- "expMonth": "03",
- "expYear": "2026",
- "name": "Jane Doe",
- "address": {
- "country": "US",
- "postalCode": "02494"
}
}
]
}
}
{- "paymentAccounts": {
- "creditCards": [
- {
- "persistAccount": false,
- "cardType": "Visa",
- "name": "Jane Doe",
- "number": "",
- "accountHead": "411111",
- "accountTail": "1111",
- "expMonth": "03",
- "expYear": "2026",
- "cvv": "",
- "address": {
- "street": "",
- "street2": "",
- "city": "",
- "state": "",
- "country": "US",
- "postalCode": "02494",
- "phoneNumber": ""
}, - "accountMetaData": {
- "sessionAccountToken": "STK-24ljv2i7yvdj5l6rdjvca2qbgq",
- "accountFingerprint": ""
}
}
], - "bankAccounts": [ ],
- "cvvs": [ ],
- "bankMandates": [ ]
}, - "responseHeader": {
- "apiVersion": 1,
- "responseId": "RES-rciyl2b2q5gidlusbsq3ofht44",
- "responseCode": 2000,
- "responseMessage": "ok",
- "errors": [ ]
}
}
Perform a search for products, attractions and/or destinations that contain a free-text search term. Product results can be filtered and sorted according to various criteria. This endpoint must not be used to ingest the catalog of products, the /products/modified-since endpoint must be used for that purpose.
Note: Only active products are returned in the response from this endpoint.
campaign-value | string <= 200 characters Affiliate partners only: Specifies the campaign tracking identifier that will be appended to the URL returned in Note: If you wish to use a campaign value that includes non-alphanumeric characters (e.g., '+', '-', etc.), you must URL-encode these characters. |
target-lander | string Target lander page for affiliate productUrl |
Accept-Language required | string Example: en, en-AU Specifies the language into which the natural-language fields in the response from this service will be translated. |
searchTerm required | string Return results that contain this free-text search term |
object (FreetextSearchProductFiltering) Criteria by which to filter product search results (i.e., when | |
object (FreetextSearchProductSorting) Specify the sorting method for product results (i.e., when | |
required | Array of objects (SearchType) [ 1 .. 3 ] items Specifies the domain(s) in which to search for the |
currency required | string <currency> Currency code of price range in request filter and the prices in response. One of: |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
object Destinations that include the | |
object Attractions that include the | |
object Products that include the |
{- "searchTerm": "big",
- "productFiltering": {
- "destination": "77",
- "dateRange": {
- "from": "2023-01-01",
- "to": "2023-01-31"
}, - "price": {
- "from": 0,
- "to": 1000
}, - "rating": {
- "from": 0,
- "to": 5
}, - "durationInMinutes": {
- "from": 0,
- "to": 1000
}, - "flags": [
- "LIKELY_TO_SELL_OUT"
], - "includeAutomaticTranslations": true
}, - "productSorting": {
- "sort": "PRICE",
- "order": "DESCENDING"
}, - "searchTypes": [
- {
- "searchType": "PRODUCTS",
- "pagination": {
- "start": 1,
- "count": 3
}
}, - {
- "searchType": "ATTRACTIONS",
- "pagination": {
- "start": 1,
- "count": 1
}
}, - {
- "searchType": "DESTINATIONS",
- "pagination": {
- "start": 1,
- "count": 1
}
}
], - "currency": "USD"
}
{- "summary": "/search/freetext",
- "value": {
- "destinations": {
- "totalCount": 1,
- "results": [
- {
- "id": 50762,
- "name": "Big Bear",
- "parentDestinationId": 272,
- "parentDestinationName": "California",
- "translationInfo": {
- "containsMachineTranslatedText": false
}
}
]
}, - "attractions": {
- "totalCount": 1174,
- "results": [
- {
- "id": 10674,
- "name": "Big Sur",
- "primaryDestinationId": 5250,
- "description": "<p>Big Sur, a stunning 71-mile (114-kilometer) stretch of California’s Central Coast, boasts epic views of the mighty Pacific and jagged, dramatic coastline. Running from the Carmel Highlands to San Simeon, the unincorporated area is very lightly populated—in fact it’s the longest stretch of undeveloped coastline in the lower United States.</p>",
- "destinationName": "Monterey & Carmel",
- "productsCount": 41,
- "translationInfo": {
- "containsMachineTranslatedText": false
}, - "reviews": {
- "sources": [
- {
- "provider": "VIATOR",
- "reviewCounts": [
- {
- "rating": 1,
- "count": 3
}, - {
- "rating": 2,
- "count": 1
}, - {
- "rating": 3,
- "count": 0
}, - {
- "rating": 4,
- "count": 4
}, - {
- "rating": 5,
- "count": 9
}
], - "totalCount": 17,
- "averageRating": 3.882353
}
], - "reviewCountTotals": [
- {
- "rating": 1,
- "count": 3
}, - {
- "rating": 2,
- "count": 1
}, - {
- "rating": 3,
- "count": 0
}, - {
- "rating": 4,
- "count": 4
}, - {
- "rating": 5,
- "count": 9
}
], - "totalReviews": 17,
- "combinedAverageRating": 3.882353
}, - "images": [
- {
- "imageSource": "SUPPLIER_PROVIDED",
- "isCover": true,
- "variants": [
- {
- "height": 800,
- "width": 3200,
}, - {
- "height": 400,
- "width": 1600,
}, - {
- "height": 720,
- "width": 1200,
}, - {
- "height": 248,
- "width": 414,
}, - {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}
]
}
]
}, - "products": {
- "totalCount": 184,
- "results": [
- {
- "productCode": "318847P2",
- "title": "Sunset Cruise & Manta Night Snorkeling Charter",
- "description": "You enjoy sunset cruising, and then, You enjoy the world famous Manta ray night snorkeling by private charter on our comfortable Luxury boat. It will be a wonderful and unforgettable experience of your life!",
- "images": [
- {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": true,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}
], - "reviews": {
- "sources": [
- {
- "provider": "TRIPADVISOR",
- "totalCount": 1,
- "averageRating": 5
}
], - "totalReviews": 1,
- "combinedAverageRating": 5
}, - "duration": {
- "fixedDurationInMinutes": 180
}, - "confirmationType": "INSTANT",
- "itineraryType": "ACTIVITY",
- "pricing": {
- "summary": {
- "fromPrice": 990,
- "fromPriceBeforeDiscount": 990
}, - "partnerNetFromPrice": 822.39,
- "currency": "USD"
}, - "destinations": [
- {
- "ref": "669",
- "primary": true
}
], - "tags": [
- 21956,
- 21951,
- 21949,
- 22049,
- 21959,
- 21954,
- 22144,
- 21464,
- 20757,
- 21442,
- 11912,
- 21952,
- 22083,
- 12052
], - "flags": [
- "FREE_CANCELLATION",
- "PRIVATE_TOUR",
- "LIKELY_TO_SELL_OUT"
], - "translationInfo": {
- "containsMachineTranslatedText": false,
- "translationSource": "ORIGINAL"
}
}, - {
- "productCode": "35441P11",
- "title": "Jackson Hole & Grand Teton Park - Full-Day Wildlife Tour",
- "description": "Join us for an Amazing day in Jackson Hole as we explore the wildlife sweet spots of the area to search for Elk, Big Horn Sheep, Moose, Bison, Bald Eagles, Coyotes, Foxes and maybe more! Your guide will pick you up in one of our tall, comfortable vans or SUVs at 8:00am from your lodging in Teton Village or the Town of Jackson, WY and drop you back off around 4:00pm. Your guide will educate you on the many features of the area including the history, wildlife & more.\n\nCost includes: Transportation, Tour Guide, Light Breakfast, Lunch, Park Entry Fee, Elk Refuge Sleigh Ride (Dec 15-Apr 5) and use of Binoculars. Guide gratuity not included. ",
- "images": [
- {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "",
- "isCover": true,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}
], - "reviews": {
- "sources": [
- {
- "provider": "TRIPADVISOR",
- "totalCount": 3,
- "averageRating": 5
}
], - "totalReviews": 3,
- "combinedAverageRating": 5
}, - "duration": {
- "fixedDurationInMinutes": 480
}, - "confirmationType": "INSTANT",
- "itineraryType": "UNSTRUCTURED",
- "pricing": {
- "summary": {
- "fromPrice": 975,
- "fromPriceBeforeDiscount": 975
}, - "partnerNetFromPrice": 809.93,
- "currency": "USD"
}, - "destinations": [
- {
- "ref": "51006",
- "primary": true
}
], - "tags": [
- 12029,
- 21946,
- 20757,
- 22083,
- 21860,
- 12028
], - "flags": [
- "LIKELY_TO_SELL_OUT"
], - "translationInfo": {
- "containsMachineTranslatedText": false,
- "translationSource": "ORIGINAL"
}
}, - {
- "productCode": "30433P3",
- "title": "Kona Sport-Fishing Private Charter - 6 Hours",
- "description": "Enjoy 6 hours out on the water off the Kona Coast on this private chartered fishing and boating excursion. Sit back, relax and drink in the amazing blue scenery or, pole in hands, wait to hopefully catch a big one. All fishing equipment is complimentary so it doesn't matter if you're a beginner or an expert. Not into fishing? Then request a fishing and snorkeling combo which makes for a fun-family excursion.",
- "images": [
- {
- "imageSource": "SUPPLIER_PROVIDED",
- "caption": "Mahimahi",
- "isCover": true,
- "variants": [
- {
- "height": 50,
- "width": 50,
}, - {
- "height": 100,
- "width": 100,
}, - {
- "height": 200,
- "width": 200,
}, - {
- "height": 400,
- "width": 400,
}, - {
- "height": 40,
- "width": 60,
}, - {
- "height": 80,
- "width": 120,
}, - {
- "height": 120,
- "width": 180,
}, - {
- "height": 160,
- "width": 240,
}, - {
- "height": 240,
- "width": 360,
}, - {
- "height": 320,
- "width": 480,
}, - {
- "height": 360,
- "width": 540,
}, - {
- "height": 446,
- "width": 674,
}, - {
- "height": 480,
- "width": 720,
}, - {
- "height": 118,
- "width": 210,
}, - {
- "height": 75,
- "width": 75,
}, - {
- "height": 109,
- "width": 154,
}
]
}
], - "reviews": {
- "sources": [
- {
- "provider": "VIATOR",
- "totalCount": 1,
- "averageRating": 5
}, - {
- "provider": "TRIPADVISOR",
- "totalCount": 19,
- "averageRating": 4
}
], - "totalReviews": 20,
- "combinedAverageRating": 4.2
}, - "duration": {
- "fixedDurationInMinutes": 360
}, - "confirmationType": "INSTANT",
- "itineraryType": "STANDARD",
- "pricing": {
- "summary": {
- "fromPrice": 969.41,
- "fromPriceBeforeDiscount": 969.41
}, - "partnerNetFromPrice": 774.31,
- "currency": "USD"
}, - "destinations": [
- {
- "ref": "669",
- "primary": true
}
], - "tags": [
- 21946,
- 20757,
- 11889,
- 22083,
- 11929,
- 11941,
- 20255
], - "flags": [
- "FREE_CANCELLATION",
- "PRIVATE_TOUR",
- "LIKELY_TO_SELL_OUT"
], - "translationInfo": {
- "containsMachineTranslatedText": false,
- "translationSource": "ORIGINAL"
}
}
]
}
}
}
Get full location details for the requested location references. Locations should be cached and refreshed monthly. Additionally, the /locations/bulk endpoint should be used on demand for any new location references returned in the product content response.
Note: If no response is received for a given location reference, this means that the location was either removed from our database or replaced by a different one. If this occurs, please disregard the removed location reference and make sure you update the associated product information.
(Response sample generated on: 2020-08-25)
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
locations required | Array of strings <= 500 items List of location reference identifiers for which to retrieve full location details. |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
required | Array of objects (Location) Locations |
{- "locations": [
- "LOC-f698f2a1-a53a-46bb-8708-3d45bf740f59",
- "LOC-9e88ac35-2e2c-4ecc-af8d-10b76770785f",
- "LOC-453b3cd4-4afa-414d-a8d8-bedb458d73fe",
- "CONTACT_SUPPLIER_LATER",
- "MEET_AT_DEPARTURE_POINT"
]
}
{- "locations": [
- {
- "provider": "GOOGLE",
- "reference": "LOC-f698f2a1-a53a-46bb-8708-3d45bf740f59",
- "providerReference": "ChIJi96kKfceB3wRhQLL_6FzrSg"
}, - {
- "provider": "GOOGLE",
- "reference": "LOC-9e88ac35-2e2c-4ecc-af8d-10b76770785f",
- "providerReference": "ChIJ--9uPvceB3wR-4BkkxaaWEI"
}, - {
- "provider": "TRIPADVISOR",
- "reference": "LOC-453b3cd4-4afa-414d-a8d8-bedb458d73fe",
- "name": "Hanalei Bay",
- "address": {
- "street": ", ",
- "state": "Hawaii",
- "country": "United States",
- "countryCode": "US",
- "postcode": ""
}, - "center": {
- "latitude": 22.207436,
- "longitude": -159.49841
}
}, - {
- "provider": "TRIPADVISOR",
- "reference": "CONTACT_SUPPLIER_LATER",
- "name": "I will contact the supplier later"
}, - {
- "provider": "TRIPADVISOR",
- "reference": "MEET_AT_DEPARTURE_POINT",
- "name": "I will meet at the departure point"
}
]
}
This endpoint gets the exchange rates for conversions between specified currencies. Exchange rates should be cached and refreshed based on the expiry timestamp (at the moment daily).
In this API, all pricing is denominated in the currency of the supplier. For example, if a tour operates in Thailand, its prices will be given in Thai Baht (THB).
Not all supplier currencies are supported, but many are. They comprise:
While pricing can be in any of the currencies listed above, payments for bookings can only be made using the following four currencies:
In order that you display the correct price to the user and charge accordingly, it is important that you perform the currency conversion based on the exchange rates given in the response from this endpoint and that these conversion rates are valid at the time of conversion (as given in the expiry
field).
In doing so, you ensure the amount that you, the merchant, will be invoiced by Viator for this product matches your records. Discrepancies are bound to occur if you perform the calculations using expired exchange rates or those from an alternative source.
An additional measure to ensure that you charge your customer accurately is to confirm that the pricing details returned by the /availability/check endpoint (in the billing currency specified in the request) conform to your expectations. The information provided by this service is the definitive source of truth with regard to product pricing.
Note: If you attempt to use an unsupported currency when making a booking request, you will receive the following error:
Incorrect currency code provided
Note: In order to reduce the number of calls made to this service, we recommend retrieving the exchange rate for the currency pair in question just once for the time period during which it is valid, and then applying that rate to all products with pricing denominated in that currency rather than calling this endpoint for each product requiring currency conversion.
Learn more about calculating product pricing in this article: Calculating Product Pricing with the Merchant API
(Response sample generated on: 2020-09-17)
sourceCurrencies | Array of strings List of three-letter currency codes for the source currencies for which to retrieve exchange rate data |
targetCurrencies | Array of strings List of three-letter currency codes for the target currencies for which to retrieve exchange rate data |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
Array of objects (ExchangeRateItem) Currency exchange rates |
{- "sourceCurrencies": [
- "AUD",
- "EUR",
- "USD",
- "GBP"
], - "targetCurrencies": [
- "AUD",
- "EUR",
- "USD",
- "GBP"
]
}
{- "rates": [
- {
- "sourceCurrency": "EUR",
- "targetCurrency": "EUR",
- "rate": 1,
- "lastUpdated": "2020-09-10T07:00:09Z",
- "expiry": "2020-09-12T07:05:09Z"
}, - {
- "sourceCurrency": "AUD",
- "targetCurrency": "AUD",
- "rate": 1,
- "lastUpdated": "2020-09-10T07:00:09Z",
- "expiry": "2020-09-12T07:05:09Z"
}, - {
- "sourceCurrency": "EUR",
- "targetCurrency": "USD",
- "rate": 1.2145889436,
- "lastUpdated": "2020-09-16T06:55:00Z",
- "expiry": "2020-09-18T07:05:00Z"
}, - {
- "sourceCurrency": "USD",
- "targetCurrency": "GBP",
- "rate": 0.78444221728675,
- "lastUpdated": "2020-09-10T07:00:09Z",
- "expiry": "2020-09-12T07:05:09Z"
}, - {
- "sourceCurrency": "GBP",
- "targetCurrency": "GBP",
- "rate": 1,
- "lastUpdated": "2020-09-10T07:00:10Z",
- "expiry": "2020-09-12T07:05:10Z"
}, - {
- "sourceCurrency": "AUD",
- "targetCurrency": "GBP",
- "rate": 0.56872265726375,
- "lastUpdated": "2020-09-10T07:00:09Z",
- "expiry": "2020-09-12T07:05:09Z"
}, - {
- "sourceCurrency": "USD",
- "targetCurrency": "AUD",
- "rate": 1.4034428375,
- "lastUpdated": "2020-09-10T07:00:09Z",
- "expiry": "2020-09-12T07:05:09Z"
}, - {
- "sourceCurrency": "GBP",
- "targetCurrency": "AUD",
- "rate": 1.8204061975,
- "lastUpdated": "2020-09-10T07:00:09Z",
- "expiry": "2020-09-12T07:05:09Z"
}, - {
- "sourceCurrency": "AUD",
- "targetCurrency": "EUR",
- "rate": 0.6257333533055,
- "lastUpdated": "2020-09-10T07:00:09Z",
- "expiry": "2020-09-12T07:05:09Z"
}, - {
- "sourceCurrency": "EUR",
- "targetCurrency": "AUD",
- "rate": 1.65454861,
- "lastUpdated": "2020-09-10T07:00:09Z",
- "expiry": "2020-09-12T07:05:09Z"
}, - {
- "sourceCurrency": "USD",
- "targetCurrency": "USD",
- "rate": 1,
- "lastUpdated": "2020-09-10T07:00:09Z",
- "expiry": "2020-09-12T07:05:09Z"
}, - {
- "sourceCurrency": "EUR",
- "targetCurrency": "GBP",
- "rate": 0.924811674699,
- "lastUpdated": "2020-09-10T07:00:09Z",
- "expiry": "2020-09-12T07:05:09Z"
}, - {
- "sourceCurrency": "GBP",
- "targetCurrency": "USD",
- "rate": 1.3234666156,
- "lastUpdated": "2020-09-16T06:55:00Z",
- "expiry": "2020-09-18T07:05:00Z"
}, - {
- "sourceCurrency": "USD",
- "targetCurrency": "EUR",
- "rate": 0.863156412382,
- "lastUpdated": "2020-09-10T07:00:09Z",
- "expiry": "2020-09-12T07:05:09Z"
}, - {
- "sourceCurrency": "GBP",
- "targetCurrency": "EUR",
- "rate": 1.11947792,
- "lastUpdated": "2020-09-10T07:00:09Z",
- "expiry": "2020-09-12T07:05:09Z"
}, - {
- "sourceCurrency": "AUD",
- "targetCurrency": "USD",
- "rate": 0.7376903585645,
- "lastUpdated": "2020-09-10T07:00:10Z",
- "expiry": "2020-09-12T07:05:10Z"
}
]
}
Retrieves and filters reviews for a single product Reviews should be cached and refreshed weekly, as well as on-demand when you see that the product content endpoint returns a different review count than saved in your database for the product.
Non-indexing of reviews
Availability of reviews
provider
is not "VIATOR"
) will remain available in future (however, you will receive a notification email to inform you should this occurr). As such, we require that you implement a mechanism by which locally-cached reviews are automatically deleted from your records (and are not displayed on your site) if they do not appear in the most recent response from this endpoint.Viator performs checks on reviews
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
productCode required | string Retrieve reviews for the product identified by this product code |
count required | integer <int32> Number of reviews to be returned in the response; used for pagination |
start required | integer <int32> Position of first review to be returned in the response; used for pagination |
provider required | string Limit the reviews returned in the response to those associated with this provider; one of:
|
sortBy | string One of:
If this element is omitted, the default sort option is |
reviewsForNonPrimaryLocale | boolean Set to |
showMachineTranslated | boolean Set to |
ratings | Array of integers <int32> [ items <int32 > ] Only include reviews with these ratings Example: |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
required | Array of objects (ProductReview) Reviews and review metadata for this product, from |
required | object Summary of the set of all reviews available for this product |
object Summary of the set of reviews available for this product filtered by |
{- "productCode": "5010SYDNEY",
- "provider": "ALL",
- "count": 10,
- "start": 1,
- "showMachineTranslated": true,
- "reviewsForNonPrimaryLocale": true,
- "ratings": [
- 1,
- 2,
- 3,
- 4,
- 5
], - "sortBy": "MOST_RECENT_PER_LOCALE"
}
{- "reviews": [
- {
- "reviewReference": "REV-q6mwlHKh14wicyE6pG4nptLgIzdbv1Mmpuq6xA1q7hc=",
- "language": "en",
- "publishedDate": "2021-06-05T03:28:52Z",
- "userName": "junehV5012PE",
- "rating": 5,
- "text": "We thoroughly enjoyed our 2 days on the bus. James and the other two drivers were so friendly and helpful with where we wanted to go. Can't recommend them highly enough. The online price was great too",
- "title": "Great way to see Sydney",
- "machineTranslated": false,
- "provider": "TRIPADVISOR",
- "ownerResponse": {
- "reviewReference": "REV-Nf8eTVCosx7+S3kjeNef6f4akSq5yUt+15A5Xvv+fCQ=",
- "language": "en",
- "publishedDate": "2021-06-15T03:06:31Z",
- "userName": "PamelaS3823",
- "text": "Thank you for joining the Big Bus tours and for your feedback: I will be certain to pass on your compliments to the drivers. ",
- "machineTranslated": false
}, - "helpfulVotes": 0
}, - {
- "reviewReference": "REV-9TpCW7MX6+wdcvBsEvCaNbYGb/umSSBgT1YYS/a4PnI=",
- "language": "en",
- "publishedDate": "2021-04-05T06:03:51Z",
- "userName": "G4377PJstephenb",
- "rating": 1,
- "text": "It's not exactly hop.on hop off. If you get off there is a 2 hour wait for the next bus. Also they advertise 24 hr pass , this is not true last bus is 2 or 2.30pm . Very disappointing",
- "title": "Disappointed",
- "machineTranslated": false,
- "provider": "TRIPADVISOR",
- "helpfulVotes": 2
}, - {
- "reviewReference": "REV-7GMRfrA79CGhRAmjwU+4lIXU/a48chrbfdax19evxL8=",
- "language": "en",
- "publishedDate": "2021-01-02T11:17:12Z",
- "userName": "Michele_H",
- "rating": 5,
- "text": "Loved the fact that I was outdoors while riding on the upstairs section of the bus. Especially important during Covid to have the fresh air in my face. ",
- "title": "Loved Being Outdoors While Tiding The Bus ",
- "machineTranslated": false,
- "provider": "VIATOR",
- "helpfulVotes": 0
}, - {
- "reviewReference": "REV-ytLmIiqg7xWUqJIyCX5x2IXU/a48chrbfdax19evxL8=",
- "language": "en",
- "publishedDate": "2020-12-17T18:31:11Z",
- "userName": "Susanna_L",
- "rating": 3,
- "text": "The staff are fantastic but due to COVID the service is only running from 10.00 am to 3.00 pm so I don't think it is worth booking the Hop on Hop off as a way to enjoy Sydney. The train and ferry system in Sydney is amazing so it is better to simply top up an Opal card and go.",
- "title": "Not good value with COVID restrictions",
- "machineTranslated": false,
- "provider": "VIATOR",
- "helpfulVotes": 3
}, - {
- "reviewReference": "REV-fcMOcpu9m1A///1mQytKvIXU/a48chrbfdax19evxL8=",
- "language": "en",
- "publishedDate": "2020-12-10T15:30:35Z",
- "userName": "Michele_H",
- "rating": 5,
- "text": "It was a fantastic trip. The driver was friendly, kind and helpful and went out of his way to ensure I got the return connection from Bondi to the Opera House so I could get back to my hotel. ",
- "title": "A Must Do Trip Around Sydney!! ",
- "machineTranslated": false,
- "provider": "VIATOR",
- "helpfulVotes": 0,
- "photosInfo": [
- {
- "photoVersions": [
- {
- "height": 0,
- "width": 0,
}, - {
- "height": 50,
- "width": 50,
}, - {
- "height": 150,
- "width": 150,
}, - {
- "height": 205,
- "width": 154,
}, - {
- "height": 200,
- "width": 180,
}, - {
- "height": 450,
- "width": 338,
}, - {
- "height": 733,
- "width": 550,
}, - {
- "height": 1280,
- "width": 960,
}, - {
- "height": 1365,
- "width": 1024,
}
]
}
]
}, - {
- "reviewReference": "REV-Q6yPvQx0JhE3xui8rRV/AIXU/a48chrbfdax19evxL8=",
- "language": "en",
- "publishedDate": "2020-09-02T05:51:57Z",
- "userName": "Denise_H",
- "rating": 5,
- "text": "I am a local and have always wondered about the commentary. It was fantastic. I would recommend it to anyone.",
- "title": "Sydney hop on hop off",
- "machineTranslated": false,
- "provider": "VIATOR",
- "helpfulVotes": 1
}, - {
- "reviewReference": "REV-R789jtQQPSIwzjyKLg/rawQdD4ih+e6prjHzsnWBJwI=",
- "language": "en",
- "publishedDate": "2020-08-29T03:24:22Z",
- "userName": "kathryno455",
- "rating": 4,
- "text": "This is a great way to see Sydney and Bondi. All hop on hop off buses do take 1-2 hours to complete one whole loop which can get annoying when you only have the ticket for one day and you have many sights to explore. We purchased this ticket to get to Bondi hassle free which we did. Good planning is needed for one day ticket holders!",
- "title": "Transportation",
- "machineTranslated": false,
- "provider": "TRIPADVISOR",
- "helpfulVotes": 2
}, - {
- "reviewReference": "REV-kEBAXEIoQIFpcgFvYmHv5YXU/a48chrbfdax19evxL8=",
- "language": "en",
- "publishedDate": "2020-08-12T22:20:31Z",
- "userName": "Bertha_B",
- "rating": 5,
- "text": "This experience is one memorable one for me and husband. Regardless of the weather we enjoyed the tour. Listening to the history and seeing it at the time was so beautiful. I highly recommend the Hop-on-Hop-off bus if you want to know Sydney CDB well and the History. i will take my kids and Family back there at anytime.\n\nRegards\nBex & Fred",
- "title": "MEMORABLE EXPERIENCE",
- "machineTranslated": false,
- "provider": "VIATOR",
- "helpfulVotes": 2
}, - {
- "reviewReference": "REV-BA/XoUwy8zr88uv6QaX4a4XU/a48chrbfdax19evxL8=",
- "language": "en",
- "publishedDate": "2020-07-26T18:18:03Z",
- "userName": "Peter_Vassallo",
- "rating": 5,
- "text": "We travelled by train from Penrith to Sydney to do some sight seeing . Travelling by bus we covered a lot of ground and the commentary informed us about the many sights . My wife Marina and I Highly Recommend Hop on Hop off Bus Tours .",
- "title": "Time Out in the City .",
- "machineTranslated": false,
- "provider": "VIATOR",
- "helpfulVotes": 1
}, - {
- "reviewReference": "REV-5CoEYhO9Rr28J4y9YflxxoXU/a48chrbfdax19evxL8=",
- "language": "en",
- "publishedDate": "2020-07-21T20:56:43Z",
- "userName": "Jenny_V",
- "rating": 5,
- "text": "Great time. Even the 24 year old, who lives in Sydney, enjoyed the commentary. We have been twice and there is new information each time....Great for overseas travellers..A snapshot of Sydney for a small cost",
- "title": "Hop on and off...best idea ever",
- "machineTranslated": false,
- "provider": "VIATOR",
- "helpfulVotes": 1
}
], - "totalReviewsSummary": {
- "sources": [
- {
- "provider": "VIATOR",
- "reviewCounts": [
- {
- "rating": 1,
- "count": 36
}, - {
- "rating": 2,
- "count": 100
}, - {
- "rating": 3,
- "count": 169
}, - {
- "rating": 4,
- "count": 390
}, - {
- "rating": 5,
- "count": 578
}
], - "totalCount": 1273
}, - {
- "provider": "TRIPADVISOR",
- "reviewCounts": [
- {
- "rating": 1,
- "count": 35
}, - {
- "rating": 2,
- "count": 25
}, - {
- "rating": 3,
- "count": 49
}, - {
- "rating": 4,
- "count": 74
}, - {
- "rating": 5,
- "count": 147
}
], - "totalCount": 330
}
], - "reviewCountTotals": [
- {
- "rating": 1,
- "count": 71
}, - {
- "rating": 2,
- "count": 125
}, - {
- "rating": 3,
- "count": 218
}, - {
- "rating": 4,
- "count": 464
}, - {
- "rating": 5,
- "count": 725
}
], - "totalReviews": 1603
}, - "filteredReviewsSummary": {
- "sources": [
- {
- "provider": "VIATOR",
- "totalCount": 1273
}, - {
- "provider": "TRIPADVISOR",
- "totalCount": 330
}
], - "totalReviews": 1603
}
}
Gets a collection of supplier information objects for the provided products. Limited to 500 products per request. Supplier details should be cached and refreshed weekly.
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
productCodes required | Array of strings |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
required | Array of objects (SupplierProductInfo) |
{- "productCodes": [
- "2855KENNEDY_TKTS"
]
}
{- "suppliers": [
- {
- "reference": "SUPPLIER-5VKSuubSdpsjjT67V9h0aA==",
- "name": "City Sightseeing Orlando",
- "type": "BUSINESS",
- "productCode": "2855KENNEDY_TKTS",
- "contact": {
- "email": "email@example.com",
- "address": "1 Example Drive , Suite 100 Orlando Florida 32819 US",
- "phone": "+1123456789"
}
}
]
}
Get details of all destinations supported by the API. Destinations should be refreshed weekly (in addition to on-demand updates when a new destination is returned in the product content response).
Note:
destinations[].ref
element in the product content responsecampaign-value | string <= 200 characters Affiliate partners only: Specifies the campaign tracking identifier that will be appended to the URL returned in Note: If you wish to use a campaign value that includes non-alphanumeric characters (e.g., '+', '-', etc.), you must URL-encode these characters. |
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
Accept required | string Example: application/json;version=2.0 Specifies the version of this API to access |
X-Unique-ID required | string Tracking identifier for this response. Please include the value of this field when making help requests.
|
RateLimit-Limit required | string Total limit of requests for this endpoint for a given window. For informational purposes only. |
RateLimit-Remaining required | string Remaining requests for this endpoint for a given window. For informational purposes only |
RateLimit-Reset required | string The fixed window in time, in seconds, which represents when a limit is fully replenished. For informational purposes only. |
Array of objects (DestinationDetails) | |
totalCount | integer <int32> Total count of Destinations returned |
{- "destinations": [
- {
- "destinationId": 0,
- "name": "string",
- "type": "string",
- "parentDestinationId": 0,
- "lookupId": "string",
- "destinationUrl": "string",
- "defaultCurrencyCode": "string",
- "timeZone": "string",
- "iataCodes": [
- "string"
], - "countryCallingCode": "string",
- "languages": [
- "string"
], - "center": {
- "latitude": 0,
- "longitude": 0
}
}
], - "totalCount": 0
}
This endpoint is marked for deprecation, but it will remain available to partners that started their integration prior to October 2024 to ensure backwards compatibility of existing integrations. Partners who got API access after October 2024 will not have access to this endpoint. To retrieve destinations information moving forward, please use the new /destinations endpoint.
Get details of all destinations supported by this API. Destinations should be refreshed weekly (in addition to on-demand updates when a new tag/booking question/location/destination is returned in the product content response).
destinations[].ref
element in the product content responseAccept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
errorReference | string or null reference number of this error |
dateStamp | string or null timestamp of this response |
errorType | string or null code specifying the type of error |
errorCodes | Array of strings or null array of error codes pertaining to this error |
errorMessage | Array of arrays or null or null array of error message strings |
errorName | string or null name of this type of error |
extraInfo | object or null ignore (Viator only) |
extraObject | object or null ignore (Viator only) |
success | boolean or null boolean indicator of this request's outcome
|
totalCount | integer or null number of results available for this service |
errorMessageText | string or null array of error message strings in plain text |
vmid | string or null unique numeric id of the server that processed this request |
Array of objects array of destination objects |
{- "errorReference": null,
- "data": [
- {
- "sortOrder": 1,
- "selectable": false,
- "destinationUrlName": "USA",
- "defaultCurrencyCode": "USD",
- "lookupId": "8.77",
- "parentId": 8,
- "timeZone": "America/New_York",
- "iataCode": null,
- "destinationName": "USA",
- "destinationType": "COUNTRY",
- "destinationId": 77,
- "latitude": 37.09024,
- "longitude": -95.712891
}, - {
- "sortOrder": 1,
- "selectable": true,
- "destinationUrlName": "Alabama",
- "defaultCurrencyCode": "USD",
- "lookupId": "8.77.22212",
- "parentId": 77,
- "timeZone": "",
- "iataCode": null,
- "destinationName": "Alabama",
- "destinationType": "REGION",
- "destinationId": 22212,
- "latitude": 32.34,
- "longitude": -86.26
}, - {
- "sortOrder": 2,
- "selectable": true,
- "destinationUrlName": "Alaska",
- "defaultCurrencyCode": "USD",
- "lookupId": "8.77.270",
- "parentId": 77,
- "timeZone": "America/Anchorage",
- "iataCode": null,
- "destinationName": "Alaska",
- "destinationType": "REGION",
- "destinationId": 270,
- "latitude": 63.588753,
- "longitude": -154.4930619
}, - {
- "sortOrder": 3,
- "selectable": true,
- "destinationUrlName": "Arizona",
- "defaultCurrencyCode": "USD",
- "lookupId": "8.77.271",
- "parentId": 77,
- "timeZone": "America/Phoenix",
- "iataCode": null,
- "destinationName": "Arizona",
- "destinationType": "REGION",
- "destinationId": 271,
- "latitude": 34.0489281,
- "longitude": -111.0937311
}
], - "dateStamp": "2020-02-06T19:43:09+0000",
- "errorType": null,
- "errorCodes": [ ],
- "errorMessage": null,
- "errorName": null,
- "extraInfo": { },
- "extraObject": null,
- "success": true,
- "totalCount": 1,
- "errorMessageText": null,
- "vmid": "331001"
}
This endpoint is marked for deprecation, but it will remain available to partners that started their integration prior to October 2024 to ensure backwards compatibility of existing integrations. Partners who got API access after October 2024 will not have access to this endpoint. To retrieve attractions information moving forward, please use the new /attractions/search endpoints
Get attractions. Attractions should be cached and refreshed weekly.
seoId
in this response) to the (itinerary.routes[].pointsOfInterest[].attractionId
) in the response from any of the product content endpoints.Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
destId | integer unique numeric identifier of the destination in which to search for attractions |
topX | string (topX) start and end rows to return in the format {start}-{end}
Note:
|
sortOrder | string Sort order for the results; one of:
|
errorReference | string or null reference number of this error |
dateStamp | string or null timestamp of this response |
errorType | string or null code specifying the type of error |
errorCodes | Array of strings or null array of error codes pertaining to this error |
errorMessage | Array of arrays or null or null array of error message strings |
errorName | string or null name of this type of error |
extraInfo | object or null ignore (Viator only) |
extraObject | object or null ignore (Viator only) |
success | boolean or null boolean indicator of this request's outcome
|
totalCount | integer or null number of results available for this service |
errorMessageText | string or null array of error message strings in plain text |
vmid | string or null unique numeric id of the server that processed this request |
Array of objects array of attraction objects |
{- "destId": 684,
- "topX": "1-3",
- "sortOrder": "RECOMMENDED"
}
{- "errorReference": null,
- "data": [
- {
- "sortOrder": 1,
- "webURL": null,
- "pageUrlName": "Grand-Canyon-West-Rim",
- "primaryDestinationUrlName": "Las-Vegas",
- "publishedDate": "2020-01-15",
- "attractionLatitude": 35.8808,
- "attractionLongitude": -113.97048,
- "attractionStreetAddress": "",
- "attractionCity": "",
- "attractionState": "",
- "destinationId": 684,
- "photoCount": 157,
- "primaryDestinationId": 684,
- "primaryDestinationName": "Las Vegas",
- "seoId": 1594,
- "productCount": 16,
- "rating": 4.5,
- "title": "Grand Canyon West Rim"
}, - {
- "sortOrder": 2,
- "webURL": null,
- "pageUrlName": "Graceland-Wedding-Chapel",
- "primaryDestinationUrlName": "Las-Vegas",
- "publishedDate": "2019-08-22",
- "attractionLatitude": 36.162683,
- "attractionLongitude": -115.144685,
- "attractionStreetAddress": "619 Las Vegas Boulevard South",
- "attractionCity": "Las Vegas",
- "attractionState": "",
- "destinationId": 684,
- "photoCount": 10,
- "primaryDestinationId": 684,
- "primaryDestinationName": "Las Vegas",
- "seoId": 1246,
- "productCount": 2,
- "rating": 4.5,
- "title": "Graceland Wedding Chapel"
}, - {
- "sortOrder": 3,
- "webURL": null,
- "pageUrlName": "Wynn-Las-Vegas",
- "primaryDestinationUrlName": "Las-Vegas",
- "publishedDate": "2019-07-30",
- "attractionLatitude": 36.126374,
- "attractionLongitude": -115.166749,
- "attractionStreetAddress": "3131 Las Vegas Blvd South",
- "attractionCity": "Las Vegas",
- "attractionState": "",
- "destinationId": 684,
- "photoCount": 5,
- "primaryDestinationId": 684,
- "primaryDestinationName": "Las Vegas",
- "seoId": 1266,
- "productCount": 2,
- "rating": 0,
- "title": "Wynn Las Vegas"
}
], - "dateStamp": "2020-02-06T19:55:25+0000",
- "errorType": null,
- "errorCodes": [ ],
- "errorMessage": null,
- "errorName": null,
- "extraInfo": { },
- "extraObject": null,
- "success": true,
- "totalCount": 72,
- "errorMessageText": null,
- "vmid": "331004"
}
This endpoint is now deprecated, but it will remain available to ensure backwards compatibility of existing integrations. To retrieve product reviews, please use the new /reviews/product endpoint.
Get user-submitted reviews of a product
totalCount
represents the total number of reviews for this product across all languages. Therefore, the number of reviews you can access may be fewer than this value for the language you specify.Example: "Get the first three reviews for product 5010SYDNEY
sorted by rating in ascending order":
https://viatorapi.sandbox.viator.com/service/product/reviews?sortOrder=REVIEW_RATING_A&topX=1-3&code=5010SYDNEY&showUnavailable=false
For information about how to find the review count and average rating, see: Determining ratings
sortOrder | string Enum: "REVIEW_RATING_A" "REVIEW_RATING_D" "REVIEW_RATING_SUBMISSION_DATE_D" specifier of the order in which to return reviews Sort order options:
|
topX | string Example: topX=1-3 start and end rows to return in the format {start}-{end}
Note:
|
code | string Example: code=5010SYDNEY unique alphanumeric identifier of the product, corresponding to |
showUnavailable | boolean specifier as to whether or not to show 'unavailable' products:
|
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
errorReference | string or null reference number of this error |
dateStamp | string or null timestamp of this response |
errorType | string or null code specifying the type of error |
errorCodes | Array of strings or null array of error codes pertaining to this error |
errorMessage | Array of arrays or null or null array of error message strings |
errorName | string or null name of this type of error |
extraInfo | object or null ignore (Viator only) |
extraObject | object or null ignore (Viator only) |
success | boolean or null boolean indicator of this request's outcome
|
totalCount | integer or null number of results available for this service |
errorMessageText | string or null array of error message strings in plain text |
vmid | string or null unique numeric id of the server that processed this request |
Array of objects (reviewObject) array of review objects |
{- "errorReference": null,
- "data": [
- {
- "sortOrder": 1,
- "ownerName": "Lauren",
- "ownerCountry": null,
- "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour",
- "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "publishedDate": "2019-12-31",
- "viatorNotes": "",
- "productCode": "5010SYDNEY",
- "reviewId": 63679157,
- "submissionDate": "2019-11-04",
- "rating": 1,
- "review": "<p>We did the hop on hop off bus for the second half of our day. The buses were supposed to stop running at 7:30 pm. At 6:58 our bus driver kicked everyone off the bus before the end time. We were almost 3 miles from our hotel. We all asked if we could get off at an actual stop which was 2 miles closer to our hotel and the driver said no. I want my money back because it was awful!!! I would give 0 stars if I could!</p>",
- "ownerId": 29510203,
- "viatorFeedback": ""
}, - {
- "sortOrder": 2,
- "ownerName": "Robin R",
- "ownerCountry": null,
- "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour",
- "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "publishedDate": "2018-05-09",
- "viatorNotes": "",
- "productCode": "5010SYDNEY",
- "reviewId": 32425348,
- "submissionDate": "2018-05-09",
- "rating": 1,
- "review": "<p>The bus was so crowded people were standing in the aisle which made it very difficult to see the sights. I got the last available seat which was facing backwards, so what little I could see, was of no value. The audio system was unusable because the sound quality was terrible. </p>\n\n<p>When we finally got to Bondi Beach which was lovely, we opted to uber back to our hotel which was much more convenient, efficient and had unobstructed views.</p>",
- "ownerId": 30185188,
- "viatorFeedback": ""
}, - {
- "sortOrder": 3,
- "ownerName": "Nancy S",
- "ownerCountry": null,
- "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour",
- "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "publishedDate": "2018-03-26",
- "viatorNotes": "",
- "productCode": "5010SYDNEY",
- "reviewId": 31322881,
- "submissionDate": "2018-03-26",
- "rating": 1,
- "review": "<p>There were not buses. At one stop we waited almost 30 minutes and then the bus was so crowded we had to stand. We had bought our tickets in advance to be sure to have a place on the bus but when we got on they were still selling tickets. Never again.</p>",
- "ownerId": 29062502,
- "viatorFeedback": ""
}
], - "dateStamp": "2020-02-09T19:05:03+0000",
- "errorType": null,
- "errorCodes": [ ],
- "errorMessage": null,
- "errorName": null,
- "extraInfo": { },
- "extraObject": null,
- "success": true,
- "totalCount": 1561,
- "errorMessageText": null,
- "vmid": "331004"
}
This endpoint is marked for deprecation, but it will remain available to ensure backwards compatibility of existing integrations. To retrieve photos of a product submitted by users moving forward, please use the /reviews/product endpoint.
Get photos of a product submitted by users. If you are using the /reviews/product endpoint for reviews, you should pull traveler photos from that endpoint. If you need to use the /v1/product/photos endpoint to retrieve traveler photos, the responses should be cached and refreshed weekly, as well as when you see that the product content endpoint returns a different review count than saved in your database.
You can learn more about how to implement traveler photos in this article: Implementing traveler photos via the Viator API.
topX | string Example: topX=1-3 start and end rows to return in the format {start}-{end}
Note:
|
code | string Example: code=5010SYDNEY unique alphanumeric identifier of the product, corresponding to |
showUnavailable | boolean specifier as to whether or not to show 'unavailable' products:
|
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
errorReference | string or null reference number of this error |
dateStamp | string or null timestamp of this response |
errorType | string or null code specifying the type of error |
errorCodes | Array of strings or null array of error codes pertaining to this error |
errorMessage | Array of arrays or null or null array of error message strings |
errorName | string or null name of this type of error |
extraInfo | object or null ignore (Viator only) |
extraObject | object or null ignore (Viator only) |
success | boolean or null boolean indicator of this request's outcome
|
totalCount | integer or null number of results available for this service |
errorMessageText | string or null array of error message strings in plain text |
vmid | string or null unique numeric id of the server that processed this request |
Array of objects (photoObject) array of photo objects |
{- "errorReference": null,
- "data": [
- {
- "sortOrder": 1,
- "ownerName": "Husker1k",
- "ownerCountry": null,
- "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour",
- "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5010SYDNEY",
- "caption": "<p>Carl and Karen meeting a new friend at the Wildlife park.</p>",
- "timeUploaded": "2012-02-07",
- "photoId": 1909732,
- "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/e4/dsc00471-photo_1909732-260tall.jpg",
- "ownerId": 1755909,
- "editorsPick": true,
- "title": "DSC00471"
}, - {
- "sortOrder": 2,
- "ownerName": "Kylie G",
- "ownerCountry": "Australia",
- "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour",
- "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5010SYDNEY",
- "caption": "Sydney Opera House",
- "timeUploaded": "2009-07-22",
- "photoId": 997106,
- "ownerId": 288013,
- "editorsPick": true,
- "title": "Sydney Opera House"
}, - {
- "sortOrder": 3,
- "ownerName": "Sheila T",
- "ownerCountry": null,
- "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour",
- "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour",
- "sslSupported": false,
- "productCode": "5010SYDNEY",
- "caption": "<p>This was taken from a water taxi</p>",
- "timeUploaded": "2018-03-28",
- "photoId": 31376266,
- "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/8a/-photo_31376266-260tall.jpg",
- "ownerId": 1327319,
- "editorsPick": false,
- "title": ""
}
], - "dateStamp": "2020-02-10T15:32:59+0000",
- "errorType": null,
- "errorCodes": [ ],
- "errorMessage": null,
- "errorName": null,
- "extraInfo": { },
- "extraObject": null,
- "success": true,
- "totalCount": 118,
- "vmid": "331001",
- "errorMessageText": null
}
This endpoint is marked for deprecation, but it will remain available to partners that started their integration prior to October 2024 to ensure backwards compatibility of existing integrations. Partners who got API access after October 2024 will not have access to this endpoint. To retrieve attractions information moving forward, please use the new /attractions/search and /attractions/{attraction-id} endpoints
This service retrieves a list of attractions associated with the given destination. Attractions should be cached and refreshed weekly.
Note:
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
destId required | integer unique numeric identifier of the destination in which to search for attractions |
topX | string (topX) start and end rows to return in the format {start}-{end}
Note:
|
seoType | any Enum: "ATTRACTION" "RECOMMENDATION" search specifier: one of |
sortOrder | string Sort order for the results; one of:
|
errorReference | string or null reference number of this error |
dateStamp | string or null timestamp of this response |
errorType | string or null code specifying the type of error |
errorCodes | Array of strings or null array of error codes pertaining to this error |
errorMessage | Array of arrays or null or null array of error message strings |
errorName | string or null name of this type of error |
extraInfo | object or null ignore (Viator only) |
extraObject | object or null ignore (Viator only) |
success | boolean or null boolean indicator of this request's outcome
|
totalCount | integer or null number of results available for this service |
errorMessageText | string or null array of error message strings in plain text |
vmid | string or null unique numeric id of the server that processed this request |
Array of objects |
{- "destId": 684,
- "topX": "1-3",
- "seoType": "ATTRACTION",
- "sortOrder": "RECOMMENDED"
}
{- "errorReference": null,
- "data": [
- {
- "sortOrder": 1,
- "pageUrlName": "Carroll-Shelby-Museum",
- "primaryDestinationUrlName": "Las-Vegas",
- "publishedDate": "2020-03-02",
- "panoramaCount": 0,
- "userName": "",
- "keywordCount": 1,
- "showReviews": true,
- "tabTitle": "",
- "descriptionIntro": "",
- "keywords": [
- {
- "keywordId": 623675,
- "keyword": "Museum"
}
], - "reviewCount": 10,
- "seoType": "ATTRACTION",
- "pageTitle": "Carroll Shelby Museum",
- "editorsPick": false,
- "showPhotos": true,
- "descriptionText": "",
- "overviewSummary": "<div style=\"\">If you’re into American cars, it doesn’t get much better than Las Vegas’ Shelby Heritage Center, the brainchild of race car driver Carroll Shelby. Shelby American is behind the AC Cobra, and has churned out premier performance versions of Mustangs and other cars. Now fans can check out many of the company’s creations.</div><div style=\"\"><br></div><div style=\"\"><b>The Basics</b></div><div style=\"\">Opened in 2014, the Shelby Heritage Center includes the factory, a museum, and a gift shop. Find out more about the specialty car manufacturer’s history and founder, and get up close to many of the cars—including classic Mustangs, the very first Shelby Cobra, and more recent productions. Tours include a visit to the factory, where an area is sectioned off for viewing. </div><div style=\"\"><br></div><div style=\"\"><b>Things to Know Before You Go</b></div><div style=\"\"><ul><li>The Shelby Heritage Center is a must for car enthusiasts and historians.</li><li>Don’t confuse the Shelby Heritage Center with the Shelby American Collection in Boulder, Colorado—the latter features cars donated by owners and collectors.</li></ul></div><div style=\"\"><br></div><div style=\"\"><b>How to Get There</b></div><div style=\"\">Located adjacent to Interstate 15 in Las Vegas, the Shelby Heritage Center is about 10 minutes away from the Strip by car. Taxis and rideshares are readily available.</div><div style=\"\"><br></div><div style=\"\"><b>When to Get There</b></div><div style=\"\">The center is open daily, and guided tours are offered every day but Sunday. If you’re an early riser, get there Saturday morning for the weekly Cars and Coffee event, featuring breakfast food trucks and giveaways. Spring and fall typically see the most pleasant weather—and the biggest crowds.</div><div style=\"\"><br></div><div style=\"\"><b>Drive a Race Car in Las Vegas</b></div><div style=\"\">If looking at cars isn’t enough, head to the Las Vegas Motor Speedway to learn how to maneuver a Ferrari, a Porsche, or maybe a Lamborghini. Get a lesson in the proper driving position, steering techniques, car specs, and racing lines. Then, take several laps around the track on your own.</div>",
- "pagePrimaryLanguage": "en",
- "attractionLatitude": 36.072175,
- "attractionLongitude": -115.179668,
- "attractionStreetAddress": "6405 Ensworth St.",
- "attractionCity": "Las Vegas",
- "attractionState": "Nevada",
- "destinationId": 684,
- "photoCount": 0,
- "primaryDestinationId": 684,
- "seoId": 23402,
- "productCount": 2,
- "primaryDestinationName": "Las Vegas",
- "rating": 5,
- "title": "Carroll Shelby Museum"
}, - {
- "sortOrder": 2,
- "pageUrlName": "Shark-Reef-Aquarium-at-Mandalay-Bay",
- "primaryDestinationUrlName": "Las-Vegas",
- "publishedDate": "2020-02-27",
- "panoramaCount": 0,
- "userName": "",
- "keywordCount": 1,
- "showReviews": true,
- "tabTitle": "Shark Reef",
- "descriptionIntro": "Shark Reef",
- "keywords": [
- {
- "keywordId": 623401,
- "keyword": "Hotel"
}
], - "reviewCount": 97,
- "seoType": "ATTRACTION",
- "pageTitle": "Shark Reef Aquarium at Mandalay Bay",
- "editorsPick": false,
- "showPhotos": true,
- "descriptionText": "<p>Inside the Mandalay Bay Hotel and Casino is the Shark Reef Aquarium, showcasing more than 2,000 animals displayed in 14 different exhibits and almost 1.6 million gallons of water.</p><p>\n \nThe Shark Reef Aquarium was designed to be a “total sensory experience,” and part of that is achieved by leading visitors through an acrylic tunnel with water nearly surrounding them. This exhibit alone includes 15 different species of sharks along with all the other sea life in the tank.</p><p>\n \nOther species in the aquarium include golden crocodiles, sea turtles and piranhas, none of which are included in the touching pools where visitors can find out what some of the other sea creatures feel like.</p>",
- "overviewSummary": "<div style=\"\">Get up close and personal with some of the most fearsome creatures of the deep at Mandalay Bay’s Shark Reef Aquarium. Designed to be a total sensory experience—with two underwater tunnels and multiple tanks and exhibits—the aquarium is home to more than 2,000 animals, including many species of sharks.</div><div style=\"\"><br></div><div style=\"\"><b>The Basics</b></div><div style=\"\">Wander through a viewing tunnel at the Shark Reef Aquarium’s largest exhibit, a shipwreck surrounded by 1.3 million gallons (4.9 million liters) of water. In addition to sharks, you’ll see salt- and freshwater fish, as well as sea turtles, golden crocodiles, giant rays, and more. The touch pool is a favorite among younger visitors, while certified divers have the opportunity to scuba dive in the tanks.</div><div style=\"\"><br></div><div style=\"\">Admission to the aquarium is included in some multi-attraction Las Vegas sightseeing passes.</div><div style=\"\"><br></div><div style=\"\"><b>Things to Know Before You Go</b></div><div style=\"\"><ul><li>Most visitors spend around 45 to 60 minutes at the Shark Reef Aquarium.</li><li>An audio guide is available in English and Spanish.</li><li>Guests staying at the Mandalay Bay Resort can watch the Shark Reef channel on TV.</li></ul></div><div style=\"\"><br></div><div style=\"\"><b>How to Get There</b></div><div style=\"\">The Shark Reef Aquarium is located near the South Convention Center in the Mandalay Bay Resort, at the southern end of Las Vegas Boulevard. You can easily get to the resort by car, taxi, shuttle, or the free Excalibur–Luxor–Mandalay Bay tram. </div><div style=\"\"><br></div><div style=\"\"><b>When to Get There</b></div><div style=\"\">The aquarium is open daily, usually with extended hours on weekends and over the summer. Last entry is an hour before closing. There’s no set schedule for animal feedings, but they often take place between 10am and 4pm.</div><div style=\"\"><b><br></b></div><div style=\"\"><b>Aquariums in Las Vegas</b></div><div style=\"\">Las Vegas has more than 10 aquariums, some of which can be found inside casinos. Besides the Shark Reef, check out these other popular aquariums: the Tank at the Golden Nugget, SeaQuest Las Vegas, the Aquarium at the Silverton Hotel, and the Atlantis Aquarium at the Forum Shops at Caesars Palace.</div>",
- "pagePrimaryLanguage": "en",
- "attractionLatitude": 36.09215,
- "attractionLongitude": -115.17665,
- "attractionStreetAddress": "3950 Las Vegas Blvd South",
- "attractionCity": "Las Vegas",
- "attractionState": "Nevada",
- "destinationId": 684,
- "photoCount": 14,
- "primaryDestinationId": 684,
- "seoId": 14235,
- "productCount": 1,
- "primaryDestinationName": "Las Vegas",
- "rating": 4.5,
- "title": "Shark Reef Aquarium at Mandalay Bay"
}, - {
- "sortOrder": 3,
- "pageUrlName": "Welder-Up",
- "primaryDestinationUrlName": "Las-Vegas",
- "publishedDate": "2020-02-26",
- "panoramaCount": 0,
- "userName": "",
- "keywordCount": 1,
- "showReviews": true,
- "tabTitle": "",
- "descriptionIntro": "",
- "keywords": [
- {
- "keywordId": 623169,
- "keyword": "Museum"
}
], - "reviewCount": 4,
- "seoType": "ATTRACTION",
- "pageTitle": "Welder Up",
- "editorsPick": false,
- "showPhotos": true,
- "descriptionText": "",
- "overviewSummary": "<div style=\"\">Custom car aficionados, gear heads, and fans of the TV show Vegas <i>Rat Rods</i> will want to visit at Welder Up, the custom-car fabrication garage featured on the show. See where owner Steve Darnell and his crew create their unique turbo-diesel builds, and take a tour of the showroom, which is full of one-of-a-kind vehicles.</div><div style=\"\"><br></div><div style=\"\"><b>The Basics</b></div><div style=\"\">Visit the garage on your own, or book a guided behind-the-scenes tour. However you choose to visit, you’ll be able to see Steve Darnell’s personal collection of rat rods and several of the custom builds featured on his TV show. Several Las Vegas sightseeing tours include a stop here, including tours focused on hot rods and those focused on local reality shows filming locations.</div><div style=\"\"><br></div><div style=\"\"><b>Things to Know Before You Go</b></div><div style=\"\"><ul><li>Entry to the showroom and the shop is free.</li><li>If you want to guarantee that you’ll see Steve Darnell or other members of the show, opt for a guided tour; all tours must be booked in advance.</li><li>Visitors must sign a waiver to enter the shop.</li><li>Some of the vehicles can be extremely loud; it’s a good idea to bring earplugs.</li><li>There’s a gift shop on site.</li></ul></div><div style=\"\"><br></div><div style=\"\"><b>How to Get There</b></div><div style=\"\">The Welder Up shop is located on Highland Drive, west of the Las Vegas Strip. The shop is walking distance from the Wynn Las Vegas, but the easiest way to reach the site is by driving or taking a taxi. You can also see the shop on many guided city tours.</div><div style=\"\"><br></div><div style=\"\"><b>When to Get There</b></div><div style=\"\">Welder Up is open daily, with limited hours on Sundays. Visitors are welcome to spend as much time at the showroom as they like during open hours.</div><div style=\"\"><br></div><div style=\"\"><b>Count’s Kustoms</b></div><div style=\"\">Fans of custom cars may also want to visit Count’s Kustoms, the automobile restoration and customization company owned by Danny Koker, who is the star of<i> Counting Cars </i>and a guest expert on <i>Pawn Stars</i>. His shop is located less than a mile up the road from Welder Up, and visitors can tour the shop for free or take a behind-the-scenes tour.</div>",
- "pagePrimaryLanguage": "en",
- "attractionLatitude": 36.133057,
- "attractionLongitude": -115.17419,
- "attractionStreetAddress": "3160 South Highland Drive, Suite D",
- "attractionCity": "Las Vegas",
- "attractionState": "Nevada",
- "destinationId": 684,
- "photoCount": 0,
- "primaryDestinationId": 684,
- "seoId": 24303,
- "productCount": 3,
- "primaryDestinationName": "Las Vegas",
- "rating": 4.5,
- "title": "Welder Up"
}
], - "dateStamp": "2020-04-20T22:11:05+0000",
- "errorType": null,
- "errorCodes": [ ],
- "errorMessage": null,
- "errorName": null,
- "extraInfo": { },
- "extraObject": null,
- "success": true,
- "totalCount": 71,
- "errorMessageText": null,
- "vmid": "331003"
}
This endpoint is marked for deprecation, but it will remain available to partners that started their integration prior to October 2024 to ensure backwards compatibility of existing integrations. Partners who got API access after October 2024 will not have access to this endpoint. To retrieve attractions information moving forward, please use the new /attractions/search and /attractions/{attraction-id} endpoints
This service returns the details of an attraction. Attractions should be cached and refreshed weekly.
Note:
seoId required | integer Example: seoId=14235 unique numeric identifier for the attraction to retrieve details for |
currencyCode | string Example: currencyCode=EUR currency-code for the currency in which to display pricing details for the products related to this attraction. Note:
|
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
errorReference | string or null reference number of this error |
dateStamp | string or null timestamp of this response |
errorType | string or null code specifying the type of error |
errorCodes | Array of strings or null array of error codes pertaining to this error |
errorMessage | Array of arrays or null or null array of error message strings |
errorName | string or null name of this type of error |
extraInfo | object or null ignore (Viator only) |
extraObject | object or null ignore (Viator only) |
success | boolean or null boolean indicator of this request's outcome
|
totalCount | integer or null number of results available for this service |
errorMessageText | string or null array of error message strings in plain text |
vmid | string or null unique numeric id of the server that processed this request |
object |
{- "errorReference": null,
- "data": {
- "pageUrlName": "Shark-Reef-Aquarium-at-Mandalay-Bay",
- "primaryDestinationUrlName": "Las-Vegas",
- "publishedDate": "2020-02-27",
- "panoramaCount": 0,
- "userName": "",
- "userPhotos": [
- {
- "sortOrder": 1,
- "ownerName": "Viator Insider",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "sslSupported": false,
- "productCode": "5156SHARK",
- "caption": "Shark Reef Aquarium at Mandalay Bay.",
- "ownerId": 9179657,
- "timeUploaded": "2017-12-05",
- "editorsPick": false,
- "photoId": 29347647,
- "title": "Viator_Photographer_394507.jpg"
}, - {
- "sortOrder": 2,
- "ownerName": "Viator Insider",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "sslSupported": false,
- "productCode": "5156SHARK",
- "caption": "Shark Reef Aquarium at Mandalay Bay.",
- "ownerId": 9179657,
- "timeUploaded": "2017-12-05",
- "editorsPick": false,
- "photoId": 29347642,
- "title": "Viator_Photographer_394530.jpg"
}, - {
- "sortOrder": 3,
- "ownerName": "Viator Insider",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "sslSupported": false,
- "productCode": "5156SHARK",
- "caption": "A stingray swimming around the Shark Reef Aquarium at Mandalay Bay.",
- "ownerId": 9179657,
- "timeUploaded": "2017-12-05",
- "editorsPick": false,
- "photoId": 29347627,
- "title": "Viator_Photographer_394518.jpg"
}, - {
- "sortOrder": 4,
- "ownerName": "Viator Insider",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "sslSupported": false,
- "productCode": "5156SHARK",
- "caption": "Hammerhead shark at the Shark Reef Aquarium at Mandalay Bay.",
- "ownerId": 9179657,
- "timeUploaded": "2017-12-05",
- "editorsPick": false,
- "photoId": 29347623,
- "title": "Viator_Photographer_394499.jpg"
}, - {
- "sortOrder": 5,
- "ownerName": "Viator Insider",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "sslSupported": false,
- "productCode": "5156SHARK",
- "caption": "Jellyfish at the Shark Reef Aquarium at Mandalay Bay.",
- "ownerId": 9179657,
- "timeUploaded": "2017-12-05",
- "editorsPick": false,
- "photoId": 29347614,
- "title": "Viator_Photographer_394526.jpg"
}, - {
- "sortOrder": 6,
- "ownerName": "Viator Insider",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "sslSupported": false,
- "productCode": "5156SHARK",
- "caption": "Shark swimming at the Shark Reef Aquarium at Mandalay Bay.",
- "ownerId": 9179657,
- "timeUploaded": "2017-12-05",
- "editorsPick": false,
- "photoId": 29347599,
- "title": "Viator_Photographer_394532.jpg"
}, - {
- "sortOrder": 7,
- "ownerName": "Anonymous",
- "ownerCountry": null,
- "productTitle": null,
- "productUrlName": null,
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": null,
- "caption": "Fishy faces",
- "ownerId": 2,
- "timeUploaded": "2015-01-09",
- "editorsPick": false,
- "photoId": 11060808,
- "title": "Fish are friends, not food"
}, - {
- "sortOrder": 8,
- "ownerName": "Anonymous",
- "ownerCountry": null,
- "productTitle": null,
- "productUrlName": null,
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": null,
- "caption": "Make a fishy face!",
- "ownerId": 2,
- "timeUploaded": "2015-01-09",
- "editorsPick": false,
- "photoId": 11060777,
- "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/29/shark-reef-photo_11060777-260tall.jpg",
- "title": "Shark Reef"
}, - {
- "sortOrder": 9,
- "ownerName": "Anonymous",
- "ownerCountry": null,
- "productTitle": null,
- "productUrlName": null,
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": null,
- "caption": "Underwater at the aquarium",
- "ownerId": 2,
- "timeUploaded": "2015-01-09",
- "editorsPick": false,
- "photoId": 11060740,
- "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/04/statue-photo_11060740-260tall.jpg",
- "title": "Statue"
}, - {
- "sortOrder": 10,
- "ownerName": "Anonymous",
- "ownerCountry": null,
- "productTitle": null,
- "productUrlName": null,
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": null,
- "caption": "Fish and sharks at the Shark Reef Aquarium",
- "ownerId": 2,
- "timeUploaded": "2015-01-09",
- "editorsPick": false,
- "photoId": 11060728,
- "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/f8/fish-photo_11060728-260tall.jpg",
- "title": "Fish"
}, - {
- "sortOrder": 11,
- "ownerName": "Anonymous",
- "ownerCountry": null,
- "productTitle": null,
- "productUrlName": null,
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": null,
- "caption": "At Mandalay Bay Hotel and Casino",
- "ownerId": 2,
- "timeUploaded": "2015-01-09",
- "editorsPick": false,
- "photoId": 11060720,
- "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/f0/shark-reef-photo_11060720-260tall.jpg",
- "title": "Shark Reef"
}, - {
- "sortOrder": 12,
- "ownerName": "Anonymous",
- "ownerCountry": null,
- "productTitle": null,
- "productUrlName": null,
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": null,
- "caption": "Lots of sharks and marine creatures in this exhibit",
- "ownerId": 2,
- "timeUploaded": "2015-01-09",
- "editorsPick": false,
- "photoId": 11060621,
- "title": "Admiring the sharks"
}, - {
- "sortOrder": 13,
- "ownerName": "Anonymous",
- "ownerCountry": null,
- "productTitle": null,
- "productUrlName": null,
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": null,
- "caption": "Aquarium",
- "ownerId": 2,
- "timeUploaded": "2015-01-09",
- "editorsPick": false,
- "photoId": 11060609,
- "title": "Mandalay Bay Hotel and Casino"
}, - {
- "sortOrder": 14,
- "ownerName": "Anonymous",
- "ownerCountry": null,
- "productTitle": null,
- "productUrlName": null,
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": null,
- "caption": "On the escalator heading up to the aquarium",
- "ownerId": 2,
- "timeUploaded": "2015-01-09",
- "editorsPick": false,
- "photoId": 11060602,
- "title": "Excited to see the fishies!"
}
], - "reviews": [
- {
- "sortOrder": 1,
- "ownerName": "gutschows",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2020-03-12",
- "rating": 5,
- "review": "<p>Great place to spend a afternoon. Beautiful fish, sharks, jelly fish, turtles and so much more. Touching a stingray was fun too.</p>",
- "publishedDate": "2020-03-12",
- "ownerId": 23894614,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 71654393
}, - {
- "sortOrder": 2,
- "ownerName": "vicki28uk",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2020-02-26",
- "rating": 5,
- "review": "<p>Great place to see different sharks and fish, great experience. Really enjoyed it as I was travelling alone</p>",
- "publishedDate": "2020-02-26",
- "ownerId": 1889937,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 70802193
}, - {
- "sortOrder": 3,
- "ownerName": "shivleeng",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2020-02-11",
- "rating": 5,
- "review": "<p>Wonderful I thinks the word well maintained. Beautiful and a great way to spend time . Loved the vibe there</p>",
- "publishedDate": "2020-02-11",
- "ownerId": 67665869,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 69662485
}, - {
- "sortOrder": 4,
- "ownerName": "Anthony B",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2019-10-14",
- "rating": 5,
- "review": "<p>Grandparents and granddaughter and great grandson time together. We had a good time and will visit again. Thank you</p>",
- "publishedDate": "2019-10-14",
- "ownerId": 59040249,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 62243787
}, - {
- "sortOrder": 5,
- "ownerName": "graffiti.rytr",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2019-09-02",
- "rating": 5,
- "review": "<p>The aquarium was a bit too short although I took lots of photos/videos. Don't get me wrong the aquarium was over all awesome. I would recommend to anyone</p>",
- "publishedDate": "2019-09-02",
- "ownerId": 58547163,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 59023869
}, - {
- "sortOrder": 6,
- "ownerName": "Isabel F",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2019-07-22",
- "rating": 5,
- "review": "<p>It's worth going to the Shark Reef Aquarium. It's spectacular and very educational. The beauty of the ocean is incomparable. You get to feel as if you're under the sea. The bonus of using your ticket to enter the Mandalay Beach Pool<br/>\nIs a definite plus. Great experience fabulous time!</p>",
- "publishedDate": "2019-07-22",
- "ownerId": 1913702,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 55258497
}, - {
- "sortOrder": 7,
- "ownerName": "Donna S",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2019-07-03",
- "rating": 5,
- "review": "<p>This is a wonderful experience for the entire family, the price was right and the views where awesome.This is a must see while in town.</p>",
- "publishedDate": "2019-07-03",
- "ownerId": 44851193,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 53531115
}, - {
- "sortOrder": 8,
- "ownerName": "pepper34chin",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2018-02-22",
- "rating": 5,
- "review": "<p>Really nice aquarium. Enjoyed reading the different plaques about certain sealife. Liked touching the little sting rays/ horseshoe crabs.</p>",
- "publishedDate": "2018-02-22",
- "ownerId": 30511118,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 30649951
}, - {
- "sortOrder": 9,
- "ownerName": "john w",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2017-11-05",
- "rating": 5,
- "review": "<p>must do this it is so brilliant. a must do. thank you</p>",
- "publishedDate": "2017-11-05",
- "ownerId": 15708306,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 28866080
}, - {
- "sortOrder": 10,
- "ownerName": "docproc67",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2017-10-24",
- "rating": 5,
- "review": "<p>Some great tanks.</p>",
- "publishedDate": "2017-10-24",
- "ownerId": 27956292,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 28640398
}, - {
- "sortOrder": 11,
- "ownerName": "Betty L",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2017-10-11",
- "rating": 5,
- "review": "<p>Very interesting, enjoyed all the the different species</p>",
- "publishedDate": "2017-10-11",
- "ownerId": 24024207,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 28357817
}, - {
- "sortOrder": 12,
- "ownerName": "Colin C",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2017-09-30",
- "rating": 5,
- "review": "<p>excellent venue loved it</p>",
- "publishedDate": "2017-09-30",
- "ownerId": 20748734,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 28104861
}, - {
- "sortOrder": 13,
- "ownerName": "lindasiegel1",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2017-09-25",
- "rating": 5,
- "review": "<p>It was a wonderful experience. You see all the different types of sharks, and many other breeds. Highly recommended.</p>",
- "publishedDate": "2017-09-25",
- "ownerId": 24424327,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 27984575
}, - {
- "sortOrder": 14,
- "ownerName": "Raelita G",
- "ownerCountry": "United States of America",
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2017-09-09",
- "rating": 5,
- "review": "<p>Small aquarium but spectacular. You see the sea life close up. One section the fish SWIM over you. This was the first time that I have been able to see shark teeth. All of the animals seem healthy. This aquarium is great for children but adults like it as well.</p>",
- "publishedDate": "2017-09-09",
- "ownerId": 6940192,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 27597846
}, - {
- "sortOrder": 15,
- "ownerName": "MISTY W",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2017-08-16",
- "rating": 5,
- "review": "<p>This was the highlight tour while in Vegas! Mandalay Bay Hotel is by far the best landscaped grounds on The Strip and the staff was wonderful. We went on a Wednesday afternoon and the line was short but the sea life was long. From the golden crocodile, to the glowing jelly fish and the incredible walk-under-the-sea through the curved glass tunnel, this was a simply amazing aquarium!</p>",
- "publishedDate": "2017-08-16",
- "ownerId": 26171872,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 26972816
}, - {
- "sortOrder": 16,
- "ownerName": "Paul B",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2017-08-12",
- "rating": 5,
- "review": "<p>There are some negative reviews around, but we thought it was great. Yes it's not huge but I'm not sure what people expect. It's well done and it is impressive. My kids loved seeing all in here, but especially the sharks and jellyfish. And the discounted price using viator was excellent compared to the 'on the door' price. We went around 8pm and it was quite quiet and not packed</p>",
- "publishedDate": "2017-08-12",
- "ownerId": 23667319,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 26841792
}, - {
- "sortOrder": 17,
- "ownerName": "kbobeen",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2017-08-01",
- "rating": 5,
- "review": "<p>This tour was great and well worth our time. Loved this experience and getting to touch a stingray.</p>",
- "publishedDate": "2017-08-01",
- "ownerId": 23800289,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 26520861
}, - {
- "sortOrder": 18,
- "ownerName": "Barney",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2017-07-25",
- "rating": 5,
- "review": "<p>Granddaughter loved the exhibit. A worthwhile adventure for your family.</p>",
- "publishedDate": "2017-07-25",
- "ownerId": 24710299,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 26345271
}, - {
- "sortOrder": 19,
- "ownerName": "rose C",
- "ownerCountry": "United States of America",
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2017-05-24",
- "rating": 5,
- "review": "<p>So much fun,be aware the shark reef is at the very very end of the hotel, got a lot of great pictures of fish and jellyfish,sharks- there is also a tidal pool.</p>",
- "publishedDate": "2017-05-24",
- "ownerId": 18107176,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 24602048
}, - {
- "sortOrder": 20,
- "ownerName": "Sergio S",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2017-04-22",
- "rating": 5,
- "review": "<p>It is a great place to see some great ocean and river Critters. If you show up at the right time, you can watch them feed the animals and not to mention the touch pool with Stingrays,horseshoe crabs. Great for all ages and you go at your own speed so you can watch the jellyfish or see the sharks in a shipwreck!!</p>",
- "publishedDate": "2017-04-22",
- "ownerId": 18104627,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 23858904
}, - {
- "sortOrder": 21,
- "ownerName": "Fernando D",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2017-03-24",
- "rating": 5,
- "review": "<p>Amazing sea animals to see.</p>",
- "publishedDate": "2017-03-24",
- "ownerId": 22330494,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 23161710
}, - {
- "sortOrder": 22,
- "ownerName": "Marie S",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2017-02-20",
- "rating": 5,
- "review": "<p>My husband and I often check out aquariums in our travels. This was better than others in this country that we've seen. It wasn't huge, but what it had to show, it certainly did and in a great way! We thoroughly enjoyed ourselves!</p>",
- "publishedDate": "2017-02-20",
- "ownerId": 22521337,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 22560267
}, - {
- "sortOrder": 23,
- "ownerName": "Luri22",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "ownerAvatarURL": null,
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2016-12-26",
- "rating": 5,
- "review": "<p>Great variety of aquatic animals to see, fun for the whole family</p>",
- "publishedDate": "2016-12-26",
- "ownerId": 18171461,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 21698952
}, - {
- "sortOrder": 24,
- "ownerName": "Christina H",
- "ownerCountry": null,
- "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino",
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "sslSupported": false,
- "productCode": "5156SHARK",
- "submissionDate": "2016-10-31",
- "rating": 5,
- "review": "<p>When we went to the Shark Reef, there were not a lot of people. I hear it can get crowded. It was awesome because some trainers were answering questions about the caged creatures. The hands on sting ray/ horseshoe crab area was a HUGE hit! You can touch these things and learn a lot about them from the trained staff member that is there to answer any questions you may have. The shark display is neat, as you surround them and they surround you.</p>",
- "publishedDate": "2016-10-31",
- "ownerId": 20040176,
- "viatorFeedback": null,
- "viatorNotes": null,
- "reviewId": 20934157
}
], - "products": [
- {
- "sortOrder": 2,
- "supplierName": "MGM Resorts International",
- "currencyCode": "USD",
- "catIds": null,
- "subCatIds": null,
- "specialReservationDetails": null,
- "sslSupported": false,
- "panoramaCount": 0,
- "merchantCancellable": false,
- "bookingEngineId": "FreesaleBE",
- "onRequestPeriod": null,
- "primaryGroupId": null,
- "pas": null,
- "available": true,
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "primaryDestinationUrlName": "Las-Vegas",
- "shortDescription": "Marvel at the incredible Shark Reef Aquarium in the heart of the desert at Mandalay Bay Hotel and Casino on the Las Vegas Strip. Explore the 14 exhibits containing exotic and endangered fish, reptiles and — of course — sharks. Enjoy up-close views of more than 100 sharks, including 30 in the 1.3 million-gallon (4.9 million-liter) main tank, one of the largest in the US. By walking through two underwater tunnels, get an even better sense of what it's like to be under the sea.",
- "price": 22.49,
- "supplierCode": "5156",
- "translationLevel": 0,
- "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/01/34/63.jpg",
- "onSale": false,
- "photoCount": 6,
- "reviewCount": 98,
- "primaryDestinationId": 684,
- "merchantNetPriceFrom": 0,
- "primaryDestinationName": "Las Vegas",
- "priceFormatted": "$22.49",
- "rrp": 0,
- "rrpformatted": "",
- "videoCount": 0,
- "rating": 4.5,
- "essential": "1",
- "admission": "1",
- "uniqueShortDescription": null,
- "merchantNetPriceFromFormatted": "",
- "savingAmount": 0,
- "savingAmountFormated": "",
- "specialReservation": false,
- "shortTitle": "Shark Reef Aquarium at Mandalay Bay Hotel in Las Vegas",
- "specialOfferAvailable": false,
- "duration": "10 hours",
- "title": "Shark Reef at Mandalay Bay Hotel and Casino",
- "code": "5156SHARK"
}
], - "ratingCounts": {
- "1": 3,
- "2": 7,
- "3": 14,
- "4": 24,
- "5": 48
}, - "infoPageOverviewTitle1": "",
- "infoPageOverviewTitle2": "",
- "infoPageOverview1": "<div style=\"\">Get up close and personal with some of the most fearsome creatures of the deep at Mandalay Bay’s Shark Reef Aquarium. Designed to be a total sensory experience—with two underwater tunnels and multiple tanks and exhibits—the aquarium is home to more than 2,000 animals, including many species of sharks.</div><div style=\"\"><br></div><div style=\"\"><b>The Basics</b></div><div style=\"\">Wander through a viewing tunnel at the Shark Reef Aquarium’s largest exhibit, a shipwreck surrounded by 1.3 million gallons (4.9 million liters) of water. In addition to sharks, you’ll see salt- and freshwater fish, as well as sea turtles, golden crocodiles, giant rays, and more. The touch pool is a favorite among younger visitors, while certified divers have the opportunity to scuba dive in the tanks.</div><div style=\"\"><br></div><div style=\"\">Admission to the aquarium is included in some multi-attraction Las Vegas sightseeing passes.</div><div style=\"\"><br></div><div style=\"\"><b>Things to Know Before You Go</b></div><div style=\"\"><ul><li>Most visitors spend around 45 to 60 minutes at the Shark Reef Aquarium.</li><li>An audio guide is available in English and Spanish.</li><li>Guests staying at the Mandalay Bay Resort can watch the Shark Reef channel on TV.</li></ul></div><div style=\"\"><br></div><div style=\"\"><b>How to Get There</b></div><div style=\"\">The Shark Reef Aquarium is located near the South Convention Center in the Mandalay Bay Resort, at the southern end of Las Vegas Boulevard. You can easily get to the resort by car, taxi, shuttle, or the free Excalibur–Luxor–Mandalay Bay tram. </div><div style=\"\"><br></div><div style=\"\"><b>When to Get There</b></div><div style=\"\">The aquarium is open daily, usually with extended hours on weekends and over the summer. Last entry is an hour before closing. There’s no set schedule for animal feedings, but they often take place between 10am and 4pm.</div><div style=\"\"><b><br></b></div><div style=\"\"><b>Aquariums in Las Vegas</b></div><div style=\"\">Las Vegas has more than 10 aquariums, some of which can be found inside casinos. Besides the Shark Reef, check out these other popular aquariums: the Tank at the Golden Nugget, SeaQuest Las Vegas, the Aquarium at the Silverton Hotel, and the Atlantis Aquarium at the Forum Shops at Caesars Palace.</div>",
- "infoPageOverview2": "",
- "attractionAdmission": "Varies",
- "attractionTransit": "",
- "attractionOpenHours": "",
- "keywordCount": 1,
- "showReviews": true,
- "tabTitle": "Shark Reef",
- "descriptionIntro": "Shark Reef",
- "keywords": [
- {
- "keywordId": 623401,
- "keyword": "Hotel"
}
], - "reviewCount": 97,
- "seoType": "ATTRACTION",
- "pageTitle": "Shark Reef Aquarium at Mandalay Bay",
- "editorsPick": false,
- "showPhotos": true,
- "descriptionText": "<p>Inside the Mandalay Bay Hotel and Casino is the Shark Reef Aquarium, showcasing more than 2,000 animals displayed in 14 different exhibits and almost 1.6 million gallons of water.</p><p>\n \nThe Shark Reef Aquarium was designed to be a “total sensory experience,” and part of that is achieved by leading visitors through an acrylic tunnel with water nearly surrounding them. This exhibit alone includes 15 different species of sharks along with all the other sea life in the tank.</p><p>\n \nOther species in the aquarium include golden crocodiles, sea turtles and piranhas, none of which are included in the touching pools where visitors can find out what some of the other sea creatures feel like.</p>",
- "overviewSummary": "<div style=\"\">Get up close and personal with some of the most fearsome creatures of the deep at Mandalay Bay’s Shark Reef Aquarium. Designed to be a total sensory experience—with two underwater tunnels and multiple tanks and exhibits—the aquarium is home to more than 2,000 animals, including many species of sharks.</div><div style=\"\"><br></div><div style=\"\"><b>The Basics</b></div><div style=\"\">Wander through a viewing tunnel at the Shark Reef Aquarium’s largest exhibit, a shipwreck surrounded by 1.3 million gallons (4.9 million liters) of water. In addition to sharks, you’ll see salt- and freshwater fish, as well as sea turtles, golden crocodiles, giant rays, and more. The touch pool is a favorite among younger visitors, while certified divers have the opportunity to scuba dive in the tanks.</div><div style=\"\"><br></div><div style=\"\">Admission to the aquarium is included in some multi-attraction Las Vegas sightseeing passes.</div><div style=\"\"><br></div><div style=\"\"><b>Things to Know Before You Go</b></div><div style=\"\"><ul><li>Most visitors spend around 45 to 60 minutes at the Shark Reef Aquarium.</li><li>An audio guide is available in English and Spanish.</li><li>Guests staying at the Mandalay Bay Resort can watch the Shark Reef channel on TV.</li></ul></div><div style=\"\"><br></div><div style=\"\"><b>How to Get There</b></div><div style=\"\">The Shark Reef Aquarium is located near the South Convention Center in the Mandalay Bay Resort, at the southern end of Las Vegas Boulevard. You can easily get to the resort by car, taxi, shuttle, or the free Excalibur–Luxor–Mandalay Bay tram. </div><div style=\"\"><br></div><div style=\"\"><b>When to Get There</b></div><div style=\"\">The aquarium is open daily, usually with extended hours on weekends and over the summer. Last entry is an hour before closing. There’s no set schedule for animal feedings, but they often take place between 10am and 4pm.</div><div style=\"\"><b><br></b></div><div style=\"\"><b>Aquariums in Las Vegas</b></div><div style=\"\">Las Vegas has more than 10 aquariums, some of which can be found inside casinos. Besides the Shark Reef, check out these other popular aquariums: the Tank at the Golden Nugget, SeaQuest Las Vegas, the Aquarium at the Silverton Hotel, and the Atlantis Aquarium at the Forum Shops at Caesars Palace.</div>",
- "pagePrimaryLanguage": "en",
- "attractionLatitude": 36.09215,
- "attractionLongitude": -115.17665,
- "attractionStreetAddress": "3950 Las Vegas Blvd South",
- "attractionCity": "Las Vegas",
- "attractionState": "Nevada",
- "destinationId": 684,
- "photoCount": 14,
- "primaryDestinationId": 684,
- "seoId": 14235,
- "productCount": 1,
- "primaryDestinationName": "Las Vegas",
- "rating": 4.5,
- "title": "Shark Reef Aquarium at Mandalay Bay"
}, - "dateStamp": "2020-04-20T22:23:44+0000",
- "errorType": null,
- "errorCodes": [ ],
- "errorMessage": null,
- "errorName": null,
- "extraInfo": { },
- "extraObject": null,
- "success": true,
- "totalCount": 1,
- "errorMessageText": null,
- "vmid": "331003"
}
This endpoint is marked for deprecation, but it will remain available to partners that started their integration prior to October 2024 to ensure backwards compatibility of existing integrations. Partners who got API access after October 2024 will not have access to this endpoint. To retrieve attractions information moving forward, please use the new /attractions/search and /attractions/{attraction-id} endpoints
This service gets attraction-related products (for cross-selling purposes). Attractions should be cached and refreshed weekly.
Note:
seoId required | integer Example: seoId=14235 unique numeric identifier for the attraction to retrieve recommmendation details for |
topX | string Example: topX=1-3 start and end rows to return in the format {start}-{end}
Note:
|
sortOrder | string Example: sortOrder=SEO_PRODUCT_TOP_SELLERS sort order in which to return results; one of:
|
currencyCode | string Example: currencyCode=EUR currency-code for the currency in which to display pricing details for the products associated with the attraction specified. Note:
|
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
errorReference | string or null reference number of this error |
dateStamp | string or null timestamp of this response |
errorType | string or null code specifying the type of error |
errorCodes | Array of strings or null array of error codes pertaining to this error |
errorMessage | Array of arrays or null or null array of error message strings |
errorName | string or null name of this type of error |
extraInfo | object or null ignore (Viator only) |
extraObject | object or null ignore (Viator only) |
success | boolean or null boolean indicator of this request's outcome
|
totalCount | integer or null number of results available for this service |
errorMessageText | string or null array of error message strings in plain text |
vmid | string or null unique numeric id of the server that processed this request |
Array of objects |
{- "errorReference": null,
- "data": [
- {
- "sortOrder": 2,
- "supplierName": "MGM Resorts International",
- "currencyCode": "USD",
- "catIds": null,
- "subCatIds": null,
- "specialReservationDetails": null,
- "sslSupported": false,
- "panoramaCount": 0,
- "merchantCancellable": false,
- "bookingEngineId": "FreesaleBE",
- "onRequestPeriod": null,
- "primaryGroupId": null,
- "pas": null,
- "available": true,
- "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino",
- "primaryDestinationUrlName": "Las-Vegas",
- "price": 22.49,
- "specialOfferAvailable": false,
- "supplierCode": "5156",
- "shortTitle": "Shark Reef Aquarium at Mandalay Bay Hotel in Las Vegas",
- "translationLevel": 0,
- "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/01/34/63.jpg",
- "primaryDestinationName": "Las Vegas",
- "priceFormatted": "$22.49",
- "rrp": 0,
- "rrpformatted": "",
- "primaryDestinationId": 684,
- "merchantNetPriceFrom": 0,
- "onSale": false,
- "photoCount": 6,
- "reviewCount": 98,
- "videoCount": 0,
- "rating": 4.5,
- "specialReservation": false,
- "uniqueShortDescription": null,
- "merchantNetPriceFromFormatted": "",
- "savingAmount": 0,
- "savingAmountFormated": "",
- "essential": "1",
- "admission": "1",
- "shortDescription": "Marvel at the incredible Shark Reef Aquarium in the heart of the desert at Mandalay Bay Hotel and Casino on the Las Vegas Strip. Explore the 14 exhibits containing exotic and endangered fish, reptiles and — of course — sharks. Enjoy up-close views of more than 100 sharks, including 30 in the 1.3 million-gallon (4.9 million-liter) main tank, one of the largest in the US. By walking through two underwater tunnels, get an even better sense of what it's like to be under the sea.",
- "duration": "10 hours",
- "title": "Shark Reef at Mandalay Bay Hotel and Casino",
- "code": "5156SHARK"
}
], - "dateStamp": "2020-04-20T22:33:42+0000",
- "errorType": null,
- "errorCodes": [ ],
- "errorMessage": null,
- "errorName": null,
- "extraInfo": { },
- "extraObject": null,
- "success": true,
- "totalCount": 1,
- "errorMessageText": null,
- "vmid": "331002"
}
This endpoint returns the URL to the Viator help page.
Accept-Language required | string Example: en-US Specifies the language into which the natural-language fields in the response from this service will be translated (see Accept-Language header for available language codes) |
errorReference | string or null reference number of this error |
dateStamp | string or null timestamp of this response |
errorType | string or null code specifying the type of error |
errorCodes | Array of strings or null array of error codes pertaining to this error |
errorMessage | Array of arrays or null or null array of error message strings |
errorName | string or null name of this type of error |
extraInfo | object or null ignore (Viator only) |
extraObject | object or null ignore (Viator only) |
success | boolean or null boolean indicator of this request's outcome
|
totalCount | integer or null number of results available for this service |
errorMessageText | string or null array of error message strings in plain text |
vmid | string or null unique numeric id of the server that processed this request |
object |
{- "errorReference": null,
- "data": {
- "url": "\"http://www.viator.com/customer-care?eap=brand-subbrand-16721&aid=vba16721en"
}, - "dateStamp": "2020-04-21T17:05:27+0000",
- "errorType": null,
- "errorCodes": [ ],
- "errorMessage": null,
- "errorName": null,
- "extraInfo": { },
- "extraObject": null,
- "success": true,
- "totalCount": 1,
- "errorMessageText": null,
- "vmid": "331002"
}