{ "openapi": "3.0.2", "info": { "title": "Viator API Documentation & Specification - Affiliate Partners", "description": "\n\n## Updates\n\n| Date | Description |\n|------|-------------|\n| 26 May 2022 | Added advice about review authenticity: [Key concepts - Review authenticity](#section/Key-concepts/Review-authenticity) |\n| 11 Feb 2022 | Added note about no-index policy to [/attraction](#operation/attraction), [/attraction/photos](#operation/attractionPhotos), [/attraction/reviews](#operation/attractionReviews) and [/search/attractions](#operation/searchAttractions) endpoints |\n| 16 Sep 2021 | Removed `topX` and modified options for `sortOrder` request parameters in [/attraction/reviews/](#operation/attractionReviews) endpoint |\n| 6 Sep 2021 | Modified available options for `sortOrder` request parameter in [/taxonomy/attractions](#operation/taxonomyAttractions) and [/search/attractions](#operation/searchAttractions) endpoints |\n| 3 March 2021 | Added `currencyCode` request parameter to [/attraction/products](#operation/attractionProducts) |\n| 19 Feb 2021 | Removed /support/terms and /support/faq endpoints |\n| 3 Feb 2021 | Added [Special offers and on-sale pricing](#section/Key-concepts/Special-offers-and-on-sale-pricing) section |\n| 9 June 2020 | Updated [Supported currencies](#section/Appendices/Supported-currency-codes) section and [/product](http://localhost:8080/#operation/product) endpoint description to reflect multiple currencies now being enabled for all accounts by default |\n| 2 June 2020 | Updated Postman collections and [Testing](#section/Testing) section |\n| 20 May 2020 | Updated Postman collection |\n| 19 May 2020 | Recompiled with latest version of ReDoc (0.9.8) |\n| 22 Apr 2020 | Revised list of available languages |\n| 21 Apr 2020 | Regenerated all endpoint examples |\n| 20 Apr 2020 | Updated Overview section to be more specific to the Content Affiliate partner type |\n| 10 Mar 2020 | Created new [Overview](#section/Overview) section \n\n# Overview\n\nThe API exposes a variety of services that allow the retrieval of all product details, such as descriptions, pricing, terms and conditions, photos and reviews. This data can either be ingested periodically 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.\n\nThe API provides product content and availability functionality, along with various utility services to map between yours and Viator's data taxonomy.\n\n## Who is the API for?\n\nThe Viator Partner API is designed for use by organizations and individuals partnered with Viator as a Viator Branded Affiliate (VBA).\n\n### Viator Branded Affiliates (VBAs)\n\nVBAs 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; therefore, access to the booking or transactional endpoints necessary to operate as the merchant of record (i.e., merchant partners) is restricted. \n\nWhen a customer wishes to book a product from a VBA partner's site, they are instead redirected to [viator.com](https://viator.com) in order to complete the purchase; whereas, merchant partners are able to process and manage bookings through the Viator API itself, allowing their customers to book products without leaving the partner's site.\n\nViator affiliates instead generate unique URLs that redirect their users to the Viator site, resulting in a cookie being set such that all transactions will accrue a commission for that partner until the cookie expires.\n\nPurchases of products originating from the VBAs site are recorded and a commission on these sales is paid periodically.\n\n## Uses of the Viator Partner API\n\nThe Viator Partner API is used to carry out the following tasks:\n\n### Product search and ingestion\n\nPartners can use the product search endpoints to retrieve lists of products from Viator\u2019s inventory relevant to their business. The available search criteria include:\n\n- The location (destination) in which the product operates\n- Whether the product is associated with a well-known tourist attraction; e.g., Empire State Building\n- The type of product (known as its category and/or subcategory)\n- The time period during which the product operates \n- Words or phrases that occur in a product's description via a free-text search\n\nPartners who prefer to download product details periodically (instead of performing all operations in real time in response to user behavior) do so by using the product search endpoints to compile a list of products that they wish to sell on their site. They then download comprehensive product details for each via the /product endpoint.\n\n#### Product search endpoints:\n\n| Endpoint | Use |\n|-|-|\n| [/search/products](#operation/searchProducts) | Allows searching for products according to: destination / location, relationship to a known tourist attraction; category and/or subcategory; date of operation |\n| [/search/products/codes](#operation/searchProductsCodes) | Retrieves product details for products that match a list of product codes (unique identifiers for the product) |\n| [/search/freetext](#operation/searchFreetext) | Retrieves product details for products that include the search terms in the product's description and details. |\n| [/available/products](#operation/availableProducts) | Retrieves products that are identified by specific product codes, operate during a specified day range and accept a certain number of adult travelers |\n\n#### Product information endpoints:\n\nAll information about a product that must be communicated to customers prior to purchase is available via [/product](#operation/product) and its auxiliary endpoints. This content is generally used to construct product display pages and for performing local searches.\n\nImportant information about a product includes:\n\n- Product and supplier names\n- Geographic location\n- Product description\n- Category and subcategory\n- Photos (from both users and the supplier)\n- User reviews and ratings\n- Product options (variants of the tour/activity, such as starting times, passenger mix options, and inclusions/add-ons, including basic pricing information for each)\n- Which age ranges can participate\n- Booking details\n- Terms and conditions\n- Basic pricing\n- Logistics\n + Inclusions (e.g., provided meals)\n + Exclusions (e.g., entrance fees to visited attractions)\n + Health restrictions and accessibility\n + Departure times\n + Passenger pick-up\n + Duration\n + Tour routes\n\n### Auxiliary services\n\nTaxonomical data sets are required to interact meaningfully with the Viator Partner API; for example, mappings from destination (location of operation) to their respective identification codes. This information may occasionally change or be added to. Consequently, the API includes endpoints that return the most up-to-date versions of this information.\n\n#### Taxonomy endpoints\n\n| Endpoint | Use |\n|-|-|\n| [/taxonomy/destinations](#operation/taxonomyDestinations) | Retrieves a list of destination names, types and unique identifiers to be used when interacting with the Viator Partner API |\n| [/taxonomy/categories](#operation/taxonomyCategories) | Retrieves a list of product categories for a destination that can be used as a means of filtering when searching for products using the [/search/products](#operation/searchProducts) endpoint |\n| [/taxonomy/attractions](#operation/taxonomyAttractions) | Retrieves a list of tourist attractions (e.g., the Eiffel Tower or Empire State Building) and their associated identification codes to be used as a means of searching for available products; for example, in the [/search/products](#operation/searchProducts) service |\n| [/booking/hotels](#operation/bookingHotels) | Retrieves a list of hotels, including names and geographic locations, to be used when making booking requests |\n\n#### Utility endpoints\n\nThe following services are available that provide basic utility services to support the use of the API:\n\n| Endpoint | Use |\n|-|-|\n| [/util/ip2country](#operation/utilIp2country) | Returns the country-code for the country in which the IP is located. |\n| [/util/sitedetails](#operation/utilSitedetails) | Returns the site settings for your organization|\n| [/util/countrymap](#operation/countrymap) | Returns a dictionary mapping coutry-codes to their natural-language names and international dialling prefixes|\n| [/util/guid](#operation/utilGuid) | Generates and returns a GUID for general use |\n| [/util/siteBinaryData](#operation/utilSiteBinaryData) | Returns custom information for a partner, such as a logo, favicon or quick links |\n\n### Attraction services\n\nViator has a large database of attractions and traveler recommendations. These are associated with a destination and have their own photos and reviews as well as associated products that consumers can purchase.\n\nAn example Attraction is the Eiffel Tower. Viator sells a number of products that take customers to the tower and these are associated for cross selling purposes.\n\nRecommendations are authored by Viator and our customers and include recommended itineraries for visiting a city or favorite restaurants, etc.\n\nThe attraction endpoints can be used to get the attractions or recommendation lists, details and associated products, photos and reviews.\n\nAttractions and recommendations have a unique ID called the `seoId`. This is the unique identifier for an attraction and is available in the following services.\n\n| Endpoint | Use |\n|-|-|\n| [/search/attractions](#operation/searchAttractions) | Returns a list of attractions associated with the given destination |\n| [/attraction](#operation/attraction) | Returns the details of an attraction. |\n| [/attraction/reviews](#operation/attractionReviews) | Returns reviews related to an attraction. These reviews might be associated indirectly through the related products.|\n| [/attraction/photos](#operation/attractionPhotos) | Returns photos that are related to an attraction (these may be associated indirectly if they are photos of products related to the attraction) |\n\n### Customer support services\n\nThe links to the terms and conditions, FAQ and customer care page is available to VBA partners.\n\nThe following services are available:\n\n| Endpoint | Use |\n|-|-|\n| [/support/terms](#operation/supportTerms) | Returns the URL for the terms and conditions. |\n| [/support/FAQ](#operation/supportFAQ) | Returns the URL to the FAQ page that the partner can link to within their app / website |\n| [/service/support/customercare](#operation/supportCustomercare) | Returns the URL to the customer care page that the partner can link to within their app / website. |\n\n---\n\n# Authentication\n\n## API key\n\nAccess to the API is managed using an **API key** that must be included as a **header parameter** to every call made to all API endpoints described in this document.\n\n| Header parameter name | Example value |\n|-----------------------|---------------|\n| exp-api-key | bcac8986-4c33-4fa0-ad3f-75409487026c |\n\nIf you do not know the API key for your organization, please contact your business development account manager for these details.\n\nWhen using this type of key, you must also include in your request the language you wish your response localized to via the `Accept-Language` header parameter. See [Accept-Language header](#section/Appendices/Accept-Language-header) for available language codes. Please note that, at present, only the language configured for your organization's point of sale will be available.\n\n## Legacy API key\n\nPreviously, authenticating to this API was accomplished by passing an API-key as a **query parameter** appended to the URI for each call; e.g.:\n\n```html\nGET https://viatorapi.viator.com/service/taxonomy/destinations?apiKey=xxxxxxxxxxxxxxxxxx\n```\n\nWhile this method of authentication remains available for backwards-compatibility, if you are still using this method for authentication, we recommend you contact your business development account manager to ask for a new-style API key as soon as possible.\n\n# Key concepts\n\n## Content ingestion and caching strategy\n\nMuch of the information you will need to retrieve from the Viator API \u2013 such as the taxonomy, product lists and product details \u2013 do not change frequently.\n\nTherefore, we recommend implementing a caching strategy in order to eliminate unnecessary traffic to Viator\u2019s servers and improve the operation of your site. \n\nThis section discusses the different strategies for retrieving and caching Viator\u2019s product catalogue.\n\nYou will need to decide on how you will retrieve and manage content from Viator\u2019s product catalogue. The two main options are as follows:\n\n### 1. API response caching\n\n*Partners retrieve content as-needed and cache responses on a service-by-service basis*\n\nIf you do not need to store product details locally, we recommend performing caching of on a service-by-service basis; i.e., storing the entire response and applying a time-to-live (TTL) of less than 24 hours.\n\n#### Benefits of API response caching\n\n* All the benefits of caching with minimal overhead\n* Minimal risk of serving stale or invalid data cached on the partner's side\n* No need to download data about products that are not selling\n* A smaller volume of local data improves cache hit performance\n* Fewer requests made of Viator's systems\n* Avoids rate limitations\n* Closer adherence to best practices\n* Removes need to manage a complex data structure locally\n\n#### Service endpoints to cache\n\nCaching should only be applied to services that yield infrequently changing data; i.e.:\n\n* [/taxonomy/destinations](](#operation/taxonomyDestinations)\n* [/taxonomy/categories](#operation/taxonomyCategories)\n* [/taxonomy/attractions](#operation/taxonomyAttractions)\n* [/search/products](#operation/searchProducts)\n* [/search/products/codes](#operation/searchProductsCodes)\n* [/search/freetext](#operation/searchFreetext)\n* [/product](#operation/product)\n* [/product/reviews](#operation/productReviews)\n* [/product/photos](#operation/productPhotos)\n* [/available/products](#operation/availableProducts)\n\n**Note**: These services should be considered cacheable even though some are POST and no Cache-Control HTTP header is included in their response.\n\n### 2. Periodic content ingestion\n\n*Partners download either the full product catalogue or a subset of the catalogue at regular intervals based on destination, linked attraction, or product category filters.*\n\n#### Who should use periodic ingestion\nThis approach may be preferable for partners whose requirements include:\n* **System agnosticism/data centralization** \u2013 i.e., partners who are simultaneously selling products from vendors other than Viator, have existing product databases or are likely to want to maintain a central product catalogue with a unified taxonomy / data structure\n* **Enhanced search capability** \u2013 i.e., the ability to apply different categorization rules, filters, exclusions or search optimizations to the product catalogue; e.g., grouping or filtering products according to criteria other than those supported directly by the Viator API (destination, attraction-link or category)\n\n#### Frequency of content ingestion\nWe recommend that you perform an ingestion of the product catalogue once every 24 hours.\n\n#### How to retrieve product codes\n\nMake a call to one of the product search services:\n\n* [/search/products](#operation/searchProducts) \u2013 to search by `destId` (destination), `catId` (category), `subCatId` (subcategory) or `seoId` (attraction)\n* [/search/freetext](#operation/searchFreetext) \u2013 free-text search across all identifying fields \n\n#### How to retrieve all products in the catalogue\n\nTo retrieve all products from the Viator catalogue:\n\n* Retrieve all available destination identifiers (`destId`) from the [/taxonomy/destinations](#operation/taxonomyDestinations) service\n* Iterate through the complete list of `destId`s you retrieved in the previous step, and call [/search/products](#operation/searchProducts) for each `destId`\n\n**Note**: As some products operate in multiple destinations, the same product code may be returned for a range of different destinations. Therefore, make sure your list of product codes only contains one copy of each code.\n\nYou may then iterate through this list of product codes to retrieve any other product details necessary in order to properly populate your local database with the information you require.\n\n#### Retrieving a subsection of the product catalogue\n\nYou may wish to retrieve only some of the products available in the Viator catalogue; for example, if your organization is only interested in selling products that operate locally.\n\nYour top level search using [/search/products](#operation/searchProducts) is restricted to one of the three main categorization methods for products; i.e., destination, category/subcategory, or attraction-link; however, you may employ your own methods to filter the selection of products based on any attribute in the product data structure.\n\n#### Dealing with pagination using `totalCount` and `topX`\n\nDue to the large number of results that can be returned by the [/search/products](#operation/searchProducts) service, the request might exceed the 30-second time-out limitation. Therefore, you will need to make multiple requests to this service including pagination information in order to retrieve all products that match your search criteria.\n\nThis is accomplished by sequentially requesting successive segments of the results using the `topX` request parameter together with the `totalCount` response field; i.e.:\n\n* For your first request, specify a `topX` of `\"1-100\"`\n - **Note**: this range is *inclusive*; i.e., `\"topX\": 1-100\"` will yield the first 100 records \n* The first response will indicate the total number of records available through the value of the `totalCount` field in the response object; e.g.: ```\"totalCount\": 13843```\n* For each subsequent request, specify the next logical 'chunk' of data via the `topX` parameter of the request; e.g.:\n - \"topX\": \"1-100\"\n - \"topX\": \"101-200\"\n - ...\n - \"topX\": \"13801-13843\"\n\n#### Rate limiting\n\nDue to the heavy load that pre-caching can place on Viator's servers and the downstream servers we connect to, we apply a rate limit of 150 requests per rolling 10 second time window.\n\nRequest rates exceeding this limit will result in a **HTTP 429 (Too Many Requests)** status code being returned.\n\n**Note**: The rate is calculated over a rolling 10-second time window.\n\n* In order to avoid running-up against rate limits:\n - insert a delay of 2s if you receive a HTTP 429 status code\n - do not run this as a multi-threaded process\n\n## Categorization of content\n\nThe products available in Viator\u2019s catalogue are mainly categorized according to:\n\n1. **Destination**: every product in the Viator catalogue is categorized according to the destination/locale in which it operates. There are three kinds of destination:\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Destination typeMeaning
\u201cCOUNTRY\u201dA country; e.g., \u201cAustralia\u201d, \u201cJapan\u201d, \u201cUSA\u201d
\"REGION\"A geographical region or state; e.g., \u201cSouth Australia\u201d, \u201cFrench Riviera\u201d, \u201cPunjab\u201d
\"CITY\"A city within a state; e.g., \u201cTownsville\u201d, \u201cOsaka\u201d, \u201cSingapore\u201d
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
destinationNamedestIddestinationType
USA77COUNTRY
Wisconsin22231REGION
Madison24146CITY
France51COUNTRY
Brittany21942REGION
Rennes21943CITY
\n\n1. **Category and subcategory**: the products in the Viator catalogue are grouped according to the kind of activity they entail and may be subcategorized further to provide greater specificity; for example:\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
CategorySubcategories
Air, Helicopter & Balloon ToursAir Tours
Helicopter Tours
Balloon Rides
Weddings & HoneymoonsWedding Packages
Honeymoon Packages
\n1. **Attraction link** (i.e., association to a particular \"point of interest\"); e.g.:\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Attraction`seoId`
Bellagio Fountains1243
Black Canyon4437
Epcot Centre1141
\n\n## Localization and translation\n\n### Foreign language products\n\nThe products available through the Viator API have been created in a variety of languages, often by the suppliers of those products themselves. \n\nAlthough the majority of these have been created in English, many have been created in other languages. For example, a tour that operates in Paris might have been created in French.\n\nViator provides translation services to localize product descriptions to the language of the locale in which they are being presented. In this way, products with descriptions \u2013 for example, in French \u2013 can be displayed in English on English-language websites. Conversely, products with English-language-descriptions can be displayed in French on French-language websites.\n\n* **Note**: product descriptions are translated into the language specified in the `Locale` header parameter in the request to each endpoint.\n\n### Human and machine translation\n\nSome products have been translated by actual humans \u2013 'human translated' \u2013 while others have been automatically translated using Google Translate \u2013 'machine translated'.\n\nThe type of translation that has been applied to a product (if any) is indicated by its `translationLevel`, a numeric specifer with meanings as follows:\n\n| `translationLevel` | Meaning |\n|-----------------|---------|\n| `0` | The product was created by the supplier in the language you specifed using the `Locale` header parameter in the request; i.e., the natural-language text in this response has not been translated |\n| `80` | All product information has been machine translated |\n| `90` or `100` | All product information has been human translated |\n\nTherefore, any product with a non-zero `translationLevel` has been translated.\n\nThe `translationLevel` field is returned in the response objects from the following services:\n\n* [/search/products](#operation/searchProducts)\n* [/search/products/codes](#operation/searchProductsCodes)\n* [/search/freetext](#operation/searchFreetext)\n* [/product](#operation/product)\n* [/available/products](#operation/availableProducts)\n\nWhen performing a product search using any of these services, you will receive - by default - products with a `translationLevel` of:\n\n* `0` (products that are in the language you specified in `Locale`), and\n* `90` or `100` (products that have been fully human translated)\n\n### Accessing machine-translated products\n\nIf your implementation can support the large number of products available that are machine translated, you can.\n\nHowever, access to the considerable volume of machine-translated products (level `80`), is not granted by default, as there may be quality issues regarding automatically-translated text.\n\nTo access machine-translated products, you will need to request access from your business development account manager.\n\n## How to report a product issue\n\nOccasionally, a product schema in the Viator database will contain incorrect or invalid information. Usually, this occurs due to a mistake made by the supplier of the product when creating the product or updating its details.\n\nNonetheless, it's in all our best interests for product information to be accurate and up-to-date; therefore, if you discover a problem with a product, we would greatly appreciate it if you could report the error through our [product issue reporting form](https://www.tfaforms.com/433240).\n\n### How to use the product issue reporting form\n\n1. Navigate to the [product issue reporting page](https://www.tfaforms.com/433240)\n2. Fill in the **Reporter**, **Supplier ID**, **Product Code** and **Booking ID** fields:\n\n| Field | How to fill it in | Example |\n|-------|-------------------|---------|\n| Reporter | Enter your email address for tracking or correspondence | `you@emailserver.com` |\n| Supplier ID | Enter the value returned in the `supplierCode` field by the [/product](#operation/product) service for the product in question. | `3072` |\n| Product Code | Enter the value returned in the `code` field by the [/product](#operation/product) service for the product in question. | `3072LASALL` |\n| Booking ID | Leave this field blank | |\n\n3. In the **Reason** box below, choose **Content** by clicking on its radio selector. A list of categories will appear, with meanings as follows:\n\n| Category | Included issues | \n|----------|---------|\n| Additional Info | clauses in the `additionalInfo` array in the response from [/product](#operation/product); e.g., departure time or hotel pick-up information |\n| Availability & Blockouts | N/A |\n| Booking Details | N/A |\n| Highlights | `highlights` array items in the response from [/product](#operation/product) |\n| Inclusions / Exclusions | `inclusions` or `exclusions` array items in the response from [/product](#operation/product) |\n| Images | `productPhotos` and `userPhotos` returned by [/product](#operation/product) or [/product/photos](#operation/productPhotos) |\n| Product Title | `title` in the response from [/product](#operation/product), [/search/products](#operation/searchProducts), [/search/products/codes](#operation/searchProductsCodes) and [/search/products/freetext](#operation/searchProductsFreetext) |\n| Product Descriptions | `description` and `shortDescription` in the response from [/product](#operation/product)|\n| SAPI | N/A |\n| Tour Options & Pricing | pricing issues; e.g. when the value of `merchantNetPrice` is `0`; or, if `merchantNetPrice` > `price` |\n| Taxonomy | |\n| Translation Incorrect | mistakes in any natural-language field in the response from any service where `translationLevel` is non-zero |\n| TVRM | N/A |\n| VUC incorrect | N/A |\n\n4. After selecting the category of issue from the options shown, fill-in the **Description / Action Required** box with a good, clear description of the problem and any specific additional actions you would like us to take\n5. Click **Submit** to send the report\n\n
\n \"Tripadvisor\n
Example Report a Product Issue form
\n
\n\nOnce your report has been submitted, a member of our Supplier Support Team will contact the supplier of the product in question to resolve any problems with their listing.\n\n## Special offers and on-sale pricing\n\nSuppliers have the option of setting special pricing deals for their products. When a product is 'on sale'; i.e., has a temporarily lowered price, it will be reflected in the product content response, as follows:\n\n| Field name | Standard pricing | Special offer / on-sale pricing |\n|------------|----------------|-------------------------|\n| `specialOfferAvailable` | `false` | `true` |\n| `specialOffer` | `\"\"` (empty string) | e.g.: `\"Book by February 28 to save 10%\"` |\n| `rrp` | `0.0` | pre-discount price |\n| `rrpFormatted` | `\"\"` (empty string) | currency-formatted pre-discount price |\n| `onSale` | `false` | `true` |\n| `price` | standard price | special offer price |\n| `priceFormatted` | currency-formatted **standard price** | currency-formatted **special-offer price** |\n| `priceFrom` (in `tourgrades`) | standard price | special-offer price |\n| `priceFromFormatted` (in `tourgrades`) | currency-formatted **standard price** | currency-formatted **special-offer price** |\n| `savingAmount` | `0.0` | (`rrp` - `priceFrom`) |\n| `savingAmountFormated` | `\"\"` (empty string) | (`rrp` - `priceFrom`) currency formatted |\n\nYou can use this information to highlight which products are on special and provide details to the user about the special offer.\n\n\n## Making a booking\n\nAffiliate partners do not manage any aspect of the booking process. Instead, users on the affiliate's site click the link to the tour, which is provided in the `webURL` field in the product details in the responses from:\n\n- [/search/products](#operation/searchProducts)\n- [/search/products/codes](#operation/searchProductsCodes)\n- [/search/freetext](#operation/searchFreetext)\n- [/product](#operation/products)\n\n## Review authenticity\n\n### Viator performs checks on reviews\n\nYou 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. \n\nIf 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 click on the link provided in the email. \n\nAfter 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.\n\n\n# Testing\n\n## Postman collection for testing\n\n\nTo facilitate your testing of the APIs functionality, please use the following collection, which can be loaded into the [Postman](https://www.getpostman.com/) API development environment via its **import** function.\n\n\n- [Viator affiliate partner API Postman collection](/partner-api/resources/affiliate/technical/postman/viator-content-partner-api.postman_collection.json)\n\n### Setting up API-key authentication in Postman\n\nBefore you start using the linked Postman collection for testing, you will need to set up the authorization method you wish to use. This can be either the new method (the `exp-api-key` header parameter) or, the legacy method (the `apiKey` query parameter).\n\nWhile both methods remain available, we strongly recommend that you use the new method, as it:\n\n1. Provides access to all languages available for your organization with a single API-key as opposed to one API-key per language\n2. Allows access to the new [booking cancellation endpoints](#section/Common-workflows-and-data-validation/Cancellation-API-workflow), as well as all newly-created endpoints in future\n \nPlease speak to your account manager if you are still using the legacy apiKey and would like to switch to our new authentication mechanism.\n\n#### How to set up the new exp-api-key header parameter\n\n1. Select **Edit** from the collection menu:\n\n![postman-testing-1](/partner-api/resources/affiliate/technical/img/postman-testing-1.png)\n\n2. Set the following values:\n\n* **Key**: `exp-api-key`\n* **Value**: Your organization's single exp-api-key, which will have an identical format to that shown in the image below\n* **Add to**: Header\n\n![postman-testing-2](/partner-api/resources/affiliate/technical/img/postman-testing-2.png)\n\n3. Click **Update**\n\n#### How to set up the legacy apiKey query parameter\n\n1. Select **Edit** from the collection menu:\n\n![postman-testing-1](/partner-api/resources/affiliate/technical/img/postman-testing-1.png)\n\n2. Set the following values:\n\n* **Key**: `apiKey`\n* **Value**: One of your organization's legacy apiKeys, which will have an identical format to that shown in the image below\n* **Add to**: Query Params\n\n![postman-testing-3](/partner-api/resources/affiliate/technical/img/postman-testing-3.png)\n\n3. Click **Update**\n\n# Appendices\n\n## Accept-Language header\n\nThe `Accept-Language` header parameter controls which language the natural language fields in the response from each endpoint will be translated into.\n\nNote that you can only specify languages that have been configured for your API-key. Therefore, if you wish to access additional languages, you will need to contact your business development account manager.\n\n| Language | Accept-Language parameter value |\n|----------|-------|\n| English | `en`, `en-US` |\n| Danish | `da`, `da-DK` |\n| Dutch | `nl`, `nl-NL` |\n| Norwegian | `no`, `no-NO` |\n| Spanish | `es`, `es-ES` |\n| Swedish | `sv`, `sv-SE` |\n| French | `fr`, `fr-FR` |\n| Italian | `it`, `it-IT` |\n| German | `de`, `de-DE` |\n| Portuguese | `pt`, `pt-PT` |\n| Japanese | `ja`, `ja-JP` |\n\n## Standard JSON fields\n\nEvery service returns a standard set of JSON fields at the end of the JSON response, which indicates if it was processed successfully by the API.\n\nIn addition to the success flag, you will also need to check the `errorMessage` values for the status of the response. Success: `true` and `errorType` / `errorMessage` `null` indicates that there were no errors.\n\n### Example JSON - successful:\n\n```javascript\n{\n \"data\": [],\n \"vmid\": \"321001\",\n \"errorMessage\": null,\n \"errorType\": null,\n \"dateStamp\": \"2013-03-06T19:45:10+0000\",\n \"errorReference\": null,\n \"errorMessageText\": null,\n \"success\": true,\n \"totalCount\": 114,\n \"errorName\": null\n}\n```\n\n### Example JSON - unsuccessful:\n\n```javascript\n{\n \"errorReference\": \"~5793740141815885188840666\",\n \"data\": null,\n \"dateStamp\": \"2013-09-09T11:29:48+0000\",\n \"errorType\": \"EXCEPTION\",\n \"errorMessage\": [\"* Additional questions missing\\n\"],\n \"errorName\": \"ValidationException\",\n \"success\": false,\n \"totalCount\": 1,\n \"vmid\": \"221001\",\n \"errorMessageText\": [\"* Additional questions missing\" ]\n}\n```\n\n| Element | Type | Comments | To be viewed by customer | Required |\n|---------|------|----------|:------------------------:|:--------:|\n| `vmid` | varchar | The server id that processed the service | \u274c | \u2705 |\n| `errorMessage` | varchar | The error message in HTML | \u274c | \u2705 |\n| `errorType` | varchar | Type of error: EXCEPTION | \u274c | \u2705 |\n| `dateStamp` | datetime | timestamp of the response | \u274c | \u2705 |\n| `errorReference` | varchar | The error reference is logged for future reference | \u274c | \u2705 |\n| `errorMessageText` | varchar | The textual version of the error message | \u2705
(if an error has occurred) | \u2705 |\n| `success` | boolean | | \u274c | \u2705 |\n| `totalCount` | smallint | The number of results returned (minimum = `1`) | \u2705
(if displaying the number of results found in a search etc.) | \u2705 |\n| `errorName` | varchar | The name of the error type | \u274c | \u2705 |\n\n## Country codes\n| Country code | Country |\n|--------------|---------|\n| AF | Afghanistan |\n| AL | Albania |\n| DZ | Algeria |\n| AS | American Samoa |\n| AD | Andorra |\n| AO | Angola |\n| AI | Anguilla |\n| AQ | Antarctica |\n| AG | Antigua and Barbuda |\n| AR | Argentina |\n| AM | Armenia |\n| AW | Aruba |\n| AU | Australia |\n| AT | Austria |\n| AZ | Azerbaijan |\n| BS | Bahamas |\n| BH | Bahrain |\n| BD | Bangladesh |\n| BB | Barbados |\n| BY | Belarus |\n| BE | Belgium |\n| BZ | Belize |\n| BJ | Benin |\n| BM | Bermuda |\n| BT | Bhutan |\n| BO | Bolivia |\n| BA | Bosnia Herzegovina |\n| BW | Botswana |\n| BR | Brazil |\n| BN | Brunei |\n| BG | Bulgaria |\n| BF | Burkina Faso |\n| BI | Burundi |\n| KH | Cambodia |\n| CM | Cameroon |\n| CA | Canada |\n| CV | Cape Verde |\n| KY | Cayman Islands |\n| CF | Central Africa |\n| TD | Chad |\n| CL | Chile |\n| CN | China |\n| CX | Christmas Island |\n| CC | Cocos (Keeling) Islands |\n| CO | Colombia |\n| KM | Comoros |\n| CK | Cook Islands |\n| CR | Costa Rica |\n| CI | Cote D'Ivoire |\n| HR | Croatia |\n| CY | Cyprus |\n| CZ | Czech Republic |\n| DK | Denmark |\n| DJ | Djibouti |\n| DM | Dominica |\n| DO | Dominican Republic |\n| EC | Ecuador |\n| EG | Egypt |\n| SV | El Salvador |\n| GQ | Equatorial Guinea |\n| ER | Eritrea |\n| EE | Estonia |\n| ET | Ethiopia |\n| FK | Falkland Island |\n| FO | Faroe Islands |\n| FJ | Fiji |\n| FI | Finland |\n| FR | France |\n| GF | French Guiana |\n| PF | French Polynesia |\n| GA | Gabon |\n| GM | Gambia |\n| GE | Georgia |\n| DE | Germany |\n| GH | Ghana |\n| GI | Gibraltar |\n| GR | Greece |\n| GL | Greenland |\n| GD | Grenada |\n| GP | Guadeloupe |\n| GU | Guam |\n| GT | Guatemala |\n| GN | Guinea |\n| GW | Guinea Bissau |\n| GY | Guyana |\n| HT | Haiti |\n| HN | Honduras |\n| HK | Hong Kong |\n| HU | Hungary |\n| IS | Iceland |\n| IN | India |\n| ID | Indonesia |\n| IQ | Iraq |\n| IE | Ireland |\n| IL | Israel |\n| IT | Italy |\n| JM | Jamaica |\n| JP | Japan |\n| JO | Jordan |\n| KZ | Kazakhstan |\n| KE | Kenya |\n| KI | Kiribati |\n| KW | Kuwait |\n| KG | Kyrgyzstan |\n| LA | Lao People's Democratic Republic |\n| LV | Latvia |\n| LB | Lebanon |\n| LS | Lesotho |\n| LR | Liberia |\n| LY | Libyan Arab Jamahiriya |\n| LI | Liechtenstein |\n| LT | Lithuania |\n| LU | Luxembourg |\n| MO | Macau |\n| MK | Macedonia |\n| MG | Madagascar |\n| MW | Malawi |\n| MY | Malaysia |\n| MV | Maldives |\n| ML | Mali |\n| MT | Malta |\n| MQ | Martinique |\n| MR | Mauritania |\n| MU | Mauritius |\n| YT | Mayotte |\n| MX | Mexico |\n| FM | Micronesia |\n| MD | Moldova |\n| MC | Monaco |\n| MN | Mongolia |\n| MS | Monserrat |\n| MA | Morocco |\n| MZ | Mozambique |\n| NA | Namibia |\n| NR | Nauru |\n| NP | Nepal |\n| NL | Netherlands |\n| AN | Netherlands Antilles |\n| KN | Nevis- St Kitts |\n| NC | New Caledonia |\n| NZ | New Zealand |\n| NI | Nicaragua |\n| NE | Niger |\n| NG | Nigeria |\n| NU | Niue |\n| NF | Norfolk Island |\n| KP | North Korea |\n| MP | Northern Mariana Islands |\n| NO | Norway |\n| OM | Oman |\n| PK | Pakistan |\n| PW | Palau |\n| PS | Palestinian Territory, Occupied |\n| PA | Panama |\n| PG | Papua New Guinea |\n| PY | Paraguay |\n| PE | Peru |\n| PH | Philippines |\n| PN | Pitcairn |\n| PL | Poland |\n| PT | Portugal |\n| PR | Puerto Rico |\n| QA | Qatar |\n| RE | Reunion |\n| RO | Romania |\n| RU | Russian Federation |\n| RW | Rwanda |\n| SH | Saint Helena |\n| LC | Saint Lucia |\n| SM | San Marino |\n| ST | Sao Tome and Principe |\n| SA | Saudi Arabia |\n| SN | Senegal |\n| YU | Serbia and Montenegro |\n| SC | Seychelles |\n| SL | Sierra Leone |\n| SG | Singapore |\n| SK | Slovakia |\n| SI | Slovenia |\n| SB | Solomon Islands |\n| SO | Somalia |\n| ZA | South Africa |\n| KR | South Korea |\n| ES | Spain |\n| LK | Sri Lanka |\n| PM | St Pierre Miquelon |\n| VC | St Vincent and Grenadines |\n| SR | Suriname |\n| SZ | Swaziland |\n| SE | Sweden |\n| CH | Switzerland |\n| SY | Syria |\n| TW | Taiwan |\n| TJ | Tajikistan |\n| TZ | Tanzania |\n| TH | Thailand |\n| TL | Timor-Leste |\n| TG | Togo |\n| TK | Tokelau |\n| TO | Tonga |\n| TT | Trinidad and Tobago |\n| TN | Tunisia |\n| TR | Turkey |\n| TM | Turkmenistan |\n| TC | Turks and Caicos Islands |\n| TV | Tuvalu |\n| UG | Uganda |\n| UA | Ukraine |\n| AE | United Arab Emirates |\n| GB | United Kingdom |\n| UY | Uruguay |\n| UM | US Minor Outlying Islands |\n| US | United States of America |\n| UZ | Uzbekistan |\n| VU | Vanuatu |\n| VE | Venezuela |\n| VN | Vietnam |\n| VG | Virgin Islands-British |\n| VI | Virgin Islands-US |\n| WF | Wallis and Futuna Islands |\n| WS | Western Samoa |\n| YE | Yemen Republic |\n| ZM | Zambia |\n| ZW | Zimbabwe |\n\n## US state codes\n| State code | State |\n|------------|-------|\n| AL | Alabama |\n| AK | Alaska |\n| AZ | Arizona |\n| AR | Arkansas |\n| CA | California |\n| CO | Colorado |\n| CT | Connecticut |\n| DE | Delaware |\n| DC | District of Columbia |\n| FL | Florida |\n| GA | Georgia |\n| HI | Hawaii |\n| ID | Idaho |\n| IL | Illinois |\n| IN | Indiana |\n| IA | Iowa |\n| KS | Kansas |\n| KY | Kentucky |\n| LA | Louisiana |\n| ME | Maine |\n| MD | Maryland |\n| MA | Massachusetts |\n| MI | Michigan |\n| MN | Minnesota |\n| MS | Mississippi |\n| MO | Missouri |\n| MT | Montana |\n| NE | Nebraska |\n| NV | Nevada |\n| NH | New Hampshire |\n| NJ | New Jersey |\n| NM | New Mexico |\n| NY | New York |\n| NC | North Carolina |\n| ND | North Dakota |\n| OH | Ohio |\n| OK | Oklahoma |\n| OR | Oregon |\n| PA | Pennsylvania |\n| RI | Rhode Island |\n| SC | South Carolina |\n| SD | South Dakota |\n| TN | Tennessee |\n| TX | Texas |\n| UT | Utah |\n| VT | Vermont |\n| VA | Virginia |\n| WA | Washington |\n| WV | West Virginia |\n| WI | Wisconsin |\n| WY | Wyoming |\n\n## Canadian provinces\n\n| Code | Province |\n|------|----------|\n| Alberta | Alberta |\n| British Columbia | British Columbia |\n| Manitoba | Manitoba |\n| New Brunswick | New Brunswick |\n| Newfoundland and Labrador | Newfoundland |\n| Northwest Territories | Northwest Territories |\n| Nova Scotia | Nova Scotia |\n| Nunavut | Nunavut |\n| Ontario | Ontario |\n| Prince Edward Island | Prince Edward Island |\n| Quebec | Quebec |\n| Saskatchewan | Saskatchewan |\n| Yukon | Yukon Territory |\n\n## Australian states\n\n| Code | State |\n|------|-------|\n| ACT | Australian Capital Territory |\n| NSW | New South Wales |\n| NT | Northern Territory |\n| QLD | Queensland |\n| SA | South Australia |\n| TAS | Tasmania |\n| VIC | Victoria |\n| WA | Western Australia |\n\n## Supported currency codes\n\nSupported currency codes for affiliate partners:\n\n| Currency code | Currency |\n|---------------|----------|\n| USD | US dollar |\n| GBP | British pound |\n| EUR | Euro |\n| AUD | Australian dollar |\n| HKD | Hong Kong Dollar |\n| SGD | Singapore Dollar |\n| CHF | Swiss Franc |\n| JPY | Japanese Yen |\n| NOK | Norwegian Krone |\n| CAD | Canadian Dollar |\n| NZD | New Zealand Dollar |\n| INR | Indian Rupee |\n| BRL | Brazillian Lire |\n| ZAR | South African Rand |\n| DKK | Danish Krone |\n| SEK | Swedish Krona |\n\n## Exception error codes\n\n| Error code | Services | Error message | Description |\n|------------|----------|---------------|-------------|\n| ATTRIBUTE_NOT_FOUND | [/product](#operation/product) | | |\n| TOUR_GONE | [/product](#operation/product) | \"We're sorry, we cannot find the tour, activity r attraction you are looking for\" | no product corresponding to the supplied details was found |\n| TOUR_NOT_FOUND | [/product](#operation/product) | \"We're sorry, we cannot find the tour, activity or attraction you are looking for\" | no product corresponding to the supplied details was found |\n| UNKNOWN_ERROR | *any* | *any* | the API reports this error when the exception from the underlying system (e.g. booking server) is not recognized |", "version": "1.0", "license": { "name": "CC BY 4.0", "url": "https://creativecommons.org/licenses/by/4.0/au" }, "contact": { "name": "Viator Partner Support Team", "email": "affiliateapi@tripadvisor.com" } }, "servers": [ { "url": "https://viatorapi.viator.com/service", "description": "Production server" } ], "security": [ { "API-key": [] }, { "Legacy-API-key": [] } ], "tags": [ { "name": "Utility services", "description": "Utility services" }, { "name": "Taxonomy services", "description": "Taxonomy services" }, { "name": "Product services", "description": "Product services" }, { "name": "Attraction services", "description": "Attraction services" }, { "name": "Support services", "description": "Support services" } ], "paths": { "/util/sitedetails": { "get": { "tags": [ "Utility services" ], "summary": "/util/sitedetails", "operationId": "utilSitedetails", "description": "Get site details \u2013 show the site settings for your organization", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" }, { "$ref": "#/components/parameters/defaultCurrencyCode" }, { "in": "query", "name": "centralURL", "description": "**URL** for multi-URL sites that have a central URL for processing etc like www.alllasvegastours.com has content.allsightseeingtours.com", "example": "alllasvegastours.com" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "showLogo": { "type": "boolean" }, "showFavicon": { "type": "boolean" }, "hasCustomHeaderHtml": { "type": "boolean" }, "hasCustomFooterHtml": { "type": "boolean" }, "hasCustomCss": { "type": "boolean" }, "homepageDestIds": { "type": "boolean" }, "piiSetting": { "type": "boolean" }, "partnerPrivacyPolicyUrl": { "type": "boolean" }, "pointsProgram": { "type": "boolean" }, "pointsProgramName": { "type": "boolean" }, "pointsProgramUserType": { "type": "boolean" }, "pointsProgramHelpText": { "type": "boolean" }, "puid": { "type": "boolean" }, "retailSiteId": { "type": "boolean" }, "companyName": { "type": "boolean" }, "defaultCurrency": { "type": "boolean" }, "centralURL": { "type": "boolean" }, "permissionsDenied": { "type": "array", "items": { "type": "integer" } }, "allowMultiCurrency": { "type": "boolean" }, "mobileSiteDomain": { "type": "string", "description": "ignore (Viator only)" }, "showSupplierName": { "type": "boolean" }, "showAllLangServices": { "type": "boolean" }, "showPassbook": { "type": "boolean" }, "urlPostFixedValue": { "type": "string", "description": "ignore (Viator only)" }, "canDisableBookEmail": { "type": "boolean" }, "clientId": { "type": "string" }, "locale": { "type": "string" }, "enabled": { "type": "boolean" }, "url": { "type": "string" }, "id": { "type": "integer" }, "channel": { "type": "string" } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/util-sitedetails-example" } } } } } } } }, "/util/countrymap": { "get": { "tags": [ "Utility services" ], "summary": "/util/countrymap", "operationId": "utilCountrymap", "description": "Get a dictionary mapping coutry-codes to their natural-language names and international dialling prefixes", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "AF": { "type": "object", "properties": { "countryName": { "type": "string", "description": "**natural-language name** of the country that the country-code identifies" }, "phoneCode": { "type": "string", "description": "**[International Direct Dialling (IDD)](https://en.wikipedia.org/wiki/International_direct_dialing) prefix** for the country in question" }, "countryId": { "type": "string", "description": "**country-code** for the country in question" } } }, "AX": { "type": "object", "properties": { "countryName": { "type": "string", "description": "**natural-language name** of the country that the country-code identifies" }, "phoneCode": { "type": "string", "description": "**[International Direct Dialling (IDD)](https://en.wikipedia.org/wiki/International_direct_dialing) prefix** for the country in question" }, "countryId": { "type": "string", "description": "**country-code** for the country in question" } } } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/util-countrymap-example" } } } } } } } }, "/util/guid": { "get": { "tags": [ "Utility services" ], "summary": "/util/guid", "operationId": "utilGuid", "description": "This service can be used to generate a GUID if necessary", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "string", "description": "**[GUID (globally unique identifier)](https://en.wikipedia.org/wiki/Universally_unique_identifier)** for the request" } } } ] }, "examples": { "1": { "$ref": "#/components/examples/util-guid-example" } } } } } } } }, "/util/siteBinaryData": { "post": { "tags": [ "Utility services" ], "summary": "/util/siteBinaryData", "operationId": "utilSiteBinaryData", "description": "Get partner custom information, such as Logo, Favicon or quick links (only necessary for some partners)", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "partnerCustomTypes": { "type": "array", "items": { "type": "string", "enum": [ "LOGO", "LOGO_URL", "FAVICON", "HEADER_HTML", "FOOTER_HTML", "CSS" ] }, "description": "- `LOGO` - show base64-encoded data of partner's logo\n- `LOGO_URL` - show base64-encoded data of partner's logo URL\n- `FAVICON` - show base64-encoded data of partner's favicon\n- `HEADER_HTML` - show base64-encoded data of the partner's header HTML\n- `FOOTER_HTML` - show base64-encoded data of the partner's footer HTML\n- `CSS` - show base64 based data of partner Site CSS\n", "example": [ "LOGO", "LOGO_URL", "FAVICON", "HEADER_HTML", "FOOTER_HTML", "CSS" ] } } } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "favicon": { "type": "string", "description": "**base64-encoded image** of the partner's favicon" }, "logo": { "type": "string", "description": "**base64-encoded image** of the partner's logo" }, "logoUrl": { "type": "string", "description": "**base64-encoded data** of the partner's logo URL" }, "headerHtml": { "type": "string", "description": "**base64-encoded data** of the partner sites header HTML" }, "footerHtml": { "type": "string", "description": "**base64-encoded data** of the partner site's footer HTMl" }, "css": { "type": "string", "description": "**base64-encoded image** of the partner's site's CSS" } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/util-siteBinaryData-example" } } } } } } } }, "/taxonomy/destinations": { "get": { "tags": [ "Taxonomy services" ], "summary": "/taxonomy/destinations", "operationId": "taxonomyDestinations", "description": "- Retrieves all the country taxonomy/city nodes as a flat list\n- Returns a complete list of Viator destinations, including destination names and parent identifiers\n- Used to provide navigation through drill down lists or combo boxes\n", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "array", "description": "**array** of destination objects", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** for this response" }, "selectable": { "type": "boolean", "description": "ignore - (Viator only)" }, "destinationUrlName": { "type": "string", "description": "ignore - (Viator only)" }, "defaultCurrencyCode": { "$ref": "#/components/schemas/defaultCurrencyCode" }, "lookupId": { "description": "**hierarchy location specifier** for the destination that is a concatenation of all `parentId` and `destinationId` codes\n- e.g. `'8.77.673'` for Chicago\n- format: [top level `parentId`].[any additional `parentId`].[`destinationId`]\n", "type": "string" }, "parentId": { "type": "integer", "description": "**unique numeric identifier** of the destination's parent destination" }, "timeZone": { "type": "string", "description": "**time zone** of the destination" }, "iataCode": { "$ref": "#/components/schemas/iataCode" }, "destinationId": { "type": "integer", "description": "**unique numeric identifier** of the destination\n- use this value as the `destId` input field for other Viator API services\n" }, "destinationType": { "$ref": "#/components/schemas/destinationType" }, "destinationName": { "type": "string", "description": "**natural-language name** of the destination" }, "latitude": { "type": "number", "description": "**latitude component** of the destination's geolocation" }, "longitude": { "type": "number", "description": "**longitude component** of the destination's geolocation" } } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/taxonomy-destinations-example" } } } } } } } }, "/taxonomy/categories": { "get": { "tags": [ "Taxonomy services" ], "summary": "/taxonomy/categories", "operationId": "taxonomyCategories", "description": "- Retrieves a list of product categories for a destination that can be used as a means of filtering when searching for products using the [/search/products](#operation/searchProducts) service\n- This service can be used to get a list of all categories and subcategories for a destination by including its `destId`, or you can omit the `destId` to get a list of all categories and subcategories\n- **Note:** If no `destId` is passed, `productCount` and `thumbnailURL` will be `null` as they are destination-specific fields\n", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" }, { "in": "query", "name": "destId", "schema": { "type": "integer" }, "description": "**unique numeric identifier** of the destination to enquire about (optional)\n- `destinationId` is returned by [/taxonomy/destinations](#operation/taxonomyDestination)\n", "example": 684 } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "array", "description": "**array** of category data objects", "items": { "type": "object", "properties": { "id": { "type": "integer", "description": "**unique numeric identifier** for the category" }, "productCount": { "type": "integer", "description": "**number** of products in this category in the destination specified by `destId`\n- **note**: will be `null` if no `destId` is included in the query\n" }, "thumbnailURL": { "type": "string", "description": "**URL** for this category's thumbnail image, selected from the most popular product within the category\n- **note:** will be `null` if no `destId` is included in the query\n" }, "groupName": { "type": "string", "description": "**natural-language name** of *this* product category" }, "groupUrlName": { "type": "string", "description": "**URL-formatted name** of *this* product category" }, "subcategories": { "type": "array", "description": "**array** of subcategory objects", "items": { "type": "object", "properties": { "sortorder": { "type": "integer", "description": "**sort order** (suggested) of the subcategory within the category" }, "categoryId": { "type": "integer", "description": "**unique numeric identifier** of *this* product category" }, "subcategoryId": { "type": "integer", "description": "**unique numeric identifier** of *this* product subcategory" }, "subcategoryName": { "type": "string", "description": "**natural-language name** of *this* product subcategory" }, "subCategoryUrlName": { "type": "string", "description": "**URL-formatted name** of *this* product subcategory" } } } } } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/taxonomy-categories-example" } } } } } } } }, "/taxonomy/attractions": { "post": { "tags": [ "Taxonomy services" ], "summary": "/taxonomy/attractions", "operationId": "taxonomyAttractions", "description": "- Retrieves a list of attractions (things like the Eiffel Tower or Empire State Building) and their associated unique numeric identifiers\n- The attraction's identifier (`seoId`) can be used as a means of searching for available products; for example, in the [/search/products](#operation/searchProducts) service.\n", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "destId": { "type": "integer", "description": "**unique numeric identifier** of the destination in which to search for attractions" }, "topX": { "$ref": "#/components/schemas/topX" }, "sortOrder": { "type": "string", "description": "Sort order for the results; one of:\n- `'RECOMMENDED'` \u2013 sorted in order of recommendation (**Note**: What Viator gets paid impacts this sort order)\n- `'SEO_ALPHABETICAL'` \u2013 Alphabetical (A->Z)\n" } } }, "example": { "destId": 684, "topX": "1-3", "sortOrder": "RECOMMENDED" } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** of *this* listing" }, "webURL": { "$ref": "#/components/schemas/webURL" }, "pageUrlName": { "description": "**URL-formatted title** of the attraction page", "type": "string" }, "primaryDestinationUrlName": { "description": "**URL-formatted name** of the destination associated with *this* attraction", "type": "string" }, "publishedDate": { "description": "**conventionally-formatted date** on which the attraction was listed", "type": "string" }, "title": { "description": "**natural-language title** of the attraction", "type": "string" }, "attractionLatitude": { "description": "**latitude component** of the attraction's location", "type": "number" }, "attractionLongitude": { "description": "**longitude component** of the attraction's location", "type": "number" }, "attractionStreetAddress": { "description": "**street address** of the attraction", "type": "string" }, "attractionCity": { "description": "**name** of the city in which the attraction is located", "type": "string" }, "attractionState": { "description": "**name** of the state in which the attraction is located", "type": "string" }, "destinationId": { "description": "**unique numeric identifier** of the the destination associated with the attraction", "type": "integer" }, "thumbnailHiResURL": { "description": "**URL** for the attraction's high-resolution thumbnail image", "type": "string" }, "photoCount": { "description": "**number** of user photos published for the attraction", "type": "integer" }, "primaryDestinationId": { "description": "**unique numeric identifier** of the attraction's primary destination", "type": "integer" }, "seoId": { "description": "**unique numeric identifier** of the attraction\n- use as an input for [/search/products](#operation/searchProducts)\n", "type": "integer" }, "productCount": { "description": "**number** of products associated with the attraction", "type": "integer" }, "primaryDestinationName": { "description": "**natural-language name** of the attraction's primary destination", "type": "string" }, "thumbnailURL": { "description": "**URL** the attraction's thumbnail image", "type": "string" }, "rating": { "description": "**average user rating** of the attraction", "type": "number" } } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/taxonomy-attractions-example" } } } } } } } }, "/search/products": { "post": { "tags": [ "Product services" ], "summary": "/search/products", "operationId": "searchProducts", "description": "\nThis service is used to search for products based on various criteria; such as:\n* the destination (locale) in which it operates\n* its association with a tourist attraction\n* its category and/or subcategory\n* the time period during which it operates\n\nThe fields you include in the request body for this service determine the kind of search that will be performed.\n\n**Note**: \n\n* You can search **EITHER** by destination (`destId`) **OR** by attraction-link (`seoId`), but not both.\n* The destination identifier (`destId`) can be retrieved from the [/taxonomy/destinations](#operation/taxonomyDestinations) service.\n* The category (`catId`) and subcategory (`subCatId`) identifiers can be retrieved from the [/taxonomy/categories](#operation/taxonomyCategories) service.\n* The attraction identifier (`seoId`) can be retrieved from the [/taxonomy/attractions](#operation/taxonomyAttractions) service.\n\n**Examples**:\n\n**Search by destination**:\n\n* E.g., \"Top ten highest-rated yoga classes operating in Las Vegas:\n```javascript\n{\n \"destId\": 684,\n \"subCatId\": 26052,\n \"sortOrder\": \"REVIEW_AVG_RATING_D\",\n \"topX\": \"1-3\"\n}\n```\n\n**Search by attraction-link**:\n\n* E.g., \"Products related to Everglades National Park operating 21-26 May 2019 in order of descending price\":\n```javascript\n{\n \"seoId\": 1115,\n \"startDate\": \"2019-05-21\",\n \"endDate\": \"2019-05-26\",\n \"sortOrder\": \"PRICE_FROM_D\"\n \"topX\": \"1-3\"\n}\n```\n", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "destId": { "type": "integer", "description": "**unique numeric identifier** of the destination in which to search for products\n- `destinationId` is available from the [/taxonomy/destinations](#operation/taxonomyDestinations) service\n- use **EITHER** `destId` **OR** `seoId`, but not both\n" }, "seoId": { "type": "string", "description": "**search restriction specifier** for products associated with an attraction uniquely identified by `seoId`\n- use **EITHER** `destId` **OR** `seoId`, but not both\n" }, "catId": { "type": "integer", "description": "**unique numeric identifier** of *this* product category to search within\n- `categoryId` can be retrieved from the [/taxonomy/categories](#operation/taxonomyCategories) service\n- at present, it is not possible to use `catId` in conjunction with `seoId`\n" }, "subCatId": { "type": "integer", "description": "**unique numeric identifier** of *this* product subcategory to search within\n- `subcategoryId` can be retrieved from the [/taxonomy/categories](#operation/taxonomyCategories) service\n- at present, it is not possible to use `subCatId` in conjunction with `seoId`\n" }, "startDate": { "type": "string", "description": "**start date delimiter** for the search (must be in the future)\n- e.g., `'2018-10-21'`\n" }, "endDate": { "type": "string", "description": "**end date delimiter** for the search (must be in the future)\n- e.g., `'2019-10-21'`\n" }, "currencyCode": { "type": "string", "description": "**currency** in which to display product prices" }, "topX": { "$ref": "#/components/schemas/topX" }, "sortOrder": { "$ref": "#/components/schemas/sortOrder" } } }, "examples": { "By destination": { "value": { "destId": 684, "subCatId": 26052, "sortOrder": "REVIEW_AVG_RATING_A", "topX": "1-3" } }, "By attraction link": { "value": { "seoId": 1115, "startDate": "2020-12-21", "endDate": "2020-12-31", "sortOrder": "PRICE_FROM_D", "topX": "1-3" } } } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "array", "description": "**array** of product objects", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** for *this* product" }, "supplierName": { "type": "string", "description": "**natural-language name** of *this* product's supplier" }, "currencyCode": { "$ref": "#/components/schemas/currencyCode" }, "catIds": { "type": "array", "description": "**list** of unique numeric category identifiers for *this* product\n- the `categoryId` for the destination is available from the [/taxonomy/categories](#operation/taxonomyCategories) service\n", "items": { "type": "integer" } }, "subCatIds": { "type": "array", "description": "**list** of unique numeric subcategory identifiers for *this* product\n- the `subcategoryId` for the destination is available from the [/taxonomy/categories](#operation/taxonomyCategories) service\n", "items": { "type": "integer" } }, "webURL": { "$ref": "#/components/schemas/webURL" }, "specialReservationDetails": { "type": "string", "description": "ignore (Viator only)" }, "sslSupported": { "description": "ignore (Viator only)" }, "panoramaCount": { "type": "integer", "description": "**number** of panoramic images available for *this* product" }, "merchantCancellable": { "type": "boolean", "description": "ignore (Viator only)\n\n \nFor cancellation information regarding the booking, please refer to the `merchantTermsAndConditions` object\n" }, "bookingEngineId": { "$ref": "#/components/schemas/bookingEngineId" }, "onRequestPeriod": { "$ref": "#/components/schemas/onRequestPeriod" }, "primaryGroupId": { "type": "integer", "description": "ignore (Viator only)" }, "pas": { "type": "object", "description": "**object** detailing product availability\n- `pas` stands for Product Availability Schema\n" }, "available": { "type": "boolean", "description": "ignore (Viator only)" }, "productUrlName": { "type": "string", "description": "**URL-formatted name** of *this* product" }, "primaryDestinationUrlName": { "type": "string", "description": "**URL-formatted name** of *this* product's primary destination" }, "title": { "type": "string", "description": "**natural-language title** of *this* product" }, "shortDescription": { "type": "string", "description": "**HTML-formatted natural-language description** of *this* product" }, "supplierCode": { "type": "string", "description": "**unique identifier** of *this* product's supplier in text string format" }, "uniqueShortDescription": { "type": "string", "description": "ignore (Viator only)" }, "merchantNetPriceFrom": { "type": "number", "description": "ignore (Viator only)" }, "merchantNetPriceFromFormatted": { "type": "string", "description": "ignore (Viator only)" }, "essential": { "type": "string", "description": "ignore (Viator only)" }, "admission": { "type": "string", "description": "ignore (Viator only)" }, "translationLevel": { "$ref": "#/components/schemas/translationLevel" }, "thumbnailHiResURL": { "type": "string", "description": "**URL** for the high resolution thumbnail for *this* product" }, "price": { "$ref": "#/components/schemas/price" }, "priceFormatted": { "$ref": "#/components/schemas/priceFormatted" }, "rrp": { "$ref": "#/components/schemas/rrp" }, "rrpformatted": { "$ref": "#/components/schemas/rrpFormatted" }, "savingAmount": { "$ref": "#/components/schemas/savingAmount" }, "savingAmountFormated": { "$ref": "#/components/schemas/savingAmountFormated" }, "onSale": { "$ref": "#/components/schemas/onSale" }, "specialOfferAvailable": { "$ref": "#/components/schemas/specialOfferAvailable" }, "photoCount": { "type": "integer", "description": "**number** of user photos published for *this* product" }, "reviewCount": { "$ref": "#/components/schemas/reviewCount" }, "primaryDestinationId": { "type": "integer", "description": "**unique numeric identifier** of *this* product's primary destination" }, "primaryDestinationName": { "description": "**natural-language name** of *this* product's primary destination", "type": "string" }, "thumbnailURL": { "type": "string", "description": "**URL** for *this* product's thumbnail image" }, "videoCount": { "type": "integer", "description": "ignore (Viator only) \u2013 videos are not available to partners" }, "rating": { "$ref": "#/components/schemas/rating" }, "shortTitle": { "type": "string", "description": "**short natural-language title** of *this* product (for use when there is a need to conserve space)" }, "specialReservation": { "type": "boolean", "description": "ignore (Viator only)" }, "duration": { "type": "string", "description": "**natural-language description** of the duration of *this* product" }, "code": { "type": "string", "description": "**unique alphanumeric identifier** of *this* product" } } } } } } ] }, "examples": { "By destination": { "$ref": "#/components/examples/search-products-example1" }, "By attraction link": { "$ref": "#/components/examples/search-products-example2" } } } } } } } }, "/search/products/codes": { "post": { "tags": [ "Product services" ], "summary": "/search/products/codes", "operationId": "searchProductsCodes", "description": "- This service returns an array of products given an array of product identifiers that is useful for wishlist / shopping cart / user account display \n- **Note**: requesting an inactive or non-existent product code will return `0`, `null` and blank values (as per the example below).\n", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "currencyCode": { "$ref": "#/components/schemas/currencyCode" }, "productCodes": { "type": "array", "description": "**array** of product codes to search for", "items": { "type": "string" } } } }, "example": { "currencyCode": "USD", "productCodes": [ "2280SUN" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "array", "description": "**array** of product objects", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** for *this* search result" }, "supplierName": { "type": "string", "description": "**natural-language name** of *this* product's supplier" }, "currencyCode": { "$ref": "#/components/schemas/currencyCode" }, "catIds": { "type": "array", "description": "**list** of category identifiers *this* product falls under\n- `categoryId` is available from the [/taxonomy/categories](#operation/taxonomyCategories) service\n", "items": { "type": "integer" } }, "subCatIds": { "type": "array", "description": "**list** of subcategory identifiers that *this* product falls under \n- `subcategoryId` is available from the [/taxonomy/categories](#operation/taxonomyCategories) service\n", "items": { "type": "integer" } }, "webURL": { "$ref": "#/components/schemas/webURL" }, "specialReservationDetails": { "type": "string", "description": "ignore (Viator only)" }, "panoramaCount": { "type": "integer", "description": "**number** of panoramic images available for *this* product" }, "merchantCancellable": { "type": "boolean", "description": "ignore (Viator only)\n" }, "bookingEngineId": { "$ref": "#/components/schemas/bookingEngineId" }, "onRequestPeriod": { "$ref": "#/components/schemas/onRequestPeriod" }, "primaryGroupId": { "type": "string", "description": "ignore (Viator only)" }, "shortDescription": { "type": "string", "description": "**natural-language description** of *this* product (short)" }, "specialReservation": { "type": "boolean", "description": "ignore (Viator only)" }, "rating": { "$ref": "#/components/schemas/rating" }, "thumbnailURL": { "type": "string", "description": "**URL** for *this* product's thumbnail image" }, "photoCount": { "type": "integer", "description": "**number** of user photos published for *this* product" }, "reviewCount": { "$ref": "#/components/schemas/reviewCount" }, "supplierCode": { "type": "string", "description": "**unique identifier** of *this* product's supplier" }, "price": { "$ref": "#/components/schemas/price" }, "priceFormatted": { "$ref": "#/components/schemas/priceFormatted" }, "rrp": { "$ref": "#/components/schemas/rrp" }, "rrpformatted": { "$ref": "#/components/schemas/rrpFormatted" }, "onSale": { "$ref": "#/components/schemas/onSale" }, "savingAmount": { "$ref": "#/components/schemas/savingAmount" }, "savingAmountFormated": { "$ref": "#/components/schemas/savingAmountFormated" }, "translationLevel": { "$ref": "#/components/schemas/translationLevel" }, "primaryDestinationId": { "type": "integer", "description": "**unique numeric identifier** of *this* product's primary destination" }, "primaryDestinationName": { "description": "**natural-language name** of *this* product's primary destination", "type": "string" }, "merchantNetPriceFrom": { "type": "number", "description": "ignore (Viator only)" }, "merchantNetPriceFromFormatted": { "type": "string", "description": "ignore (Viator only)" }, "specialOfferAvailable": { "type": "boolean", "description": "**indicator**: `true` if a special offer is available for *this* product" }, "thumbnailHiResURL": { "type": "string", "description": "**URL** for *this* product's high-resolution thumbnail image" }, "shortTitle": { "type": "string", "description": "**natural-language title** (shortened) of *this* product" }, "videoCount": { "type": "integer", "description": "ignore (Viator only) \u2013 videos are not available to partners" }, "title": { "type": "string", "description": "**natural-language title** of *this* product" }, "duration": { "type": "string", "description": "**natural-language description** of *this* product's duration" }, "code": { "type": "string", "description": "**unique alphanumeric identifier** of *this* product" } } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/search-products-codes-example" } } } } } } } }, "/search/freetext": { "post": { "tags": [ "Product services" ], "summary": "/search/freetext", "operationId": "searchFreetext", "description": "- This service provides a **free text search across all products destinations, attractions and recommendations**\n- The `text` parameter is required\n- **Note:** results include a type indicator (`type`) that you can use to display each result appropriately based on its content\n", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "destId": { "type": "integer", "description": "**unique numeric identifier** of the destination to search within \n- `destinationId` can be retrieved from the [/taxonomy/destinations](#operation/taxonomyDestinations) service\n" }, "topX": { "$ref": "#/components/schemas/topX" }, "currencyCode": { "$ref": "#/components/schemas/currencyCode" }, "text": { "type": "string", "description": "**text** to search for" }, "searchTypes": { "type": "array", "description": "**array** of search domain specifiers where each item is *one of*:\n - `'PRODUCT'`: a tour / activity\n - `'DESTINATION'`: continent, country, city, region\n - `'ATTRACTION'`: an attraction within a destination (only available to partners with SEO access)\n - `'RECOMMENDATION'`: an attraction within a destination (only available to partners with SEO access)\n", "items": { "type": "string", "enum": [ "PRODUCT", "DESTINATION", "ATTRACTION", "RECOMMENDATION" ] } }, "sortOrder": { "$ref": "#/components/schemas/sortOrder" } } }, "example": { "destId": 684, "topX": "1-3", "currencyCode": "USD", "text": "helicopter", "searchTypes": [ "PRODUCT", "DESTINATION" ], "sortOrder": "TOP_SELLERS" } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "array", "description": "**array** of search results", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** for *this* data object" }, "searchType": { "type": "string", "enum": [ "PRODUCT", "DESTINATION", "ATTRACTION", "RECOMMENDATION" ], "description": "**indicator** of the entity type for *this* result that is *one of*:\n - `'PRODUCT'`: a tour / activity\n - `'DESTINATION'`: continent, country, city, region\n - `'ATTRACTION'`: an attraction within a destination (only available to partners with SEO access)\n - `'RECOMMENDATION'`: an attraction within a destination (only available to partners with SEO access)\n" }, "data": { "type": "object", "description": "**object** detailing a product that matches the search criteria", "properties": { "supplierName": { "type": "string", "description": "**natural-language name** of *this* product's supplier" }, "currencyCode": { "$ref": "#/components/schemas/currencyCode" }, "catIds": { "type": "array", "description": "**list** of unique numeric product category identifiers \n- `categoryId` is available for the destination from the [/taxonomy/categories](#operation/taxonomyCategories) service\n", "items": { "type": "integer" } }, "subCatIds": { "type": "array", "description": "**list** of unique numeric subcategory identifiers that *this* product falls under\n- `subcategoryId` is available from [/taxonomy/categories](#operation/taxonomyCategories) service\"\n", "items": { "type": "integer" } }, "webURL": { "$ref": "#/components/schemas/webURL" }, "specialReservationDetails": { "type": "string", "description": "ignore (Viator only)" }, "sslSupported": { "type": "boolean", "description": "ignore (Viator only)" }, "panoramaCount": { "type": "integer", "description": "**number** of panoramic images available for *this* product" }, "merchantCancellable": { "type": "boolean", "description": "ignore (Viator only)" }, "bookingEngineId": { "$ref": "#/components/schemas/bookingEngineId" }, "onRequestPeriod": { "$ref": "#/components/schemas/onRequestPeriod" }, "primaryGroupId": { "type": "string", "description": "ignore (Viator only)" }, "pas": { "type": "object", "description": "**object** detailing product availability\n- `pas` stands for Product Availability Schema\n" }, "available": { "type": "boolean", "description": "ignore (Viator only)" }, "productURLName": { "type": "string", "description": "**URL-formatted name** of *this* product" }, "primaryDestinationUrlName": { "type": "string", "description": "**URL-formatted name** of *this* product's primary destination" }, "supplierCode": { "type": "string", "description": "**unique identifier** of *this* product's supplier" }, "translationLevel": { "$ref": "#/components/schemas/translationLevel" }, "thumbnailHiResURL": { "type": "string", "description": "**high-resolution thumbnail image URL** for *this* product" }, "primaryDestinationName": { "type": "string", "description": "**natural-language name** of *this* product's primary destination" }, "thumbnailURL": { "type": "string", "description": "**URL** of *this* product's thumbnail image" }, "price": { "$ref": "#/components/schemas/price" }, "priceFormatted": { "$ref": "#/components/schemas/priceFormatted" }, "rrp": { "$ref": "#/components/schemas/rrp" }, "rrpformatted": { "$ref": "#/components/schemas/rrpFormatted" }, "onSale": { "$ref": "#/components/schemas/onSale" }, "savingAmount": { "$ref": "#/components/schemas/savingAmount" }, "savingAmountFormated": { "$ref": "#/components/schemas/savingAmountFormated" }, "photoCount": { "type": "integer", "description": "**number** of user photos published for *this* product" }, "reviewCount": { "$ref": "#/components/schemas/reviewCount" }, "primaryDestinationId": { "description": "**unique numeric identifier** of *this* product's primary destination", "type": "integer" }, "videoCount": { "type": "integer", "description": "ignore (Viator only) \u2013 videos are not available to partners" }, "rating": { "$ref": "#/components/schemas/rating" }, "shortTitle": { "type": "string", "description": "**natural-language title** (shortened) of *this* product" }, "specialOfferAvailable": { "type": "boolean", "description": "**indicator**: `true` if a special offer is available for *this* product" }, "specialReservation": { "description": "ignore (Viator only)", "type": "boolean" }, "uniqueShortDescription": { "type": "string", "description": "ignore (Viator only)" }, "merchantNetPriceFrom": { "type": "number", "description": "ignore (Viator only)" }, "merchantNetPriceFromFormatted": { "type": "string", "description": "ignore (Viator only)" }, "essential": { "type": "string", "description": "ignore (Viator only)" }, "admission": { "type": "string", "description": "ignore (Viator only)" }, "shortDescription": { "type": "string", "description": "**natural-language description** (shortened) of *this* product" }, "title": { "type": "string", "description": "**natural-language title** of *this* product" }, "duration": { "type": "string", "description": "**natural-language duration** of *this* product" }, "code": { "type": "string", "description": "**unique alphanumeric identifier** of *this* product" } } } } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/search-freetext-example" } } } } } } } }, "/product": { "get": { "tags": [ "Product services" ], "summary": "/product", "operationId": "product", "description": "This service provides all product details required for a product display page, as well as information required for price checks and booking, such as: \n- age bands\n- tour grades (product options)\n- language options \n- booking questions\n- hotel pickup flags\n\n**currencyCode (in query):** \n- **Update: 9 Jun 2020**: Multiple currencies are now enabled by default. Partners can choose to have the pricing displayed in any of the [supported currencies](#section/Appendices/Supported-currency-codes).\n- **Note**: Regardless of the currency specified here, commissions will always be paid to affiliates in the main currency configured for their acccount.\n\n**Product photos**\n\n**Update 13 Feb 2020**: All supplier-provided photos for the selected product are now available in the `productPhotos` array in this endpoint's response. Previously, only two supplier-provided photos were available \u2013 one in the `productPhotos` array and one in `thumbnailHiResURL`.\n\n**Videos**\n\n- Videos are no longer available\n", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" }, { "$ref": "#/components/parameters/currencyCode" }, { "$ref": "#/components/parameters/sortOrder_REVIEW" }, { "in": "query", "name": "voucherOption", "schema": { "type": "string", "enum": [ "VOUCHER_PAPER_ONLY", "VOUCHER_E", "VOUCHER_ID_ONLY" ] }, "description": "- `\"VOUCHER_PAPER_ONLY\"`: Paper Vouchers only accepted\n- `\"VOUCHER_E\"`: EVouchers + Paper Vouchers accepted\n- `\"VOUCHER_ID_ONLY\"`: ID + Evouchers + Paper vouchers accepted\n" }, { "$ref": "#/components/parameters/code" }, { "$ref": "#/components/parameters/showUnavailable" }, { "in": "query", "name": "excludeTourGradeAvailability", "schema": { "type": "boolean" }, "description": "**specifier:** \n- `true`: return **all** tour grades, including those that are not available\n- `false`: only display tour grades that *are* available\n" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "object", "description": "**object** containing product details", "properties": { "supplierName": { "type": "string", "description": "**name** of *this* product's supplier" }, "currencyCode": { "type": "string", "description": "**currency** in which to display *this* product's pricing details" }, "catIds": { "type": "array", "description": "**list** of unique numeric category identifiers that *this* product falls under\n- `categoryId` is available from the [/taxonomy/categories](#operation/taxonomyCategories) service\n", "items": { "type": "integer" } }, "subCatIds": { "type": "array", "items": { "type": "integer" }, "description": "**list** of unique numeric subcategory identifiers that *this* product falls under\n- `subcategoryId` is available from the [/taxonomy/categories](#operation/taxonomyCategories) service\n" }, "webURL": { "$ref": "#/components/schemas/webURL" }, "panoramaCount": { "type": "integer", "description": "**number** of panoramic images available for *this* product" }, "merchantCancellable": { "type": "boolean", "description": "ignore (Viator only)" }, "bookingEngineId": { "$ref": "#/components/schemas/bookingEngineId" }, "onRequestPeriod": { "$ref": "#/components/schemas/onRequestPeriod" }, "primaryGroupId": { "type": "string", "description": "ignore (Viator only)" }, "pas": { "type": "object", "description": "**object** detailing product availability \n- `pas` stands for Product Availability Schema\n" }, "available": { "type": "boolean", "description": "ignore (Viator only)" }, "productUrlName": { "type": "string", "description": "**URL-formatted name** of *this* product" }, "primaryDestinationUrlName": { "type": "string", "description": "**URL-formatted name** of the destination in which *this* product is located" }, "voucherRequirements": { "description": "**natural-language description** of any requirements pertaining to the use of the voucher" }, "tourGradesAvailable": { "type": "boolean", "description": "**indicator**: \n- `true`: tour grades are available for this product, meaning you will need to display these tour grades to the user and include a tour grade when booking *this* product\n- `false`: only a default tour grade is available for *this* product\n" }, "hotelPickup": { "type": "boolean", "description": "**indicator**: `true` if *this* product offers hotel pick-up; if so, you will need to collect the user's hotel details" }, "userPhotos": { "type": "array", "description": "**array** of user photo objects", "items": { "$ref": "#/components/schemas/photoObject" } }, "reviews": { "$ref": "#/components/schemas/reviews" }, "videos": { "type": "string", "description": "ignore (Viator only) \u2013 videos are no longer available" }, "tourGrades": { "type": "array", "description": "**array** of tour grade objects available for *this* product", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** of *this* tour grade" }, "currencyCode": { "type": "string", "description": "**currency code** of the currency *this* product's tour grades prices are shown in" }, "langServices": { "type": "object", "description": "**dictionary** of language service codes and their natural-language descriptors", "additionalProperties": { "type": "string" } }, "gradeCode": { "type": "string", "description": "**unique alphanumeric identifier** of *this* tour grade" }, "gradeTitle": { "type": "string", "description": "**natural-language description** of *this* tour grade" }, "gradeDepartureTime": { "type": "string", "description": "**departure time** for *this* tour grade if available" }, "gradeDescription": { "type": "string", "description": "**natural-language description** of *this* tour grade" }, "defaultLanguageCode": { "type": "string", "description": "**language code** of the standard language for *this* tour grade" }, "merchantNetPriceFrom": { "type": "number", "description": "ignore (Viator only)" }, "merchantNetPriceFromFormatted": { "description": "ignore (Viator only)", "type": "string" }, "priceFrom": { "type": "number", "description": "**numeric suggested retail price** for *this* tour grade\n" }, "priceFromFormatted": { "type": "string", "description": "**currency-formatted suggested retail price** for *this* tour grade\n" } } } }, "ageBands": { "type": "array", "description": "**array** of ageband objects detailing the age bands\n", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** for *this* age band object" }, "ageFrom": { "type": "integer", "description": "**numeric lower age limit** of the age range defined by *this* age band" }, "ageTo": { "type": "integer", "description": "**numeric upper age limit** of the age range included in *this* age band" }, "adult": { "type": "boolean", "description": "**indicator**: `true` if *this* age band describes adults (not children)" }, "bandId": { "$ref": "#/components/schemas/bandId" }, "pluralDescription": { "type": "string", "description": "**natural-language description** (plural) of *this* age band" }, "treatAsAdult": { "type": "boolean", "description": "**indicator**: `true` if members of this age band are considered to be adults" }, "count": { "type": "integer", "description": "**number** of participants in *this* age band required to book the product" }, "description": { "type": "string", "description": "**natural-language description** (singular) of *this* age band" } } } }, "bookingQuestions": { "type": "array", "description": "Ignore (merchant partners only)", "items": { "type": "object", "properties": { "sortOrder": { "description": "Ignore (merchant partners only)", "type": "integer" }, "questionId": { "type": "integer", "description": "Ignore (merchant partners only)" }, "stringQuestionId": { "type": "string", "description": "Ignore (merchant partners only)" }, "subTitle": { "type": "string", "description": "Ignore (merchant partners only)" }, "title": { "type": "string", "description": "Ignore (merchant partners only)" }, "required": { "type": "boolean", "description": "Ignore (merchant partners only)" }, "message": { "type": "string", "description": "Ignore (merchant partners only)" } } } }, "passengerAttributes": { "type": "array", "description": "ignore (Viator only)", "items": { "type": "object", "properties": { "required": { "type": "boolean", "description": "ignore (Viator only)" }, "questionId": { "type": "string", "description": "ignore (Viator only)" }, "title": { "type": "string", "description": "ignore (Viator only)" }, "errorMissingMessage": { "type": "string", "description": "ignore (Viator only)" }, "errorValidationMessage": { "type": "string", "description": "ignore (Viator only)" }, "validateType": { "type": "string", "description": "ignore (Viator only)" }, "customAttribute_kgs": { "type": "string", "description": "ignore (Viator only)" }, "customAttribute_lbs": { "type": "string", "description": "ignore (Viator only)" } } } }, "highlights": { "type": "integer", "description": "ignore (Viator only)" }, "salesPoints": { "type": "array", "description": "ignore (Viator only)", "items": { "type": "string" } }, "ratingCounts": { "$ref": "#/components/schemas/ratingCounts" }, "maxTravellerCount": { "type": "integer", "description": "**maximum number of travelers** allowed per-booking for *this* product" }, "itinerary": { "type": "string", "description": "**HTML-formatted description** of the itinerary of *this* tour if available\n- may contain basic HTML tags; e.g., br, li, b, u, p, i, ul and ol\n" }, "destinationId": { "type": "integer", "description": "**unique numeric identifier** of the destination in which *this* product is located\n- `destinationId` is available from the [/taxonomy/destinations](#operation/taxonomyDestinations) service\n" }, "translationLevel": { "$ref": "#/components/schemas/translationLevel" }, "additionalInfo": { "type": "array", "description": "**array** of HTML-formatted clauses providing additional information about *this* product, such as:\n- when the confirmation will be received (i.e. at time of booking, or within 48 hours of booking etc)\n- accessibility options; such as whether wheelchair access is available\n- particulars about the pick-up location and process\n- **Note**: may contain basic HTML mark-up tags \u2013 e.g., br, li, b, u, p, i, ul and ol\n", "items": { "type": "string" } }, "voucherOption": { "type": "string", "description": "**specifier** of the type(s) of vouchers that can be used:\n\n - `VOUCHER_PAPER_ONLY` - *only* printed paper vouchers accepted\n - `VOUCHER_E` - e-vouchers + printed paper vouchers accepted\n - `VOUCHER_ID_ONLY` - ID + e-vouchers + printed paper vouchers accepted\n" }, "applePassSupported": { "type": "boolean", "description": "**indicator**: `true` if Apple Wallet is supported" }, "productPhotos": { "type": "array", "description": "**array** of image objects detailing images available for *this* product", "items": { "type": "object", "properties": { "photoURL": { "type": "string", "description": "**URL** of *this* photo" }, "supplier": { "type": "string", "description": "**natural-language name** of the supplier of *this* photo" }, "caption": { "type": "string", "description": "**natural-language caption** for *this* photo" } } } }, "inclusions": { "type": "array", "description": "**array** of HTML-formatted features included in *this* product\n- may contain basic HTML mark-up tags; e.g., br, li, b, u, p, i, ul and ol\n", "items": { "type": "string" } }, "city": { "type": "string", "description": "**name** of city or destination that *this* product operates in" }, "departureTime": { "type": "string", "description": "**HTML-formatted natural-language description** of *this* product's departure times\n- may contain basic HTML mark-up tags; e.g., br, li, b, u, p, i, ul and ol\n" }, "departurePoint": { "type": "string", "description": "**HTML-formatted natural-language description** of *this* product's departure location" }, "departureTimeComments": { "type": "string", "description": "**HTML-formatted natural-language description** of extra information pertaining to product departure times" }, "returnDetails": { "type": "string", "description": "**HTML-formatted natural-language description** of *this* product's drop-off details (if available)" }, "allTravellerNamesRequired": { "type": "boolean", "description": "**indicator**: `true` if all traveler names are required.
**Note**: if set to `true`, then all passenger names must be included in the booking request, and all must be unique. Placeholder names cannot be used." }, "operates": { "type": "string", "description": "**HTML-formatted natural-language description** of *this* product's operation frequency" }, "mapURL": { "type": "string", "description": "**URL** of this product's map (usually an image)" }, "exclusions": { "type": "array", "description": "**array** of HTML-formatted natural-language exclusions for *this* product\n- may contain basic HTML mark-up - e.g., br, li, b, u, p, i, ul and ol\n", "items": { "type": "string" } }, "description": { "type": "string", "description": "**HTML-formatted natural-language description** of *this* product (extended)" }, "location": { "type": "string", "description": "**natural-language description** of *this* product's location\n- can be a combination of the country and city, or a custom location\n" }, "country": { "type": "string", "description": "**natural-language name** of the country in which *this* product operates" }, "region": { "type": "string", "description": "**natural-language name** of the region in which *this* product operates" }, "supplierCode": { "type": "string", "description": "**unique identification code** of *this* product's supplier" }, "thumbnailHiResURL": { "type": "string", "description": "**URL** of *this* product's high-resolution thumbnail image" }, "primaryDestinationName": { "type": "string", "description": "**natural-language name** of *this* product's primary destination" }, "thumbnailURL": { "type": "string", "description": "**URL** for *this* product's thumbnail image" }, "photoCount": { "description": "**number** of user photos available for *this* product", "type": "integer" }, "reviewCount": { "$ref": "#/components/schemas/reviewCount" }, "primaryDestinationId": { "description": "**unique numeric identifier** of *this* product's primary destination", "type": "integer" }, "rating": { "$ref": "#/components/schemas/rating" }, "price": { "$ref": "#/components/schemas/price" }, "priceFormatted": { "$ref": "#/components/schemas/priceFormatted" }, "onSale": { "$ref": "#/components/schemas/onSale" }, "rrp": { "$ref": "#/components/schemas/rrp" }, "rrpFormatted": { "$ref": "#/components/schemas/rrpFormatted" }, "savingAmount": { "$ref": "#/components/schemas/savingAmount" }, "savingAmountFormated": { "$ref": "#/components/schemas/savingAmountFormated" }, "shortTitle": { "type": "string", "description": "**natural-language title** (shortened) of *this* product" }, "specialOfferAvailable": { "$ref": "#/components/schemas/specialOfferAvailable" }, "specialOffer": { "$ref": "#/components/schemas/specialOffer" }, "shortDescription": { "type": "string", "description": "**natural-language description** (shortened) of *this* product" }, "title": { "type": "string", "description": "**natural-language title** of *this* product" }, "duration": { "type": "string", "description": "**natural-language description** of *this* product's duration" }, "code": { "type": "string", "description": "**unique alphanumeric identifier** of *this* product" }, "specialReservationDetails": { "type": "string", "description": "ignore (Viator only)" }, "sslSupported": { "type": "boolean", "description": "ignore (Viator only)" }, "merchantNetPriceFrom": { "type": "number", "description": "ignore (Viator only)" }, "merchantNetPriceFromFormatted": { "type": "string", "description": "ignore (Viator only)" }, "specialReservation": { "type": "boolean", "description": "ignore (Viator only)" }, "essential": { "type": "string", "description": "ignore (Viator only)" }, "admission": { "type": "string", "description": "ignore (Viator only)" }, "videoCount": { "type": "integer", "description": "ignore (Viator only) \u2013 videos are no longer available" } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/product-example" } } } } } } } }, "/product/reviews": { "get": { "tags": [ "Product services" ], "summary": "/product/reviews", "operationId": "productReviews", "description": "Get reviews of a product submitted by users\n\n**Note**: \n\n- The number of reviews that you can obtain via this service will depend on\nwhether your account is limited in terms of the number of reviews you are\nentitled to receive. \n\n- The number of reviews available through this service is given in the\n`reviewCount` element in the response from [/product](#operation/product)\n\n- Please speak to your account manager if you wish to receive more reviews.\nIf your account is not limited, you will be able to receive all available\nreviews for this product.\n\n- Only reviews in the language specified in the Accept-Language request\nheader will be returned\n\n**Viator performs checks on reviews**\n\n- For more information, see [Key concepts - Review authenticity](#section/Key-concepts/Review-authenticity)\n\n\n**Example:** \"Get the first three reviews for product `5010SYDNEY` sorted by\nrating in ascending order\":\n\n\n```javascript\n\nhttps://viatorapi.viator.com/service/product/reviews?sortOrder=REVIEW_RATING_A&topX=1-3&code=5010SYDNEY&showUnavailable=false\n\n```\n", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" }, { "$ref": "#/components/parameters/sortOrder_REVIEW" }, { "$ref": "#/components/parameters/topX" }, { "$ref": "#/components/parameters/code" }, { "$ref": "#/components/parameters/showUnavailable" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "array", "description": "**array** of review objects", "items": { "$ref": "#/components/schemas/reviewObject" } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/product-reviews-example" } } } } } } } }, "/product/photos": { "get": { "tags": [ "Product services" ], "summary": "/product/photos", "operationId": "productPhotos", "description": "Get photos of a product submitted by users", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" }, { "$ref": "#/components/parameters/topX" }, { "$ref": "#/components/parameters/code" }, { "$ref": "#/components/parameters/showUnavailable" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "array", "description": "**array** of photo objects", "items": { "$ref": "#/components/schemas/photoObject" } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/product-photos-example" } } } } } } } }, "/available/products": { "post": { "tags": [ "Product services" ], "summary": "/available/products", "operationId": "availableProducts", "description": "Gets available products by product code, date range or number of adult travelers\n", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "currencyCode": { "$ref": "#/components/schemas/currencyCode" }, "startDate": { "type": "string", "example": "2020-12-21", "description": "**start date** of the date range to search within (must be in the future)" }, "endDate": { "type": "string", "example": "202-12-31", "description": "**end date** of the date range to search within (must be in the future)" }, "numAdults": { "type": "integer", "example": 1, "description": "**number of adult travelers** who wish to participate\n- default: `1`\n" }, "productCodes": { "type": "array", "description": "**array of unique alphanumeric product identifiers** specifying which products to find the availability of\n- maximum: `50`\n", "example": [ "5010SYDNEY", "2280SUN", "9169P50" ], "items": { "type": "string" } } } } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "array", "description": "**array** of product objects", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** of this result object" }, "supplierName": { "type": "string", "description": "**natural-language name** of *this* product's supplier" }, "currencyCode": { "$ref": "#/components/schemas/currencyCode" }, "catIds": { "type": "array", "description": "**list** of unique numeric category identifiers that this product falls under\n- `categoryId` is available from the [/taxonomy/categories](#operation/taxonomyCategories) service\n", "items": { "type": "integer" } }, "subCatIds": { "type": "array", "description": "**list** of unique numeric subcategory identifiers that this product falls under\n- `subcategoryId` is available from the [/taxonomy/categories](#operation/taxonomyCategories) service\n", "items": { "type": "integer" } }, "webURL": { "$ref": "#/components/schemas/webURL" }, "specialReservationDetails": { "type": "string", "description": "ignore (Viator only)" }, "sslSupported": { "type": "boolean", "description": "ignore (Viator only)" }, "panoramaCount": { "type": "integer", "description": "**number** of panoramic images available for *this* product" }, "merchantCancellable": { "type": "boolean", "description": "ignore (Viator only)" }, "bookingEngineId": { "$ref": "#/components/schemas/bookingEngineId" }, "onRequestPeriod": { "$ref": "#/components/schemas/onRequestPeriod" }, "primaryGroupId": { "type": "string", "description": "ignore (Viator only)" }, "pas": { "type": "object", "description": "**object** detailing product availability\n- `pas` stands for Product Availability Schema\n", "properties": { "productCode": { "type": "string", "description": "**unique alphanumeric identifier** of *this* product" }, "travellerMix": { "type": "string", "description": "**alphanumeric code** indicating the combination of adults and children being enquired about" }, "tourGrades": { "type": "object", "description": "**dictionary** of tour grade alphanumeric codes to tour grade objects", "additionalProperties": { "type": "object", "properties": { "tourGradeCode": { "type": "string", "description": "**alphanumeric identifier** for *this* tour grade" }, "title": { "type": "string", "description": "**natural-language title** of *this* tour grade" }, "description": { "type": "string", "description": "**natural-language description** of *this* tour grade" }, "bookingEngine": { "type": "string", "description": "**booking modality specifier** for *this* tour grade" }, "sapi": { "type": "boolean", "description": "ignore (Viator only)" }, "languageServices": { "type": "object", "description": "**dictionary** of language codes to array of textual language service descriptors available for *this* tour grade", "additionalProperties": { "type": "array" } }, "availDates": { "type": "array", "description": "**array of objects** with availability and pricing information for *this* tour grade", "items": { "type": "object", "properties": { "priceFrom": { "type": "string", "description": "**lowest sale price** for *this* tour grade formatted according to the example" }, "priceQuote": { "type": "object", "description": "**pricing object** for *this* tour grade", "properties": { "retailPrice": { "type": "string", "description": "**retail price** of *this* tour grade formatted according to the example" }, "generalRetailPrice": { "type": "string", "description": "**general retail price** of *this* tour grade formatted according to the example" }, "merchantNetPrice": { "type": "string", "description": "ignore (Viator only)" } } }, "dateList": { "type": "string", "description": "**list of dates** on which *this* tour grade is available formatted according to the example" } } } } } } }, "incompleteQuote": { "type": "boolean", "description": "ignore (Viator only)" }, "removedChildAges": { "type": "array", "description": "ignore (Viator only)", "items": { "type": "string" } } } }, "available": { "type": "boolean", "description": "ignore (Viator only)" }, "productUrlName": { "type": "string", "description": "**URL-formatted name** of *this* product" }, "primaryDestinationUrlName": { "type": "string", "description": "**URL-formatted name** of *this* product's primary destination" }, "price": { "$ref": "#/components/schemas/price" }, "priceFormatted": { "$ref": "#/components/schemas/priceFormatted" }, "rrp": { "$ref": "#/components/schemas/rrp" }, "rrpFormatted": { "$ref": "#/components/schemas/rrpFormatted" }, "savingAmount": { "$ref": "#/components/schemas/savingAmount" }, "savingAmountFormated": { "$ref": "#/components/schemas/savingAmountFormated" }, "specialOfferAvailable": { "$ref": "#/components/schemas/specialOfferAvailable" }, "onSale": { "$ref": "#/components/schemas/onSale" }, "supplierCode": { "type": "string", "description": "**unique identifier** of *this* product's supplier" }, "translationLevel": { "$ref": "#/components/schemas/translationLevel" }, "photoCount": { "description": "**number** of user photos published for *this* product", "type": "integer" }, "reviewCount": { "$ref": "#/components/schemas/reviewCount" }, "primaryDestinationId": { "description": "**unique numeric identifier** of *this* product's primary destination", "type": "integer" }, "thumbnailHiResURL": { "type": "string", "description": "**URL** of *this* product's high resolution thumbnail image" }, "videoCount": { "type": "integer", "description": "ignore (Viator only) \u2013 videos are not available to partners\n" }, "rating": { "$ref": "#/components/schemas/rating" }, "primaryDestinationName": { "description": "**natural-language name** of *this* product's primary destination", "type": "string" }, "thumbnailURL": { "type": "string", "description": "**URL** of *this* product's thumbnail image" }, "specialReservation": { "type": "boolean", "description": "ignore (Viator only)" }, "shortTitle": { "type": "string", "description": "**natural-language title (shortened)** of *this* product" }, "uniqueShortDescription": { "description": "**natural-language description** of *this* product", "type": "string" }, "merchantNetPriceFrom": { "type": "number", "description": "ignore (Viator only)" }, "merchantNetPriceFromFormatted": { "type": "string", "description": "ignore (Viator only)" }, "essential": { "type": "string", "description": "ignore (Viator only)" }, "admission": { "type": "string", "description": "ignore (Viator only)" }, "title": { "type": "string", "description": "**natural-language title** of *this* product" }, "shortDescription": { "type": "string", "description": "**natural-language description** (short) of *this* product" }, "duration": { "type": "string", "description": "**natural-language description** of *this* product's duration" }, "code": { "type": "string", "description": "**unique alphanumeric identifier** of *this* product" } } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/available-products-example" } } } } } } } }, "/search/attractions": { "post": { "tags": [ "Attraction services" ], "summary": "/search/attractions", "operationId": "searchAttractions", "description": "\nThis service retrieves a list of attractions associated with the given\ndestination\n\n**Note**:\n\n- Pages generated using data from this endpoint are subject to a **strict no-index policy**. If you are unsure about whether you are correctly following this rule, please reach out to your account manager for advice.\n\n\n**Aliases**:\n\n- [/search/recommendations](#operation/searchRecommendations)\n\n- [/search/seo](#operation/searchSeo)\n", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "destId": { "type": "integer", "description": "**unique numeric identifier** of the destination in which to search for attractions" }, "topX": { "$ref": "#/components/schemas/topX" }, "seoType": { "description": "**search specifier**: one of `'ATTRACTION'` or `'RECOMMENDATION'`", "enum": [ "ATTRACTION", "RECOMMENDATION" ] }, "sortOrder": { "type": "string", "description": "Sort order for the results; one of:\n- `'RECOMMENDED'` \u2013 sorted in order of recommendation (**Note**: What Viator gets paid impacts this sort order)\n- `'SEO_ALPHABETICAL'` \u2013 Alphabetical (A->Z)\n" } } }, "example": { "destId": 684, "topX": "1-3", "seoType": "ATTRACTION", "sortOrder": "RECOMMENDED" } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort-order* for *this* search result" }, "panoramaCount": { "type": "integer", "description": "**number** of panoramic images available for *this* attraction" }, "webURL": { "$ref": "#/components/schemas/webURL" }, "pageUrlName": { "description": "**URL-formatted title** of the attraction page", "type": "string" }, "primaryDestinationUrlName": { "type": "string", "description": "**URL-formatted name** of the primary destination" }, "publishedDate": { "type": "string", "description": "**date** on which *this* review was published" }, "userName": { "type": "string", "description": "ignore (Viator only)" }, "seoId": { "type": "integer", "description": "**unique numeric identifier** for *this* attraction" }, "productCount": { "type": "integer", "description": "**number of products** available at *this* attraction" }, "title": { "type": "string", "description": "**natural-language title** of *this* attraction" }, "thumbnailURL": { "type": "string", "description": "**URL** for the thumbnail image to be displayed for *this* attraction" }, "reviewCount": { "type": "integer", "description": "**number** of reviews available for *this* attraction" }, "photoCount": { "type": "integer", "description": "**number** of photos available for *this* attraction" }, "rating": { "type": "integer", "description": "**average user rating** for *this* attraction" }, "destinationId": { "type": "integer", "description": "**unique numeric identifier** for *this* attraction" }, "seoType": { "type": "string", "description": "**indicator**: one of `'ATTRACTION'` or `'RECOMMENDATION'` depending on the type of *this* result" }, "pageTitle": { "type": "string", "description": "**title** of the page for *this* attraction" }, "editorsPick": { "type": "boolean", "description": "**indicator**: `true` if only the top (editor's pick) attractions will be shown" }, "keywords": { "type": "array", "items": { "type": "object", "properties": { "keyword": { "type": "string", "description": "**natural-language keyword or phrase** that describes *this* attraction" }, "keywordId": { "type": "number", "description": "**unique numeric identifier** for *this* keyword" } } } }, "showPhotos": { "type": "boolean", "description": "**indicator**: `true` if photos should be shown for *this* attraction" }, "primaryDestinationId": { "type": "integer", "description": "**unique numeric identifier** for the primary destination associated with *this* attraction" }, "primaryDestinationName": { "type": "string", "description": "**natural-language name** of the primary destination identified by `primaryDestinationId`" }, "thumbnailHiResURL": { "type": "string", "description": "**URL** for the thumbnail image that should be used for *this* attraction" }, "tabTitle": { "type": "string", "description": "**title** for the tab on which this attraction is displayed" }, "descriptionIntro": { "description": "**natural-language introduction** for the description of *this* attraction" }, "descriptionText": { "type": "string", "description": "**natural-language description** of *this* attraction" }, "showReviews": { "type": "boolean", "description": "**indicator**: `true` if review should be shown" }, "attractionLatitude": { "type": "number", "description": "**latitude component** of *this* attraction's geolocation" }, "attractionLongitude": { "type": "number", "description": "**longitude component** of *this* attraction's geolocation" }, "attractionStreetAddress": { "type": "string", "description": "**street address component** of *this* attraction's address" }, "attractionCity": { "type": "string", "description": "**city component** of *this* attraction's address" }, "attractionState": { "type": "string", "description": "**state component** of *this* attraction's address" }, "keywordCount": { "type": "integer", "description": "**number** of keywords for *this* result" }, "overviewSummary": { "type": "string", "description": "**HTML-formatted overview summary** for *this* atraction" }, "pagePrimaryLanguage": { "type": "string", "description": "**language code** for the language that this content is primarily expressed in" } } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/search-attractions-example" } } } } } } } }, "/attraction": { "get": { "tags": [ "Attraction services" ], "summary": "/attraction", "operationId": "attraction", "description": "This service returns the details of an attraction.\n\n**Note**:\n\n- Pages generated using data from this endpoint are subject to a **strict no-index policy**. If you are unsure about whether you are correctly following this rule, please reach out to your account manager for advice.\n\n**Aliases**:\n- [/recommendation](#operation/attraction)\n- [/seo](#operation/attraction)\n", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" }, { "in": "query", "name": "seoId", "description": "**unique numeric identifier** for the attraction to retrieve details for", "example": 14235, "schema": { "type": "integer" } }, { "in": "query", "name": "currencyCode", "description": "**currency-code** for the currency in which to display pricing details for the desired attraction", "example": "EUR", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "panoramaCount": { "type": "integer", "description": "**number of panoramas** available for this attraction", "example": 0 }, "webURL": { "$ref": "#/components/schemas/webURL" }, "userPhotos": { "type": "array", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** for *this* result" }, "ownerName": { "type": "string", "description": "**name** of the owner of *this* photograph" }, "ownerCountry": { "type": "string", "description": "**natural-language name** of the country that the owner of this photo calls home" }, "productTitle": { "type": "string", "description": "**title** of the product that *this* photo represents" }, "ownerAvatarURL": { "type": "string", "description": "**URL** for the avatar image of the owner of this photo" }, "productCode": { "type": "string", "description": "**unique alpha-numeric identifier** of the product that this photo represents" }, "title": { "type": "string", "description": "**natural-language title** of the product that this photo represents" }, "caption": { "type": "string", "description": "**HTML-formatted caption** for *this* photo" }, "thumbnailURL": { "type": "string", "description": "**URL** for the thumbnail image of *this* photo" }, "ownerId": { "type": "integer", "description": "**unique numeric identifier** of the owner of *this* photo" }, "editorsPick": { "type": "boolean", "description": "**indicator**: `true` if this photo is an editor's pick" }, "photoHiResURL": { "type": "string", "description": "**URL** for the high-resolution version of *this* photo" }, "photoId": { "type": "integer", "description": "**unique numeric identifier** for *this* photo" }, "photoURL": { "type": "string", "description": "**URL** for *this* photo" }, "photoMediumResURL": { "type": "string", "description": "**URL** for the medium-resolution version of *this* photo" }, "timeUploaded": { "type": "string", "description": "**date** on which *this* photo was uploaded formatted according to the example" } } } }, "reviews": { "type": "array", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** for *this* result" }, "ownerName": { "type": "string" }, "ownerCountry": { "type": "string", "description": "ignore (Viator only)" }, "productTitle": { "type": "string", "description": "**title** of the product that *this* photo represents" }, "ownerAvatarURL": { "type": "string", "description": "ignore (Viator only)" }, "productCode": { "type": "string", "description": "**unique alpha-numeric identifier** of the product that this photo represents" }, "review": { "type": "string", "description": "**HTML-formatted text** of *this* review" }, "rating": { "type": "integer", "description": "**numeric rating** given in *this* recommendation" }, "ownerId": { "type": "integer", "description": "**unique numeric identifier** for the owner of *this* review" }, "viatorFeedback": { "type": "string", "description": "ignore (Viator only)" }, "reviewId": { "type": "integer", "description": "**unique numeric identifier** for *this* review" }, "submissionDate": { "type": "string", "description": "**date** on which *this* review was submitted formatted according to the example" }, "publishedDate": { "type": "string", "description": "**date** on which *this* review was published" }, "viatorNotes": { "type": "string", "description": "ignore (Viator only)" } } } }, "products": { "type": "array", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** for *this* result" }, "supplierName": { "type": "string", "description": "ignore (Viator only)" }, "currencyCode": { "type": "string", "description": "**currency-code** for the currency in which pricing information is displayed" }, "catIds": { "type": "string", "description": "ignore (Viator only)" }, "subCatIds": { "type": "string", "description": "ignore (Viator only)" }, "webURL": { "$ref": "#/components/schemas/webURL" }, "specialReservationDetails": { "type": "string", "description": "ignore (Viator only)" }, "panoramaCount": { "type": "integer", "description": "ignore (Viator only)" }, "merchantCancellable": { "type": "boolean", "description": "ignore (Viator only)" }, "duration": { "type": "string", "description": "**natural-language duration** of *this* tour formatted according to the example" }, "code": { "type": "string", "description": "**unique alphanumeric identifier** for *this* product" }, "shortDescription": { "type": "string", "description": "**short natural-language descriuption* of *this* product" }, "supplierCode": { "type": "string", "description": "**unique numeric identifer** of the supplier of *this* product expressed as a string" }, "title": { "type": "string", "description": "**natural-language title** of *this* product" }, "thumbnailURL": { "type": "string", "description": "**URL** of the thumbnail image for *this* product" }, "specialReservation": { "type": "boolean", "description": "ignore (Viator only)" }, "reviewCount": { "type": "integer", "description": "**number of reviews** available for *this* product" }, "photoCount": { "type": "integer", "description": "**number of photos** available for *this* product" }, "rating": { "type": "string", "description": "**average user rating** for *this* product" }, "rrp": { "type": "number", "description": "**recommended retail price** for *this* product in the currency specified in `countryCode`" }, "rrpformatted": { "type": "string", "description": "**recommended retail price** for *this* product formatted according to the currency specified in `countryCode`" }, "savingAmount": { "type": "number", "description": "**magnitude of the discount** applied to *this* product represented in the currency specified in `countryCode`" }, "savingAmountFormated": { "type": "string", "description": "**magnitude of the discount** applied to *this* product represented and formatted according to the currency specified in `countryCode` (note misspelling - 'formated')" }, "price": { "type": "number", "description": "**numeric price** for *this* product respresented in the currency specified in `countryCode`" }, "videoCount": { "type": "number", "description": "ignore (Viator only) \u2013 videos are not available to partners" }, "onSale": { "type": "boolean", "description": "**indicator**: `true` if a discount has been applied to *this* product's price" }, "shortTitle": { "type": "string", "description": "**natural-language shortened title** of *this* product" }, "translationLevel": { "type": "integer", "description": "**specifier** of the level of translation that has been applied to this product" }, "primaryDestinationId": { "type": "integer", "description": "**unique numeric identifier** of the primary destination associated with *this* product" }, "primaryDestinationName": { "type": "string", "description": "**natural-language name** of the destination associated with *this* product" }, "priceFormatted": { "type": "string", "description": "**currency-formatted price** of the product" }, "merchantNetPriceFrom": { "type": "number", "description": "ignore (Viator only)" }, "merchantNetPriceFromFormatted": { "type": "string", "description": "ignore (Viator only)" }, "specialOfferAvailable": { "type": "boolean", "description": "ignore (Viator only)" }, "thumbnailHiResURL": { "type": "string", "description": "**URL** for the high-resolution version of the thumbnail image for this product" } } } }, "infoPageOverview1": { "type": "string", "description": "**HTML-formatted overview** for *this* attraction: part 1" }, "infoPageOverview2": { "type": "string", "description": "**HTML-formatted overview** for this attraction: part 2" }, "attractionAdmission": { "type": "string", "description": "**natural-language descrption** of the admission terms for the attraction" }, "attractionTransit": { "type": "string", "description": "ignore (Viator only)" }, "attractionOpenHours": { "type": "string", "description": "**natural-language description of the opening hours for *this* attraction" }, "infoPageOverviewTitle1": { "type": "string", "description": "**first title** of overview info page" }, "infoPageOverviewTitle2": { "type": "string", "description": "**first title** of overview info page" }, "seoId": { "type": "integer", "description": "**unique numeric identifier** for *this* attraction" }, "productCount": { "type": "integer", "description": "**number** of products available for *this* attraction" }, "title": { "type": "string", "description": "**natural-language title** of *this* attraction" }, "thumbnailURL": { "type": "string", "description": "**URL** of the thumbnail image for *this* attraction" }, "reviewCount": { "type": "integer", "description": "**number** of reviews avaialable for *this* attraction" }, "photoCount": { "type": "integer", "description": "**number** of photos available for *this* attraction" }, "rating": { "type": "integer", "description": "**average user rating** for *this* attraction" }, "destinationId": { "type": "integer", "description": "**unique numeric identifier** for *this* attraction" }, "seoType": { "type": "string", "description": "**indicator**: one of `'recommendation'` or `'RECOMMENDATION'` depending on the type of *this* result" }, "pageTitle": { "type": "string", "description": "**title** of the page for *this* attraction" }, "editorsPick": { "type": "string", "description": "" }, "keywords": { "type": "array", "items": { "type": "object", "properties": { "keyword": { "type": "string", "description": "**natural-language keyword or phrase** that describes *this* recommendation" }, "keywordId": { "type": "number", "description": "**unique numeric identifier** for *this* keyword" } } } }, "showPhotos": { "type": "boolean", "description": "**specifier**: `true` if photos are to be shown" }, "primaryDestinationId": { "type": "integer", "description": "**unique numeric identifier** for the destination associated with *this* attraction" }, "primaryDestinationName": { "type": "string", "description": "**name** of the primary destination associated with *this* attraction" }, "thumbnailHiResURL": { "type": "string", "description": "**URL** for the high-resolution thumbnail image for *this* attraction" }, "tabTitle": { "type": "string", "description": "**title** for the tab for *this* attraction" }, "descriptionIntro": { "type": "string", "description": "**intro** for the description for *this* attraction" }, "descriptionText": { "type": "string", "description": "**HTML-formatted description** of *this* attraction" }, "showReviews": { "type": "boolean", "description": "**specifier**: `true` if reviews are to be shown" }, "attractionLatitude": { "type": "number", "description": "**latitude component** of *this* attraction's geolocation" }, "attractionLongitude": { "type": "number", "description": "**longitude component** of *this* attraction's geolocation" }, "attractionStreetAddress": { "type": "string", "description": "**street address component** of *this* attraction's address" }, "attractionCity": { "type": "string", "description": "**city component** of *this* attraction's address" }, "attractionState": { "type": "string", "description": "**state component** of *this* attraction's address" }, "keywordCount": { "type": "integer", "description": "**number** of keywords in *this* response" }, "overviewSummary": { "type": "string", "description": "**summary description** of *this* attraction" }, "pagePrimaryLanguage": { "type": "string", "description": "**language-code** for the language that *this* attraction's page is primarily expressed in" } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/attraction-example" } } } } } } } }, "/attraction/reviews": { "get": { "tags": [ "Attraction services" ], "summary": "/attraction/reviews", "operationId": "attractionReviews", "description": "\nThis service gets reviews related to an attraction. These reviews might be\nassociated indirectly through the related products.\n\n**Note**:\n\n- Pages generated using data from this endpoint are subject to a **strict no-index policy**. If you are unsure about whether you are correctly following this rule, please reach out to your account manager for advice.\n\n**Aliases**:\n\n- [/recommendation/reviews](#operation/attractionReviews)\n\n- [/seo/reviews](#operation/attractionReviews)\n", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" }, { "in": "query", "name": "seoId", "description": "**unique numeric identifier** of the attraction for which to retrieve reviews", "example": 14235, "schema": { "type": "integer" } }, { "in": "query", "name": "sortOrder", "description": "Sort order for the results; one of:\n\n- `'SEO_REVIEW_RATING_D'` - sort by traveler rating (descending)\n- `'SEO_REVIEW_RATING_PUBLISHED_DATE_D'` - sort by date of publication (most recent first)\n", "example": "SEO_REVIEW_RATING_D", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** for *this* review" }, "ownerName": { "type": "string", "description": "**name** of the owner of *this* review" }, "ownerCountry": { "type": "string", "description": "**country** in which the owner of *this* review is located" }, "productTitle": { "type": "string", "description": "**title** of the product that *this* review is about" }, "productUrlName": { "type": "string", "description": "**URL-formatted name** of the product *this* review is about" }, "ownerAvatarURL": { "type": "string", "description": "ignore (Viator only)" }, "sslSupported": { "type": "boolean", "description": "ignore (Viator only)" }, "publishedDate": { "type": "string", "description": "**date** on which *this* review was published" }, "productCode": { "type": "string", "description": "**unique alphanumeric identifier** of the product that *this* review is about" }, "viatorNotes": { "type": "string", "description": "ignore (Viator only)" }, "submissionDate": { "type": "string", "description": "**date** on which *this* review was submitted" }, "rating": { "type": "integer", "description": "**rating** given by the author of *this* review" }, "review": { "type": "string", "description": "**text content** of *this* review" }, "ownerId": { "type": "integer", "description": "**unique numeric identifier** of *this* review's author" }, "viatorFeedback": { "type": "string", "description": "ignore (Viator only)" }, "reviewId": { "type": "integer", "description": "**unique numeric identifier** for *this* review" } } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/attraction-reviews-example" } } } } } } } }, "/attraction/photos": { "get": { "tags": [ "Attraction services" ], "summary": "/attraction/photos", "operationId": "attractionPhotos", "description": "\nThis service returns photos that are related to an attraction. These may be\nassociated indirectly if they are photos of products related to the\nattraction.\n\n**Note**:\n\n- Pages generated using data from this endpoint are subject to a **strict no-index policy**. If you are unsure about whether you are correctly following this rule, please reach out to your account manager for advice.\n\n**Aliases**:\n\n- [/recommendation/photos](#operation/attractionPhotos)\n\n- [/seo/photos](#operation/attractionPhotos)\n", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" }, { "$ref": "#/components/parameters/topX" }, { "in": "query", "name": "seoId", "description": "**unique numeric identifier** for the attraction to retrieve photos", "example": 14235, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** for *this* photo" }, "ownerName": { "type": "string", "description": "**name** of the owner of *this* photo" }, "ownerCountry": { "type": "string", "description": "**country** in which the owner of *this* photo is located" }, "productTitle": { "type": "string", "description": "**title** of the product that this photo depicts" }, "productUrlName": { "type": "string", "description": "**URL-formatted title** of the product that this photo depicts" }, "ownerAvatarURL": { "type": "string", "description": "**URL** of the avatar photo of the owner of *this* photo" }, "sslSupported": { "type": "boolean", "description": "ignore (Viator only)" }, "title": { "type": "string", "description": "**title** of *this* photo" }, "ownerId": { "type": "integer", "description": "**unique numeric identifier** of the owner of *this* product" }, "productCode": { "type": "string", "description": "**unique alphanumeric identifier** of the product that *this* photo depicts" }, "caption": { "type": "string", "description": "**HTML-formatted caption** for *this* photo" }, "thumbnailURL": { "type": "string", "description": "**URL** for the thumbnail version of *this* image" }, "timeUploaded": { "type": "string", "description": "**date stamp** indicating when *this* photo was uploaded" }, "editorsPick": { "type": "boolean", "description": "**indicator**: `true` if *this* photo has been selected as an editor's pick" }, "photoId": { "type": "integer", "description": "**unique numeric identifier** for *this* photo" }, "photoURL": { "type": "string", "description": "**URL** at which *this* photo can be accessed" }, "photoHiResURL": { "type": "string", "description": "**URL** at which the high-resolution version of *this* photo can be accessed" }, "photoMediumResURL": { "type": "string", "description": "**URL** at which the medium-resolution version of *this* photo can be accessed" } } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/attraction-photos-example" } } } } } } } }, "/attraction/products": { "get": { "tags": [ "Attraction services" ], "summary": "/attraction/products", "operationId": "attractionProducts", "description": "This service gets attraction-related products (for cross-selling purposes)\n\n**Aliases**:\n- [/recommendation/products](#operation/attractionProducts)\n- [/seo/products](#operation/attractionProducts)\n", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" }, { "in": "query", "name": "seoId", "description": "**unique numeric identifier** for the attraction", "example": 14235, "schema": { "type": "integer" } }, { "$ref": "#/components/parameters/topX" }, { "in": "query", "name": "sortOrder", "description": "Sort order for the results; one of:\n\n - `'SEO_PRODUCT_TOP_SELLERS'` \u2013 top sellers (**Note**: What Viator gets paid impacts this sort order)\n - `'SEO_PRODUCT_REVIEW_AVG_RATING_A'` \u2013 traveller rating (low->high)\n - `'SEO_PRODUCT_REVIEW_AVG_RATING_D'` \u2013 traveller rating (high->low)\n - `'SEO_PRODUCT_PRICE_FROM_A'` \u2013 price (low->high) \n - `'SEO_PRODUCT_PRICE_FROM_D'` \u2013 price (high->low)\n", "example": "SEO_PRODUCT_TOP_SELLERS", "schema": { "type": "string" } }, { "in": "query", "name": "currencyCode", "description": "**currency-code** for the currency in which to display pricing details for the products related to the specified attraction.\n\n**Note:**\n- You must have multiple currencies enabled in order to set the currency using this parameter. Please speak to your account manager if you wish to have this enabled.\n- If you omit this parameter; or, if you do not have multiple currencies enabled, pricing will be returned in the default currency for your account.\n", "example": "EUR", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** for *this* product" }, "supplierName": { "type": "string", "description": "**name** of the supplier of *this* product" }, "currencyCode": { "$ref": "#/components/schemas/currencyCode" }, "catIds": { "type": "array", "description": "**array of numeric identifiers** for the categories *this* product falls into", "items": { "type": "integer" } }, "subCatIds": { "type": "array", "description": "**array of numeric identifiers** for the subcategories *this* product falls into", "items": { "type": "integer" } }, "webURL": { "$ref": "#/components/schemas/webURL" }, "specialReservationDetails": { "type": "string", "description": "ignore (Viator only)" }, "sslSupported": { "type": "boolean", "description": "**ignore (Viator only)**" }, "panoramaCount": { "type": "integer", "description": "**number** of panoramas available for *this* product" }, "merchantCancellable": { "type": "boolean", "description": "ignore (Viator only)" }, "bookingEngineId": { "$ref": "#/components/schemas/bookingEngineId" }, "onRequestPeriod": { "type": "string", "description": "ignore (Viator only)" }, "primaryGroupId": { "type": "string", "description": "ignore (Viator only)" }, "pas": { "type": "string", "description": "ignore (Viator only)" }, "available": { "type": "boolean", "description": "ignore (Viator only)" }, "productUrlName": { "type": "string", "description": "**URL-formatted name** of *this* product" }, "primaryDestinationUrlName": { "type": "string", "description": "**URL-formatted name** of the primary destination of *this* product" }, "title": { "type": "string", "description": "**natural-lannguage title** of *this* product" }, "videoCount": { "type": "integer", "description": "ignore (Viator only) \u2013 videos are not available to partners" }, "rating": { "type": "number", "description": "**average user rating** of *this* product" }, "supplierCode": { "type": "string", "description": "**alphanumeric identifier** for the supplier of *this* product" }, "shortTitle": { "type": "string", "description": "**title (short)** of *this* product" }, "specialOfferAvailable": { "$ref": "#/components/schemas/specialOfferAvailable" }, "price": { "$ref": "#/components/schemas/price" }, "priceFormatted": { "$ref": "#/components/schemas/priceFormatted" }, "rrp": { "type": "integer", "$ref": "#/components/schemas/rrp" }, "rrpformatted": { "$ref": "#/components/schemas/rrpFormatted" }, "onSale": { "$ref": "#/components/schemas/onSale" }, "savingAmount": { "$ref": "#/components/schemas/savingAmount" }, "savingAmountFormated": { "$ref": "#/components/schemas/savingAmountFormated" }, "translationLevel": { "type": "integer", "description": "**translation level** of the foreign-language translation (if any) for *this* product" }, "thumbnailHiResURL": { "type": "string", "description": "**URL** for the high-resolution thumbnail image for *this* product" }, "primaryDestinationName": { "type": "string", "description": "**name** of the primary destination for *this* product" }, "thumbnailURL": { "type": "string", "description": "**URL** for the thumbnail image for *this* product" }, "photoCount": { "type": "integer", "description": "**number** of photos available for *this* product" }, "reviewCount": { "type": "integer", "description": "**number** of reviews available for *this* product" }, "primaryDestinationId": { "type": "integer", "description": "**numeric identifier** for *this* product's primary destination" }, "merchantNetPriceFrom": { "type": "integer", "description": "ignore (Viator only)" }, "specialReservation": { "type": "integer", "description": "ignore (Viator only)" }, "uniqueShortdescription": { "type": "boolean", "description": "ignore (Viator only)" }, "merchantNetPriceFromFormatted": { "type": "string", "description": "ignore (Viator only)" }, "essential": { "type": "string", "description": "ignore (Viator only)" }, "admission": { "type": "string", "description": "ignore (Viator only)" }, "shortdescription": { "type": "string", "description": "**short description** of *this* product" }, "duration": { "type": "string", "description": "**duration** of this product" }, "code": { "type": "string", "description": "**unique alphanumeric identifier** for this product" } } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/attraction-products-example" } } } } } } } }, "/support/customercare": { "get": { "tags": [ "Support services" ], "summary": "/support/customercare", "operationId": "supportCustomercare", "description": "This endpoint returns the URL to the Viator help page.", "parameters": [ { "$ref": "#/components/parameters/acceptLanguage" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/basicErrorModel" }, { "type": "object", "properties": { "data": { "type": "object", "properties": { "url": { "type": "string", "description": "**URL** for the Viator help page", "example": "http://www.viator.com/customer-care?eap=brand-subbrand-16721&aid=vba16721en" } } } } } ] }, "examples": { "1": { "$ref": "#/components/examples/support-customercare-example" } } } } } } } } }, "components": { "securitySchemes": { "Legacy-API-key": { "type": "apiKey", "in": "query", "name": "apiKey" }, "API-key": { "type": "apiKey", "in": "header", "name": "exp-api-key" } }, "parameters": { "acceptLanguage": { "in": "header", "name": "Accept-Language", "description": "Specifies the language into which the natural-language fields in the response from this service will be translated (see [Accept-Language header](#section/Appendices/Accept-Language-header) for available language codes)\n", "required": true, "schema": { "type": "string" } }, "defaultCurrencyCode": { "name": "defaultCurrencyCode", "in": "query", "description": "**currency code** (default) for pricing\n- countries with standard currencies will default to *this* currency for pricing display prices displayed in this currency as the default currency\n- other countries will default to `'USD'`\n- e.g., Australia would be `'AUD'`; Vietnam would be `'USD'`\n- See: [supported currencies](#section/Appendices/Supported-currency-codes)\n", "schema": { "type": "string" }, "example": "USD" }, "currencyCode": { "in": "query", "name": "currencyCode", "required": true, "schema": { "type": "string" }, "description": "**currency code** for the currency to use in this instance\n- **Note**: Commissions to Viator Affiliates will always be paid in the main currency configured for that account.\n", "example": "EUR" }, "sortOrder_REVIEW": { "in": "query", "name": "sortOrder", "schema": { "type": "string", "enum": [ "REVIEW_RATING_A", "REVIEW_RATING_D", "REVIEW_RATING_SUBMISSION_DATE_D" ] }, "description": "**specifier** of the order in which to return reviews\n\nSort order options:\n\n - `'REVIEW_RATING_A'`: Traveler Rating (low\u2192high) Average\n - `'REVIEW_RATING_D'`: Traveler Rating (high\u2192low) Average\n - `'REVIEW_RATING_SUBMISSION_DATE_D'`: Most recent review\n", "example": "REVIEW_RATING_A" }, "code": { "name": "code", "in": "query", "schema": { "type": "string" }, "description": "**unique alphanumeric identifier** of the product", "example": "5010SYDNEY" }, "showUnavailable": { "name": "showUnavailable", "in": "query", "schema": { "type": "boolean" }, "description": "**specifier** as to whether or not to show 'unavailable' products:\n\n - `true`: return *both* available and unavailable products\n - `false`: return *only* available products (default)\n", "example": false }, "topX": { "name": "topX", "in": "query", "description": "**start and end rows** to return in the format {start}-{end}\n- e.g. `'1-10'`, `'11-20'`\n- maximum number of rows per request is 100 \n- therefore, `'100-400'` will return the same as `'100-200'`\n- if `topX` is not specified, the default is `'1-100'`\n", "schema": { "type": "string" }, "example": "1-3" } }, "schemas": { "basicErrorModel": { "type": "object", "properties": { "errorReference": { "type": "string", "example": null, "description": "**reference number** of *this* error" }, "dateStamp": { "type": "string", "example": "2017-11-24T21:30:47+0000", "description": "**timestamp** of *this* response" }, "errorType": { "type": "string", "description": "**code** specifying the type of error", "example": null }, "errorCodes": { "type": "array", "description": "**array** of error codes pertaining to *this* error\n- See: [Exception error codes](#section/Appendices/Exception-error-codes) for a list of possible error codes\n", "items": { "type": "string" }, "example": [] }, "errorMessage": { "type": "array", "description": "**array** of error message strings", "example": null }, "errorName": { "type": "string", "example": null, "description": "**name** of *this* type of error" }, "extraInfo": { "type": "object", "description": "ignore (Viator only)" }, "extraObject": { "type": "object", "description": "ignore (Viator only)" }, "success": { "type": "boolean", "example": true, "description": "**boolean indicator** of *this* request's outcome\n- `true`: the request was successful with no errors\n- `false`: an error was encountered\n" }, "totalCount": { "type": "integer", "example": 1, "description": "**number** of results available for *this* service\n" }, "errorMessageText": { "type": "string", "example": null, "description": "**array** of error message strings in plain text" }, "vmid": { "type": "string", "example": "321050", "description": "**unique numeric id** of the server that processed *this* request" } } }, "defaultCurrencyCode": { "type": "string", "description": "Default currency code" }, "iataCode": { "type": "string", "description": "**IATA airport code** for the destination\n- a three-letter code defined by the International Air Transport Association (IATA) used to identify many airports around the world\n- the IATA code is also known as an 'IATA location identifier', 'IATA station code' or simply a 'location identifier'\n- the IATA code is not available for destinations with a destination type of `'COUNTRY'` or `'REGION'`, as there could be more than one airport within a destination\n", "example": null }, "destinationType": { "type": "string", "enum": [ "CITY", "COUNTRY", "REGION" ], "description": "**destination type specifier**\n- `'COUNTRY'`: destination is a country\n- `'REGION'`: destination is a recognized region of a country, such as a state, island within a country, stretch of coastline, etc.\n- `'CITY'`: destination is a city\n" }, "topX": { "type": "string", "description": "**start and end rows** to return in the format {start}-{end}\n- e.g. `'1-10'`, `'11-20'`\n- maximum number of rows per request is 100 \n- therefore, `'100-400'` will return the same as `'100-200'`\n- if `topX` is not specified, the default is `'1-100'`\n", "example": "1-3" }, "webURL": { "type": "string", "description": "**URL** to forward users to in order to complete their purchase on the Viator site\n\nExample: \n* http://es.live.rc.viator.com/tours/Sydney/Sydney-and-Bondi-Hop-on-Hop-off-Tour/d357-5010SYDNEY?eap=brand-subbrand-24251&aid=vba24251es\n" }, "sortOrder": { "type": "string", "enum": [ "TOP_SELLERS", "REVIEW_AVG_RATING_A", "REVIEW_AVG_RATING_D", "PRICE_FROM_A", "PRICE_FROM_D" ], "description": "**sort order** in which to return the results that is *one of*:\n\n - `'TOP_SELLERS'`: the top sellers (**Note**: What Viator gets paid impacts this sort order)\n - `'REVIEW_AVG_RATING_A'`: ascending by average traveler rating (low -> high)\n - `'REVIEW_AVG_RATING_D'`: descending by average traveler rating (high -> low)\n - `'PRICE_FROM_A'`: ascending by price (low -> high)\n - `'PRICE_FROM_D'`: descending by price (high -> low)\n" }, "currencyCode": { "type": "string", "description": "**currency code** for the currency to use for pricing fields\n- **Note**: See [Supported currency codes](#section/Appendices/Supported-currency-codes) for available currencies\n- **Default**: the default currency set up for your account\n", "example": "USD" }, "bookingEngineId": { "type": "string", "description": "ignore (relevant only to merchant and transactional-affiliate partners)" }, "onRequestPeriod": { "type": "integer", "description": "ignore (relevant to merchant and transactional-affiliate partners only)" }, "translationLevel": { "enum": [ 0, 90, 100 ], "description": "**numeric indicator** of the language translation level for *this* product\nthat is one of:\n\n- `0`: no translation (English only)\n- `90`: full machine translation\n- `100`: full human translation\n", "type": "integer", "example": 0 }, "price": { "description": "**suggested sell ('from') price** for this product in the currency set in the `currencyCode` parameter. This is the cheapest sell price, taking into consideration off-peak periods and discounts on larger groups.\n", "type": "number" }, "priceFormatted": { "type": "string", "description": "**currency-formatted suggested sell ('from') price** for this product in the currency set in the `currencyCode` parameter\n" }, "rrp": { "type": "integer", "description": "**numeric original price** for this product if the product is on special / a discount has been applied. `0` if there is no discount on this product. See [Special offers and on-sale pricing](#section/Key-concepts/Special-offers-and-on-sale-pricing) for more information." }, "rrpFormatted": { "type": "string", "description": "**currency-formatted original price** for this product if the product is on special / a discount has been applied. Empty string if there is no discount on this product. See [Special offers and on-sale pricing](#section/Key-concepts/Special-offers-and-on-sale-pricing) for more information." }, "savingAmount": { "type": "integer", "description": "**numeric price difference** of the price of this product (`price`) while on sale (`onSale` is `true`) compared to the product's original price (`rrp`). See [Special offers and on-sale pricing](#section/Key-concepts/Special-offers-and-on-sale-pricing) for more information." }, "savingAmountFormated": { "type": "string", "description": "\n**currency-formatted price difference** of the price of this product (`price`) while on sale (`onSale` is `true`) compared to the product's original price (`rrp`)\n- if no discount has been applied, the value will be empty \n- Note: There is a typo in the spelling of this field name ('formated')\n- See [Special offers and on-sale pricing](#section/Key-concepts/Special-offers-and-on-sale-pricing) for more information.\n", "example": "" }, "onSale": { "type": "boolean", "description": "**indicator**: `true` if the product is 'on sale' and a discount has been applied to the price. When a product is on sale, the `price` and `priceFormatted` fields give the discounted price, `rrp` and `rrpFormatted` give the original price, and `savingAmount`, `savingAmountFormated` give the difference between the discount and original prices. See [Special offers and on-sale pricing](#section/Key-concepts/Special-offers-and-on-sale-pricing) for more information." }, "specialOfferAvailable": { "type": "boolean", "description": "**indicator**: `true` if a special offer is available for *this* product. See [Special offers and on-sale pricing](#section/Key-concepts/Special-offers-and-on-sale-pricing) for more information." }, "reviewCount": { "type": "integer", "description": "**number** of user reviews that have been submitted by users for *this* product\n\nIf your account has been configured to limit the number of reviews you can receive, this value will never be higher than that. Otherwise, this value will show the total number of reviews available for this product. If there are more than 24 reviews available, you will need to use the [/product/reviews](#operation/productReviews) service to retrieve the remainder of the reviews.\n" }, "rating": { "type": "number", "description": "**average user rating** of *this* product\n\nusers rate products by assigning a star-rating from 1-5; this value shows the average of the star ratings provided by users;\n\nthe `ratingCounts` associative array in this response provides a breakdown of how many submissions for each star rating have been received\n" }, "photoObject": { "description": "**object** detailing a single photo from a user", "type": "object", "properties": { "productCode": { "type": "string", "description": "**product code** for the product that *this* photograph is of", "example": "2280AAHT" }, "title": { "type": "string", "description": "**title** of *this* photograph", "example": "DSC00471" }, "caption": { "type": "string", "description": "**HTML-formatted caption** for *this* photograph\n- may contain basic HTML mark-up - e.g., br, li, b, u, p, i, ul and ol\n", "example": "

Carl and Karen meeting a new friend at the Wildlife park.

" }, "thumbnailURL": { "type": "string", "description": "**URL** of *this* product's thumbnail image", "example": "http://cache-graphicslib.viator.com/graphicslib/media/e4/dsc00471-photo_1909732-133sq.jpg" }, "ownerId": { "type": "integer", "description": "**unique numeric identifier** of the user that owns the photograph", "example": 1106472 }, "editorsPick": { "type": "boolean", "description": "**indicator**: `true` if *this* photograph has been tagged as an *editor's pick*", "example": true }, "photoId": { "type": "integer", "description": "**unique numeric identifier** of *this* photograph", "example": 1165131 }, "photoURL": { "type": "string", "description": "**URL** for the standard-resolution version of *this* photograph", "example": "http://cache-graphicslib.viator.com/graphicslib/media/e4/dsc00471-photo_1909732-770tall.jpg" }, "photoHiResURL": { "type": "string", "description": "**URL** of the high-resolution version of *this* photograph", "example": "http://cache-graphicslib.viator.com/graphicslib/media/e4/dsc00471-photo_1909732-1536tall.jpg" }, "photoMediumResURL": { "type": "string", "description": "**URL** of the medium-resolution version of *this* photograph", "example": "http://cache-graphicslib.viator.com/graphicslib/media/e4/dsc00471-photo_1909732-260tall.jpg" }, "timeUploaded": { "type": "string", "description": "**date** on which *this* photograph was submitted", "example": "2012-02-07" }, "productTitle": { "type": "string", "description": "**natural-language title** of the product associated with *this* photograph", "example": "Sydney and Bondi Hop-on Hop-off Tour" }, "productUrlName": { "type": "string", "description": "**URL-formatted title** of the product associated with *this* photograph", "example": "Sydney-and-Bondi-Hop-on-Hop-off-Tour" }, "ownerName": { "type": "string", "description": "**handle** of the user that submitted *this* photograph", "example": "Husker1k" }, "ownerCountry": { "type": "string", "description": "**country** in which the owner of *this* photograph is located", "example": null }, "ownerAvatarURL": { "type": "string", "description": "**URL** for the avatar image of the user that submitted *this* photograph", "example": null }, "sortOrder": { "type": "integer", "description": "**sort order** for *this* photograph", "example": 3 }, "sslSupported": { "type": "boolean", "description": "ignore (Viator only)", "example": false } } }, "reviewObject": { "description": "**object** containing a single user review", "type": "object", "properties": { "sortOrder": { "type": "integer", "description": "**sort order** for *this* review", "example": 1 }, "ownerName": { "type": "string", "description": "**name** of the user that submitted *this* review", "example": "Pamela J" }, "ownerCountry": { "type": "string", "description": "**country** in which the reviewer is located", "example": null }, "productTitle": { "type": "string", "description": "**title** of the product that *this* review is about", "example": "Sydney and Bondi Hop-on Hop-off Tour" }, "productUrlName": { "type": "string", "example": "Sydney-and-Bondi-Hop-on-Hop-off-Tour", "description": "**URL-formatted title** of the product that *this* review is about" }, "ownerAvatarURL": { "type": "string", "description": "**URL** of the reviewer's avatar image", "example": "http://cache-graphicslib.viator.com/graphicslib/media/4b/leah-account_1179979-45sq.jpg" }, "sslSupported": { "type": "boolean", "description": "ignore (Viator only)", "example": false }, "productCode": { "type": "string", "description": "**product code** of the product that *this* review is about", "example": "5010SYDNEY" }, "viatorNotes": { "type": "string", "description": "ignore (Viator only)", "example": "" }, "submissionDate": { "type": "string", "description": "**date** that *this* review was submitted", "example": "2018-10-01" }, "rating": { "type": "integer", "description": "**rating** given by the reviewer", "example": 5 }, "review": { "type": "string", "description": "**HTML-formatted content** of the review\n- may contain basic HTML mark-up - e.g., br, li, b, u, p, i, ul and ol\n", "example": "

A convenient and inexpensive way to get around Sydney. I glad we purchased this.

" }, "publishedDate": { "type": "string", "description": "**date** that *this* review was published", "example": "2018-10-01" }, "ownerId": { "type": "integer", "description": "**unique numeric identifier** of the user that submitted *this* review", "example": 1179979 }, "viatorFeedback": { "type": "string", "description": "ignore (Viator only)", "example": "" }, "reviewId": { "type": "integer", "description": "**unique numeric identifier** of *this* review", "example": 34384160 } } }, "reviews": { "type": "array", "description": "**array** of user review objects\n\nThe number of reviews returned here will either be the number of reviews you are entitled to according to your account configuration; or, if you are not limited in the number of reviews you can receive, will be a maxiumum of 24 reviews. If the value of `reviewCount` in this response exceeds 24, you can use the [/product/reviews](#operation/productReviews) endpoint to retrieve the remainder of the reviews.\n", "items": { "$ref": "#/components/schemas/reviewObject" } }, "bandId": { "type": "integer", "description": "**unique numeric identifier** for the age band\n- See: [Working with age bands](#section/Appendices/Working-with-age-bands)\n", "example": 1 }, "ratingCounts": { "description": "**dictionary** of rating (stars) to number of reviews with each rating for *this* product\"\n\nusers rate products by assigning a star-rating from 1-5; these values show the total number of reviews for each of the star ratings (up to a maximum given in the `reviewCount` field in this response)\n\n- **note**: see response sample for structure\n", "type": "object", "properties": { "1": { "type": "number", "description": "Number of reviews with a one star rating" }, "2": { "type": "number", "description": "Number of reviews with a two star rating" }, "3": { "type": "number", "description": "Number of reviews with a three star rating" }, "4": { "type": "number", "description": "Number of reviews with a four star rating" }, "5": { "type": "number", "description": "Number of reviews with a five star rating" } } }, "specialOffer": { "type": "string", "description": "**natural-language description** of any special offers available for *this* product when `specialOfferAvailable` is `true`.\n- Note: empty string if there are no specials available\n- See [Special offers and on-sale pricing](#section/Key-concepts/Special-offers-and-on-sale-pricing) for more information.\n" } }, "examples": { "util-sitedetails-example": { "summary": "/util/sitedetails", "value": { "errorReference": null, "data": { "showLogo": false, "showFavicon": false, "hasCustomHeaderHtml": false, "hasCustomFooterHtml": false, "hasCustomCss": false, "homepageDestIds": [], "piiSetting": "NO_PII", "partnerPrivacyPolicyUrl": "", "pointsProgram": false, "pointsProgramName": "", "pointsProgramUserType": "", "pointsProgramHelpText": "", "puid": "00000", "retailSiteId": "00000.api.partner.viator.com", "companyName": "TheName", "defaultCurrency": "USD", "centralURL": "shop.live.rc.viator.com", "permissionsDenied": [ 1, 42, 75, 46, 78, 15, 82, 116, 53, 85, 22, 118, 119, 120, 121 ], "allowMultiCurrency": false, "mobileSiteDomain": null, "showSupplierName": false, "showAllLangServices": false, "showPassbook": false, "urlPostFixedValue": "eap=brand-subbrand-00000&aid=vba00000en", "canDisableBookEmail": false, "clientId": "PARTNER:API-en:VBA:00000", "locale": "en", "enabled": true, "url": "shop.live.rc.viator.com", "id": 0, "channel": "PARTNER" }, "dateStamp": "2020-04-21T17:22:00+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 1, "errorMessageText": null, "vmid": "331003" } }, "util-countrymap-example": { "summary": "/util/countrymap", "value": { "errorReference": null, "data": { "AF": { "phoneCode": "+93", "countryName": "Afghanistan", "countryId": "AF" }, "AX": { "phoneCode": "+358", "countryName": "Aland Islands", "countryId": "AX" }, "AL": { "phoneCode": "+355", "countryName": "Albania", "countryId": "AL" }, "DZ": { "phoneCode": "+213", "countryName": "Algeria", "countryId": "DZ" }, "AS": { "phoneCode": "+1-684", "countryName": "American Samoa", "countryId": "AS" }, "AD": { "phoneCode": "+376", "countryName": "Andorra", "countryId": "AD" }, "AO": { "phoneCode": "+244", "countryName": "Angola", "countryId": "AO" }, "AI": { "phoneCode": "+1-264", "countryName": "Anguilla", "countryId": "AI" }, "AQ": { "phoneCode": "+672", "countryName": "Antarctica", "countryId": "AQ" }, "AG": { "phoneCode": "+1-268", "countryName": "Antigua and Barbuda", "countryId": "AG" }, "AR": { "phoneCode": "+54", "countryName": "Argentina", "countryId": "AR" }, "AM": { "phoneCode": "+374", "countryName": "Armenia", "countryId": "AM" }, "AW": { "phoneCode": "+297", "countryName": "Aruba", "countryId": "AW" }, "AC": { "phoneCode": "", "countryName": "Ascension", "countryId": "AC" }, "AU": { "phoneCode": "+61", "countryName": "Australia", "countryId": "AU" }, "AT": { "phoneCode": "+43", "countryName": "Austria", "countryId": "AT" }, "AZ": { "phoneCode": "+994", "countryName": "Azerbaijan", "countryId": "AZ" }, "BS": { "phoneCode": "+1-242", "countryName": "Bahamas", "countryId": "BS" }, "BH": { "phoneCode": "+973", "countryName": "Bahrain", "countryId": "BH" }, "BD": { "phoneCode": "+880", "countryName": "Bangladesh", "countryId": "BD" }, "BB": { "phoneCode": "+1-246", "countryName": "Barbados", "countryId": "BB" }, "BY": { "phoneCode": "+375", "countryName": "Belarus", "countryId": "BY" }, "BE": { "phoneCode": "+32", "countryName": "Belgium", "countryId": "BE" }, "BZ": { "phoneCode": "+501", "countryName": "Belize", "countryId": "BZ" }, "BJ": { "phoneCode": "+229", "countryName": "Benin", "countryId": "BJ" }, "BM": { "phoneCode": "+1-441", "countryName": "Bermuda", "countryId": "BM" }, "BT": { "phoneCode": "+975", "countryName": "Bhutan", "countryId": "BT" }, "BO": { "phoneCode": "+591", "countryName": "Bolivia", "countryId": "BO" }, "BQ": { "phoneCode": "+599", "countryName": "Bonaire", "countryId": "BQ" }, "BA": { "phoneCode": "+387", "countryName": "Bosnia and Herzegovina", "countryId": "BA" }, "BW": { "phoneCode": "+267", "countryName": "Botswana", "countryId": "BW" }, "BV": { "phoneCode": "+55", "countryName": "Bouvet Island", "countryId": "BV" }, "BR": { "phoneCode": "+55", "countryName": "Brazil", "countryId": "BR" }, "IO": { "phoneCode": "+246", "countryName": "British Indian Ocean Territory", "countryId": "IO" }, "BN": { "phoneCode": "+673", "countryName": "Brunei Darussalam", "countryId": "BN" }, "BG": { "phoneCode": "+359", "countryName": "Bulgaria", "countryId": "BG" }, "BF": { "phoneCode": "+226", "countryName": "Burkina Faso", "countryId": "BF" }, "XX": { "phoneCode": "", "countryName": "Burma (refer to Myanmar)", "countryId": "XX" }, "BI": { "phoneCode": "+257", "countryName": "Burundi", "countryId": "BI" }, "CV": { "phoneCode": "+238", "countryName": "Cabo Verde", "countryId": "CV" }, "KH": { "phoneCode": "+855", "countryName": "Cambodia", "countryId": "KH" }, "CM": { "phoneCode": "+237", "countryName": "Cameroon", "countryId": "CM" }, "CA": { "phoneCode": "+1", "countryName": "Canada", "countryId": "CA" }, "BQN": { "phoneCode": "", "countryName": "Caribbean Netherlands", "countryId": "BQN" }, "KY": { "phoneCode": "+1-345", "countryName": "Cayman Islands", "countryId": "KY" }, "CF": { "phoneCode": "+236", "countryName": "Central African Republic", "countryId": "CF" }, "TD": { "phoneCode": "+235", "countryName": "Chad", "countryId": "TD" }, "CL": { "phoneCode": "+56", "countryName": "Chile", "countryId": "CL" }, "CN": { "phoneCode": "+86", "countryName": "China", "countryId": "CN" }, "CX": { "phoneCode": "+61", "countryName": "Christmas Island", "countryId": "CX" }, "CC": { "phoneCode": "+61", "countryName": "Cocos (Keeling) Islands", "countryId": "CC" }, "CO": { "phoneCode": "+57", "countryName": "Colombia", "countryId": "CO" }, "KM": { "phoneCode": "+269", "countryName": "Comoros", "countryId": "KM" }, "CK": { "phoneCode": "+682", "countryName": "Cook Islands", "countryId": "CK" }, "CR": { "phoneCode": "+506", "countryName": "Costa Rica", "countryId": "CR" }, "CI": { "phoneCode": "+225", "countryName": "Cote d'Ivoire", "countryId": "CI" }, "HR": { "phoneCode": "+385", "countryName": "Croatia", "countryId": "HR" }, "CW": { "phoneCode": "+599", "countryName": "Curacao", "countryId": "CW" }, "CY": { "phoneCode": "+357", "countryName": "Cyprus", "countryId": "CY" }, "CZ": { "phoneCode": "+420", "countryName": "Czechia", "countryId": "CZ" }, "DK": { "phoneCode": "+45", "countryName": "Denmark", "countryId": "DK" }, "DJ": { "phoneCode": "+253", "countryName": "Djibouti", "countryId": "DJ" }, "DM": { "phoneCode": "+1-767", "countryName": "Dominica", "countryId": "DM" }, "DO": { "phoneCode": "+1-809", "countryName": "Dominican Republic", "countryId": "DO" }, "EC": { "phoneCode": "+593", "countryName": "Ecuador", "countryId": "EC" }, "EG": { "phoneCode": "+20", "countryName": "Egypt", "countryId": "EG" }, "SV": { "phoneCode": "+503", "countryName": "El Salvador", "countryId": "SV" }, "GQ": { "phoneCode": "+240", "countryName": "Equatorial Guinea", "countryId": "GQ" }, "ER": { "phoneCode": "+291", "countryName": "Eritrea", "countryId": "ER" }, "EE": { "phoneCode": "+372", "countryName": "Estonia", "countryId": "EE" }, "ET": { "phoneCode": "+251", "countryName": "Ethiopia", "countryId": "ET" }, "FK": { "phoneCode": "+500", "countryName": "Falkland Islands", "countryId": "FK" }, "FO": { "phoneCode": "+298", "countryName": "Faroe Islands", "countryId": "FO" }, "FJ": { "phoneCode": "+679", "countryName": "Fiji", "countryId": "FJ" }, "FI": { "phoneCode": "+358", "countryName": "Finland", "countryId": "FI" }, "FR": { "phoneCode": "+33", "countryName": "France", "countryId": "FR" }, "GF": { "phoneCode": "+594", "countryName": "French Guiana", "countryId": "GF" }, "PF": { "phoneCode": "+689", "countryName": "French Polynesia", "countryId": "PF" }, "TF": { "phoneCode": "+262", "countryName": "French Southern Territories and Antarctic Lands", "countryId": "TF" }, "GA": { "phoneCode": "+241", "countryName": "Gabon", "countryId": "GA" }, "GM": { "phoneCode": "+220", "countryName": "Gambia", "countryId": "GM" }, "GE": { "phoneCode": "+995", "countryName": "Georgia", "countryId": "GE" }, "DE": { "phoneCode": "+49", "countryName": "Germany", "countryId": "DE" }, "GH": { "phoneCode": "+233", "countryName": "Ghana", "countryId": "GH" }, "GI": { "phoneCode": "+350", "countryName": "Gibraltar", "countryId": "GI" }, "GR": { "phoneCode": "+30", "countryName": "Greece", "countryId": "GR" }, "GL": { "phoneCode": "+299", "countryName": "Greenland", "countryId": "GL" }, "GD": { "phoneCode": "+1-473", "countryName": "Grenada", "countryId": "GD" }, "GP": { "phoneCode": "+590", "countryName": "Guadeloupe", "countryId": "GP" }, "GU": { "phoneCode": "+1-671", "countryName": "Guam", "countryId": "GU" }, "GT": { "phoneCode": "+502", "countryName": "Guatemala", "countryId": "GT" }, "GG": { "phoneCode": "+44-1481", "countryName": "Guernsey", "countryId": "GG" }, "GN": { "phoneCode": "+224", "countryName": "Guinea", "countryId": "GN" }, "GW": { "phoneCode": "+245", "countryName": "Guinea-Bissau", "countryId": "GW" }, "GY": { "phoneCode": "+592", "countryName": "Guyana", "countryId": "GY" }, "HT": { "phoneCode": "+509", "countryName": "Haiti", "countryId": "HT" }, "HM": { "phoneCode": "+61", "countryName": "Heard Island and McDonald Islands", "countryId": "HM" }, "VA": { "phoneCode": "+379", "countryName": "Holy See (Vatican City State)", "countryId": "VA" }, "HN": { "phoneCode": "+504", "countryName": "Honduras", "countryId": "HN" }, "HK": { "phoneCode": "+852", "countryName": "Hong Kong", "countryId": "HK" }, "HU": { "phoneCode": "+36", "countryName": "Hungary", "countryId": "HU" }, "IS": { "phoneCode": "+354", "countryName": "Iceland", "countryId": "IS" }, "IN": { "phoneCode": "+91", "countryName": "India", "countryId": "IN" }, "ID": { "phoneCode": "+62", "countryName": "Indonesia", "countryId": "ID" }, "IQ": { "phoneCode": "", "countryName": "Iraq", "countryId": "IQ" }, "IE": { "phoneCode": "+353", "countryName": "Ireland", "countryId": "IE" }, "IM": { "phoneCode": "+44-1624", "countryName": "Isle of Man", "countryId": "IM" }, "IL": { "phoneCode": "+972", "countryName": "Israel", "countryId": "IL" }, "IT": { "phoneCode": "+39", "countryName": "Italy", "countryId": "IT" }, "JM": { "phoneCode": "+1-876", "countryName": "Jamaica", "countryId": "JM" }, "JP": { "phoneCode": "+81", "countryName": "Japan", "countryId": "JP" }, "JE": { "phoneCode": "+44-1534", "countryName": "Jersey", "countryId": "JE" }, "JO": { "phoneCode": "+962", "countryName": "Jordan", "countryId": "JO" }, "KZ": { "phoneCode": "+7", "countryName": "Kazakhstan", "countryId": "KZ" }, "KE": { "phoneCode": "+254", "countryName": "Kenya", "countryId": "KE" }, "KI": { "phoneCode": "+686", "countryName": "Kiribati", "countryId": "KI" }, "KW": { "phoneCode": "+965", "countryName": "Kuwait", "countryId": "KW" }, "KG": { "phoneCode": "+996", "countryName": "Kyrgyzstan", "countryId": "KG" }, "LA": { "phoneCode": "+856", "countryName": "Lao People's Democratic Republic", "countryId": "LA" }, "LV": { "phoneCode": "+371", "countryName": "Latvia", "countryId": "LV" }, "LB": { "phoneCode": "+961", "countryName": "Lebanon", "countryId": "LB" }, "LS": { "phoneCode": "+266", "countryName": "Lesotho", "countryId": "LS" }, "LR": { "phoneCode": "+231", "countryName": "Liberia", "countryId": "LR" }, "LY": { "phoneCode": "+218", "countryName": "Libya", "countryId": "LY" }, "LI": { "phoneCode": "+423", "countryName": "Liechtenstein", "countryId": "LI" }, "LT": { "phoneCode": "+370", "countryName": "Lithuania", "countryId": "LT" }, "LU": { "phoneCode": "+352", "countryName": "Luxembourg", "countryId": "LU" }, "MO": { "phoneCode": "+853", "countryName": "Macao", "countryId": "MO" }, "MK": { "phoneCode": "+389", "countryName": "Macedonia", "countryId": "MK" }, "MG": { "phoneCode": "+261", "countryName": "Madagascar", "countryId": "MG" }, "MW": { "phoneCode": "+265", "countryName": "Malawi", "countryId": "MW" }, "MY": { "phoneCode": "+60", "countryName": "Malaysia", "countryId": "MY" }, "MV": { "phoneCode": "+960", "countryName": "Maldives", "countryId": "MV" }, "ML": { "phoneCode": "+223", "countryName": "Mali", "countryId": "ML" }, "MT": { "phoneCode": "+356", "countryName": "Malta", "countryId": "MT" }, "MQ": { "phoneCode": "+596", "countryName": "Martinique", "countryId": "MQ" }, "MR": { "phoneCode": "+222", "countryName": "Mauritania", "countryId": "MR" }, "MU": { "phoneCode": "+230", "countryName": "Mauritius", "countryId": "MU" }, "YT": { "phoneCode": "+269", "countryName": "Mayotte", "countryId": "YT" }, "MX": { "phoneCode": "+52", "countryName": "Mexico", "countryId": "MX" }, "FM": { "phoneCode": "+691", "countryName": "Micronesia", "countryId": "FM" }, "MD": { "phoneCode": "+373", "countryName": "Moldova", "countryId": "MD" }, "MC": { "phoneCode": "+377", "countryName": "Monaco", "countryId": "MC" }, "MN": { "phoneCode": "+976", "countryName": "Mongolia", "countryId": "MN" }, "ME": { "phoneCode": "+382", "countryName": "Montenegro", "countryId": "ME" }, "MS": { "phoneCode": "+1-664", "countryName": "Montserrat", "countryId": "MS" }, "MA": { "phoneCode": "+212", "countryName": "Morocco", "countryId": "MA" }, "MZ": { "phoneCode": "+258", "countryName": "Mozambique", "countryId": "MZ" }, "MM": { "phoneCode": "+95", "countryName": "Myanmar", "countryId": "MM" }, "NA": { "phoneCode": "+264", "countryName": "Namibia", "countryId": "NA" }, "NR": { "phoneCode": "+674", "countryName": "Nauru", "countryId": "NR" }, "NP": { "phoneCode": "+977", "countryName": "Nepal", "countryId": "NP" }, "NL": { "phoneCode": "+31", "countryName": "Netherlands", "countryId": "NL" }, "AN": { "phoneCode": "+599", "countryName": "Netherlands Antilles", "countryId": "AN" }, "NC": { "phoneCode": "+687", "countryName": "New Caledonia", "countryId": "NC" }, "NZ": { "phoneCode": "+64", "countryName": "New Zealand", "countryId": "NZ" }, "NI": { "phoneCode": "+505", "countryName": "Nicaragua", "countryId": "NI" }, "NE": { "phoneCode": "+227", "countryName": "Niger", "countryId": "NE" }, "NG": { "phoneCode": "+234", "countryName": "Nigeria", "countryId": "NG" }, "NU": { "phoneCode": "+683", "countryName": "Niue", "countryId": "NU" }, "NF": { "phoneCode": "+672", "countryName": "Norfolk Island", "countryId": "NF" }, "MP": { "phoneCode": "+1-670", "countryName": "Northern Mariana Islands", "countryId": "MP" }, "NO": { "phoneCode": "+47", "countryName": "Norway", "countryId": "NO" }, "OM": { "phoneCode": "+968", "countryName": "Oman", "countryId": "OM" }, "PK": { "phoneCode": "+92", "countryName": "Pakistan", "countryId": "PK" }, "PW": { "phoneCode": "+680", "countryName": "Palau", "countryId": "PW" }, "PS": { "phoneCode": "+970", "countryName": "Palestine, State of", "countryId": "PS" }, "PA": { "phoneCode": "+507", "countryName": "Panama", "countryId": "PA" }, "PG": { "phoneCode": "+675", "countryName": "Papua New Guinea", "countryId": "PG" }, "PY": { "phoneCode": "+595", "countryName": "Paraguay", "countryId": "PY" }, "PE": { "phoneCode": "+51", "countryName": "Peru", "countryId": "PE" }, "PH": { "phoneCode": "+63", "countryName": "Philippines", "countryId": "PH" }, "PN": { "phoneCode": "+64", "countryName": "Pitcairn", "countryId": "PN" }, "PL": { "phoneCode": "+48", "countryName": "Poland", "countryId": "PL" }, "PT": { "phoneCode": "+351", "countryName": "Portugal", "countryId": "PT" }, "PR": { "phoneCode": "+1", "countryName": "Puerto Rico", "countryId": "PR" }, "QA": { "phoneCode": "+974", "countryName": "Qatar", "countryId": "QA" }, "RE": { "phoneCode": "+262", "countryName": "Reunion", "countryId": "RE" }, "RO": { "phoneCode": "+40", "countryName": "Romania", "countryId": "RO" }, "RU": { "phoneCode": "+7", "countryName": "Russian Federation", "countryId": "RU" }, "RW": { "phoneCode": "+250", "countryName": "Rwanda", "countryId": "RW" }, "BQS": { "phoneCode": "", "countryName": "Saba", "countryId": "BQS" }, "SH": { "phoneCode": "+290", "countryName": "Saint Helena", "countryId": "SH" }, "KN": { "phoneCode": "+1-869", "countryName": "Saint Kitts and Nevis", "countryId": "KN" }, "LC": { "phoneCode": "+1-758", "countryName": "Saint Lucia", "countryId": "LC" }, "MF": { "phoneCode": "+590", "countryName": "Saint Martin", "countryId": "MF" }, "PM": { "phoneCode": "+508", "countryName": "Saint Pierre and Miquelon", "countryId": "PM" }, "WS": { "phoneCode": "+685", "countryName": "Samoa", "countryId": "WS" }, "SM": { "phoneCode": "+378", "countryName": "San Marino", "countryId": "SM" }, "ST": { "phoneCode": "+239", "countryName": "Sao Tome and Principe", "countryId": "ST" }, "SA": { "phoneCode": "+966", "countryName": "Saudi Arabia", "countryId": "SA" }, "SN": { "phoneCode": "+221", "countryName": "Senegal", "countryId": "SN" }, "RS": { "phoneCode": "+381", "countryName": "Serbia", "countryId": "RS" }, "YU": { "phoneCode": "+381", "countryName": "Serbia and Montenegro", "countryId": "YU" }, "SC": { "phoneCode": "+248", "countryName": "Seychelles", "countryId": "SC" }, "SL": { "phoneCode": "+232", "countryName": "Sierra Leone", "countryId": "SL" }, "SG": { "phoneCode": "+65", "countryName": "Singapore", "countryId": "SG" }, "SX": { "phoneCode": "+1721", "countryName": "Sint Maarten", "countryId": "SX" }, "SK": { "phoneCode": "+421", "countryName": "Slovakia", "countryId": "SK" }, "SI": { "phoneCode": "+386", "countryName": "Slovenia", "countryId": "SI" }, "SB": { "phoneCode": "+677", "countryName": "Solomon Islands", "countryId": "SB" }, "SO": { "phoneCode": "+252", "countryName": "Somalia", "countryId": "SO" }, "ZA": { "phoneCode": "+27", "countryName": "South Africa", "countryId": "ZA" }, "KR": { "phoneCode": "+82", "countryName": "South Korea", "countryId": "KR" }, "ES": { "phoneCode": "+34", "countryName": "Spain", "countryId": "ES" }, "LK": { "phoneCode": "+94", "countryName": "Sri Lanka", "countryId": "LK" }, "VC": { "phoneCode": "+1-784", "countryName": "St Vincent and Grenadines", "countryId": "VC" }, "SR": { "phoneCode": "+597", "countryName": "Suriname", "countryId": "SR" }, "SZ": { "phoneCode": "+268", "countryName": "Swaziland", "countryId": "SZ" }, "SE": { "phoneCode": "+46", "countryName": "Sweden", "countryId": "SE" }, "CH": { "phoneCode": "+41", "countryName": "Switzerland", "countryId": "CH" }, "TW": { "phoneCode": "+886", "countryName": "Taiwan", "countryId": "TW" }, "TJ": { "phoneCode": "+992", "countryName": "Tajikistan", "countryId": "TJ" }, "TZ": { "phoneCode": "+255", "countryName": "Tanzania, United Republic of", "countryId": "TZ" }, "TH": { "phoneCode": "+66", "countryName": "Thailand", "countryId": "TH" }, "TL": { "phoneCode": "+670", "countryName": "Timor-Leste", "countryId": "TL" }, "TG": { "phoneCode": "+228", "countryName": "Togo", "countryId": "TG" }, "TK": { "phoneCode": "+690", "countryName": "Tokelau", "countryId": "TK" }, "TO": { "phoneCode": "+676", "countryName": "Tonga", "countryId": "TO" }, "TT": { "phoneCode": "+1-868", "countryName": "Trinidad and Tobago", "countryId": "TT" }, "TN": { "phoneCode": "+216", "countryName": "Tunisia", "countryId": "TN" }, "TR": { "phoneCode": "+90", "countryName": "Turkey", "countryId": "TR" }, "TM": { "phoneCode": "+993", "countryName": "Turkmenistan", "countryId": "TM" }, "TC": { "phoneCode": "+1-649", "countryName": "Turks and Caicos Islands", "countryId": "TC" }, "TV": { "phoneCode": "+688", "countryName": "Tuvalu", "countryId": "TV" }, "UG": { "phoneCode": "+256", "countryName": "Uganda", "countryId": "UG" }, "UA": { "phoneCode": "+380", "countryName": "Ukraine", "countryId": "UA" }, "AE": { "phoneCode": "+971", "countryName": "United Arab Emirates", "countryId": "AE" }, "GB": { "phoneCode": "+44", "countryName": "United Kingdom", "countryId": "GB" }, "UM": { "phoneCode": "+1", "countryName": "United States Minor Outlying Islands", "countryId": "UM" }, "US": { "phoneCode": "+1", "countryName": "United States of America", "countryId": "US" }, "UY": { "phoneCode": "+598", "countryName": "Uruguay", "countryId": "UY" }, "UZ": { "phoneCode": "+998", "countryName": "Uzbekistan", "countryId": "UZ" }, "VU": { "phoneCode": "+678", "countryName": "Vanuatu", "countryId": "VU" }, "VE": { "phoneCode": "+58", "countryName": "Venezuela", "countryId": "VE" }, "VN": { "phoneCode": "+84", "countryName": "Viet Nam", "countryId": "VN" }, "VG": { "phoneCode": "+1-284", "countryName": "Virgin Islands (British)", "countryId": "VG" }, "VI": { "phoneCode": "+1-340", "countryName": "Virgin Islands (U.S.)", "countryId": "VI" }, "WF": { "phoneCode": "+681", "countryName": "Wallis and Futuna", "countryId": "WF" }, "YE": { "phoneCode": "+967", "countryName": "Yemen", "countryId": "YE" }, "ZM": { "phoneCode": "+260", "countryName": "Zambia", "countryId": "ZM" }, "ZW": { "phoneCode": "+263", "countryName": "Zimbabwe", "countryId": "ZW" } }, "dateStamp": "2020-04-21T17:10:10+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 1, "errorMessageText": null, "vmid": "331001" } }, "util-guid-example": { "summary": "/util/guid", "value": { "errorReference": null, "data": "331003-1969648698962354-6150751091453490107", "dateStamp": "2020-04-21T17:14:06+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 1, "errorMessageText": null, "vmid": "331003" } }, "util-siteBinaryData-example": { "summary": "/util/siteBinaryData", "value": { "errorReference": null, "data": { "favicon": null, "logo": null, "logoUrl": null, "headerHtml": null, "footerHtml": null, "css": null }, "dateStamp": "2020-04-21T17:20:24+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 1, "errorMessageText": null, "vmid": "331001" } }, "taxonomy-destinations-example": { "summary": "/taxonomy/destinations", "value": { "errorReference": null, "data": [ { "sortOrder": 1, "selectable": false, "destinationUrlName": "USA", "defaultCurrencyCode": "USD", "lookupId": "8.77", "parentId": 8, "timeZone": "America/New_York", "iataCode": null, "destinationId": 77, "destinationType": "COUNTRY", "destinationName": "USA", "latitude": 37.09024, "longitude": -95.712891 }, { "sortOrder": 1, "selectable": true, "destinationUrlName": "Alabama", "defaultCurrencyCode": "USD", "lookupId": "8.77.22212", "parentId": 77, "timeZone": "", "iataCode": null, "destinationId": 22212, "destinationType": "REGION", "destinationName": "Alabama", "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, "destinationId": 270, "destinationType": "REGION", "destinationName": "Alaska", "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, "destinationId": 271, "destinationType": "REGION", "destinationName": "Arizona", "latitude": 34.0489281, "longitude": -111.0937311 }, { "sortOrder": 4, "selectable": true, "destinationUrlName": "Arkansas", "defaultCurrencyCode": "USD", "lookupId": "8.77.22213", "parentId": 77, "timeZone": "", "iataCode": null, "destinationId": 22213, "destinationType": "REGION", "destinationName": "Arkansas", "latitude": 35.2011, "longitude": -91.8318 }, { "sortOrder": 5, "selectable": true, "destinationUrlName": "California", "defaultCurrencyCode": "USD", "lookupId": "8.77.272", "parentId": 77, "timeZone": "America/Los_Angeles", "iataCode": null, "destinationId": 272, "destinationType": "REGION", "destinationName": "California", "latitude": 36.778261, "longitude": -119.4179324 } ], "dateStamp": "2020-04-20T23:56:25+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 1, "errorMessageText": null, "vmid": "331001" } }, "taxonomy-categories-example": { "summary": "/taxonomy/categories", "value": { "errorReference": null, "data": [ { "sortOrder": 1, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/71/7c/7d.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 1, "subcategoryName": "Air Tours", "subcategoryUrlName": "Air-Tours", "categoryId": 1 }, { "sortOrder": 2, "subcategoryId": 2, "subcategoryName": "Helicopter Tours", "subcategoryUrlName": "Helicopter-Tours", "categoryId": 1 }, { "sortOrder": 3, "subcategoryId": 3, "subcategoryName": "Balloon Rides", "subcategoryUrlName": "Balloon-Rides", "categoryId": 1 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/71/7c/7d.jpg", "productCount": 77, "groupName": "Air, Helicopter & Balloon Tours", "groupUrlName": "Air-Helicopter-and-Balloon-Tours", "id": 1 }, { "sortOrder": 2, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/0a/03/9e/ca.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 26052, "subcategoryName": "Yoga Classes", "subcategoryUrlName": "Yoga-Classes", "categoryId": 26051 }, { "sortOrder": 2, "subcategoryId": 40290, "subcategoryName": "Language Classes", "subcategoryUrlName": "Language-Classes", "categoryId": 26051 }, { "sortOrder": 3, "subcategoryId": 33259, "subcategoryName": "Glassblowing Classes", "subcategoryUrlName": "Glassblowing-Classes", "categoryId": 26051 }, { "sortOrder": 4, "subcategoryId": 40286, "subcategoryName": "Art Classes", "subcategoryUrlName": "Art-Classes", "categoryId": 26051 }, { "sortOrder": 5, "subcategoryId": 40293, "subcategoryName": "Sports Lessons", "subcategoryUrlName": "Sports-Lessons", "categoryId": 26051 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/0a/03/9e/ca.jpg", "productCount": 12, "groupName": "Classes & Workshops", "groupUrlName": "Classes-and-Workshops", "id": 26051 }, { "sortOrder": 3, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/e5/a3/54.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 7, "subcategoryName": "Day Cruises", "subcategoryUrlName": "Day-Cruises", "categoryId": 3 }, { "sortOrder": 2, "subcategoryId": 40295, "subcategoryName": "Water Tours", "subcategoryUrlName": "Water-Tours", "categoryId": 3 }, { "sortOrder": 3, "subcategoryId": 9, "subcategoryName": "Night Cruises", "subcategoryUrlName": "Night-Cruises", "categoryId": 3 }, { "sortOrder": 4, "subcategoryId": 5640, "subcategoryName": "Dinner Cruises", "subcategoryUrlName": "Dinner-Cruises", "categoryId": 3 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/e5/a3/54.jpg", "productCount": 22, "groupName": "Cruises, Sailing & Water Tours", "groupUrlName": "Cruises-Sailing-and-Water-Tours", "id": 3 }, { "sortOrder": 4, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/73/48/34.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 40338, "subcategoryName": "LGBT Friendly Tours", "subcategoryUrlName": "LGBT-Friendly-Tours", "categoryId": 4 }, { "sortOrder": 2, "subcategoryId": 11, "subcategoryName": "Cultural Tours", "subcategoryUrlName": "Cultural-Tours", "categoryId": 4 }, { "sortOrder": 3, "subcategoryId": 14, "subcategoryName": "Literary, Art & Music Tours", "subcategoryUrlName": "Literary-Art-and-Music-Tours", "categoryId": 4 }, { "sortOrder": 4, "subcategoryId": 26967, "subcategoryName": "Architecture Tours", "subcategoryUrlName": "Architecture-Tours", "categoryId": 4 }, { "sortOrder": 5, "subcategoryId": 12, "subcategoryName": "Historical & Heritage Tours", "subcategoryUrlName": "Historical-and-Heritage-Tours", "categoryId": 4 }, { "sortOrder": 6, "subcategoryId": 5332, "subcategoryName": "Archaeology Tours", "subcategoryUrlName": "Archaeology-Tours", "categoryId": 4 }, { "sortOrder": 7, "subcategoryId": 13, "subcategoryName": "Movie & TV Tours", "subcategoryUrlName": "Movie-and-TV-Tours", "categoryId": 4 }, { "sortOrder": 8, "subcategoryId": 118, "subcategoryName": "Ghost & Vampire Tours", "subcategoryUrlName": "Ghost-and-Vampire-Tours", "categoryId": 4 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/73/48/34.jpg", "productCount": 108, "groupName": "Cultural & Theme Tours", "groupUrlName": "Cultural-and-Theme-Tours", "id": 4 }, { "sortOrder": 5, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/6b/77/2f.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 15, "subcategoryName": "Day Trips", "subcategoryUrlName": "Day-Trips", "categoryId": 5 }, { "sortOrder": 2, "subcategoryId": 17, "subcategoryName": "Rail Tours", "subcategoryUrlName": "Rail-Tours", "categoryId": 5 }, { "sortOrder": 3, "subcategoryId": 74, "subcategoryName": "Private Day Trips", "subcategoryUrlName": "Private-Day-Trips", "categoryId": 5 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/6b/77/2f.jpg", "productCount": 221, "groupName": "Day Trips & Excursions", "groupUrlName": "Day-Trips-and-Excursions", "id": 5 }, { "sortOrder": 6, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/82/99/03.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 5325, "subcategoryName": "Coffee & Tea Tours", "subcategoryUrlName": "Coffee-and-Tea-Tours", "categoryId": 6 }, { "sortOrder": 2, "subcategoryId": 32024, "subcategoryName": "Market Tours", "subcategoryUrlName": "Market-Tours", "categoryId": 6 }, { "sortOrder": 3, "subcategoryId": 18, "subcategoryName": "Bar, Club & Pub Tours", "subcategoryUrlName": "Bar-Club-and-Pub-Tours", "categoryId": 6 }, { "sortOrder": 4, "subcategoryId": 32027, "subcategoryName": "Street Food Tours", "subcategoryUrlName": "Street-Food-Tours", "categoryId": 6 }, { "sortOrder": 5, "subcategoryId": 21, "subcategoryName": "Wine Tasting & Winery Tours", "subcategoryUrlName": "Wine-Tasting-and-Winery-Tours", "categoryId": 6 }, { "sortOrder": 6, "subcategoryId": 5324, "subcategoryName": "Beer & Brewery Tours", "subcategoryUrlName": "Beer-and-Brewery-Tours", "categoryId": 6 }, { "sortOrder": 7, "subcategoryId": 19, "subcategoryName": "Cooking Classes", "subcategoryUrlName": "Cooking-Classes", "categoryId": 6 }, { "sortOrder": 8, "subcategoryId": 81, "subcategoryName": "Nightlife", "subcategoryUrlName": "Nightlife", "categoryId": 6 }, { "sortOrder": 9, "subcategoryId": 20, "subcategoryName": "Dining Experiences", "subcategoryUrlName": "Dining-Experiences", "categoryId": 6 }, { "sortOrder": 10, "subcategoryId": 80, "subcategoryName": "Food Tours", "subcategoryUrlName": "Food-Tours", "categoryId": 6 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/82/99/03.jpg", "productCount": 81, "groupName": "Food, Wine & Nightlife", "groupUrlName": "Food-Wine-and-Nightlife", "id": 6 }, { "sortOrder": 7, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/71/1c/ee.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 78, "subcategoryName": "Kid Friendly Tours & Activities", "subcategoryUrlName": "Kid-Friendly-Tours-and-Activities", "categoryId": 21 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/71/1c/ee.jpg", "productCount": 3, "groupName": "Kid Friendly", "groupUrlName": "Kid-Friendly", "id": 21 }, { "sortOrder": 8, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/36/b1/dd.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 113, "subcategoryName": "Luxury Tours", "subcategoryUrlName": "Luxury-Tours", "categoryId": 25 }, { "sortOrder": 2, "subcategoryId": 114, "subcategoryName": "Romantic Tours", "subcategoryUrlName": "Romantic-Tours", "categoryId": 25 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/36/b1/dd.jpg", "productCount": 171, "groupName": "Luxury & Special Occasions", "groupUrlName": "Luxury-and-Special-Occasions", "id": 25 }, { "sortOrder": 9, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/73/32/1c.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 84, "subcategoryName": "Overnight Tours", "subcategoryUrlName": "Overnight-Tours", "categoryId": 20 }, { "sortOrder": 2, "subcategoryId": 85, "subcategoryName": "Multi-day Tours", "subcategoryUrlName": "Multi-day-Tours", "categoryId": 20 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/73/32/1c.jpg", "productCount": 53, "groupName": "Multi-day & Extended Tours", "groupUrlName": "Multi-day-and-Extended-Tours", "id": 20 }, { "sortOrder": 10, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/6a/e4/ce.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 5322, "subcategoryName": "Running Tours", "subcategoryUrlName": "Running-Tours", "categoryId": 9 }, { "sortOrder": 2, "subcategoryId": 5323, "subcategoryName": "Ziplines", "subcategoryUrlName": "Ziplines", "categoryId": 9 }, { "sortOrder": 3, "subcategoryId": 32, "subcategoryName": "4WD, ATV & Off-Road Tours", "subcategoryUrlName": "4WD-ATV-and-Off-Road-Tours", "categoryId": 9 }, { "sortOrder": 4, "subcategoryId": 26032, "subcategoryName": "Horseback Riding", "subcategoryUrlName": "Horseback-Riding", "categoryId": 9 }, { "sortOrder": 5, "subcategoryId": 33264, "subcategoryName": "Obstacle Courses", "subcategoryUrlName": "Obstacle-Courses", "categoryId": 9 }, { "sortOrder": 6, "subcategoryId": 36, "subcategoryName": "Nature & Wildlife", "subcategoryUrlName": "Nature-and-Wildlife", "categoryId": 9 }, { "sortOrder": 7, "subcategoryId": 5319, "subcategoryName": "Climbing", "subcategoryUrlName": "Climbing", "categoryId": 9 }, { "sortOrder": 8, "subcategoryId": 33, "subcategoryName": "Fishing Charters & Tours", "subcategoryUrlName": "Fishing-Charters-and-Tours", "categoryId": 9 }, { "sortOrder": 9, "subcategoryId": 119, "subcategoryName": "Eco Tours", "subcategoryUrlName": "Eco-Tours", "categoryId": 9 }, { "sortOrder": 10, "subcategoryId": 35, "subcategoryName": "Hiking & Camping", "subcategoryUrlName": "Hiking-and-Camping", "categoryId": 9 }, { "sortOrder": 11, "subcategoryId": 87, "subcategoryName": "Adrenaline & Extreme", "subcategoryUrlName": "Adrenaline-and-Extreme", "categoryId": 9 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/6a/e4/ce.jpg", "productCount": 387, "groupName": "Outdoor Activities", "groupUrlName": "Outdoor-Activities", "id": 9 }, { "sortOrder": 11, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/fa/8e/cf.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 116, "subcategoryName": "Private Sightseeing Tours", "subcategoryUrlName": "Private-Sightseeing-Tours", "categoryId": 26 }, { "sortOrder": 2, "subcategoryId": 117, "subcategoryName": "Custom Private Tours", "subcategoryUrlName": "Custom-Private-Tours", "categoryId": 26 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/fa/8e/cf.jpg", "productCount": 113, "groupName": "Private & Custom Tours", "groupUrlName": "Private-and-Custom-Tours", "id": 26 }, { "sortOrder": 12, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/0a/3d/2d/cc.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 39, "subcategoryName": "Shopping Passes & Offers", "subcategoryUrlName": "Shopping-Passes-and-Offers", "categoryId": 10 }, { "sortOrder": 2, "subcategoryId": 40, "subcategoryName": "Shopping Tours", "subcategoryUrlName": "Shopping-Tours", "categoryId": 10 }, { "sortOrder": 3, "subcategoryId": 88, "subcategoryName": "Fashion Shows & Tours", "subcategoryUrlName": "Fashion-Shows-and-Tours", "categoryId": 10 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/0a/3d/2d/cc.jpg", "productCount": 11, "groupName": "Shopping & Fashion", "groupUrlName": "Shopping-and-Fashion", "id": 10 }, { "sortOrder": 13, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/71/a6/31.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 89, "subcategoryName": "Ports of Call Tours", "subcategoryUrlName": "Ports-of-Call-Tours", "categoryId": 24 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/71/a6/31.jpg", "productCount": 3, "groupName": "Shore Excursions", "groupUrlName": "Shore-Excursions", "id": 24 }, { "sortOrder": 14, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/6e/cf/d0.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 5111, "subcategoryName": "Cabaret", "subcategoryUrlName": "Cabaret", "categoryId": 11 }, { "sortOrder": 2, "subcategoryId": 41, "subcategoryName": "Concerts & Special Events", "subcategoryUrlName": "Concerts-and-Special-Events", "categoryId": 11 }, { "sortOrder": 3, "subcategoryId": 70, "subcategoryName": "Family-friendly Shows ", "subcategoryUrlName": "Family-friendly-Shows", "categoryId": 11 }, { "sortOrder": 4, "subcategoryId": 124, "subcategoryName": "Cirque du Soleil", "subcategoryUrlName": "Cirque-du-Soleil", "categoryId": 11 }, { "sortOrder": 5, "subcategoryId": 42, "subcategoryName": "Comedy", "subcategoryUrlName": "Comedy", "categoryId": 11 }, { "sortOrder": 6, "subcategoryId": 91, "subcategoryName": "Adults-only Shows", "subcategoryUrlName": "Adults-only-Shows", "categoryId": 11 }, { "sortOrder": 7, "subcategoryId": 44, "subcategoryName": "Theater, Shows & Musicals", "subcategoryUrlName": "Theater-Shows-and-Musicals", "categoryId": 11 }, { "sortOrder": 8, "subcategoryId": 90, "subcategoryName": "Dinner Packages", "subcategoryUrlName": "Dinner-Packages", "categoryId": 11 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/6e/cf/d0.jpg", "productCount": 111, "groupName": "Shows, Concerts & Sports", "groupUrlName": "Shows-Concerts-and-Sports", "id": 11 }, { "sortOrder": 15, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/6f/f1/ee.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 29, "subcategoryName": "Attraction Tickets", "subcategoryUrlName": "Attraction-Tickets", "categoryId": 8 }, { "sortOrder": 2, "subcategoryId": 93, "subcategoryName": "Zoo Tickets & Passes", "subcategoryUrlName": "Zoo-Tickets-and-Passes", "categoryId": 8 }, { "sortOrder": 3, "subcategoryId": 30, "subcategoryName": "Sightseeing Passes", "subcategoryUrlName": "Sightseeing-Passes", "categoryId": 8 }, { "sortOrder": 4, "subcategoryId": 31, "subcategoryName": "Museum Tickets & Passes", "subcategoryUrlName": "Museum-Tickets-and-Passes", "categoryId": 8 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/6f/f1/ee.jpg", "productCount": 47, "groupName": "Sightseeing Tickets & Passes", "groupUrlName": "Sightseeing-Tickets-and-Passes", "id": 8 }, { "sortOrder": 16, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/09/c5/a0/15.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 5336, "subcategoryName": "Day Spas", "subcategoryUrlName": "Day-Spas", "categoryId": 5335 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/09/c5/a0/15.jpg", "productCount": 4, "groupName": "Spa Tours", "groupUrlName": "Spa-Tours", "id": 5335 }, { "sortOrder": 17, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/71/dd/6a.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 50, "subcategoryName": "Theme Park Tickets & Tours", "subcategoryUrlName": "Theme-Park-Tickets-and-Tours", "categoryId": 14 }, { "sortOrder": 2, "subcategoryId": 51, "subcategoryName": "Water Parks", "subcategoryUrlName": "Water-Parks", "categoryId": 14 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/71/dd/6a.jpg", "productCount": 11, "groupName": "Theme Parks", "groupUrlName": "Theme-Parks", "id": 14 }, { "sortOrder": 18, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/73/48/32.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 99, "subcategoryName": "City Packages", "subcategoryUrlName": "City-Packages", "categoryId": 12 }, { "sortOrder": 2, "subcategoryId": 120, "subcategoryName": "Vespa, Scooter & Moped Tours", "subcategoryUrlName": "Vespa-Scooter-and-Moped-Tours", "categoryId": 12 }, { "sortOrder": 3, "subcategoryId": 45, "subcategoryName": "Self-guided Tours & Rentals", "subcategoryUrlName": "Self-guided-Tours-and-Rentals", "categoryId": 12 }, { "sortOrder": 4, "subcategoryId": 33282, "subcategoryName": "Trikke Tours", "subcategoryUrlName": "Trikke-Tours", "categoryId": 12 }, { "sortOrder": 5, "subcategoryId": 26961, "subcategoryName": "Vespa Rentals", "subcategoryUrlName": "Vespa-Rentals", "categoryId": 12 }, { "sortOrder": 6, "subcategoryId": 5331, "subcategoryName": "Motorcycle Tours", "subcategoryUrlName": "Motorcycle-Tours", "categoryId": 12 }, { "sortOrder": 7, "subcategoryId": 5329, "subcategoryName": "Skip-the-Line Tours", "subcategoryUrlName": "Skip-the-Line-Tours", "categoryId": 12 }, { "sortOrder": 8, "subcategoryId": 32042, "subcategoryName": "Classic Car Tours", "subcategoryUrlName": "Classic-Car-Tours", "categoryId": 12 }, { "sortOrder": 9, "subcategoryId": 5330, "subcategoryName": "City Tours", "subcategoryUrlName": "City-Tours", "categoryId": 12 }, { "sortOrder": 10, "subcategoryId": 95, "subcategoryName": "Half-day Tours", "subcategoryUrlName": "Half-day-Tours", "categoryId": 12 }, { "sortOrder": 11, "subcategoryId": 98, "subcategoryName": "Bus & Minivan Tours", "subcategoryUrlName": "Bus-and-Minivan-Tours", "categoryId": 12 }, { "sortOrder": 12, "subcategoryId": 26963, "subcategoryName": "Audio Guided Tours", "subcategoryUrlName": "Audio-Guided-Tours", "categoryId": 12 }, { "sortOrder": 13, "subcategoryId": 46, "subcategoryName": "Segway Tours", "subcategoryUrlName": "Segway-Tours", "categoryId": 12 }, { "sortOrder": 14, "subcategoryId": 97, "subcategoryName": "Hop-on Hop-off Tours", "subcategoryUrlName": "Hop-on-Hop-off-Tours", "categoryId": 12 }, { "sortOrder": 15, "subcategoryId": 40336, "subcategoryName": "Fun and Games", "subcategoryUrlName": "Fun-and-Games", "categoryId": 12 }, { "sortOrder": 16, "subcategoryId": 94, "subcategoryName": "Full-day Tours", "subcategoryUrlName": "Full-day-Tours", "categoryId": 12 }, { "sortOrder": 17, "subcategoryId": 32044, "subcategoryName": "Escape Games", "subcategoryUrlName": "Escape-Games", "categoryId": 12 }, { "sortOrder": 18, "subcategoryId": 96, "subcategoryName": "Night Tours", "subcategoryUrlName": "Night-Tours", "categoryId": 12 }, { "sortOrder": 19, "subcategoryId": 26028, "subcategoryName": "Photography Tours", "subcategoryUrlName": "Photography-Tours", "categoryId": 12 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/73/48/32.jpg", "productCount": 563, "groupName": "Tours & Sightseeing", "groupUrlName": "Tours-and-Sightseeing", "id": 12 }, { "sortOrder": 19, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/2a/fc/74.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 52, "subcategoryName": "Airport & Ground Transfers", "subcategoryUrlName": "Airport-and-Ground-Transfers", "categoryId": 15 }, { "sortOrder": 2, "subcategoryId": 32762, "subcategoryName": "Private Drivers", "subcategoryUrlName": "Private-Drivers", "categoryId": 15 }, { "sortOrder": 3, "subcategoryId": 100, "subcategoryName": "Bus Services", "subcategoryUrlName": "Bus-Services", "categoryId": 15 }, { "sortOrder": 4, "subcategoryId": 5526, "subcategoryName": "Private Transfers", "subcategoryUrlName": "Private-Transfers", "categoryId": 15 }, { "sortOrder": 5, "subcategoryId": 40308, "subcategoryName": "Transportation Services", "subcategoryUrlName": "Transportation-Services", "categoryId": 15 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/2a/fc/74.jpg", "productCount": 74, "groupName": "Transfers & Ground Transport", "groupUrlName": "Transfers-and-Ground-Transport", "id": 15 }, { "sortOrder": 20, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/71/13/ef.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 50128, "subcategoryName": "Unique Experiences", "subcategoryUrlName": "Unique-Experiences", "categoryId": 50127 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/71/13/ef.jpg", "productCount": 40, "groupName": "Unique Experiences", "groupUrlName": "Unique-Experiences", "id": 50127 }, { "sortOrder": 21, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/e9/32/7c.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 5327, "subcategoryName": "Viator Exclusive Tours", "subcategoryUrlName": "Viator-Exclusive-Tours", "categoryId": 5326 }, { "sortOrder": 2, "subcategoryId": 5328, "subcategoryName": "Viator VIP Tours", "subcategoryUrlName": "Viator-VIP-Tours", "categoryId": 5326 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/e9/32/7c.jpg", "productCount": 9, "groupName": "Viator VIP & Exclusive Tours", "groupUrlName": "Viator-VIP-and-Exclusive-Tours", "id": 5326 }, { "sortOrder": 22, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/ab/f7/38.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 55, "subcategoryName": "Bike & Mountain Bike Tours", "subcategoryUrlName": "Bike-and-Mountain-Bike-Tours", "categoryId": 16 }, { "sortOrder": 2, "subcategoryId": 56, "subcategoryName": "Walking Tours", "subcategoryUrlName": "Walking-Tours", "categoryId": 16 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/ab/f7/38.jpg", "productCount": 63, "groupName": "Walking & Biking Tours", "groupUrlName": "Walking-and-Biking-Tours", "id": 16 }, { "sortOrder": 23, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/70/2b/6e.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 27534, "subcategoryName": "White Water Rafting", "subcategoryUrlName": "White-Water-Rafting", "categoryId": 17 }, { "sortOrder": 2, "subcategoryId": 27536, "subcategoryName": "Tubing", "subcategoryUrlName": "Tubing", "categoryId": 17 }, { "sortOrder": 3, "subcategoryId": 57, "subcategoryName": "Kayaking & Canoeing", "subcategoryUrlName": "Kayaking-and-Canoeing", "categoryId": 17 }, { "sortOrder": 4, "subcategoryId": 33290, "subcategoryName": "Float Trips", "subcategoryUrlName": "Float-Trips", "categoryId": 17 }, { "sortOrder": 5, "subcategoryId": 40334, "subcategoryName": "Water Equipment", "subcategoryUrlName": "Water-Equipment", "categoryId": 17 }, { "sortOrder": 6, "subcategoryId": 103, "subcategoryName": "Boat Rental", "subcategoryUrlName": "Boat-Rental", "categoryId": 17 }, { "sortOrder": 7, "subcategoryId": 26033, "subcategoryName": "Stand Up Paddleboarding", "subcategoryUrlName": "Stand-Up-Paddleboarding", "categoryId": 17 }, { "sortOrder": 8, "subcategoryId": 59, "subcategoryName": "Surfing & Windsurfing", "subcategoryUrlName": "Surfing-and-Windsurfing", "categoryId": 17 }, { "sortOrder": 9, "subcategoryId": 107, "subcategoryName": "Jet Boats & Speed Boats", "subcategoryUrlName": "Jet-Boats-and-Speed-Boats", "categoryId": 17 }, { "sortOrder": 10, "subcategoryId": 60, "subcategoryName": "Other Water Sports", "subcategoryUrlName": "Other-Water-Sports", "categoryId": 17 }, { "sortOrder": 11, "subcategoryId": 104, "subcategoryName": "Waterskiing & Jetskiing", "subcategoryUrlName": "Waterskiing-and-Jetskiing", "categoryId": 17 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/70/2b/6e.jpg", "productCount": 38, "groupName": "Water Sports", "groupUrlName": "Water-Sports", "id": 17 }, { "sortOrder": 24, "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/70/4a/0e.jpg", "subcategories": [ { "sortOrder": 1, "subcategoryId": 61, "subcategoryName": "Wedding Packages", "subcategoryUrlName": "Wedding-Packages", "categoryId": 18 }, { "sortOrder": 2, "subcategoryId": 62, "subcategoryName": "Honeymoon Packages", "subcategoryUrlName": "Honeymoon-Packages", "categoryId": 18 } ], "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/70/4a/0e.jpg", "productCount": 33, "groupName": "Weddings & Honeymoons", "groupUrlName": "Weddings-and-Honeymoons", "id": 18 } ], "dateStamp": "2020-04-20T23:59:14+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 1, "errorMessageText": null, "vmid": "331004" } }, "taxonomy-attractions-example": { "summary": "/taxonomy/attractions", "value": { "errorReference": null, "data": [ { "sortOrder": 1, "webURL": "http://shop.live.rc.viator.com/Las-Vegas-attractions/Carroll-Shelby-Museum/d684-a23402?eap=brand-subbrand-17895&aid=vba17895en", "pageUrlName": "Carroll-Shelby-Museum", "primaryDestinationUrlName": "Las-Vegas", "publishedDate": "2020-03-02", "destinationId": 684, "seoId": 23402, "productCount": 2, "thumbnailHiResURL": "http://cache-graphicslib.viator.com/graphicslib/page-images/742x525/321988_Viator_TripAdvisor_UGC_171245.jpg", "primaryDestinationName": "Las Vegas", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/page-images/321988_Viator_TripAdvisor_UGC_171245.jpg", "photoCount": 0, "primaryDestinationId": 684, "rating": 5, "attractionLatitude": 36.072175, "attractionLongitude": -115.179668, "attractionStreetAddress": "6405 Ensworth St.", "attractionCity": "Las Vegas", "attractionState": "Nevada", "title": "Carroll Shelby Museum" }, { "sortOrder": 2, "webURL": "http://shop.live.rc.viator.com/Las-Vegas-attractions/Shark-Reef-Aquarium-at-Mandalay-Bay/d684-a14235?eap=brand-subbrand-17895&aid=vba17895en", "pageUrlName": "Shark-Reef-Aquarium-at-Mandalay-Bay", "primaryDestinationUrlName": "Las-Vegas", "publishedDate": "2020-02-27", "destinationId": 684, "seoId": 14235, "productCount": 1, "thumbnailHiResURL": "http://cache-graphicslib.viator.com/graphicslib/page-images/742x525/563331_Viator_Photographer_394530.jpg", "primaryDestinationName": "Las Vegas", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/page-images/563331_Viator_Photographer_394530.jpg", "photoCount": 14, "primaryDestinationId": 684, "rating": 4.5, "attractionLatitude": 36.09215, "attractionLongitude": -115.17665, "attractionStreetAddress": "3950 Las Vegas Blvd South", "attractionCity": "Las Vegas", "attractionState": "Nevada", "title": "Shark Reef Aquarium at Mandalay Bay" }, { "sortOrder": 3, "webURL": "http://shop.live.rc.viator.com/Las-Vegas-attractions/Welder-Up/d684-a24303?eap=brand-subbrand-17895&aid=vba17895en", "pageUrlName": "Welder-Up", "primaryDestinationUrlName": "Las-Vegas", "publishedDate": "2020-02-26", "destinationId": 684, "seoId": 24303, "productCount": 3, "thumbnailHiResURL": "http://cache-graphicslib.viator.com/graphicslib/page-images/742x525/365146_Viator_TripAdvisor_UGC_180066.jpg", "primaryDestinationName": "Las Vegas", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/page-images/365146_Viator_TripAdvisor_UGC_180066.jpg", "photoCount": 0, "primaryDestinationId": 684, "rating": 4.5, "attractionLatitude": 36.133057, "attractionLongitude": -115.17419, "attractionStreetAddress": "3160 South Highland Drive, Suite D", "attractionCity": "Las Vegas", "attractionState": "Nevada", "title": "Welder Up" } ], "dateStamp": "2020-04-20T23:46:09+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 71, "errorMessageText": null, "vmid": "331001" } }, "search-products-example1": { "summary": "/search/products", "value": { "errorReference": null, "data": [ { "sortOrder": 1, "supplierName": null, "currencyCode": "USD", "catIds": [ 26051, 6 ], "subCatIds": [ 19, 26052, 21, 40293 ], "webURL": "http://shop.live.rc.viator.com/tours/Las-Vegas/Yoga-Uncorked-Artisan-Hotel/d684-73492P17?eap=brand-subbrand-17895&aid=vba17895en", "specialReservationDetails": null, "sslSupported": false, "panoramaCount": 0, "merchantCancellable": false, "bookingEngineId": "FreesaleBE", "onRequestPeriod": null, "primaryGroupId": 6, "pas": null, "available": true, "productUrlName": "Yoga-Uncorked-Artisan-Hotel", "primaryDestinationUrlName": "Las-Vegas", "shortDescription": "Sip your wine and unwind with wine yoga! This gentle yoga class combines sipping your wine and practicing fun yoga basics in a rad environment. A tad unconventional, this class is filled with laughter, fun, and cheers-ing your neighbor.

Private parties are available upon request.

Ticket includes one glass of wine, a souvenir adult sippy (to help prevent the spillage of the wine!), and a gentle quirky yoga class.

", "price": 55, "supplierCode": "73492", "translationLevel": 0, "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/0a/8a/a8/44.jpg", "primaryDestinationName": "Las Vegas", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/0a/8a/a8/44.jpg", "onSale": false, "photoCount": 0, "reviewCount": 0, "primaryDestinationId": 684, "merchantNetPriceFrom": 0, "priceFormatted": "$55.00", "rrp": 0, "rrpformatted": "", "videoCount": 0, "rating": 0, "specialReservation": false, "shortTitle": "Yoga Uncorked-Artisan Hotel", "specialOfferAvailable": false, "uniqueShortDescription": null, "merchantNetPriceFromFormatted": "", "savingAmount": 0, "savingAmountFormated": "", "essential": null, "admission": null, "duration": "1 hour", "title": "Yoga Uncorked-Artisan Hotel", "code": "73492P17" }, { "sortOrder": 2, "supplierName": null, "currencyCode": "USD", "catIds": [ 26051, 50127 ], "subCatIds": [ 50128, 26052, 40293 ], "webURL": "http://shop.live.rc.viator.com/tours/Nevada/Sunset-Yoga-in-Las-Vegas/d22171-73458P1?eap=brand-subbrand-17895&aid=vba17895en", "specialReservationDetails": null, "sslSupported": false, "panoramaCount": 0, "merchantCancellable": false, "bookingEngineId": "DeferredCRMBE", "onRequestPeriod": null, "primaryGroupId": 26051, "pas": null, "available": true, "productUrlName": "Sunset-Yoga-in-Las-Vegas", "primaryDestinationUrlName": "Nevada", "shortDescription": "Enjoy a quiet, beautiful short walk to a secluded and breathtaking scene in Las Vegas. Travelers can choose to visit Calico Basin, Mt. Charleston, Wetlands, Seven Magic Mountains, or Lake Las Vegas for a private or group yoga session. Each session will provide the freedom from day-to-day distractions and allow you to immerse yourself in a unique and awe-inspiring locale. Each yoga session will be tailored to the individual and/or group in order to ensure the proper tone and intention is set. This is an all-inclusive experience. Guided walking tour, customized yoga session, yoga mats and water will be provided.", "price": 256.42, "supplierCode": "73458", "translationLevel": 0, "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/3b/bc/78.jpg", "primaryDestinationName": "Nevada", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/3b/bc/78.jpg", "onSale": false, "photoCount": 0, "reviewCount": 0, "primaryDestinationId": 22171, "merchantNetPriceFrom": 0, "priceFormatted": "$256.42", "rrp": 0, "rrpformatted": "", "videoCount": 0, "rating": 0, "specialReservation": false, "shortTitle": "Explore the Beauty of Las Vegas with Private and Group Yoga Classes", "specialOfferAvailable": false, "uniqueShortDescription": null, "merchantNetPriceFromFormatted": "", "savingAmount": 0, "savingAmountFormated": "", "essential": null, "admission": null, "duration": "1 to 2 hours", "title": "Explore the Beauty of Las Vegas with Private and Group Yoga Classes", "code": "73458P1" }, { "sortOrder": 3, "supplierName": null, "currencyCode": "USD", "catIds": [ 26051, 6, 50127 ], "subCatIds": [ 50128, 19, 26052, 21, 40293 ], "webURL": "http://shop.live.rc.viator.com/tours/Las-Vegas/Viva-Las-Vinos-Wine-Yoga/d684-73492P4?eap=brand-subbrand-17895&aid=vba17895en", "specialReservationDetails": null, "sslSupported": false, "panoramaCount": 0, "merchantCancellable": false, "bookingEngineId": "FreesaleBE", "onRequestPeriod": null, "primaryGroupId": 26051, "pas": null, "available": true, "productUrlName": "Viva-Las-Vinos-Wine-Yoga", "primaryDestinationUrlName": "Las-Vegas", "shortDescription": "Sip your wine and unwind with wine yoga! This gentle yoga class combines sipping your wine and practicing fun yoga basics in a rad environment. A tad unconventional, this class is filled with laughter, fun, and cheers-ing your neighbor.

Private parties are available upon request.

Ticket includes one glass of wine, a souvenir adult sippy (to help prevent the spillage of the wine!), and a gentle quirky yoga class.

", "price": 55, "supplierCode": "73492", "translationLevel": 0, "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/09/27/7e/88.jpg", "primaryDestinationName": "Las Vegas", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/09/27/7e/88.jpg", "onSale": false, "photoCount": 0, "reviewCount": 0, "primaryDestinationId": 684, "merchantNetPriceFrom": 0, "priceFormatted": "$55.00", "rrp": 0, "rrpformatted": "", "videoCount": 0, "rating": 0, "specialReservation": false, "shortTitle": "Yoga Uncorked at The Gramercy", "specialOfferAvailable": false, "uniqueShortDescription": null, "merchantNetPriceFromFormatted": "", "savingAmount": 0, "savingAmountFormated": "", "essential": null, "admission": null, "duration": "1 hour", "title": "Yoga Uncorked at The Gramercy", "code": "73492P4" } ], "dateStamp": "2020-04-20T19:24:12+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 3, "errorMessageText": null, "vmid": "331001" } }, "search-products-example2": { "summary": "/search/products", "value": { "errorReference": null, "data": [ { "sortOrder": 2, "supplierName": "Miami Double Decker", "currencyCode": "USD", "catIds": null, "subCatIds": null, "webURL": "http://shop.live.rc.viator.com/tours/Miami/Everglades-Airboat-Safari/d662-5408P24?eap=brand-subbrand-17895&aid=vba17895en", "specialReservationDetails": null, "sslSupported": false, "panoramaCount": 0, "merchantCancellable": false, "bookingEngineId": "FreesaleBE", "onRequestPeriod": null, "primaryGroupId": null, "pas": null, "available": true, "productUrlName": "Everglades-Airboat-Safari", "primaryDestinationUrlName": "Miami", "shortDescription": "Explore the Everglades National Park and Florida's natural eco-system on an airboat! See and experience the wild alligators in their natural habitat. Have the chance to see alligators up close in their natural habitat, as well as the many exhibits scattered throughout the park.\u00a0 Transportation is available from your hotel when option is selected.", "price": 29, "supplierCode": "5408", "translationLevel": 0, "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/6e/f3/ca.jpg", "primaryDestinationName": "Miami", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/6e/f3/ca.jpg", "onSale": false, "photoCount": 9, "reviewCount": 17, "primaryDestinationId": 662, "merchantNetPriceFrom": 0, "priceFormatted": "$29.00", "rrp": 0, "rrpformatted": "", "videoCount": 0, "rating": 4, "specialReservation": false, "shortTitle": "Everglades Airboat Safari", "specialOfferAvailable": false, "uniqueShortDescription": null, "merchantNetPriceFromFormatted": "", "savingAmount": 0, "savingAmountFormated": "", "essential": "2", "admission": "3", "duration": "5 hours", "title": "Everglades Airboat Safari", "code": "5408P24" }, { "sortOrder": 4, "supplierName": "US2U", "currencyCode": "USD", "catIds": null, "subCatIds": null, "webURL": "http://shop.live.rc.viator.com/tours/Miami/Everglades-Airboat-Tour-with-Transport-from-Miami/d662-6331EVERAIRTRANS?eap=brand-subbrand-17895&aid=vba17895en", "specialReservationDetails": null, "sslSupported": false, "panoramaCount": 0, "merchantCancellable": false, "bookingEngineId": "FreesaleBE", "onRequestPeriod": null, "primaryGroupId": null, "pas": null, "available": true, "productUrlName": "Everglades-Airboat-Tour-with-Transport-from-Miami", "primaryDestinationUrlName": "Miami", "shortDescription": "Choose between daily morning or afternoon departure from Miami Beach or Downtown Miami and\u00a0experience everything the Everglades have to offer during this ca. 4-5 hour Everglades tour (depending on traffic). English, Spanish or German guides are available on your bus. After your pick-up you will drive to the Everglades where you will first board an Airboat\u00a0guided by your park ranger which takes you on an exciting high speed ride through the river of grass and allows you to discover the beauty of this unique eco-system. Observe a variety of animals including birds, turtles and alligators in their natural habitat and watch the gators up close during the alligator presentation following the airboat ride", "price": 79, "supplierCode": "6331", "translationLevel": 0, "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/e9/60/52.jpg", "primaryDestinationName": "Miami", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/e9/60/52.jpg", "onSale": false, "photoCount": 0, "reviewCount": 24, "primaryDestinationId": 662, "merchantNetPriceFrom": 0, "priceFormatted": "$79.00", "rrp": 0, "rrpformatted": "", "videoCount": 0, "rating": 3.5, "specialReservation": false, "shortTitle": "Everglades Airboat Ride Ranger-Guided Eco-Tour from Miami", "specialOfferAvailable": false, "uniqueShortDescription": null, "merchantNetPriceFromFormatted": "", "savingAmount": 0, "savingAmountFormated": "", "essential": "2", "admission": "3", "duration": "5 hours", "title": "Everglades Airboat & Gators AM or PM pick-up - English,Spanish,German or French", "code": "6331EVERAIRTRANS" }, { "sortOrder": 6, "supplierName": "US2U", "currencyCode": "USD", "catIds": null, "subCatIds": null, "webURL": "http://shop.live.rc.viator.com/tours/Miami/Everglades-Tour-auf-Deutsch/d662-6331P14?eap=brand-subbrand-17895&aid=vba17895en", "specialReservationDetails": null, "sslSupported": false, "panoramaCount": 0, "merchantCancellable": false, "bookingEngineId": "FreesaleBE", "onRequestPeriod": null, "primaryGroupId": null, "pas": null, "available": true, "productUrlName": "Everglades-Tour-auf-Deutsch", "primaryDestinationUrlName": "Miami", "shortDescription": "Discover the Everglades on this popular tour. Enjoy a one hour Airboat tour and a wildlife show displaying a variety of animals.", "price": 77, "supplierCode": "6331", "translationLevel": 0, "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/09/a5/43/8f.jpg", "primaryDestinationName": "Miami", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/09/a5/43/8f.jpg", "onSale": false, "photoCount": 0, "reviewCount": 1, "primaryDestinationId": 662, "merchantNetPriceFrom": 0, "priceFormatted": "$77.00", "rrp": 0, "rrpformatted": "", "videoCount": 0, "rating": 3, "specialReservation": false, "shortTitle": "Everglades Airboat 1 hour with AM or PM pick-up", "specialOfferAvailable": false, "uniqueShortDescription": null, "merchantNetPriceFromFormatted": "", "savingAmount": 0, "savingAmountFormated": "", "essential": "2", "admission": "3", "duration": "5 hours", "title": "Everglades Airboat 1 hour with AM or PM pick-up", "code": "6331P14" } ], "dateStamp": "2020-04-20T19:32:02+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 22, "errorMessageText": null, "vmid": "331001" } }, "search-products-codes-example": { "summary": "/search/products/codes", "value": { "errorReference": null, "data": [ { "sortOrder": 1, "supplierName": null, "currencyCode": "USD", "catIds": [ 1, 9, 25, 12 ], "subCatIds": [ 113, 2, 98, 26963, 36, 45, 95 ], "webURL": "http://shop.live.rc.viator.com/tours/Las-Vegas/Grand-Canyon-West-Rim-Deluxe-Sunset-Helicopter-Tour/d684-2280SUN?eap=brand-subbrand-17895&aid=vba17895en", "specialReservationDetails": null, "sslSupported": false, "panoramaCount": 0, "merchantCancellable": false, "bookingEngineId": "FreesaleOnRequestBE", "onRequestPeriod": 48, "primaryGroupId": null, "pas": null, "available": true, "productUrlName": "Grand-Canyon-West-Rim-Deluxe-Sunset-Helicopter-Tour", "primaryDestinationUrlName": "Las-Vegas", "shortDescription": "Take off from Las Vegas on a magical sunset helicopter tour to the Grand Canyon. You'll enjoy a 45-minute helicopter flight each way, land at the Grand Canyon for a glass of Champagne and snacks while you watch the sun start it's descent behind the walls of the canyon, then fly low over the famous neon-lit Las Vegas Strip on your return.", "price": 507.99, "supplierCode": "2280", "translationLevel": 0, "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/7a/ec/1c.jpg", "primaryDestinationName": "Las Vegas", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/7a/ec/1c.jpg", "onSale": false, "photoCount": 7, "reviewCount": 399, "primaryDestinationId": 684, "merchantNetPriceFrom": 0, "priceFormatted": "$507.99", "rrp": 0, "rrpformatted": "", "videoCount": 1, "rating": 5, "specialReservation": false, "shortTitle": "Grand Canyon from Las Vegas West Rim Sunset Helicopter Tour", "specialOfferAvailable": false, "uniqueShortDescription": null, "merchantNetPriceFromFormatted": "", "savingAmount": 0, "savingAmountFormated": "", "essential": null, "admission": null, "duration": "3 hours 30 minutes", "title": "Grand Canyon West Rim Deluxe Sunset Helicopter Tour", "code": "2280SUN" } ], "dateStamp": "2020-04-20T21:02:27+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 1, "errorMessageText": null, "vmid": "331001" } }, "search-freetext-example": { "summary": "/search/freetext", "value": { "errorReference": null, "data": [ { "sortOrder": 1, "data": { "sortOrder": 1, "supplierName": null, "currencyCode": "USD", "catIds": [ 1, 9, 25, 12 ], "subCatIds": [ 113, 2, 98, 26963, 36, 45, 94, 95 ], "webURL": "http://shop.live.rc.viator.com/tours/Las-Vegas/Grand-Canyon-All-American-Helicopter-Tour/d684-2280AAHT?eap=brand-subbrand-17895&aid=vba17895en", "specialReservationDetails": null, "sslSupported": false, "panoramaCount": 0, "merchantCancellable": false, "bookingEngineId": "FreesaleOnRequestBE", "onRequestPeriod": 48, "primaryGroupId": null, "pas": null, "available": true, "productUrlName": "Grand-Canyon-All-American-Helicopter-Tour", "primaryDestinationUrlName": "Las-Vegas", "shortDescription": "Take off from McCarran Airport on an exhilarating helicopter flight to the Grand Canyon. You'll enjoy a 45-minute helicopter flight each way, land deep in the canyon for a glass of champagne and a basket of snacks then fly low over the famous Las Vegas Strip on your return. The Grand Canyon All American Helicopter Tour is a half-day tour, leaving you with time in the day free to explore Las Vegas and Nevada at your leisure.", "price": 409.99, "supplierCode": "2280", "translationLevel": 0, "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/38/cd/90.jpg", "primaryDestinationName": "Las Vegas", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/38/cd/90.jpg", "onSale": false, "photoCount": 5, "reviewCount": 0, "primaryDestinationId": 684, "merchantNetPriceFrom": 0, "priceFormatted": "$409.99", "rrp": 0, "rrpformatted": "", "videoCount": 1, "rating": 0, "specialReservation": false, "shortTitle": "Las Vegas to Grand Canyon Helicopter Tour with Champagne", "specialOfferAvailable": false, "uniqueShortDescription": null, "merchantNetPriceFromFormatted": "", "savingAmount": 0, "savingAmountFormated": "", "essential": null, "admission": null, "duration": "3 hours 30 minutes", "title": "Grand Canyon All-American Helicopter Tour", "code": "2280AAHT" }, "searchType": "PRODUCT" }, { "sortOrder": 2, "data": { "sortOrder": 2, "supplierName": null, "currencyCode": "USD", "catIds": [ 1, 5, 9, 12 ], "subCatIds": [ 32, 2, 98, 26963, 45, 94, 15 ], "webURL": "http://shop.live.rc.viator.com/tours/Las-Vegas/Ultimate-Grand-Canyon-4-in-1-Helicopter-Tour/d684-2280LI_5H?eap=brand-subbrand-17895&aid=vba17895en", "specialReservationDetails": null, "sslSupported": false, "panoramaCount": 0, "merchantCancellable": false, "bookingEngineId": "FreesaleOnRequestBE", "onRequestPeriod": 336, "primaryGroupId": null, "pas": null, "available": true, "productUrlName": "Ultimate-Grand-Canyon-4-in-1-Helicopter-Tour", "primaryDestinationUrlName": "Las-Vegas", "shortDescription": "Take the ultimate Grand Canyon tour! You'll fly from Las Vegas to the Grand Canyon by helicopter, cruise the Colorado River, then spend time at the West Rim. You also have the option of choosing the Grand Canyon Skywalk for 360-degree panoramic views.", "price": 619.99, "supplierCode": "2280", "translationLevel": 0, "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/6f/78/b2.jpg", "primaryDestinationName": "Las Vegas", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/6f/78/b2.jpg", "onSale": false, "photoCount": 266, "reviewCount": 0, "primaryDestinationId": 684, "merchantNetPriceFrom": 0, "priceFormatted": "$619.99", "rrp": 0, "rrpformatted": "", "videoCount": 0, "rating": 0, "specialReservation": false, "shortTitle": "Grand Canyon West Rim Helicopter and Boat Tour from Las Vegas", "specialOfferAvailable": false, "uniqueShortDescription": null, "merchantNetPriceFromFormatted": "", "savingAmount": 0, "savingAmountFormated": "", "essential": null, "admission": null, "duration": "6 hours 30 minutes", "title": "Grand Canyon 4-in-1 Helicopter Tour", "code": "2280LI_5H" }, "searchType": "PRODUCT" }, { "sortOrder": 3, "data": { "sortOrder": 3, "supplierName": null, "currencyCode": "USD", "catIds": [ 1, 5, 9, 25, 12 ], "subCatIds": [ 32, 113, 2, 98, 94, 15 ], "webURL": "http://shop.live.rc.viator.com/tours/Las-Vegas/Grand-Canyon-and-Hoover-Dam-Day-Trip-from-Las-Vegas-with-Optional-Skywalk/d684-3951WESTDLX?eap=brand-subbrand-17895&aid=vba17895en", "specialReservationDetails": null, "sslSupported": false, "panoramaCount": 0, "merchantCancellable": false, "bookingEngineId": "FreesaleBE", "onRequestPeriod": null, "primaryGroupId": null, "pas": null, "available": true, "productUrlName": "Grand-Canyon-and-Hoover-Dam-Day-Trip-from-Las-Vegas-with-Optional-Skywalk", "primaryDestinationUrlName": "Las-Vegas", "shortDescription": "Hit the highway out of Las Vegas and spend the day touring the Grand Canyon and Hoover Dam. On this day trip you'll have four hours at the Grand Canyon, with the option of walking on the popular Grand Canyon Skywalk for panoramic 360-degree views.", "price": 118.19, "supplierCode": "3951", "translationLevel": 0, "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/06/71/4e/01.jpg", "primaryDestinationName": "Las Vegas", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/06/71/4e/01.jpg", "onSale": false, "photoCount": 629, "reviewCount": 0, "primaryDestinationId": 684, "merchantNetPriceFrom": 0, "priceFormatted": "$118.19", "rrp": 0, "rrpformatted": "", "videoCount": 0, "rating": 0, "specialReservation": false, "shortTitle": "Grand Canyon, Hoover Dam from Las Vegas with Skywalk Option", "specialOfferAvailable": false, "uniqueShortDescription": null, "merchantNetPriceFromFormatted": "", "savingAmount": 0, "savingAmountFormated": "", "essential": null, "admission": null, "duration": "12 hours", "title": "Grand Canyon West Rim and Hoover Dam Tour from Las Vegas with Optional Skywalk", "code": "3951WESTDLX" }, "searchType": "PRODUCT" } ], "dateStamp": "2020-04-20T21:07:44+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 124, "errorMessageText": null, "vmid": "331001" } }, "product-example": { "summary": "5010SYDNEY", "value": { "errorReference": null, "data": { "supplierName": null, "currencyCode": "USD", "catIds": [ 6, 12 ], "subCatIds": [ 97, 98, 5330, 26963, 32024, 45 ], "webURL": "http://shop.live.rc.viator.com/tours/Sydney/Sydney-and-Bondi-Hop-on-Hop-off-Tour/d357-5010SYDNEY?eap=brand-subbrand-17895&aid=vba17895en", "specialReservationDetails": null, "sslSupported": false, "panoramaCount": 0, "merchantCancellable": false, "bookingEngineId": "UnconditionalBE", "onRequestPeriod": null, "primaryGroupId": null, "pas": null, "available": true, "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour", "primaryDestinationUrlName": "Sydney", "voucherRequirements": "You can present either a paper or an electronic voucher for this activity.", "tourGradesAvailable": true, "hotelPickup": false, "userPhotos": [ { "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, "timeUploaded": "2012-02-07", "productCode": "5010SYDNEY", "caption": "

Carl and Karen meeting a new friend at the Wildlife park.

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/e4/dsc00471-photo_1909732-133sq.jpg", "ownerId": 1755909, "editorsPick": true, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/e4/dsc00471-photo_1909732-770tall.jpg", "photoId": 1909732, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/e4/dsc00471-photo_1909732-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/e4/dsc00471-photo_1909732-260tall.jpg", "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, "timeUploaded": "2009-07-22", "productCode": "5010SYDNEY", "caption": "Sydney Opera House", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/f2/sydney-opera-house-photo_997106-133sq.jpg", "ownerId": 288013, "editorsPick": true, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/f2/sydney-opera-house-photo_997106-770tall.jpg", "photoId": 997106, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/f2/sydney-opera-house-photo_997106-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/f2/sydney-opera-house-photo_997106-260tall.jpg", "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/d7/sheila-t-account_1327319-45sq.jpg", "sslSupported": false, "timeUploaded": "2018-03-28", "productCode": "5010SYDNEY", "caption": "

This was taken from a water taxi

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/8a/-photo_31376266-133sq.jpg", "ownerId": 1327319, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/8a/-photo_31376266-770tall.jpg", "photoId": 31376266, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/8a/-photo_31376266-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/8a/-photo_31376266-260tall.jpg", "title": "" }, { "sortOrder": 4, "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/d7/sheila-t-account_1327319-45sq.jpg", "sslSupported": false, "timeUploaded": "2018-03-28", "productCode": "5010SYDNEY", "caption": "

Tell us who is in the photo, what you were doing, etc.

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/87/-photo_31376263-133sq.jpg", "ownerId": 1327319, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/87/-photo_31376263-770tall.jpg", "photoId": 31376263, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/87/-photo_31376263-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/87/-photo_31376263-260tall.jpg", "title": "" }, { "sortOrder": 5, "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/d7/sheila-t-account_1327319-45sq.jpg", "sslSupported": false, "timeUploaded": "2018-03-28", "productCode": "5010SYDNEY", "caption": "

Tell us who is in the photo, what you were doing, etc.

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/88/-photo_31376264-133sq.jpg", "ownerId": 1327319, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/88/-photo_31376264-770tall.jpg", "photoId": 31376264, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/88/-photo_31376264-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/88/-photo_31376264-260tall.jpg", "title": "" }, { "sortOrder": 6, "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/d7/sheila-t-account_1327319-45sq.jpg", "sslSupported": false, "timeUploaded": "2018-03-28", "productCode": "5010SYDNEY", "caption": "

Tell us who is in the photo, what you were doing, etc.

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/89/-photo_31376265-133sq.jpg", "ownerId": 1327319, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/89/-photo_31376265-770tall.jpg", "photoId": 31376265, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/89/-photo_31376265-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/89/-photo_31376265-260tall.jpg", "title": "" }, { "sortOrder": 7, "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/d7/sheila-t-account_1327319-45sq.jpg", "sslSupported": false, "timeUploaded": "2018-03-28", "productCode": "5010SYDNEY", "caption": "

Tell us who is in the photo, what you were doing, etc.

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/86/-photo_31376262-133sq.jpg", "ownerId": 1327319, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/86/-photo_31376262-770tall.jpg", "photoId": 31376262, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/86/-photo_31376262-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/86/-photo_31376262-260tall.jpg", "title": "" }, { "sortOrder": 8, "ownerName": "hmyou", "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, "timeUploaded": "2018-02-17", "productCode": "5010SYDNEY", "caption": "

open top deck on a good day.

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/1e/-photo_30550814-133sq.jpg", "ownerId": 7208378, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/1e/-photo_30550814-770tall.jpg", "photoId": 30550814, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/1e/-photo_30550814-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/1e/-photo_30550814-260tall.jpg", "title": "" }, { "sortOrder": 9, "ownerName": "hmyou", "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, "timeUploaded": "2018-02-17", "productCode": "5010SYDNEY", "caption": "

Sydney bus

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/1d/-photo_30550813-133sq.jpg", "ownerId": 7208378, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/1d/-photo_30550813-770tall.jpg", "photoId": 30550813, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/1d/-photo_30550813-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/1d/-photo_30550813-260tall.jpg", "title": "" }, { "sortOrder": 10, "ownerName": "Sandra L", "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, "timeUploaded": "2018-01-24", "productCode": "5010SYDNEY", "caption": "

The Sydney Harbour Bridge from Opera House.

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/80/-photo_30156160-133sq.jpg", "ownerId": 29870783, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/80/-photo_30156160-770tall.jpg", "photoId": 30156160, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/80/-photo_30156160-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/80/-photo_30156160-260tall.jpg", "title": "" }, { "sortOrder": 11, "ownerName": "Sandra L", "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, "timeUploaded": "2018-01-24", "productCode": "5010SYDNEY", "caption": "

The rock pool at Bondi

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/7e/-photo_30156158-133sq.jpg", "ownerId": 29870783, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/7e/-photo_30156158-770tall.jpg", "photoId": 30156158, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/7e/-photo_30156158-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/7e/-photo_30156158-260tall.jpg", "title": "" }, { "sortOrder": 12, "ownerName": "Sandra L", "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, "timeUploaded": "2018-01-24", "productCode": "5010SYDNEY", "caption": "

Bondi Beach

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/7d/-photo_30156157-133sq.jpg", "ownerId": 29870783, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/7d/-photo_30156157-770tall.jpg", "photoId": 30156157, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/7d/-photo_30156157-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/7d/-photo_30156157-260tall.jpg", "title": "" }, { "sortOrder": 13, "ownerName": "RALEIGH O", "ownerCountry": null, "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour", "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/fb/raleigh-o-account_1321723-45sq.jpg", "sslSupported": false, "timeUploaded": "2017-11-09", "productCode": "5010SYDNEY", "caption": "

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/8a/-photo_28933514-133sq.jpg", "ownerId": 1321723, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/8a/-photo_28933514-770tall.jpg", "photoId": 28933514, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/8a/-photo_28933514-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/8a/-photo_28933514-260tall.jpg", "title": "" }, { "sortOrder": 14, "ownerName": "RALEIGH O", "ownerCountry": null, "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour", "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/fb/raleigh-o-account_1321723-45sq.jpg", "sslSupported": false, "timeUploaded": "2017-11-09", "productCode": "5010SYDNEY", "caption": "

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/73/-photo_28933491-133sq.jpg", "ownerId": 1321723, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/73/-photo_28933491-770tall.jpg", "photoId": 28933491, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/73/-photo_28933491-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/73/-photo_28933491-260tall.jpg", "title": "" }, { "sortOrder": 15, "ownerName": "RALEIGH O", "ownerCountry": null, "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour", "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/fb/raleigh-o-account_1321723-45sq.jpg", "sslSupported": false, "timeUploaded": "2017-11-09", "productCode": "5010SYDNEY", "caption": "

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/1b/-photo_28930587-133sq.jpg", "ownerId": 1321723, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/1b/-photo_28930587-770tall.jpg", "photoId": 28930587, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/1b/-photo_28930587-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/1b/-photo_28930587-260tall.jpg", "title": "" }, { "sortOrder": 16, "ownerName": "RALEIGH O", "ownerCountry": null, "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour", "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/fb/raleigh-o-account_1321723-45sq.jpg", "sslSupported": false, "timeUploaded": "2017-11-09", "productCode": "5010SYDNEY", "caption": "

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/1a/-photo_28930586-133sq.jpg", "ownerId": 1321723, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/1a/-photo_28930586-770tall.jpg", "photoId": 28930586, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/1a/-photo_28930586-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/1a/-photo_28930586-260tall.jpg", "title": "" }, { "sortOrder": 17, "ownerName": "RALEIGH O", "ownerCountry": null, "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour", "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/fb/raleigh-o-account_1321723-45sq.jpg", "sslSupported": false, "timeUploaded": "2017-11-09", "productCode": "5010SYDNEY", "caption": "

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/19/-photo_28930585-133sq.jpg", "ownerId": 1321723, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/19/-photo_28930585-770tall.jpg", "photoId": 28930585, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/19/-photo_28930585-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/19/-photo_28930585-260tall.jpg", "title": "" }, { "sortOrder": 18, "ownerName": "RALEIGH O", "ownerCountry": null, "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour", "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/fb/raleigh-o-account_1321723-45sq.jpg", "sslSupported": false, "timeUploaded": "2017-11-09", "productCode": "5010SYDNEY", "caption": "

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/18/-photo_28930584-133sq.jpg", "ownerId": 1321723, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/18/-photo_28930584-770tall.jpg", "photoId": 28930584, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/18/-photo_28930584-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/18/-photo_28930584-260tall.jpg", "title": "" }, { "sortOrder": 19, "ownerName": "C S", "ownerCountry": "Netherlands", "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour", "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour", "ownerAvatarURL": null, "sslSupported": false, "timeUploaded": "2017-10-12", "productCode": "5010SYDNEY", "caption": "

Sydney bridge, view from bus

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/ff/-photo_28377343-133sq.jpg", "ownerId": 182417, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/ff/-photo_28377343-770tall.jpg", "photoId": 28377343, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/ff/-photo_28377343-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/ff/-photo_28377343-260tall.jpg", "title": "" }, { "sortOrder": 20, "ownerName": "C S", "ownerCountry": "Netherlands", "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour", "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour", "ownerAvatarURL": null, "sslSupported": false, "timeUploaded": "2017-10-12", "productCode": "5010SYDNEY", "caption": "

Opera house

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/00/-photo_28377344-133sq.jpg", "ownerId": 182417, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/00/-photo_28377344-770tall.jpg", "photoId": 28377344, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/00/-photo_28377344-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/00/-photo_28377344-260tall.jpg", "title": "" }, { "sortOrder": 21, "ownerName": "C S", "ownerCountry": "Netherlands", "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour", "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour", "ownerAvatarURL": null, "sslSupported": false, "timeUploaded": "2017-10-12", "productCode": "5010SYDNEY", "caption": "

View from upperdeck looking up in downtown, View from upper deck looking forward

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/fe/-photo_28377342-133sq.jpg", "ownerId": 182417, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/fe/-photo_28377342-770tall.jpg", "photoId": 28377342, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/fe/-photo_28377342-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/fe/-photo_28377342-260tall.jpg", "title": "," }, { "sortOrder": 22, "ownerName": "Kirill P", "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, "timeUploaded": "2017-05-11", "productCode": "5010SYDNEY", "caption": "

St Mary's Cathedral

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/0d/-photo_24296717-133sq.jpg", "ownerId": 23770411, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/0d/-photo_24296717-770tall.jpg", "photoId": 24296717, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/0d/-photo_24296717-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/0d/-photo_24296717-260tall.jpg", "title": "" }, { "sortOrder": 23, "ownerName": "Kirill P", "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, "timeUploaded": "2017-05-11", "productCode": "5010SYDNEY", "caption": "

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/0c/-photo_24296716-133sq.jpg", "ownerId": 23770411, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/0c/-photo_24296716-770tall.jpg", "photoId": 24296716, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/0c/-photo_24296716-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/0c/-photo_24296716-260tall.jpg", "title": "" }, { "sortOrder": 24, "ownerName": "Kirill P", "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, "timeUploaded": "2017-05-11", "productCode": "5010SYDNEY", "caption": "

King's Cross' famous Coca Cola Sign

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/0b/-photo_24296715-133sq.jpg", "ownerId": 23770411, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/0b/-photo_24296715-770tall.jpg", "photoId": 24296715, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/0b/-photo_24296715-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/0b/-photo_24296715-260tall.jpg", "title": "" } ], "reviews": [ { "sortOrder": 1, "ownerName": "Graeme I", "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, "viatorNotes": "", "productCode": "5010SYDNEY", "submissionDate": "2020-04-06", "rating": 5, "review": "

Great time seeing the sights. The city is in two areas, but we didn\u2019t have time to tour both. Maybe next year ?

", "publishedDate": "2020-04-06", "ownerId": 68774525, "viatorFeedback": "", "reviewId": 71899705 }, { "sortOrder": 2, "ownerName": "BillB", "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, "viatorNotes": "", "productCode": "5010SYDNEY", "submissionDate": "2020-03-24", "rating": 5, "review": "

Efficient and reasonable priced. Buses came on time and always had space. Would definitely recommend.

", "publishedDate": "2020-03-24", "ownerId": 38226256, "viatorFeedback": "", "reviewId": 71852325 }, { "sortOrder": 3, "ownerName": "william b", "ownerCountry": null, "productTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour", "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/10/william-b-account_12096528-45sq.jpg", "sslSupported": false, "viatorNotes": "", "productCode": "5010SYDNEY", "submissionDate": "2020-03-13", "rating": 5, "review": "

Excellent tour two routes saw not only major attractions darling harbor opera house the Eye but also Bondi beach and a number of local towns
\nBoat tour was great went to Manly and Watson cove both grea places for a stroll and drinks and food on the waterfront
\nWell worth the price

", "publishedDate": "2020-03-13", "ownerId": 12096528, "viatorFeedback": "", "reviewId": 71691207 }, { "sortOrder": 4, "ownerName": "Linda 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, "viatorNotes": "", "productCode": "5010SYDNEY", "submissionDate": "2020-02-25", "rating": 5, "review": "

A great way to see the city. Two routes with a lot of stops and informative commentary. Excellent value especially the de-luxe ticket, but definitely need the 48 hour one as there is so much to see.

", "publishedDate": "2020-02-25", "ownerId": 38915546, "viatorFeedback": "", "reviewId": 70739309 }, { "sortOrder": 5, "ownerName": "KEL", "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, "viatorNotes": "", "productCode": "5010SYDNEY", "submissionDate": "2020-02-24", "rating": 5, "review": "

Excellent tours and clear commentary.
\nGood stops fr connecting and on time buses.
\nEnjoyed a beautiful city in an easy and informative way.

", "publishedDate": "2020-02-24", "ownerId": 1903650, "viatorFeedback": "", "reviewId": 70667205 }, { "sortOrder": 6, "ownerName": "Barbara 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, "viatorNotes": "", "productCode": "5010SYDNEY", "submissionDate": "2020-03-09", "rating": 4, "review": "

Very inclusive. Really glad we got both the red and blue bus on our ticket. Really enjoyed Bondi Beach

", "publishedDate": "2020-03-09", "ownerId": 25368382, "viatorFeedback": "", "reviewId": 71508083 }, { "sortOrder": 7, "ownerName": "Melody J", "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, "viatorNotes": "", "productCode": "5010SYDNEY", "submissionDate": "2020-03-06", "rating": 4, "review": "

Served its purpose of getting to see a lot of the city. We took it purposefully to go to Bondi Beach. Unfortunately weather was a but cool but we made the best of it. Sit on top for best views.

", "publishedDate": "2020-03-06", "ownerId": 25931845, "viatorFeedback": "", "reviewId": 71336861 }, { "sortOrder": 8, "ownerName": "Keith 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, "viatorNotes": "", "productCode": "5010SYDNEY", "submissionDate": "2020-03-10", "rating": 3, "review": "

Very slow, I know Sydney is a big city but there are so many traffic lights the bus gets stopped at and some of its actual stops it takes ages to get passengers on and off and when you are exposed on the upper deck in 36 degrees plus temperatures it becomes very unpleasant. One bus we were on vibrated terribly when stopped and on one the downstairs air conditioning wasn\u2019t working so had to change busses. Some pretty naff music between commentary\u2019s.but at least we seen some of the sights of Sydney on the whole probably worth it

", "publishedDate": "2020-03-10", "ownerId": 58055945, "viatorFeedback": "", "reviewId": 71560191 }, { "sortOrder": 9, "ownerName": "Kenneth B", "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, "viatorNotes": "", "productCode": "5010SYDNEY", "submissionDate": "2020-02-28", "rating": 2, "review": "

2/25/20 in Sydney. Had seen the concept elsewhere and it seemed to be a good way to see the city. Waited 45 minutes for a bus to appear. Due to overwhelming volume they put an extra bus on the route so we actually were able to get on. Didn\u2019t dare \u201chop off\u201d because of the volume of people waiting at each stop (afraid we would not be able to get back on).

\n\n

The commentary was informative, but the large number of riders (and the small number of busses) broke the system. This was a pure miss. Probably won\u2019t try to use it in other locations in the future.

", "publishedDate": "2020-02-28", "ownerId": 4675191, "viatorFeedback": "", "reviewId": 70922157 }, { "sortOrder": 10, "ownerName": "2bmarples", "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, "viatorNotes": "", "productCode": "5010SYDNEY", "submissionDate": "2020-02-28", "rating": 2, "review": "

I have used the HOHO Bus in major cities all over the world, and I can say the service in Sydney was the worst I have ever experienced. Much longer than posted wait times for buses, some stops up to double! Terrible customer service - left sitting on a bus at a stop for an hour waiting for another bus to come to fill up our bus. No communication as to why we were sitting there. When the second bus arrived only a couple of people actually boarded, the rest just got off and their business was empty. When we first got to the stop a second empty bus came along and parked infront of ours. Left again only half full. If we had been told we were going to sit there for an hour waiting, we could have easily boarded the half empty bus and been on our way. No communication at all so just sat there wasting time.

", "publishedDate": "2020-02-28", "ownerId": 26099892, "viatorFeedback": "", "reviewId": 70922111 } ], "videos": null, "tourGrades": [ { "sortOrder": 1, "currencyCode": "USD", "langServices": { "en/SERVICE_AUDIO": "English - Audio" }, "gradeCode": "24HOUR", "merchantNetPriceFrom": 0, "priceFrom": 34.3, "priceFromFormatted": "$34.30", "merchantNetPriceFromFormatted": "", "gradeTitle": "24 Hour Classic Ticket ", "gradeDescription": "Unlimited use on Big Bus Sydney & Bondi Hop-on Hop-off Tour for 24 hours from time of first use", "defaultLanguageCode": "en", "gradeDepartureTime": "" }, { "sortOrder": 2, "currencyCode": "USD", "langServices": { "en/SERVICE_AUDIO": "English - Audio" }, "gradeCode": "48HOUR", "merchantNetPriceFrom": 0, "priceFrom": 45.93, "priceFromFormatted": "$45.93", "merchantNetPriceFromFormatted": "", "gradeTitle": "48 Hour Premium Ticket ", "gradeDescription": "Duration: 2 days: FREE BONUS ENTRY to Sydney Tower with every Deluxe ticket end 31st March
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", "defaultLanguageCode": "en", "gradeDepartureTime": "" }, { "sortOrder": 3, "currencyCode": "USD", "langServices": { "en/SERVICE_AUDIO": "English - Audio" }, "gradeCode": "DELUXE", "merchantNetPriceFrom": 0, "priceFrom": 63.95, "priceFromFormatted": "$63.95", "merchantNetPriceFromFormatted": "", "gradeTitle": "48 Hour Deluxe Bus and Cruise", "gradeDescription": "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
Duration: 2 days: FREE BONUS ENTRY to Sydney Tower with every Deluxe ticket end 31st March
Complimentary Walking Tour: Complimentary English-speaking 90-minute guided walking tour of \u201cThe Rocks\u201d historic and harbourside precinct.", "defaultLanguageCode": "en", "gradeDepartureTime": "" } ], "ageBands": [ { "sortOrder": 1, "ageFrom": 16, "ageTo": 99, "adult": true, "bandId": 1, "pluralDescription": "Adults", "treatAsAdult": true, "description": "Adult", "count": 0 }, { "sortOrder": 2, "ageFrom": 5, "ageTo": 15, "adult": false, "bandId": 2, "pluralDescription": "Children", "treatAsAdult": true, "description": "Child", "count": 0 }, { "sortOrder": 3, "ageFrom": 0, "ageTo": 4, "adult": false, "bandId": 3, "pluralDescription": "Infants", "treatAsAdult": false, "description": "Infant", "count": 0 } ], "bookingQuestions": [], "passengerAttributes": null, "highlights": null, "salesPoints": [], "ratingCounts": { "1": 39, "2": 102, "3": 199, "4": 504, "5": 777 }, "termsAndConditions": "For a full refund, cancel at least 24 hours in advance of the start date of the experience.", "maxTravellerCount": 9, "itinerary": "", "destinationId": 357, "translationLevel": 0, "productPhotos": [ { "caption": "Free Entry to Sydney Tower for a limited time", "photoURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/0a/9e/a0/9b.jpg", "path": "attractions-splice-spp-674x446/0a/9e/a0/9b.jpg", "supplier": "SUPPLIER" } ], "additionalInfo": [ "Confirmation will be received at time of booking", "Wheelchair accessible", "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", "Infants aged 0 to 4 years travel free of charge" ], "voucherOption": "VOUCHER_E", "applePassSupported": true, "city": "Sydney", "departureTime": "See itinerary", "departureTimeComments": "", "departurePoint": "You may start this tour at any of the stops listed.", "specialOffer": "", "returnDetails": "You may disembark at any of the available stops.", "mapURL": null, "allTravellerNamesRequired": true, "operates": "

Daily

", "exclusions": [ "Food and drinks", "Admission" ], "description": "Itinerary

Red Route - Sydney Icons

Route Duration: 2 hours

Stops on the Red Route - Sydney Icons:
Attractions on the Red Route - Sydney Icons:

Hyde Park Barracks / Australian Museum / Sea Life Sydney Aquarium / Darling Harbour / The Rocks / Bondi Beach / Sydney Harbour Bridge / Royal Botanic Garden Sydney / Sydney Town Hall / Hyde Park / Circular Quay / City Sightseeing Sydney / Madame Tussauds Sydney / Big Bus Sydney / Sydney Tower Eye Observation Deck

Operates: 1st bus departs from Stop 1 Circular Quay at 8.30am.\nFrequency every 20 minutes\nLast bus departs from stop 1 at 6.30pm

Blue Route - Bondi Lifestyle

Route Duration: 2 hours

Stops on the Blue Route - Bondi Lifestyle:
Attractions on the Blue Route - Bondi Lifestyle:

Paddington Markets / Centennial Park / Bondi Beach / Rose Bay / Double Bay

Operates: 1st bus departs from Stop 1 Circular Quay at 9.30am.\nFrequency every 30 minutes\nLast bus departs from stop 1 at 6.30pm

", "inclusions": [ "Choice of 24 hour or 48 hour pass", "Pre-recorded commentary in English, French, Spanish, German, Italian, Mandarin, Japanese, Korean", "Free wifi onboard" ], "location": "The Rocks, Australia", "country": "Australia", "region": "New South Wales", "shortDescription": "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.", "price": 34.3, "supplierCode": "5010", "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/94/40/f3.jpg", "primaryDestinationName": "Sydney", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/94/40/f3.jpg", "priceFormatted": "$34.30", "rrp": 0, "rrpformatted": "", "videoCount": 1, "onSale": false, "photoCount": 124, "reviewCount": 1621, "primaryDestinationId": 357, "merchantNetPriceFrom": 0, "rating": 4.5, "specialOfferAvailable": false, "shortTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour", "specialReservation": false, "merchantNetPriceFromFormatted": "", "savingAmount": 0, "savingAmountFormated": "", "essential": null, "admission": null, "duration": "2 hours", "title": "Big Bus Sydney and Bondi Hop-on Hop-off Tour", "code": "5010SYDNEY" }, "dateStamp": "2020-04-20T21:32:44+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 1, "errorMessageText": null, "vmid": "331004" } }, "product-reviews-example": { "summary": "/product/reviews", "value": { "errorReference": null, "data": [ { "sortOrder": 1, "ownerName": "Kenneth B", "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", "submissionDate": "2020-02-28", "viatorNotes": "", "rating": 2, "review": "

2/25/20 in Sydney. Had seen the concept elsewhere and it seemed to be a good way to see the city. Waited 45 minutes for a bus to appear. Due to overwhelming volume they put an extra bus on the route so we actually were able to get on. Didn\u2019t dare \u201chop off\u201d because of the volume of people waiting at each stop (afraid we would not be able to get back on).

\n\n

The commentary was informative, but the large number of riders (and the small number of busses) broke the system. This was a pure miss. Probably won\u2019t try to use it in other locations in the future.

", "publishedDate": "2020-02-28", "ownerId": 4675191, "viatorFeedback": "", "reviewId": 70922157 }, { "sortOrder": 2, "ownerName": "2bmarples", "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", "submissionDate": "2020-02-28", "viatorNotes": "", "rating": 2, "review": "

I have used the HOHO Bus in major cities all over the world, and I can say the service in Sydney was the worst I have ever experienced. Much longer than posted wait times for buses, some stops up to double! Terrible customer service - left sitting on a bus at a stop for an hour waiting for another bus to come to fill up our bus. No communication as to why we were sitting there. When the second bus arrived only a couple of people actually boarded, the rest just got off and their business was empty. When we first got to the stop a second empty bus came along and parked infront of ours. Left again only half full. If we had been told we were going to sit there for an hour waiting, we could have easily boarded the half empty bus and been on our way. No communication at all so just sat there wasting time.

", "publishedDate": "2020-02-28", "ownerId": 26099892, "viatorFeedback": "", "reviewId": 70922111 }, { "sortOrder": 3, "ownerName": "Keith 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, "productCode": "5010SYDNEY", "submissionDate": "2020-03-10", "viatorNotes": "", "rating": 3, "review": "

Very slow, I know Sydney is a big city but there are so many traffic lights the bus gets stopped at and some of its actual stops it takes ages to get passengers on and off and when you are exposed on the upper deck in 36 degrees plus temperatures it becomes very unpleasant. One bus we were on vibrated terribly when stopped and on one the downstairs air conditioning wasn\u2019t working so had to change busses. Some pretty naff music between commentary\u2019s.but at least we seen some of the sights of Sydney on the whole probably worth it

", "publishedDate": "2020-03-10", "ownerId": 58055945, "viatorFeedback": "", "reviewId": 71560191 } ], "dateStamp": "2020-04-20T21:49:43+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 10, "errorMessageText": null, "vmid": "331002" } }, "product-photos-example": { "summary": "/product/photos", "value": { "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, "timeUploaded": "2012-02-07", "productCode": "5010SYDNEY", "caption": "

Carl and Karen meeting a new friend at the Wildlife park.

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/e4/dsc00471-photo_1909732-133sq.jpg", "ownerId": 1755909, "editorsPick": true, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/e4/dsc00471-photo_1909732-770tall.jpg", "photoId": 1909732, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/e4/dsc00471-photo_1909732-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/e4/dsc00471-photo_1909732-260tall.jpg", "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, "timeUploaded": "2009-07-22", "productCode": "5010SYDNEY", "caption": "Sydney Opera House", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/f2/sydney-opera-house-photo_997106-133sq.jpg", "ownerId": 288013, "editorsPick": true, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/f2/sydney-opera-house-photo_997106-770tall.jpg", "photoId": 997106, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/f2/sydney-opera-house-photo_997106-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/f2/sydney-opera-house-photo_997106-260tall.jpg", "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/d7/sheila-t-account_1327319-45sq.jpg", "sslSupported": false, "timeUploaded": "2018-03-28", "productCode": "5010SYDNEY", "caption": "

This was taken from a water taxi

", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/8a/-photo_31376266-133sq.jpg", "ownerId": 1327319, "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/8a/-photo_31376266-770tall.jpg", "photoId": 31376266, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/8a/-photo_31376266-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/8a/-photo_31376266-260tall.jpg", "title": "" } ], "dateStamp": "2020-04-20T21:51:23+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 118, "errorMessageText": null, "vmid": "331004" } }, "available-products-example": { "summary": "/available/products", "value": { "errorReference": null, "data": [ { "sortOrder": 1, "supplierName": null, "currencyCode": "USD", "catIds": [ 1, 9, 25, 12 ], "subCatIds": [ 113, 2, 98, 26963, 36, 45, 95 ], "webURL": "http://shop.live.rc.viator.com/tours/Las-Vegas/Grand-Canyon-West-Rim-Deluxe-Sunset-Helicopter-Tour/d684-2280SUN?eap=brand-subbrand-17895&aid=vba17895en", "specialReservationDetails": null, "sslSupported": false, "panoramaCount": 0, "merchantCancellable": false, "bookingEngineId": "FreesaleOnRequestBE", "onRequestPeriod": 48, "primaryGroupId": null, "pas": { "productCode": "2280SUN", "travellerMix": "1A", "tourGrades": { "SUNSET_ASTAR": { "tourGradeCode": "SUNSET_ASTAR", "title": "A-Star Helicopter ", "description": "Grand Canyon West Rim Deluxe Sunset Tour by A-Star Helicopter
Pickup included", "bookingEngine": "FREESALE_ON_REQUEST", "sapi": false, "languageServices": { "de": [ "AUDIO" ], "en": [ "AUDIO" ], "es": [ "AUDIO" ], "fr": [ "AUDIO" ], "it": [ "AUDIO" ], "ja": [ "AUDIO" ], "ko": [ "AUDIO" ], "pt": [ "AUDIO" ], "ru": [ "AUDIO" ], "tw": [ "AUDIO" ] }, "availDates": [ { "dateList": "20200521 20200522 20200523 20200524 20200525 20200526 20200527 20200528 ", "priceFrom": "USD 507.99", "priceQuote": { "retailPrice": "USD 507.99", "generalRetailPrice": "USD 507.99", "priceSource": "MANUAL" } } ] }, "SUNSET_EC130": { "tourGradeCode": "SUNSET_EC130", "title": "EC-130 Helicopter Upgrade", "description": "Grand Canyon West Rim Deluxe Sunset Tour by EC-130 Helicopter
Pickup included", "bookingEngine": "FREESALE_ON_REQUEST", "sapi": false, "languageServices": { "de": [ "AUDIO" ], "en": [ "AUDIO" ], "es": [ "AUDIO" ], "fr": [ "AUDIO" ], "it": [ "AUDIO" ], "ja": [ "AUDIO" ], "ko": [ "AUDIO" ], "pt": [ "AUDIO" ], "ru": [ "AUDIO" ], "tw": [ "AUDIO" ] }, "availDates": [ { "dateList": "20200521 20200522 20200523 20200524 20200525 20200526 20200527 20200528 ", "priceFrom": "USD 532.99", "priceQuote": { "retailPrice": "USD 532.99", "generalRetailPrice": "USD 532.99", "priceSource": "MANUAL" } } ] } }, "incompleteQuote": false, "removedChildAges": [] }, "available": true, "productUrlName": "Grand-Canyon-West-Rim-Deluxe-Sunset-Helicopter-Tour", "primaryDestinationUrlName": "Las-Vegas", "shortDescription": "Take off from Las Vegas on a magical sunset helicopter tour to the Grand Canyon. You'll enjoy a 45-minute helicopter flight each way, land at the Grand Canyon for a glass of Champagne and snacks while you watch the sun start it's descent behind the walls of the canyon, then fly low over the famous neon-lit Las Vegas Strip on your return.", "price": 507.99, "supplierCode": "2280", "translationLevel": 0, "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/7a/ec/1c.jpg", "primaryDestinationName": "Las Vegas", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/7a/ec/1c.jpg", "priceFormatted": "$507.99", "rrp": 0, "rrpformatted": "", "videoCount": 1, "onSale": false, "photoCount": 7, "reviewCount": 399, "primaryDestinationId": 684, "merchantNetPriceFrom": 0, "rating": 5, "specialOfferAvailable": false, "shortTitle": "Grand Canyon from Las Vegas West Rim Sunset Helicopter Tour", "specialReservation": false, "uniqueShortDescription": null, "merchantNetPriceFromFormatted": "", "savingAmount": 0, "savingAmountFormated": "", "essential": null, "admission": null, "duration": "3 hours 30 minutes", "title": "Grand Canyon West Rim Deluxe Sunset Helicopter Tour", "code": "2280SUN" }, { "sortOrder": 2, "supplierName": null, "currencyCode": "USD", "catIds": [ 6, 12 ], "subCatIds": [ 97, 98, 5330, 26963, 32024, 45 ], "webURL": "http://shop.live.rc.viator.com/tours/Sydney/Sydney-and-Bondi-Hop-on-Hop-off-Tour/d357-5010SYDNEY?eap=brand-subbrand-17895&aid=vba17895en", "specialReservationDetails": null, "sslSupported": false, "panoramaCount": 0, "merchantCancellable": false, "bookingEngineId": "UnconditionalBE", "onRequestPeriod": null, "primaryGroupId": null, "pas": { "productCode": "5010SYDNEY", "travellerMix": "1A", "tourGrades": { "24HOUR": { "tourGradeCode": "24HOUR", "title": "24 Hour Classic Ticket ", "description": "Unlimited use on Big Bus Sydney & Bondi Hop-on Hop-off Tour for 24 hours from time of first use", "bookingEngine": "UNCONDITIONAL_FREESALE", "sapi": false, "languageServices": { "de": [ "AUDIO" ], "en": [ "AUDIO" ], "es": [ "AUDIO" ], "fr": [ "AUDIO" ], "ja": [ "AUDIO" ], "ko": [ "AUDIO" ], "zh": [ "AUDIO" ] }, "availDates": [ { "dateList": "20200521 20200522 20200523 20200524 20200525 20200526 20200527 20200528 ", "priceFrom": "USD 34.30", "priceQuote": { "retailPrice": "USD 34.30", "generalRetailPrice": "USD 34.30", "priceSource": "MANUAL" } } ] }, "48HOUR": { "tourGradeCode": "48HOUR", "title": "48 Hour Premium Ticket ", "description": "Duration: 2 days: FREE BONUS ENTRY to Sydney Tower with every Deluxe ticket end 31st March
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", "bookingEngine": "UNCONDITIONAL_FREESALE", "sapi": false, "languageServices": { "de": [ "AUDIO" ], "en": [ "AUDIO" ], "es": [ "AUDIO" ], "fr": [ "AUDIO" ], "ja": [ "AUDIO" ], "ko": [ "AUDIO" ], "zh": [ "AUDIO" ] }, "availDates": [ { "dateList": "20200521 20200522 20200523 20200524 20200525 20200526 20200527 20200528 ", "priceFrom": "USD 45.93", "priceQuote": { "retailPrice": "USD 45.93", "generalRetailPrice": "USD 45.93", "priceSource": "MANUAL" } } ] }, "DELUXE": { "tourGradeCode": "DELUXE", "title": "48 Hour Deluxe Bus and Cruise", "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
Duration: 2 days: FREE BONUS ENTRY to Sydney Tower with every Deluxe ticket end 31st March
Complimentary Walking Tour: Complimentary English-speaking 90-minute guided walking tour of \u201cThe Rocks\u201d historic and harbourside precinct.", "bookingEngine": "UNCONDITIONAL_FREESALE", "sapi": false, "languageServices": { "de": [ "AUDIO" ], "en": [ "AUDIO" ], "es": [ "AUDIO" ], "fr": [ "AUDIO" ], "ja": [ "AUDIO" ], "ko": [ "AUDIO" ], "zh": [ "AUDIO" ] }, "availDates": [ { "dateList": "20200521 20200522 20200523 20200524 20200525 20200526 20200527 20200528 ", "priceFrom": "USD 63.95", "priceQuote": { "retailPrice": "USD 63.95", "generalRetailPrice": "USD 63.95", "priceSource": "MANUAL" } } ] } }, "incompleteQuote": false, "removedChildAges": [] }, "available": true, "productUrlName": "Sydney-and-Bondi-Hop-on-Hop-off-Tour", "primaryDestinationUrlName": "Sydney", "shortDescription": "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.", "price": 34.3, "supplierCode": "5010", "translationLevel": 0, "thumbnailHiResURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-674x446/07/94/40/f3.jpg", "primaryDestinationName": "Sydney", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/94/40/f3.jpg", "priceFormatted": "$34.30", "rrp": 0, "rrpformatted": "", "videoCount": 1, "onSale": false, "photoCount": 124, "reviewCount": 1628, "primaryDestinationId": 357, "merchantNetPriceFrom": 0, "rating": 4.5, "specialOfferAvailable": false, "shortTitle": "Big Bus Sydney and Bondi Hop-on Hop-off Tour", "specialReservation": false, "uniqueShortDescription": null, "merchantNetPriceFromFormatted": "", "savingAmount": 0, "savingAmountFormated": "", "essential": null, "admission": null, "duration": "2 hours", "title": "Big Bus Sydney and Bondi Hop-on Hop-off Tour", "code": "5010SYDNEY" } ], "dateStamp": "2020-04-20T21:58:38+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 1, "errorMessageText": null, "vmid": "331004" } }, "search-attractions-example": { "summary": "/search/attractions", "value": { "errorReference": null, "data": [ { "sortOrder": 1, "webURL": "http://shop.live.rc.viator.com/Las-Vegas-attractions/Carroll-Shelby-Museum/d684-a23402?eap=brand-subbrand-17895&aid=vba17895en", "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": "
If you\u2019re into American cars, it doesn\u2019t get much better than Las Vegas\u2019 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\u2019s creations.

The Basics
Opened in 2014, the Shelby Heritage Center includes the factory, a museum, and a gift shop. Find out more about the specialty car manufacturer\u2019s history and founder, and get up close to many of the cars\u2014including 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. 

Things to Know Before You Go

How to Get There
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.

When to Get There
The center is open daily, and guided tours are offered every day but Sunday. If you\u2019re 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\u2014and the biggest crowds.

Drive a Race Car in Las Vegas
If looking at cars isn\u2019t 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.
", "pagePrimaryLanguage": "en", "attractionLatitude": 36.072175, "attractionLongitude": -115.179668, "attractionStreetAddress": "6405 Ensworth St.", "attractionCity": "Las Vegas", "attractionState": "Nevada", "destinationId": 684, "thumbnailHiResURL": "http://cache-graphicslib.viator.com/graphicslib/page-images/742x525/321988_Viator_TripAdvisor_UGC_171245.jpg", "photoCount": 0, "primaryDestinationId": 684, "seoId": 23402, "productCount": 2, "primaryDestinationName": "Las Vegas", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/page-images/321988_Viator_TripAdvisor_UGC_171245.jpg", "rating": 5, "title": "Carroll Shelby Museum" }, { "sortOrder": 2, "webURL": "http://shop.live.rc.viator.com/Las-Vegas-attractions/Shark-Reef-Aquarium-at-Mandalay-Bay/d684-a14235?eap=brand-subbrand-17895&aid=vba17895en", "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": "

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.

\n \nThe Shark Reef Aquarium was designed to be a \u201ctotal sensory experience,\u201d 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.

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

", "overviewSummary": "
Get up close and personal with some of the most fearsome creatures of the deep at Mandalay Bay\u2019s Shark Reef Aquarium. Designed to be a total sensory experience\u2014with two underwater tunnels and multiple tanks and exhibits\u2014the aquarium is home to more than 2,000 animals, including many species of sharks.

The Basics
Wander through a viewing tunnel at the Shark Reef Aquarium\u2019s largest exhibit, a shipwreck surrounded by 1.3 million gallons (4.9 million liters) of water. In addition to sharks, you\u2019ll 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.

Admission to the aquarium is included in some multi-attraction Las Vegas sightseeing passes.

Things to Know Before You Go

How to Get There
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\u2013Luxor\u2013Mandalay Bay tram. 

When to Get There
The aquarium is open daily, usually with extended hours on weekends and over the summer. Last entry is an hour before closing. There\u2019s no set schedule for animal feedings, but they often take place between 10am and 4pm.

Aquariums in Las Vegas
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.
", "pagePrimaryLanguage": "en", "attractionLatitude": 36.09215, "attractionLongitude": -115.17665, "attractionStreetAddress": "3950 Las Vegas Blvd South", "attractionCity": "Las Vegas", "attractionState": "Nevada", "destinationId": 684, "thumbnailHiResURL": "http://cache-graphicslib.viator.com/graphicslib/page-images/742x525/563331_Viator_Photographer_394530.jpg", "photoCount": 14, "primaryDestinationId": 684, "seoId": 14235, "productCount": 1, "primaryDestinationName": "Las Vegas", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/page-images/563331_Viator_Photographer_394530.jpg", "rating": 4.5, "title": "Shark Reef Aquarium at Mandalay Bay" }, { "sortOrder": 3, "webURL": "http://shop.live.rc.viator.com/Las-Vegas-attractions/Welder-Up/d684-a24303?eap=brand-subbrand-17895&aid=vba17895en", "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": "
Custom car aficionados, gear heads, and fans of the TV show Vegas Rat Rods 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.

The Basics
Visit the garage on your own, or book a guided behind-the-scenes tour. However you choose to visit, you\u2019ll be able to see Steve Darnell\u2019s 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.

Things to Know Before You Go

How to Get There
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.

When to Get There
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.

Count\u2019s Kustoms
Fans of custom cars may also want to visit Count\u2019s Kustoms, the automobile restoration and customization company owned by Danny Koker, who is the star of Counting Cars and a guest expert on Pawn Stars. 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.
", "pagePrimaryLanguage": "en", "attractionLatitude": 36.133057, "attractionLongitude": -115.17419, "attractionStreetAddress": "3160 South Highland Drive, Suite D", "attractionCity": "Las Vegas", "attractionState": "Nevada", "destinationId": 684, "thumbnailHiResURL": "http://cache-graphicslib.viator.com/graphicslib/page-images/742x525/365146_Viator_TripAdvisor_UGC_180066.jpg", "photoCount": 0, "primaryDestinationId": 684, "seoId": 24303, "productCount": 3, "primaryDestinationName": "Las Vegas", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/page-images/365146_Viator_TripAdvisor_UGC_180066.jpg", "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" } }, "attraction-example": { "summary": "/attraction", "value": { "errorReference": null, "data": { "webURL": "http://shop.live.rc.viator.com/Las-Vegas-attractions/Shark-Reef-Aquarium-at-Mandalay-Bay/d684-a14235?eap=brand-subbrand-17895&aid=vba17895en", "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/09/viator-insider-account_9179657-45sq.jpg", "sslSupported": false, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/3f/viator_photographer_394507-jpg-photo_29347647-1536tall.jpg", "productCode": "5156SHARK", "caption": "Shark Reef Aquarium at Mandalay Bay.", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/3f/viator_photographer_394507-jpg-photo_29347647-133sq.jpg", "ownerId": 9179657, "timeUploaded": "2017-12-05", "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/3f/viator_photographer_394507-jpg-photo_29347647-770tall.jpg", "photoId": 29347647, "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/3f/viator_photographer_394507-jpg-photo_29347647-260tall.jpg", "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/09/viator-insider-account_9179657-45sq.jpg", "sslSupported": false, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/3a/viator_photographer_394530-jpg-photo_29347642-1536tall.jpg", "productCode": "5156SHARK", "caption": "Shark Reef Aquarium at Mandalay Bay.", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/3a/viator_photographer_394530-jpg-photo_29347642-133sq.jpg", "ownerId": 9179657, "timeUploaded": "2017-12-05", "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/3a/viator_photographer_394530-jpg-photo_29347642-770tall.jpg", "photoId": 29347642, "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/3a/viator_photographer_394530-jpg-photo_29347642-260tall.jpg", "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/09/viator-insider-account_9179657-45sq.jpg", "sslSupported": false, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/2b/viator_photographer_394518-jpg-photo_29347627-1536tall.jpg", "productCode": "5156SHARK", "caption": "A stingray swimming around the Shark Reef Aquarium at Mandalay Bay.", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/2b/viator_photographer_394518-jpg-photo_29347627-133sq.jpg", "ownerId": 9179657, "timeUploaded": "2017-12-05", "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/2b/viator_photographer_394518-jpg-photo_29347627-770tall.jpg", "photoId": 29347627, "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/2b/viator_photographer_394518-jpg-photo_29347627-260tall.jpg", "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/09/viator-insider-account_9179657-45sq.jpg", "sslSupported": false, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/27/viator_photographer_394499-jpg-photo_29347623-1536tall.jpg", "productCode": "5156SHARK", "caption": "Hammerhead shark at the Shark Reef Aquarium at Mandalay Bay.", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/27/viator_photographer_394499-jpg-photo_29347623-133sq.jpg", "ownerId": 9179657, "timeUploaded": "2017-12-05", "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/27/viator_photographer_394499-jpg-photo_29347623-770tall.jpg", "photoId": 29347623, "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/27/viator_photographer_394499-jpg-photo_29347623-260tall.jpg", "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/09/viator-insider-account_9179657-45sq.jpg", "sslSupported": false, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/1e/viator_photographer_394526-jpg-photo_29347614-1536tall.jpg", "productCode": "5156SHARK", "caption": "Jellyfish at the Shark Reef Aquarium at Mandalay Bay.", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/1e/viator_photographer_394526-jpg-photo_29347614-133sq.jpg", "ownerId": 9179657, "timeUploaded": "2017-12-05", "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/1e/viator_photographer_394526-jpg-photo_29347614-770tall.jpg", "photoId": 29347614, "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/1e/viator_photographer_394526-jpg-photo_29347614-260tall.jpg", "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/09/viator-insider-account_9179657-45sq.jpg", "sslSupported": false, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/0f/viator_photographer_394532-jpg-photo_29347599-1536tall.jpg", "productCode": "5156SHARK", "caption": "Shark swimming at the Shark Reef Aquarium at Mandalay Bay.", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/0f/viator_photographer_394532-jpg-photo_29347599-133sq.jpg", "ownerId": 9179657, "timeUploaded": "2017-12-05", "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/0f/viator_photographer_394532-jpg-photo_29347599-770tall.jpg", "photoId": 29347599, "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/0f/viator_photographer_394532-jpg-photo_29347599-260tall.jpg", "title": "Viator_Photographer_394532.jpg" }, { "sortOrder": 7, "ownerName": "Anonymous", "ownerCountry": null, "productTitle": null, "productUrlName": null, "ownerAvatarURL": null, "sslSupported": false, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/48/fish-are-friends-not-food-photo_11060808-1536tall.jpg", "productCode": null, "caption": "Fishy faces", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/48/fish-are-friends-not-food-photo_11060808-133sq.jpg", "ownerId": 2, "timeUploaded": "2015-01-09", "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/48/fish-are-friends-not-food-photo_11060808-770tall.jpg", "photoId": 11060808, "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/48/fish-are-friends-not-food-photo_11060808-260tall.jpg", "title": "Fish are friends, not food" }, { "sortOrder": 8, "ownerName": "Anonymous", "ownerCountry": null, "productTitle": null, "productUrlName": null, "ownerAvatarURL": null, "sslSupported": false, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/29/shark-reef-photo_11060777-1536tall.jpg", "productCode": null, "caption": "Make a fishy face!", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/29/shark-reef-photo_11060777-133sq.jpg", "ownerId": 2, "timeUploaded": "2015-01-09", "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/29/shark-reef-photo_11060777-770tall.jpg", "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, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/04/statue-photo_11060740-1536tall.jpg", "productCode": null, "caption": "Underwater at the aquarium", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/04/statue-photo_11060740-133sq.jpg", "ownerId": 2, "timeUploaded": "2015-01-09", "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/04/statue-photo_11060740-770tall.jpg", "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, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/f8/fish-photo_11060728-1536tall.jpg", "productCode": null, "caption": "Fish and sharks at the Shark Reef Aquarium", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/f8/fish-photo_11060728-133sq.jpg", "ownerId": 2, "timeUploaded": "2015-01-09", "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/f8/fish-photo_11060728-770tall.jpg", "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, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/f0/shark-reef-photo_11060720-1536tall.jpg", "productCode": null, "caption": "At Mandalay Bay Hotel and Casino", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/f0/shark-reef-photo_11060720-133sq.jpg", "ownerId": 2, "timeUploaded": "2015-01-09", "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/f0/shark-reef-photo_11060720-770tall.jpg", "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, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/8d/admiring-the-sharks-photo_11060621-1536tall.jpg", "productCode": null, "caption": "Lots of sharks and marine creatures in this exhibit", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/8d/admiring-the-sharks-photo_11060621-133sq.jpg", "ownerId": 2, "timeUploaded": "2015-01-09", "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/8d/admiring-the-sharks-photo_11060621-770tall.jpg", "photoId": 11060621, "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/8d/admiring-the-sharks-photo_11060621-260tall.jpg", "title": "Admiring the sharks" }, { "sortOrder": 13, "ownerName": "Anonymous", "ownerCountry": null, "productTitle": null, "productUrlName": null, "ownerAvatarURL": null, "sslSupported": false, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/81/mandalay-bay-hotel-and-casino-photo_11060609-1536tall.jpg", "productCode": null, "caption": "Aquarium", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/81/mandalay-bay-hotel-and-casino-photo_11060609-133sq.jpg", "ownerId": 2, "timeUploaded": "2015-01-09", "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/81/mandalay-bay-hotel-and-casino-photo_11060609-770tall.jpg", "photoId": 11060609, "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/81/mandalay-bay-hotel-and-casino-photo_11060609-260tall.jpg", "title": "Mandalay Bay Hotel and Casino" }, { "sortOrder": 14, "ownerName": "Anonymous", "ownerCountry": null, "productTitle": null, "productUrlName": null, "ownerAvatarURL": null, "sslSupported": false, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/7a/excited-to-see-the-fishies-photo_11060602-1536tall.jpg", "productCode": null, "caption": "On the escalator heading up to the aquarium", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/7a/excited-to-see-the-fishies-photo_11060602-133sq.jpg", "ownerId": 2, "timeUploaded": "2015-01-09", "editorsPick": false, "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/7a/excited-to-see-the-fishies-photo_11060602-770tall.jpg", "photoId": 11060602, "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/7a/excited-to-see-the-fishies-photo_11060602-260tall.jpg", "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": "

Great place to spend a afternoon. Beautiful fish, sharks, jelly fish, turtles and so much more. Touching a stingray was fun too.

", "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": "

Great place to see different sharks and fish, great experience. Really enjoyed it as I was travelling alone

", "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": "

Wonderful I thinks the word well maintained. Beautiful and a great way to spend time . Loved the vibe there

", "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": "

Grandparents and granddaughter and great grandson time together. We had a good time and will visit again. Thank you

", "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": "

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

", "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": "

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
\nIs a definite plus. Great experience fabulous time!

", "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": "

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.

", "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": "

Really nice aquarium. Enjoyed reading the different plaques about certain sealife. Liked touching the little sting rays/ horseshoe crabs.

", "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": "

must do this it is so brilliant. a must do. thank you

", "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": "

Some great tanks.

", "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": "

Very interesting, enjoyed all the the different species

", "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": "

excellent venue loved it

", "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": "

It was a wonderful experience. You see all the different types of sharks, and many other breeds. Highly recommended.

", "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": "

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.

", "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": "

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!

", "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": "

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

", "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": "

This tour was great and well worth our time. Loved this experience and getting to touch a stingray.

", "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": "

Granddaughter loved the exhibit. A worthwhile adventure for your family.

", "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": "

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.

", "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/33/sergio-s-account_18104627-45sq.jpg", "sslSupported": false, "productCode": "5156SHARK", "submissionDate": "2017-04-22", "rating": 5, "review": "

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

", "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/7e/fernando-d-account_22330494-45sq.jpg", "sslSupported": false, "productCode": "5156SHARK", "submissionDate": "2017-03-24", "rating": 5, "review": "

Amazing sea animals to see.

", "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/f9/marie-s-account_22521337-45sq.jpg", "sslSupported": false, "productCode": "5156SHARK", "submissionDate": "2017-02-20", "rating": 5, "review": "

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!

", "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": "

Great variety of aquatic animals to see, fun for the whole family

", "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/f0/christina-h-account_20040176-45sq.jpg", "sslSupported": false, "productCode": "5156SHARK", "submissionDate": "2016-10-31", "rating": 5, "review": "

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.

", "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, "webURL": "http://shop.live.rc.viator.com/tours/Las-Vegas/Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino/d684-5156SHARK?eap=brand-subbrand-17895&aid=vba17895en", "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 \u2014 of course \u2014 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", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/01/34/63.jpg", "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": "
Get up close and personal with some of the most fearsome creatures of the deep at Mandalay Bay\u2019s Shark Reef Aquarium. Designed to be a total sensory experience\u2014with two underwater tunnels and multiple tanks and exhibits\u2014the aquarium is home to more than 2,000 animals, including many species of sharks.

The Basics
Wander through a viewing tunnel at the Shark Reef Aquarium\u2019s largest exhibit, a shipwreck surrounded by 1.3 million gallons (4.9 million liters) of water. In addition to sharks, you\u2019ll 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.

Admission to the aquarium is included in some multi-attraction Las Vegas sightseeing passes.

Things to Know Before You Go

How to Get There
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\u2013Luxor\u2013Mandalay Bay tram. 

When to Get There
The aquarium is open daily, usually with extended hours on weekends and over the summer. Last entry is an hour before closing. There\u2019s no set schedule for animal feedings, but they often take place between 10am and 4pm.

Aquariums in Las Vegas
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.
", "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": "

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.

\n \nThe Shark Reef Aquarium was designed to be a \u201ctotal sensory experience,\u201d 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.

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

", "overviewSummary": "
Get up close and personal with some of the most fearsome creatures of the deep at Mandalay Bay\u2019s Shark Reef Aquarium. Designed to be a total sensory experience\u2014with two underwater tunnels and multiple tanks and exhibits\u2014the aquarium is home to more than 2,000 animals, including many species of sharks.

The Basics
Wander through a viewing tunnel at the Shark Reef Aquarium\u2019s largest exhibit, a shipwreck surrounded by 1.3 million gallons (4.9 million liters) of water. In addition to sharks, you\u2019ll 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.

Admission to the aquarium is included in some multi-attraction Las Vegas sightseeing passes.

Things to Know Before You Go

How to Get There
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\u2013Luxor\u2013Mandalay Bay tram. 

When to Get There
The aquarium is open daily, usually with extended hours on weekends and over the summer. Last entry is an hour before closing. There\u2019s no set schedule for animal feedings, but they often take place between 10am and 4pm.

Aquariums in Las Vegas
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.
", "pagePrimaryLanguage": "en", "attractionLatitude": 36.09215, "attractionLongitude": -115.17665, "attractionStreetAddress": "3950 Las Vegas Blvd South", "attractionCity": "Las Vegas", "attractionState": "Nevada", "destinationId": 684, "thumbnailHiResURL": "http://cache-graphicslib.viator.com/graphicslib/page-images/742x525/563331_Viator_Photographer_394530.jpg", "photoCount": 14, "primaryDestinationId": 684, "seoId": 14235, "productCount": 1, "primaryDestinationName": "Las Vegas", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/page-images/563331_Viator_Photographer_394530.jpg", "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" } }, "attraction-reviews-example": { "summary": "/attraction/reviews", "value": { "errorReference": null, "data": [ { "sortOrder": 1, "ownerName": "Natalia brigham 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, "viatorNotes": null, "productCode": "5156SHARK", "submissionDate": "2020-03-16", "rating": 1, "review": "

Overpriced and very crowded. There are tons of interesting things to do in Vegas for families with kids but Shark Reef is NOT one of them...

", "publishedDate": "2020-03-16", "ownerId": 6500184, "viatorFeedback": null, "reviewId": 71781077 }, { "sortOrder": 2, "ownerName": "Philip J", "ownerCountry": null, "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino", "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino", "ownerAvatarURL": null, "sslSupported": false, "viatorNotes": null, "productCode": "5156SHARK", "submissionDate": "2018-04-02", "rating": 1, "review": "

Took longer to walk from the parking garage than it did to go through it.

", "publishedDate": "2018-04-02", "ownerId": 13474719, "viatorFeedback": null, "reviewId": 31509091 }, { "sortOrder": 3, "ownerName": "Graham J", "ownerCountry": null, "productTitle": "Shark Reef at Mandalay Bay Hotel and Casino", "productUrlName": "Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino", "ownerAvatarURL": null, "sslSupported": false, "viatorNotes": "", "productCode": "5156SHARK", "submissionDate": "2015-03-02", "rating": 1, "review": "

this was nothing like we expected.....it was a quick tour, not worth the $$

", "publishedDate": "2015-03-03", "ownerId": 11252090, "viatorFeedback": "", "reviewId": 11408189 } ], "dateStamp": "2020-04-20T22:37:31+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 97, "errorMessageText": null, "vmid": "331004" } }, "attraction-photos-example": { "summary": "attraction/photos", "value": { "errorReference": null, "data": [ { "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/09/viator-insider-account_9179657-45sq.jpg", "sslSupported": false, "productCode": "5156SHARK", "timeUploaded": "2017-12-05", "caption": "Shark Reef Aquarium at Mandalay Bay.", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/3f/viator_photographer_394507-jpg-photo_29347647-133sq.jpg", "ownerId": 9179657, "editorsPick": false, "photoId": 29347647, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/3f/viator_photographer_394507-jpg-photo_29347647-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/3f/viator_photographer_394507-jpg-photo_29347647-260tall.jpg", "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/3f/viator_photographer_394507-jpg-photo_29347647-770tall.jpg", "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/09/viator-insider-account_9179657-45sq.jpg", "sslSupported": false, "productCode": "5156SHARK", "timeUploaded": "2017-12-05", "caption": "Shark Reef Aquarium at Mandalay Bay.", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/3a/viator_photographer_394530-jpg-photo_29347642-133sq.jpg", "ownerId": 9179657, "editorsPick": false, "photoId": 29347642, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/3a/viator_photographer_394530-jpg-photo_29347642-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/3a/viator_photographer_394530-jpg-photo_29347642-260tall.jpg", "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/3a/viator_photographer_394530-jpg-photo_29347642-770tall.jpg", "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", "ownerAvatarURL": "http://cache-graphicslib.viator.com/graphicslib/media/09/viator-insider-account_9179657-45sq.jpg", "sslSupported": false, "productCode": "5156SHARK", "timeUploaded": "2017-12-05", "caption": "A stingray swimming around the Shark Reef Aquarium at Mandalay Bay.", "thumbnailURL": "http://cache-graphicslib.viator.com/graphicslib/media/2b/viator_photographer_394518-jpg-photo_29347627-133sq.jpg", "ownerId": 9179657, "editorsPick": false, "photoId": 29347627, "photoHiResURL": "http://cache-graphicslib.viator.com/graphicslib/media/2b/viator_photographer_394518-jpg-photo_29347627-1536tall.jpg", "photoMediumResURL": "http://cache-graphicslib.viator.com/graphicslib/media/2b/viator_photographer_394518-jpg-photo_29347627-260tall.jpg", "photoURL": "http://cache-graphicslib.viator.com/graphicslib/media/2b/viator_photographer_394518-jpg-photo_29347627-770tall.jpg", "title": "Viator_Photographer_394518.jpg" } ], "dateStamp": "2020-04-20T22:45:36+0000", "errorType": null, "errorCodes": [], "errorMessage": null, "errorName": null, "extraInfo": {}, "extraObject": null, "success": true, "totalCount": 14, "errorMessageText": null, "vmid": "331002" } }, "attraction-products-example": { "summary": "/attraction/products", "value": { "errorReference": null, "data": [ { "sortOrder": 2, "supplierName": "MGM Resorts International", "currencyCode": "USD", "catIds": null, "subCatIds": null, "webURL": "http://shop.live.rc.viator.com/tours/Las-Vegas/Shark-Reef-at-Mandalay-Bay-Hotel-and-Casino/d684-5156SHARK?eap=brand-subbrand-17895&aid=vba17895en", "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", "thumbnailURL": "https://hare-media-cdn.tripadvisor.com/media/attractions-splice-spp-154x109/07/01/34/63.jpg", "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 \u2014 of course \u2014 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" } }, "support-customercare-example": { "summary": "/support/customercare", "value": { "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" } } } } }