Viator Taxonomy services API

Taxonomy services

Operations 3

GET /taxonomy/destinations /taxonomy/destinations #
GET /taxonomy/categories /taxonomy/categories #
POST /taxonomy/attractions /taxonomy/attractions #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/viator-taxonomy-services-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

viator-taxonomy-services-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Viator Taxonomy services API
  license:
    name: CC BY 4.0
    url: https://creativecommons.org/licenses/by/4.0/au
  version: '1.0'
  description: 'Operations tagged Taxonomy services across 2 of this provider''s published API definitions: viator-affiliate-api-v1-openapi.json, viator-merchant-api-v1-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://viatorapi.viator.com/service
  description: Production server
- url: https://viatorapi.sandbox.viator.com/service
  description: Sandbox server (uses test data)
security:
- API-key: []
- Legacy-API-key: []
tags:
- name: Taxonomy services
  description: Taxonomy services
paths:
  /taxonomy/destinations:
    get:
      tags:
      - Taxonomy services
      summary: /taxonomy/destinations
      operationId: taxonomyDestinations
      description: '- Retrieves all the country taxonomy/city nodes as a flat list

        - Returns a complete list of Viator destinations, including destination names and parent identifiers

        - Used to provide navigation through drill down lists or combo boxes

        '
      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

                              - e.g. `''8.77.673''` for Chicago

                              - format: [top level `parentId`].[any additional `parentId`].[`destinationId`]

                              '
                            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

                              - use this value as the `destId` input field for other Viator API services

                              '
                          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'
    servers:
    - url: https://viatorapi.viator.com/service
      description: Production server
  /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

        - 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

        - **Note:** If no `destId` is passed, `productCount` and `thumbnailURL` will be `null` as they are destination-specific fields

        '
      parameters:
      - $ref: '#/components/parameters/acceptLanguage'
      - in: query
        name: destId
        schema:
          type: integer
        description: '**unique numeric identifier** of the destination to enquire about (optional)

          - `destinationId` is returned by [/taxonomy/destinations](#operation/taxonomyDestination)

          '
        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`

                              - **note**: will be `null` if no `destId` is included in the query

                              '
                          thumbnailURL:
                            type: string
                            description: '**URL** for this category''s thumbnail image, selected from the most popular product within the category

                              - **note:** will be `null` if no `destId` is included in the query

                              '
                          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'
    servers:
    - url: https://viatorapi.viator.com/service
      description: Production server
  /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

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

        '
      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:

                    - `''RECOMMENDED''` – sorted in order of recommendation (**Note**: What Viator gets paid impacts this sort order)

                    - `''SEO_ALPHABETICAL''` – Alphabetical (A->Z)

                    '
            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

                              - use as an input for [/search/products](#operation/searchProducts)

                              '
                            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'
    servers:
    - url: https://viatorapi.viator.com/service
      description: Production server
components:
  schemas:
    destinationType:
      type: string
      enum:
      - CITY
      - COUNTRY
      - REGION
      description: '**destination type specifier**

        - `''COUNTRY''`: destination is a country

        - `''REGION''`: destination is a recognized region of a country, such as a state, island within a country, stretch of coastline, etc.

        - `''CITY''`: destination is a city

        '
    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

            - See: [Exception error codes](#section/Appendices/Exception-error-codes) for a list of possible error codes

            '
          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

            - `true`: the request was successful with no errors

            - `false`: an error was encountered

            '
        totalCount:
          type: integer
          example: 1
          description: '**number** of results available for *this* service

            '
        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'
    iataCode:
      type: string
      description: '**IATA airport code** for the destination

        - a three-letter code defined by the International Air Transport Association (IATA) used to identify many airports around the world

        - the IATA code is also known as an ''IATA location identifier'', ''IATA station code'' or simply a ''location identifier''

        - the IATA code is <u>not available</u> for destinations with a destination type of `''COUNTRY''` or `''REGION''`, as there could be more than one airport within a destination

        '
      example: null
    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"
    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
    defaultCurrencyCode:
      type: string
      description: Default currency code
    destinationType_2:
      type: string
      enum:
      - CITY
      - COUNTRY
      - REGION
      description: '**destination type specifier**

        - `"COUNTRY"`: destination is a country

        - `"REGION"`: destination is a recognized region of a country, such as a state, island within a country, stretch of coastline, etc.

        - `"CITY"`: destination is a city

        '
    basicErrorModel_2:
      type: object
      properties:
        errorReference:
          type:
          - string
          - 'null'
          description: '**reference number** of *this* error'
        dateStamp:
          type:
          - string
          - 'null'
          description: '**timestamp** of *this* response'
        errorType:
          type:
          - string
          - 'null'
          description: '**code** specifying the type of error'
        errorCodes:
          type:
          - array
          - 'null'
          description: '**array** of error codes pertaining to *this* error

            - See: [Viator API error codes](#section/Appendices/Viator-API-error-codes) for a list of possible error codes

            '
          items:
            type: string
          example: []
        errorMessage:
          type:
          - array
          - 'null'
          description: '**array** of error message strings'
        errorName:
          type:
          - string
          - 'null'
          description: '**name** of *this* type of error'
        extraInfo:
          type:
          - object
          - 'null'
          description: ignore (Viator only)
        extraObject:
          type:
          - object
          - 'null'
          description: ignore (Viator only)
        success:
          type:
          - boolean
          - 'null'
          description: '**boolean indicator** of *this* request''s outcome

            - `true`: the request was successful with no errors

            - `false`: an error was encountered

            '
        totalCount:
          type:
          - integer
          - 'null'
          description: '**number** of results available for *this* service

            '
        errorMessageText:
          type:
          - string
          - 'null'
          description: '**array** of error message strings in plain text'
        vmid:
          type:
          - string
          - 'null'
          description: '**unique numeric id** of the server that processed *this* request'
    iataCode_2:
      type:
      - string
      - 'null'
      description: '**IATA airport code** for the destination

        - a three-letter code defined by the International Air Transport Association (IATA) used to identify many airports around the world

        - the IATA code is also known as an ''IATA location identifier'', ''IATA station code'' or simply a ''location identifier''

        - the IATA code is <u>not available</u> for destinations with a destination type of `''COUNTRY''` or `''REGION''`, as there could be more than one airport within a destination

        '
    webURL_2:
      type:
      - string
      - 'null'
      description: ignore (Viator only)
    topX_2:
      type: string
      description: "**start and end rows** to return in the format {start}-{end}\n- e.g. `'1-10'`, `'11-20'`\n\n**Note**: \n- the maximum number of rows per request is 100; 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
  examples:
    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'
    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
          

# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/viator/refs/heads/main/openapi/viator-taxonomy-services-api-openapi.yml