openapi: 3.1.0
info:
  title: Musement API
  description: "---\n---\n\nFor merchant or affiliate partners wishing to use the Musement API.\n\n# Authentication\n\nSee the [Authentication section](/api/getting-started/authentication/) for details on how to authenticate with the API.\n\n# Release notes\n\n## 2024-06-18\n\n### Endpoints\n\n* `GET /activities/{activityUuid}/dates/{date}`\n\t* Changed default `min_buy` value from `-1` to `1`\n\n## 2024-02-21\n\n### Endpoints\n\n* Added `GET /orders/{orderUuid}/refunds`\n\t* Returns an array of paid refunds for an order\n\n## 2024-02-20\n\n### Endpoints\n\n* `GET /activities/{activityUuid}/dates/{date}`\n\t* Added `availability`, `max_buy` and `min_buy` properties to timeslots. For more info, [check out our guide](/api/booking-flow/product/quantities/)\n"
  termsOfService: https://www.musement.com/
  contact:
    email: api-distribution@tui.com
    name: API distribution team
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: 3.5.0
servers:
  - url: https://sandbox.musement.com/api/v3
    description: Sandbox server
  - url: https://api.musement.com/api/v3
    description: Production server
paths:
  /activities:
    get:
      summary: Search activities
      description: Returns an array of activities and additional meta information.
      operationId: get/activities
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/available_from'
        - $ref: '#/components/parameters/available_language_in'
        - $ref: '#/components/parameters/available_to'
        - name: category_in
          description: >-
            Filter results to those which use at least one of the specified
            categories.
          explode: false
          in: query
          schema:
            example:
              - new-activities
            items:
              title: Category code
              type: string
            type: array
          style: form
        - $ref: '#/components/parameters/city_in'
        - $ref: '#/components/parameters/coordinates'
        - name: country_in
          description: >-
            Filter results to those which are connected to at least one of the
            specified countries.
          explode: false
          in: query
          schema:
            example:
              - IT
              - US
            items:
              title: Country ISO code
              maxLength: 2
              minLength: 2
              type: string
            type: array
          style: form
        - $ref: '#/components/parameters/default_price_range'
        - $ref: '#/components/parameters/distance'
        - $ref: '#/components/parameters/discounted'
        - $ref: '#/components/parameters/duration_range'
        - $ref: '#/components/parameters/extend_content_fields'
        - $ref: '#/components/parameters/extend_other_languages'
        - $ref: '#/components/parameters/feature_in'
        - $ref: '#/components/parameters/flavour_in'
        - $ref: '#/components/parameters/flavour_not_in'
        - $ref: '#/components/parameters/fuzziness_level'
        - $ref: '#/components/parameters/include_facets'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/pickup_in'
        - $ref: '#/components/parameters/preferred_seller_boost'
        - $ref: '#/components/parameters/preferred_seller_code'
        - $ref: '#/components/parameters/seller_in'
        - $ref: '#/components/parameters/text'
        - $ref: '#/components/parameters/text_operator'
        - $ref: '#/components/parameters/service_in'
        - $ref: '#/components/parameters/sort_by'
        - $ref: '#/components/parameters/temporary'
        - $ref: '#/components/parameters/venue_in'
        - $ref: '#/components/parameters/vertical_in'
        - $ref: '#/components/parameters/zero_terms_query'
      responses:
        '200':
          $ref: '#/components/responses/ActivitySearchResults'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
        - searching-activities
  /activities-related:
    get:
      summary: Search cities, lists and venues
      description: >
        This endpoint returns resources which are related to activities: cities,
        lists and/or venues.


        Its query parameters are similar to those used in the `/activities` and
        `/autocomplete` endpoints, but it does not return activities.
      operationId: get/activities-related
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/city_limit'
        - $ref: '#/components/parameters/city_offset'
        - $ref: '#/components/parameters/coordinates'
        - $ref: '#/components/parameters/extend_content_fields'
        - $ref: '#/components/parameters/extend_other_languages'
        - $ref: '#/components/parameters/fuzziness_level'
        - $ref: '#/components/parameters/list_limit'
        - $ref: '#/components/parameters/list_offset'
        - name: minimum_events
          description: >-
            Filter results to those which are connected to the specified minimum
            number of activities.
          in: query
          schema:
            default: 1
            minimum: 1
            type: integer
        - name: sort_by
          description: >
            Sort results by one or more of the following values:


            * `relevance`: From lowest to highest relevance value.

            * `-relevance`: From highest to lowest relevance value.

            * `distance`: Results closest to the `coordinates` parameter appear
            first.

            * `-distance`: Results farthest from the `coordinates` parameter
            appear first.


            This parameter will accept two values, separated with a comma.


            Items which do not use *relevance* or *coordinates* will not be
            affected by this parameter. 
          in: query
          explode: false
          style: form
          schema:
            type: array
            items:
              type: string
              enum:
                - distance
                - '-distance'
                - relevance
                - '-relevance'
        - $ref: '#/components/parameters/text'
        - $ref: '#/components/parameters/text_operator'
        - $ref: '#/components/parameters/venue_limit'
        - $ref: '#/components/parameters/venue_offset'
        - $ref: '#/components/parameters/zero_terms_query'
      responses:
        '200':
          description: Search results
          content:
            application/json:
              schema:
                items:
                  example:
                    items:
                      - api_url: https://sandbox.musement.com/api/v3/cities/1
                        cover_image: >-
                          https://images-sandbox.musement.com/cover/0002/39/milan-vittorio-emanuele-ii-gallery-italy-jpg_header-138313.jpeg
                        events_count: 161
                        id: '1'
                        title: Milan
                        url: https://.sbox.musement.com/us/milan/
                    matched: true
                    type: cities
                  properties:
                    items:
                      items:
                        properties:
                          api_url:
                            description: >-
                              The API endpoint to use for more information about
                              the item.
                            format: uri
                            type: string
                          cover_image:
                            description: A URL for the item's cover image.
                            format: uri
                            type: string
                          events_count:
                            description: The number of activities connected to the item.
                            minimum: 0
                            type: integer
                          id:
                            description: >-
                              The numeric ID of the item, represented as a
                              string.
                            type: string
                          title:
                            description: >-
                              The title of the item, translated based on the
                              `Accept-Language` header value.
                          url:
                            description: >-
                              An automatically generated Musement URL for the
                              item based on the `X-Musement-Market` header and
                              item properties. The URL is only valid for select
                              `X-Musement-Market` values and items.
                            format: uri
                            type: string
                        required:
                          - api_url
                          - cover_image
                          - events_count
                          - id
                          - title
                          - url
                        type: object
                      type: array
                      uniqueItems: true
                    matched:
                      description: >-
                        When `true`, the `items` property contains items which
                        exactly match the `text` query parameter value.
                      type: boolean
                    type:
                      description: The type of items represented.
                      enum:
                        - cities
                        - lists
                        - venues
                      type: string
                  type: object
                type: array
                uniqueItems: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - misc-removed
  /activities/{activityUuid}:
    get:
      summary: Get activity
      description: Returns an activity
      operationId: get/activities/activityUuid
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Activity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
        - activity-info
  /activities/{activityUuid}/bundles:
    get:
      summary: Get bundles for activity
      description: >
        Bundles are recommendations of other activities to purchase together
        with the current activity.


        Recommendations are based on activities which are often purchased
        together by other customers. Sometimes a bundle may contain a
        promotional discount which can be applied to one or both activities when
        added to cart.
      operationId: get/activities/activityUuid/bundles
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Bundles for activity
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Bundle'
                type: array
                uniqueItems: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          description: 'Not found: activity does not exist or it has no bundles'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '1400'
                      message: No bundles for the activity.
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
  /activities/{activityUuid}/comments:
    get:
      summary: Search comments about activity
      deprecated: true
      description: >
        *Comments* are an older form of review submitted directly to the
        Musement platform.


        This endpoint has been replaced by the
        `/activities/{activityUuid}/reviews` endpoint, which incorporates
        reviews from various sources.
      operationId: get/activities/activityUuid/comments
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/include_empty'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/locale'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/rating_in'
        - name: sort_by
          in: query
          description: |
            Sort comments by one of the following choices:

            * `DATE`: From least recent `sent_at` value to most recent.
            * `-DATE`: From most recent `sent_at` value to least recent
            * `RATING`: From lowest `rating` to highest.
            * `-RATING`: From highest `rating` to lowest.
          schema:
            type: string
            enum:
              - '-DATE'
              - '-RATING'
              - DATE
              - RATING
      responses:
        '200':
          description: Comments about activity
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Comment'
                type: array
                uniqueItems: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities-deprecated
  /activities/{activityUuid}/contents/{locale}:
    get:
      summary: Get translation for activity
      description: Returns a translation (if it exists) for an activity.
      operationId: get/activities/activityUuid/contents/locale
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - name: locale
          in: path
          required: true
          schema:
            title: Language code
            minLength: 2
            maxLength: 5
            type: string
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Translation for activity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityTranslation'
        '404':
          description: One of the resources does not exist
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '1400'
                      message: Content for 'it' doesn't exist
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
  /activities/{activityUuid}/country:
    get:
      summary: Get country for activity
      description: |
        Returns the country associated with the activity's *default* city.
      operationId: get/activities/activityUuid/country
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Country for activity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Country'
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
        - activity-info
  /activities/{activityUuid}/dates:
    get:
      summary: Search dates in activity
      description: >
        Depending on the activity configuration, this endpoint may return price
        info in addition to dates.


        For activities with pickups, the `pickup` query parameter *must* be
        used.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/guide/booking-flows/booking-flow-of-activities-with-pickup-points/
      operationId: get/activities/activityUuid/dates
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/date_from'
        - $ref: '#/components/parameters/date_to'
        - $ref: '#/components/parameters/discounts'
        - $ref: '#/components/parameters/pickup'
        - $ref: '#/components/parameters/tickets_number'
      responses:
        '200':
          description: Dates for activity
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Date'
                type: array
                uniqueItems: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
        - dates
  /activities/{activityUuid}/dates/{date}:
    get:
      summary: Get schedule for date in activity
      description: >
        Returns all options, times, holders, languages and products for the
        specified date. A product's type and ID, required for adding a product
        to cart, can be found in the response.


        For activities with pickups, the `pickup` query parameter *must* be
        used.


        A 422 status code response means the requested date is not available,
        either temporarily or permanently. Customers are encouraged to try a
        different date.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/guide/booking-flows/booking-flow-of-activities-with-pickup-points/
      operationId: get/activities/activityUuid/dates/dates
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/date'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/discounts'
        - $ref: '#/components/parameters/pickup'
        - $ref: '#/components/parameters/tickets_number'
      responses:
        '200':
          description: Schedule for date
          content:
            application/json:
              schema:
                items:
                  properties:
                    groups:
                      description: >-
                        A group of available options and timeslots for a
                        schedule.
                      items:
                        $ref: '#/components/schemas/ScheduleGroup'
                      type: array
                      uniqueItems: true
                  type: object
                type: array
                uniqueItems: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          description: 'Not found: activity with UUID or date in activity do not exist'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '1402'
                      message: >-
                        Cant find schedule for the day 2022-04-02 | Required 1
                        ticket(s) | Pickup n/a
        '422':
          description: 'Unprocessable content: unable to get schedule for activity date'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '2201'
                      message: Cannot fetch dates for activity. Please try again later.
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
        - dates
  /activities/{activityUuid}/destinations:
    get:
      summary: Get cities for activity
      description: >
        Every activity has one *default* city which appears in the `/activities`
        and `/activities/{activityUuid}` endpoints. However, an activity may be
        connected to multiple cities.


        This endpoint lists all connected cities and indicates which one is the
        default.
      externalDocs:
        description: For more info, check out our guide.
        url: https://partner-api.musement.com/guide/activities/cities/
      operationId: get/activities/activityUuid/destinations
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Cities for activity
          content:
            application/json:
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/City'
                    - properties:
                        default:
                          description: >-
                            The default city for an activity always appears in
                            the `/activities` and `/activities/{activityUuid}`
                            endpoints.
                          example: true
                          type: boolean
                      required:
                        - default
                      type: object
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
        - activity-info
  /activities/{activityUuid}/extra-customer-data/schema:
    get:
      summary: Get extra customer data schema for activity
      description: >
        Extra customer data is information requested per reservation. You can
        use this endpoint for a *preview* of possible fields that might be used
        during the reservation flow.


        The response follows the [JSON Schema
        Specification](http://json-schema.org/) to describe the info requested
        for each participant.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/guide/activities/extra-customer-data-and-participants-info/
      operationId: get/activities/activityUuid/extra-customer-data/schema
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Extra customer data for activity
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/CustomerQuestions'
                  - example:
                      properties:
                        phone_number:
                          type: string
                          title: Phone number
                          propertyOrder: 1
                      required:
                        - phone_number
                      title: form
                      type: object
                    required:
                      - properties
                      - required
                      - title
                      - type
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
        - activity-info
  /activities/{activityUuid}/flavours:
    get:
      summary: Get flavours for activity
      description: >-
        Flavours are tags which provide additional information about an
        activity's characteristics.
      externalDocs:
        description: For more info, check out our guide.
        url: https://partner-api.musement.com/guide/activities/flavours/
      operationId: get/activities/activityUuid/flavours
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Flavours for activity
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Flavour'
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
        - activity-info
  /activities/{activityUuid}/media:
    get:
      summary: Get media for activity
      description: >
        The response contains an array of media items for the activity. Items
        are mainly images, but could also be video.


        Depending on the activity configuration, the cover image may or may not
        be part of the results. If none of the results is the cover image, you
        can get its URL from the `/activities/{activityUuid}` endpoint.
      operationId: get/activities/activityUuid/media
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Media for activity
          content:
            application/json:
              schema:
                items:
                  example:
                    id: 94516
                    is_cover: false
                    title: Via Appia at sunset
                    type: image
                    url: >-
                      https://images-sandbox.musement.com/default/0001/95/thumb_94516_default_header.jpeg?w=750&h=500
                  properties:
                    id:
                      description: The media item's numeric ID.
                      minimum: 1
                      type: integer
                    is_cover:
                      description: >-
                        Whether the media item should be used as an activity's
                        cover image or not.
                      type: boolean
                    title:
                      description: >-
                        The alternative text to use for the media item when
                        unable to display it.
                      type: string
                    type:
                      description: The type of media item.
                      enum:
                        - image
                        - video
                      type: string
                    url:
                      description: The URL for the media item.
                      format: uri
                      type: string
                  required:
                    - id
                    - is_cover
                    - title
                    - type
                    - url
                  type: object
                type: array
                uniqueItems: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
        - activity-info
  /activities/{activityUuid}/merchant-tags:
    get:
      summary: Get merchant tags for activity
      description: >
        This endpoint returns a list of merchant tags for an activity. Only
        merchant tags set up for the authenticated partner using a valid access
        token are returned.


        Some merchant partners request custom tags for activities to better
        categorize them on their own platform. Partners must define the tags and
        their criteria with the Strategic partnerships team before Musement can
        begin assigning tags to activities.
      operationId: get/activities/activityUuid/merchant-tags
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Merchant tags for activity
          content:
            application/json:
              schema:
                items:
                  title: Merchant tag
                  type: string
                example:
                  - Must have
                type: array
                uniqueItems: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      security:
        - Partner: []
      tags:
        - activities
  /activities/{activityUuid}/metadata/languages:
    get:
      summary: Get languages for activity
      description: >-
        Get all languages which may be used for a timeslot in the specified
        activity.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/guide/availability/timeslots-and-languages/
      operationId: get/activities/activityUuid/metadata/languages
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Languages for activity
          content:
            application/json:
              schema:
                properties:
                  languages:
                    description: >-
                      A list of languages that might be used during the
                      reservation flow.
                    items:
                      title: Language code
                      example: us
                      description: The language's unique two-character code.
                      maxLength: 2
                      minLength: 2
                      type: string
                    type: array
                    uniqueItems: true
                type: object
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
        - activity-info
  /activities/{activityUuid}/participants-info/schema:
    get:
      summary: Get participant info schema for activity
      description: >
        Participant info is required for each person in a reservation. You can
        use this endpoint for a *preview* of possible fields that might be used
        during the reservation flow.


        The response follows the [JSON Schema
        Specification](http://json-schema.org/) to describe the info requested
        for each participant.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/guide/activities/extra-customer-data-and-participants-info/
      operationId: get/activities/activityUuid/participants-info/schema
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Participant info for activity
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/CustomerQuestions'
                  - example:
                      properties:
                        firstname:
                          type: string
                          title: First name
                          propertyOrder: 1
                        lastname:
                          type: string
                          title: Last name
                          propertyOrder: 2
                      required:
                        - firstname
                        - lastname
                      title: participant
                      type: object
                    required:
                      - properties
                      - required
                      - title
                      - type
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/ParticipantInfo404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
        - activity-info
  /activities/{activityUuid}/pickups:
    get:
      summary: Get pickups for activity
      description: >-
        Some activities require selecting a pickup from this endpoint as part of
        the reservation flow.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/guide/catalog-overview/pickup-activities/
      operationId: get/activities/activityUuid/pickups
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Pickups for activity
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ActivityPickup'
                type: array
                uniqueItems: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
        - pickups
  /activities/{activityUuid}/refund-policies:
    get:
      summary: Get refund policies for activity
      description: >
        Returns an array of refund policies for the activity.


        Activities without refund policies are non-refundable. Depending on the
        configuration, an activity without refund policies will return either an
        empty or array or a 404 status code response.


        A 404 status code response could also mean the activity does not exist.
      externalDocs:
        description: For more info, check out our guide.
        url: https://partner-api.musement.com/guide/activities/refund-policies/
      operationId: get/activities/activityUuid/refund-policies
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Refund policies for activity
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/RefundPolicy'
                type: array
                uniqueItems: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/RefundPolicy404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
        - activity-info
  /activities/{activityUuid}/related-activities:
    get:
      summary: Get activities related to activity
      deprecated: true
      description: >-
        Returns activities that share the same city, country and/or vertical of
        the specified activity, sorted by the `relevance` property.
      operationId: get/activities/activityUuid/related-activities
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: limit
          description: Limit the maximum number of results to include in the response.
          in: query
          schema:
            default: 6
            type: integer
      responses:
        '200':
          description: Related activities
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
                uniqueItems: true
        '404':
          description: 'Not found: activity does not exist or has no related activities'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '1400'
                      message: No related activities.
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities-deprecated
  /activities/{activityUuid}/safety-information:
    get:
      summary: Get Covid-19 information for activity
      deprecated: true
      description: >
        Returns an array of Covid-19 requirements. Only those with an
        `is_active` property value of `true` are in effect for the activity.


        Informative descriptions for each item are not provided by this
        endpoint.
      externalDocs:
        description: For more info, including item descriptions, check out our guide.
        url: https://partner-api.musement.com/guide/activities/safety-information/
      operationId: get/activities/activityUuid/safety-information
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Covid-19 information for activity
          content:
            application/json:
              schema:
                items:
                  title: Covid-19 safety information
                  example:
                    id: 7
                    is_active: true
                    slug: guest-face-mask
                  properties:
                    id:
                      description: The numeric safety information ID.
                      minimum: 1
                      type: integer
                    is_active:
                      description: >-
                        Whether the safety information is valid for the current
                        activity or not.
                      type: boolean
                    slug:
                      description: A URL-friendly slug for the safety information.
                      type: string
                  required:
                    - id
                    - is_active
                    - slug
                  type: object
                type: array
                uniqueItems: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities-deprecated
  /activities/{activityUuid}/taxonomies:
    get:
      summary: Get taxonomies for activity
      description: >-
        Taxonomies provide information about the activity's highlights,
        inclusions and exclusions.
      externalDocs:
        description: For more info, check out our guide.
        url: https://partner-api.musement.com/guide/activities/taxonomy/
      operationId: get/activities/activityUuid/taxonomies
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Taxonomies for activity
          content:
            application/json:
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/Taxonomy'
                    - required:
                        - name
                        - type
                        - uuid
                type: array
                uniqueItems: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - activities
        - activity-info
  /activities/{activityUuid}/reviews:
    get:
      summary: Search reviews for activity
      description: Returns an array of reviews for an activity.
      operationId: get/activities/activityUuid/reviews
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/locale'
        - name: limit
          description: Limit the maximum number of reviews to include in the response.
          in: query
          schema:
            default: 6
            maximum: 500
            minimum: 1
            type: integer
        - name: page
          description: Get the page number of reviews, based on the `limit` parameter.
          in: query
          schema:
            default: 1
            minimum: 1
            type: integer
        - name: rating[between][]
          description: >-
            Filter the reviews by their `rating_value` property. Parameter
            accepts multiple ranges. The response contains reviews with a
            `rating_value` between at least one of the provided ranges. Each
            parameter requires two integer values, a minimum and maximum,
            separated by `..`.
          in: query
          schema:
            items:
              example: 1..7
              pattern: ^\d{1,3}\.\.\d{1,3}$
              type: string
            type: array
        - name: sort_by
          description: >
            Sort reviews by one of the following choices:


            * `HIGHEST-RATED`: From highest `rating_value` to lowest.

            * `LOWEST-RATED`: From lowest `rating_value` to highest.

            * `NEWEST`: From most recent `date` to least recent.

            * `PREFERRED-LANGUAGE`: Reviews written in the same language as the
            `Accept-Language` header appear first.
          in: query
          schema:
            default: NEWEST
            enum:
              - HIGHEST-RATED
              - LOWEST-RATED
              - NEWEST
              - PREFERRED-LANGUAGE
            type: string
        - name: traveler_type_in[]
          description: >
            Filter reviews to those which match any of the specified traveler
            types:


            * `ALONE`: The customer was traveling alone.

            * `AS-A-COUPLE`: The customer was traveling as a couple.

            * `WITH-FAMILY`: The customer was traveling with their family.

            * `WITH-FRIENDS`: The customer was traveling with friends.


            Using this parameter filters out reviews where customers did not
            specify their traveler type.
          in: query
          schema:
            items:
              $ref: '#/components/schemas/TravelerType'
            type: array
      responses:
        '200':
          description: Reviews for activity
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Review'
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
          headers:
            X-Number-Of-Elements:
              $ref: '#/components/headers/X-Number-Of-Elements'
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
            X-Total-Pages:
              $ref: '#/components/headers/X-Total-Pages'
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - reviews
    post:
      summary: Add review to activity
      description: Add a review to an activity.
      operationId: post/activities/activityUuid/reviews
      parameters:
        - $ref: '#/components/parameters/activityUuid'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                age:
                  description: The customer's age.
                  type: integer
                comment:
                  description: The customer's written review of their experience.
                  type: string
                is_public:
                  default: false
                  description: >-
                    Can we publish this review? If `true`, the review *might* be
                    included in reviews for the activity, pending an internal
                    evaluation. When `false`, the review will never be part of
                    reviews for the activity, but its rating will be added to
                    the activity's review statistics.
                  type: boolean
                locale:
                  description: >-
                    The language of the customer's written review, following RFC
                    3066.
                  example: en-US
                  pattern: ^[a-z]{1,8}(?:-[a-zA-Z0-9]{1,8})?
                  type: string
                order_item_uuid:
                  description: The Musement order item UUID that the review is for.
                  format: uuid
                  type: string
                provider:
                  description: The name of the service providing the review data.
                  type: string
                provider_id:
                  description: >-
                    The identifier for the review from the service providing the
                    review data.
                  type: string
                public_username:
                  description: >-
                    The customer's name as it should be displayed with the
                    review.
                  type: string
                rating_value:
                  description: >-
                    The customer's rating of their experience, based on the
                    `rating_scale`.
                  type: integer
                rating_scale:
                  $ref: '#/components/schemas/RatingScale'
                traveler_type:
                  $ref: '#/components/schemas/TravelerType'
                date:
                  description: The date and time the review was written.
                  type: string
                  format: date-time
                rating_categories:
                  description: A breakdown of the rating by category.
                  items:
                    title: Rating category breakdown
                    example:
                      category_code: SAFETY
                      category_rating: 9
                      rating_scale: 0..10
                    properties:
                      category_code:
                        $ref: '#/components/schemas/ReviewCategoryCode'
                      category_rating:
                        description: The rating for the category in a specified scale
                        type: integer
                      rating_scale:
                        $ref: '#/components/schemas/RatingScale'
                    required:
                      - category_code
                      - category_rating
                      - rating_scale
                    type: object
                  type: array
              required:
                - date
                - order_item_uuid
                - provider_id
                - provider
                - rating_scale
                - rating_value
              example:
                age: 27
                comment: Awesome experience.
                date: '2021-11-18T15:13:13'
                is_public: true
                locale: en-GB
                order_item_uuid: d83d4e0a-e62b-4c81-b403-4206914cd697
                provider: QUALTRICS
                provider_id: R_wXE9FFQ1qhK2J0w
                public_username: John Doe
                rating_categories:
                  - category_code: SERVICE
                    category_rating: 4
                    rating_scale: 1..5
                rating_scale: 1..5
                rating_value: 4
                traveler_type: WITH-FAMILY
        required: true
      responses:
        '201':
          description: 'Created: review successfully submitted'
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        '409':
          description: 'Conflict: review already exists for the activity''s order item'
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: Musement's internal status code for the error.
                    type: string
                    example: '1329'
                  message:
                    description: Brief message that explains the error.
                    type: string
                    example: Resource already create.
                required:
                  - code
                  - message
        default:
          $ref: '#/components/responses/default'
      security:
        - Partner:
            - comment
      tags:
        - reviews
  /activities/{activityUuid}/reviews/statistics:
    get:
      summary: Get review statistics for activity
      description: Returns statistics about the activity's reviews.
      operationId: get/activities/activityUuid/reviews/statistics
      parameters:
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Review statistics for activity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewStatistics'
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - reviews
  /activity-languages:
    get:
      summary: Get languages
      description: Get all languages which may be used for an activity timeslot.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/guide/availability/timeslots-and-languages/
      operationId: get/activity-languages
      parameters:
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Languages
          content:
            application/json:
              schema:
                items:
                  properties:
                    code:
                      description: The language's unique two-character code.
                      maxLength: 2
                      minLength: 2
                      type: string
                    name:
                      description: >-
                        A placeholder for the language's translation. This
                        endpoint does not provide the translation for the
                        language.
                      maxLength: 12
                      minLength: 12
                      pattern: languages.[a-z]{2}
                      type: string
                  required:
                    - code
                    - name
                  type: object
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - metadata
  /activity-taxonomies/exclusions:
    get:
      summary: Search taxonomy exclusions
      description: >-
        Taxonomies provide information about an activity's *highlights*,
        *inclusions* and *exclusions*.
      externalDocs:
        description: For more info, check out our guide.
        url: https://partner-api.musement.com/guide/activities/taxonomy/
      operationId: get/activity-taxonomies/exclusions
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: taxonomy_category_code
          description: Limit results to taxonomies which match the requested category.
          in: query
          schema:
            type: string
            enum:
              - ACCOMMODATION
              - ADDITIONAL-FEES-AND-COSTS
              - ART
              - EQUIPMENT
              - EXPLORE-THE-AREA
              - FAMILY-FRIENDLY
              - FOOD-AND-DRINK
              - GUIDE-OPTIONS
              - MEALS
      responses:
        '200':
          description: Taxonomy exclusions
          content:
            application/json:
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/Taxonomy'
                    - example:
                        category: TRANSPORTATION
                        name: Parking
                        uuid: 5a830cc6-51e2-11e7-96a2-06d26c7657b2
                      required:
                        - name
                        - uuid
                type: array
                uniqueItems: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - metadata
  /activity-taxonomies/highlights:
    get:
      summary: Search taxonomy highlights
      description: >-
        Taxonomies provide information about an activity's *highlights*,
        *inclusions* and *exclusions*.
      externalDocs:
        description: For more info, check out our guide.
        url: https://partner-api.musement.com/guide/activities/taxonomy/
      operationId: get/activity-taxonomies/highlights
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: taxonomy_category_code
          description: Limit results to taxonomies which match the requested category.
          in: query
          schema:
            type: string
            enum:
              - ACCOMMODATION
              - ADDITIONAL-FEES-AND-COSTS
              - ART
              - EQUIPMENT
              - EXPLORE-THE-AREA
              - FAMILY-FRIENDLY
              - FOOD-AND-DRINK
              - GUIDE-OPTIONS
              - MEALS
      responses:
        '200':
          description: Taxonomy highlights
          content:
            application/json:
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/Taxonomy'
                    - example:
                        category: FOOD-AND-DRINK
                        name: Mixed drinks at the bar - lit moves on the floor
                        uuid: 7a1de19f-51e1-11e7-96a2-06d26c7657b2
                      required:
                        - name
                        - uuid
                type: array
                uniqueItems: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - metadata
  /activity-taxonomies/inclusions:
    get:
      summary: Search taxonomy inclusions
      description: >-
        Taxonomies provide information about an activity's *highlights*,
        *inclusions* and *exclusions*.
      externalDocs:
        description: For more info, check out our guide.
        url: https://partner-api.musement.com/guide/activities/taxonomy/
      operationId: get/activity-taxonomies/inclusions
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: taxonomy_category_code
          description: Limit results to taxonomies which match the requested category.
          in: query
          schema:
            type: string
            enum:
              - ACCOMMODATION
              - ADDITIONAL-FEES-AND-COSTS
              - ART
              - EQUIPMENT
              - EXPLORE-THE-AREA
              - FAMILY-FRIENDLY
              - FOOD-AND-DRINK
              - GUIDE-OPTIONS
              - MEALS
      responses:
        '200':
          description: Taxonomy inclusions
          content:
            application/json:
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/Taxonomy'
                    - example:
                        category: ADDITIONAL-FEES-AND-COSTS
                        name: Entrance fees
                        uuid: f6092dc0-51e1-11e7-96a2-06d26c7657b2
                      required:
                        - name
                        - uuid
                type: array
                uniqueItems: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - metadata
  /autocomplete:
    get:
      summary: Autocomplete
      description: >
        This endpoint is ideal for creating a list of choices as part of an
        autocomplete feature.


        Using any of the parameters that ends with `_limit` will return that
        items for that resource in the response. It is possible to include
        multiple parameters to return multiple resources.
      operationId: get/autocomplete
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: activity_limit
          description: >
            Limit the maximum number of activities to include in the response.


            A positive value is required in order to receive activities in the
            response.
          in: query
          schema:
            minimum: 0
            type: integer
        - name: activity_offset
          description: >-
            Exclude the first `N` activities from the response, where `N` is the
            specified integer value.
          in: query
          schema:
            default: 0
            minimum: 0
            type: integer
        - name: category_limit
          description: >
            Limit the maximum number of categories to include in the response.


            A positive value is required in order to receive categories in the
            response.
          in: query
          schema:
            minimum: 0
            type: integer
        - name: category_offset
          description: >-
            Exclude the first `N` categories from the response, where `N` is the
            specified integer value.
          in: query
          schema:
            default: 0
            minimum: 0
            type: integer
        - $ref: '#/components/parameters/city_limit'
        - $ref: '#/components/parameters/city_offset'
        - name: coordinates
          in: query
          description: >
            Filter results using latitude and longitude, separated by a comma.


            By itself, this parameter does not affect the results. Use the
            `sort_by` parameter to get results closest (or farthest) from the
            specified coordinates.


            Results that do not contain coordinate data will not be affected by
            this parameter.
          schema:
            pattern: (-)?\d{1,3}(\.\d+)?,(-)?\d{1,3}(\.\d+)?
            type: string
        - name: country_limit
          description: >
            Limit the maximum number of countries to include in the response.


            A positive value is required in order to receive countries in the
            response.
          in: query
          schema:
            minimum: 0
            type: integer
        - name: country_offset
          description: >-
            Exclude the first `N` countries from the response, where `N` is the
            specified integer value.
          in: query
          schema:
            default: 0
            minimum: 0
            type: integer
        - name: hotel_limit
          description: >
            Limit the maximum number of hotels to include in the response.


            A positive value is required in order to receive hotels in the
            response.
          in: query
          schema:
            minimum: 0
            type: integer
        - name: hotel_offset
          description: >-
            Exclude the first `N` hotels from the response, where `N` is the
            specified integer value.
          in: query
          schema:
            default: 0
            minimum: 0
            type: integer
        - $ref: '#/components/parameters/list_limit'
        - $ref: '#/components/parameters/list_offset'
        - name: pickup_limit
          description: >
            Limit the maximum number of pickup points to include in the
            response.


            A positive value is required in order to receive pickup points in
            the response.
          in: query
          schema:
            minimum: 0
            type: integer
        - name: pickup_offset
          description: >-
            Exclude the first `N` pickup points from the response, where `N` is
            the specified integer value.
          in: query
          schema:
            default: 0
            minimum: 0
            type: integer
        - name: sort_by
          description: >
            Sort results by one or more of the following values:


            * `relevance`: From lowest to highest relevance value.

            * `-relevance`: From highest to lowest relevance value.

            * `distance`: Results closest to the `coordinates` parameter appear
            first.

            * `-distance`: Results farthest from the `coordinates` parameter
            appear first.


            This parameter will accept two values, separated with a comma.


            Items which do not use *relevance* or *coordinates* will not be
            affected by this parameter. 
          in: query
          explode: false
          style: form
          schema:
            type: array
            items:
              type: string
              enum:
                - distance
                - '-distance'
                - relevance
                - '-relevance'
        - name: text
          description: Filter results to those which contain specified *key words*.
          in: query
          required: true
          schema:
            minLength: 3
            type: string
        - $ref: '#/components/parameters/venue_limit'
        - $ref: '#/components/parameters/venue_offset'
      responses:
        '200':
          description: Autocomplete results
          content:
            application/json:
              schema:
                items:
                  properties:
                    type:
                      description: The type of resource.
                      enum:
                        - activities
                        - categories
                        - cities
                        - countries
                        - hotels
                        - lists
                        - pickups
                        - venues
                      type: string
                    items:
                      description: >-
                        An array of items which match the query and
                        corresponding resource `type`.
                      items:
                        properties:
                          api_url:
                            description: >-
                              The API endpoint to use for more information about
                              the item.
                            format: uri
                            type: string
                          cover_image:
                            description: A URL for the item's cover image.
                            format: uri
                            type: string
                          hint:
                            description: >-
                              Additional information about the item, such as its
                              city or country, translated based on the
                              `Accept-Language` header value.
                            type: string
                          id:
                            description: >-
                              The UUID or numeric ID of the item, both
                              represented as a string.
                            type: string
                          title:
                            description: >-
                              The name of the item, translated based on the
                              `Accept-Language` header value.
                            type: string
                          url:
                            description: >-
                              An automatically generated Musement URL for the
                              item based on the `X-Musement-Market` header and
                              item properties. The URL is only valid for select
                              `X-Musement-Market` values and items.
                            format: uri
                            type: string
                        required:
                          - id
                          - hint
                          - title
                        type: object
                      type: array
                  type: object
                type: array
                uniqueItems: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - additional-searches
  /carts:
    post:
      summary: Create cart
      description: >
        Creating a cart is a key step in the reservation flow.


        It's not necessary to provide customer info at this stage. Customer info
        can be supplied later using the `PUT /carts/{cartUuid}/customer`
        endpoint.


        Carts without an order are automatically removed after three months.
      externalDocs:
        description: For more info, check out our guide.
        url: https://partner-api.musement.com/guide/booking-flows/create-a-cart/
      operationId: post/carts
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      requestBody:
        content:
          application/json:
            schema:
              example: {}
              properties:
                customer:
                  properties:
                    email:
                      description: The customer's email address.
                      format: email
                      type: string
                    firstname:
                      description: The customer's first name.
                      type: string
                    lastname:
                      description: The customer's last name.
                      type: string
                  type: object
              type: object
        description: >-
          If customer info is not available at this stage, the request can be an
          empty object: `{}`
        required: true
      responses:
        '200':
          description: Cart
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cart'
        default:
          $ref: '#/components/responses/default'
      tags:
        - carts
  /carts/{cartUuid}:
    delete:
      summary: Remove cart
      description: |
        Once a cart has been removed, it can no longer be accessed.

        Returns an error if the cart cannot be removed due to a connected order.
      operationId: delete/carts/cartUuid
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                example: true
                type: boolean
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - carts-misc
    get:
      summary: Get cart
      description: >
        Returns a cart.


        Carts without an order are automatically removed after three months.


        Once the cart is connected to a closed order, the cart can only be
        viewed when the `X-Musement-Currency` header value matches the cart's
        original currency. Attempts to access the cart with different currencies
        will result in a 423 status code response.
      operationId: get/carts/cartUuid
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Cart
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cart'
        '404':
          $ref: '#/components/responses/404'
        '423':
          description: >-
            Locked: cart is connected to closed order and request currency does
            not match the cart currency
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '-1'
                      message: Cart is already connected to order with state 'closed'
        default:
          $ref: '#/components/responses/default'
      tags:
        - carts
    patch:
      summary: Update cart
      deprecated: true
      description: |
        This endpoint has been replaced by multiple endpoints:

          * To add tickets to cart, use `POST /carts/{cartUuid}/items`.
          * To update customer info and extra customer data, use `PUT /carts/{cartUuid}/customer`.
          * To update participant info, use `PUT /carts/{cartUuid}/items/{cartItemUuid}/participants`.
      operationId: patch/carts/cartUuid
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: affiliate
          in: query
          description: The name of the affiliate partner making the request.
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CartRequestBody'
        description: >
          The request can be an empty object: `{}`


          Tickets not already in the cart will be added. Existing tickets with a
          different quantity will be updated to match the submitted quantity.
        required: true
      responses:
        '200':
          description: Cart
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cart'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - carts-deprecated
    put:
      summary: Replace cart
      deprecated: true
      description: >
        Replace any existing customer info and/or tickets for the specified
        cart.


        This endpoint has been replaced by multiple endpoints:

          * To add tickets to cart, use `POST /carts/{cartUuid}/items`.
          * To remove tickets from cart, use `DELETE /carts/{cartUuid}/items/{cartItemUuid}`.
          * To update customer info and extra customer data, use `PUT /carts/{cartUuid}/customer`.
          * To update participant info, use `PUT /carts/{cartUuid}/items/{cartItemUuid}/participants`.
      operationId: put/carts/cartUuid
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/CartRequestBody'
                - required:
                    - customer
        description: >
          It is possible to remove items from cart by excluding the `tickets`
          property in the request.


          However, customer info must always be part of the request.
        required: true
      responses:
        '200':
          description: Cart
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cart'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - carts-deprecated
  /carts/{cartUuid}/bundles:
    get:
      summary: Get bundles for cart
      description: >
        Bundles are recommendations of other activities to purchase together
        with the activities in the current cart.


        Recommendations are based on activities which are often purchased
        together by other customers. Sometimes a bundle may contain a
        promotional discount which can be applied to one or both activities in
        cart.
      operationId: get/carts/cartUuid/bundles
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Bundles for cart
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Bundle'
                type: array
                uniqueItems: true
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - carts-misc
  /carts/{cartUuid}/customer:
    put:
      summary: Update customer info for cart
      description: >
        Use this endpoint to provide information about the customer and extra
        customer data (if any).


        The request body must match the schema returned by the `GET
        /carts/{cartUuid}/customer/schema` endpoint.
      operationId: put/carts/cartUuid/customer
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      requestBody:
        content:
          application/json:
            schema:
              description: >-
                The exact request body can vary, depending on the response of
                the `GET /carts/{cartUuid}/customer/schema` endpoint.
              example:
                email: api-distribution@tui.com
                extra_customer_data:
                  1714c6a7-2046-11e7-9cc9-06a7e332783f:
                    phone_number: 1234567890
                firstname: John
                lastname: Smith
              type: object
        required: true
      responses:
        '200':
          description: Customer
          content:
            application/json:
              schema:
                title: Customer
                allOf:
                  - $ref: '#/components/schemas/Customer'
                  - required:
                      - email
                      - events_related_newsletter
                      - extra_customer_data
                      - firstname
                      - lastname
                      - musement_newsletter
                      - thirdparty_newsletter
        '404':
          $ref: '#/components/responses/404'
        '423':
          $ref: '#/components/responses/Cart423'
        default:
          $ref: '#/components/responses/default'
      tags:
        - customer-info
  /carts/{cartUuid}/customer/schema:
    get:
      summary: Get customer info schema for cart
      description: >
        Before creating an order, customer information must be added to cart.
        The exact information to provide can vary, depending on the selected
        activity products.


        The response follows the [JSON Schema
        Specification](http://json-schema.org/) to provide a schema of questions
        and extra customer data (if any) for the customer to answer in order to
        complete a reservation.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/guide/booking-flows/set-extra-customer-data/
      operationId: get/carts/cartUuid/customer/schema
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Customer questions
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/CustomerQuestions'
                  - example:
                      properties:
                        address:
                          title: address
                          propertyOrder: 9
                          type: string
                        allow_profiling:
                          title: allow_profiling
                          enum:
                            - 'NO'
                            - 'YES'
                          enum_titles:
                            - 'NO'
                            - 'YES'
                          propertyOrder: 5
                          type: string
                        city:
                          title: city
                          propertyOrder: 8
                          type: string
                        email:
                          title: Email address
                          format: email
                          propertyOrder: 3
                          type: string
                        events_related_newsletter:
                          title: events_related_newsletter
                          enum:
                            - 'NO'
                            - 'YES'
                          enum_titles:
                            - 'NO'
                            - 'YES'
                          propertyOrder: 7
                          type: string
                        firstname:
                          title: First name
                          propertyOrder: 1
                          type: string
                        lastname:
                          title: Last name
                          propertyOrder: 2
                          type: string
                        musement_newsletter:
                          title: musement_newsletter
                          enum:
                            - 'NO'
                            - 'YES'
                          enum_titles:
                            - 'NO'
                            - 'YES'
                          propertyOrder: 4
                          type: string
                        tax_id:
                          title: tax_id
                          propertyOrder: 11
                          type: string
                        thirdparty_newsletter:
                          title: thirdparty_newsletter
                          enum:
                            - 'NO'
                            - 'YES'
                          enum_titles:
                            - 'NO'
                            - 'YES'
                          propertyOrder: 6
                          type: string
                        zipcode:
                          title: zipcode
                          propertyOrder: 10
                          type: string
                      required:
                        - allow_profiling
                        - email
                        - events_related_newsletter
                        - firstname
                        - lastname
                        - musement_newsletter
                        - thirdparty_newsletter
                      title: cart_customer_guest
                      type: object
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - customer-info
  /carts/{cartUuid}/items:
    post:
      summary: Add items to cart
      description: >
        While this endpoint accepts multiple items, only the first item is
        returned. A cart can hold a maximum of 100 items. Carts are allowed to
        contain items from different activities.
      externalDocs:
        description: For more info, check out our guide.
        url: https://partner-api.musement.com/api/booking-flow/cart/add-items/
      operationId: post/carts/cartUuid/items
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      requestBody:
        description: An array of items to add to cart.
        required: true
        content:
          application/json:
            schema:
              items:
                example:
                  type: musement
                  product_identifier: '4445092627'
                  quantity: 2
                properties:
                  language:
                    title: Language code
                    description: The selected language (if any).
                    pattern: '[a-z]{2}'
                    type: string
                  pickup:
                    title: Pickup UUID
                    description: |
                      The selected pickup.

                      This property is required for activities with pickups.
                    externalDocs:
                      description: For more info, check out our guide.
                      url: >-
                        https://partner-api.musement.com/guide/booking-flows/adding-items-to-cart/
                    format: uuid
                    type: string
                    x-versionVariations:
                      3.5.0:
                        description: >
                          The selected pickup.


                          This property is required for activities with pickups.
                          If this property is used for an activity without
                          pickups, there will be a 400 status code response.
                  product_identifier:
                    type: string
                    description: >-
                      The product identifier. Depending on the activity
                      configuration, this could be a numeric value or a complex
                      string.
                  quantity:
                    description: The number of products to add to cart.
                    minimum: 1
                    type: integer
                  type:
                    description: The type of product.
                    enum:
                      - musement
                      - musement-realtime
                    type: string
                required:
                  - product_identifier
                  - quantity
                  - type
                type: object
              type: array
      responses:
        '200':
          description: Cart item
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CartItem'
        '404':
          $ref: '#/components/responses/404'
        '410':
          description: 'Gone: the item is no longer available'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ErrorMessage'
                  - example:
                      code: '1442'
                      message: The item is not available anymore
        '422':
          description: 'Unprocessable entity: the cart item limit has been reached'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '423':
          $ref: '#/components/responses/Cart423'
        default:
          $ref: '#/components/responses/default'
      tags:
        - carts
  /carts/{cartUuid}/items/{cartItemUuid}:
    delete:
      summary: Remove item from cart
      description: >
        Use this endpoint to remove an item from cart.


        This endpoint will return a 403 status code if the cart is part of a
        completed order.
      operationId: delete/carts/cartUuid/items/cartItemUuid
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/cartItemUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '204':
          description: Item removed successfully
        '403':
          $ref: '#/components/responses/CartItem403'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - carts-misc
  /carts/{cartUuid}/items/{cartItemUuid}/participants:
    get:
      summary: Get participant info for cart item
      description: >
        This endpoint returns participant info that has already been provided
        for a cart item.


        Cart items which do not require participant info will return an empty
        array.


        The exact properties for each participant info vary depending on the
        cart item requirements.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/guide/booking-flows/set-participants-info/
      operationId: get/carts/cartUuid/items/cartItemUuid/participants
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/cartItemUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Participant info for cart item
          content:
            application/json:
              schema:
                items:
                  example:
                    date_of_birth: '1985-11-04'
                    nationality: Italy
                  type: object
                type: array
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - customer-info
    put:
      summary: Update participant info for cart item
      description: >
        Use this endpoint to provide info for each participant in a cart item.


        Cart items which do not require participant info will return a 404
        status code.


        The exact properties for each participant info vary depending on the
        cart item requirements.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/guide/booking-flows/set-participants-info/
      operationId: put/carts/cartUuid/items/cartItemUuid/participants
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/cartItemUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      requestBody:
        content:
          application/json:
            schema:
              items:
                example:
                  date_of_birth: '1985-11-04'
                  nationality: Italy
                type: object
              type: array
        description: >-
          The exact properties for each participant info in the request vary
          depending on the cart item requirements.
        required: true
      responses:
        '200':
          description: Participant info for cart item
          content:
            application/json:
              schema:
                items:
                  example:
                    date_of_birth: '1985-11-04'
                    nationality: Italy
                  type: object
                type: array
        '404':
          $ref: '#/components/responses/CartItem404'
        '423':
          $ref: '#/components/responses/Cart423'
        default:
          $ref: '#/components/responses/default'
      tags:
        - customer-info
  /carts/{cartUuid}/items/{cartItemUuid}/participants/schema:
    get:
      summary: Get participant info schema for cart item
      description: >
        Each item in a cart may require info for each participant in a
        reservation.


        The response follows the [JSON Schema
        Specification](http://json-schema.org/) to describe the info requested
        for each participant.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/guide/booking-flows/set-participants-info/
      operationId: get/carts/cartUuid/items/cartItemUuid/participants/schema
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/cartItemUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Participant info schema for cart item
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/CustomerQuestions'
                  - example:
                      properties:
                        participants:
                          items:
                            properties:
                              nationality:
                                propertyOrder: 1
                                type: string
                                title: Nationality
                            required:
                              - nationality
                            title: prototype
                            type: object
                          maxItems: 1
                          minItems: 1
                          propertyOrder: 1
                          type: array
                          title: participants
                      required:
                        - participants
                      title: cart_item_participants_info
                      type: object
        '404':
          $ref: '#/components/responses/CartItem404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - customer-info
  /carts/{cartUuid}/items/{cartItemUuid}/product-general-details:
    get:
      summary: Get product details for cart item
      description: Returns product details for a cart item.
      operationId: get/carts/cartUuid/items/cartItemUuid/product-general-details
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/cartItemUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Product details
          content:
            application/json:
              schema:
                example:
                  retail_price_with_custom_discount:
                    currency: USD
                    formatted_value: $ 10.00
                    formatted_iso_value: $10.00
                    value: 10
                  retail_price_in_supplier_currency:
                    currency: USD
                    formatted_value: $ 10.00
                    formatted_iso_value: $10.00
                    value: 10
                  seller_gateway: Direct
                  ticket: false
                properties:
                  retail_price_with_custom_discount:
                    title: Price
                    allOf:
                      - $ref: '#/components/schemas/Price'
                      - description: >-
                          The final price for customers, taking into
                          consideration any discounts in effect. Changes based
                          on the `X-Musement-Currency` header value.
                  retail_price_in_supplier_currency:
                    title: Price
                    allOf:
                      - $ref: '#/components/schemas/Price'
                      - description: >-
                          The final price in the original currency the activity
                          prices were loaded in.
                  seller_gateway:
                    description: >-
                      The name of the integration which handles the reservation
                      flow for this product.
                    type: string
                  ticket:
                    description: Whether the product is only an admission ticket or not.
                    type: boolean
                required:
                  - retail_price_with_custom_discount
                  - retail_price_in_supplier_currency
                  - seller_gateway
                  - ticket
                type: object
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - carts-misc
  /carts/{cartUuid}/order-info:
    get:
      summary: Get order info for cart
      description: This endpoint returns basic details about a cart's order (if it exists).
      operationId: get/carts/cartUuid/order-info
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Order info
          content:
            application/json:
              schema:
                properties:
                  order_uuid:
                    description: The order UUID.
                    format: uuid
                    type: string
                  payment:
                    description: Details about the order payment.
                    properties:
                      paid:
                        description: Whether the order has already been paid for or not.
                        type: boolean
                      status:
                        description: The status of the order.
                        enum:
                          - authorization_failed
                          - authorized
                          - booking_hanged
                          - booking_failed
                          - booking_ok
                          - booking_partially_failed
                          - booking_quarantined
                          - booking_started
                          - cancelled
                          - capture
                          - capture_failed
                          - closed
                          - created
                          - failed
                          - paid
                          - partially_refunded
                          - payment_failed
                          - refunded
                        type: string
                    required:
                      - paid
                      - status
                    type: object
                required:
                  - order_uuid
                  - payment
                type: object
        '404':
          description: 'Not found: cart does not exist or is not connected to an order'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '1400'
                      message: Cart does not have an associated order
        default:
          $ref: '#/components/responses/default'
      tags:
        - carts-misc
  /carts/{cartUuid}/tickets:
    post:
      summary: Add tickets to cart
      description: |
        Tickets are an older term for *cart items*.

        This endpoint has been replaced by `POST /carts/{cartUuid}/items`.
      deprecated: true
      operationId: get/carts/cartUuid/tickets
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                tickets:
                  description: An array of products to add to cart.
                  items:
                    example:
                      product:
                        type: musement
                        id: '4445092627'
                      quantity: 2
                    properties:
                      product:
                        description: The product to add to cart.
                        properties:
                          id:
                            description: The product identifier.
                            type: string
                          type:
                            description: The type of product.
                            enum:
                              - musement
                              - musement-realtime
                            type: string
                        type: object
                      quantity:
                        description: The number of products to add to cart.
                        minimum: 1
                        type: integer
                    type: object
                  type: array
              type: object
        required: false
      responses:
        '200':
          description: Cart
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cart'
        '404':
          $ref: '#/components/responses/404'
        '423':
          description: 'Locked: cart is connected to a paid order and cannot be modified'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '-1'
                      message: Cart is already connected to order with state 'closed'
        default:
          $ref: '#/components/responses/default'
      tags:
        - carts-deprecated
  /carts/{cartUuid}/tickets/{ticketUuid}:
    delete:
      summary: Remove ticket from cart
      deprecated: true
      description: >
        *Tickets* are an older term for *cart items*.


        Returns the numeric ID of the cart.


        This endpoint has been replaced by `DELETE
        /carts/{cartUuid}/items/{cartItemUuid}`.
      operationId: delete/carts/cartUuid/tickets/ticketUuid
      parameters:
        - $ref: '#/components/parameters/cartUuid'
        - name: ticketUuid
          in: path
          required: true
          schema:
            title: Ticket UUID
            description: The UUID of the ticket.
            format: uuid
            type: string
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Cart ID
          content:
            application/json:
              schema:
                example: 33181838
                type: integer
        '403':
          $ref: '#/components/responses/CartItem403'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - carts-deprecated
  /categories:
    get:
      summary: Search categories
      description: Returns an array of categories.
      operationId: get/categories
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: filtering_aware
          in: query
          description: >-
            Filter results to categories which can or cannot be used as filters
            for special landing pages.
          schema:
            type: boolean
            enum:
              - true
              - false
        - name: level
          in: query
          description: >-
            Filter results to categories with the same `level` property value. A
            value of zero returns all categories.
          schema:
            type: integer
            default: 0
            minimum: 0
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - name: parent_id
          description: >-
            Filter results to categories whose direct parent category matches
            the requested `id`.
          in: query
          schema:
            title: Category ID
            type: integer
      responses:
        '200':
          description: Categories
          content:
            application/json:
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/Category'
                    - required:
                        - code
                        - id
                        - level
                        - name
                        - url
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - categories
  /categories/{categoryId}:
    get:
      summary: Get category
      description: Returns a category.
      operationId: get/categories/categoryId
      parameters:
        - $ref: '#/components/parameters/categoryId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Category
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Category'
                  - required:
                      - code
                      - id
                      - level
                      - name
                      - url
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - categories
  /categories/{categoryId}/activities:
    get:
      summary: Search activities in category
      description: Response only contains activities with a status of `ONLINE`.
      operationId: get/categories/categoryId/activities
      parameters:
        - $ref: '#/components/parameters/categoryId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/city'
        - $ref: '#/components/parameters/offset'
        - name: limit
          description: Limit the maximum number of results to include in the response.
          in: query
          schema:
            default: 100
            maximum: 100
        - name: sort_by
          description: >-
            Sort results by specific properties. Most values sort activities
            from highest to lowest values. However, when sorting by `price`, the
            results appear from lowest to highest values.
          in: query
          schema:
            default: city-relevance
            enum:
              - city-relevance
              - external-relevance
              - price
              - rating
              - relevance-city
              - relevance-external
              - relevance
            type: string
        - $ref: '#/components/parameters/venue'
        - $ref: '#/components/parameters/vertical'
      responses:
        '200':
          description: Activities in category
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
                uniqueItems: true
        '302':
          $ref: '#/components/responses/302'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - categories
        - searching-activities
  /categories/{categoryId}/cities/{cityId}:
    get:
      summary: Get category with city
      description: >-
        This endpoint returns a category along with the requested city in the
        `city` property, useful when constructing a page for a category in a
        city.
      operationId: get/categories/categoryId/cities/cityId
      parameters:
        - $ref: '#/components/parameters/categoryId'
        - $ref: '#/components/parameters/cityId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Category with city
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Category'
                  - required:
                      - city
                      - code
                      - id
                      - level
                      - name
                      - url
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - categories
  /categories-tree:
    get:
      summary: Get category tree
      description: >-
        Get all categories in their hierarchical tree structure. The response
        itself is a "fake" category whose `children` property contains all the
        real categories.
      operationId: get/categories-tree
      parameters:
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Category tree
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryTree'
        default:
          $ref: '#/components/responses/default'
      tags:
        - categories
  /cities:
    get:
      summary: Search cities
      description: Returns an array of cities.
      operationId: get/cities
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: coordinates
          description: >-
            Filter and sort results to cities closest to a provided latitude and
            longitude point.
          in: query
          schema:
            pattern: (-)?\d{1,3}(\.\d+)?,(-)?\d{1,3}(\.\d+)?
            type: string
        - name: distance
          description: >-
            Filter results to cities that are within the specified distance (in
            KM) around a provided pair of `coordinates`.
          in: query
          schema:
            pattern: \d+
            type: string
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - name: prioritized_country
          description: >-
            Sort results so that cities which belong to the specified country
            appear first.
          in: query
          schema:
            title: Country ID
            minimum: 1
            type: integer
        - name: prioritized_country_cities_limit
          description: >-
            Limit the number of cities in the results which belong to the
            specified `prioritized_country`.
          in: query
          schema:
            minimum: 1
            type: integer
      responses:
        '200':
          description: Cities
          content:
            application/json:
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/City'
                    - required:
                        - code
                        - country
                        - cover_image_url
                        - event_count
                        - id
                        - latitude
                        - list_count
                        - longitude
                        - name
                        - show_in_popular
                        - time_zone
                        - top
                        - url
                        - uuid
                        - venue_count
                        - weight
                uniqueItems: true
                type: array
        '404':
          description: 'Not found: no city matches request parameters'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '1400'
                      message: No cities found matching search criteria
        default:
          $ref: '#/components/responses/default'
      tags:
        - cities
  /cities/{cityId}:
    get:
      summary: Get city
      description: Returns a city
      operationId: get/cities/cityId
      parameters:
        - $ref: '#/components/parameters/cityId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: City
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/City'
                  - required:
                      - code
                      - country
                      - cover_image_url
                      - event_count
                      - id
                      - latitude
                      - list_count
                      - longitude
                      - name
                      - slug
                      - time_zone
                      - top
                      - url
                      - uuid
                      - venue_count
                      - weight
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - cities
  /cities/{cityId}/activities:
    get:
      summary: Search activities in city
      description: >-
        Returns a list of available activities for the city. If no date range is
        specified with the `available_from` and `available_to` parameters, a
        default of one year is used.
      operationId: get/cities/cityId/activities
      parameters:
        - $ref: '#/components/parameters/cityId'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/available_from'
        - $ref: '#/components/parameters/available_to'
        - $ref: '#/components/parameters/category'
          x-specificVersion: 3.4.0
        - name: limit
          description: Limit the maximum number of results to include in the response.
          in: query
          schema:
            type: integer
            default: 100
            maximum: 100
        - $ref: '#/components/parameters/offset'
        - name: sort_by
          description: >-
            Sort results by specific properties. Most values sort activities
            from highest to lowest values. However when sorting by `price`, the
            results appear from lowest to highest values.
          in: query
          schema:
            default: city-relevance
            enum:
              - city-relevance
              - external-relevance
              - price
              - rating
              - relevance-city
              - relevance-external
              - relevance
            type: string
      responses:
        '200':
          description: Activities in city
          content:
            application/json:
              schema:
                uniqueItems: true
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
              x-versionVariations:
                3.5.0:
                  schema:
                    properties:
                      data:
                        description: Activities which match the query.
                        items:
                          $ref: ../components/schemas/Activity.yaml
                        type: array
                        uniqueItems: true
                      meta:
                        description: >
                          Additional information about the query results. This
                          always contains the `count` property by default.


                          This property will contain information about the city.
                        example:
                          count: 150
                          match_ids:
                            - '76'
                          match_names:
                            - Washington, D.C.
                          match_type: cities
                        properties:
                          count:
                            description: >-
                              The total number of activities in the catalog
                              which match the query parameters.
                            minimum: 0
                            type: integer
                          match_type:
                            description: >-
                              The entity represented by the `match_names` and
                              `match_ids` properties.
                            type: string
                            enum:
                              - cities
                              - countries
                              - venues
                          match_names:
                            description: >-
                              The names of the entities which match the query
                              parameter values. These names will be translated
                              based on the `Accept-Language` header value.
                            items:
                              type: string
                            type: array
                            uniqueItems: true
                          match_ids:
                            description: >-
                              The IDs of the entities which match the query
                              parameter values. Even if the IDs are numeric,
                              they will be represented as strings.
                            items:
                              type: string
                            type: array
                        required:
                          - count
                        type: object
                    required:
                      - data
                      - meta
                    type: object
        '302':
          description: >-
            When the `limit` parameter is greater than the maximum, endpoint is
            redirected with `limit={maximum}`.
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - cities
        - searching-activities
  /cities/{cityId}/activities/today:
    get:
      summary: Get activities available today in city
      description: Returns an array of activities available today for a city.
      operationId: get/cities/cityId/activities/today
      parameters:
        - $ref: '#/components/parameters/cityId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: limit
          description: Limit the maximum number of results to include in the response.
          in: query
          schema:
            default: 100
            maximum: 100
            minimum: 1
            type: integer
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Activities available today in city
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
                uniqueItems: true
        '302':
          $ref: '#/components/responses/302'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - cities
  /cities/{cityId}/activities/tomorrow:
    get:
      summary: Get activities available tomorrow in city
      description: Returns an array of activities available tomorrow in a city.
      operationId: get/cities/cityId/activities/tomorrow
      parameters:
        - $ref: '#/components/parameters/cityId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: limit
          description: Limit the maximum number of results to include in the response.
          in: query
          schema:
            default: 100
            maximum: 100
            minimum: 1
            type: integer
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Activities available tomorrow in city
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
                uniqueItems: true
        '302':
          $ref: '#/components/responses/302'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - cities
  /cities/{cityId}/categories:
    get:
      summary: Get categories for city
      description: Results are categories with activities that have a status of `ONLINE`.
      operationId: get/cities/cityId/categories
      parameters:
        - $ref: '#/components/parameters/cityId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: limit
          description: >
            Limit the maximum number of results to include in the response.


            Using a value greater than the maximum is ignored and the maximum
            number of possible results is used instead.
          in: query
          schema:
            default: 10
            maximum: 50
            minimum: 0
            type: integer
      responses:
        '200':
          description: Categories for city
          content:
            application/json:
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/Category'
                    - required:
                        - code
                        - event_count
                        - id
                        - level
                        - name
                        - url
                type: array
                uniqueItems: true
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - cities
  /cities/{cityId}/categories/{categoryId}:
    get:
      summary: Get category with city
      description: >-
        This endpoint returns a category along with the requested city in the
        `city` property, useful when constructing a page for a category in a
        city.
      operationId: get/cities/cityId/categories/categoryId
      parameters:
        - $ref: '#/components/parameters/cityId'
        - $ref: '#/components/parameters/categoryId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Category with city
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Category'
                  - required:
                      - city
                      - code
                      - id
                      - level
                      - name
                      - url
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - cities
  /cities/{cityId}/events:
    get:
      summary: Search events in city
      deprecated: true
      description: >-
        Returns a list of available activities for the city. If no date range is
        specified with the `available_from` and `available_to` parameters, a
        default of one year is used.
      operationId: get/cities/cityId/events
      parameters:
        - $ref: '#/components/parameters/cityId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/available_from'
        - $ref: '#/components/parameters/available_to'
        - $ref: '#/components/parameters/category'
        - name: limit
          description: Limit the maximum number of results to include in the response.
          in: query
          schema:
            type: integer
            default: 100
            maximum: 100
        - $ref: '#/components/parameters/offset'
        - name: sort_by
          description: >-
            Sort results by specific properties. Most values sort activities
            from highest to lowest values. However when sorting by `price`, the
            results appear from lowest to highest values.
          in: query
          schema:
            default: city-relevance
            enum:
              - city-relevance
              - external-relevance
              - price
              - rating
              - relevance-city
              - relevance-external
              - relevance
            type: string
      responses:
        '200':
          description: Activities in city
          content:
            application/json:
              schema:
                uniqueItems: true
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
        '302':
          description: >-
            When the `limit` parameter is greater than the maximum, endpoint is
            redirected with `limit={maximum}`.
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - cities-removed
  /cities/{cityId}/events/today:
    get:
      summary: Get events available today in city
      deprecated: true
      description: Returns an array of activities available today in a city.
      operationId: get/cities/cityId/events/today
      parameters:
        - $ref: '#/components/parameters/cityId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: limit
          description: Limit the maximum number of results to include in the response.
          in: query
          schema:
            default: 100
            maximum: 100
            minimum: 1
            type: integer
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Activities available today in city
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
                uniqueItems: true
        '302':
          $ref: '#/components/responses/302'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - cities-removed
  /cities/{cityId}/events/tomorrow:
    get:
      summary: Get events available tomorrow in city
      deprecated: true
      description: Returns an array of activities available tomorrow in a city.
      operationId: get/cities/cityId/events/tomorrow
      parameters:
        - $ref: '#/components/parameters/cityId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: limit
          description: Limit the maximum number of results to include in the response.
          in: query
          schema:
            default: 100
            maximum: 100
            minimum: 1
            type: integer
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Activities available tomorrow in city
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
                uniqueItems: true
        '302':
          $ref: '#/components/responses/302'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - cities-removed
  /cities/{cityId}/lists:
    get:
      summary: Search lists in city
      description: Response only contains published lists with one or more available items.
      operationId: get/cities/cityId/lists
      parameters:
        - $ref: '#/components/parameters/cityId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Device-Type'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/exclude_not_tagged'
        - name: limit
          description: Limit the maximum number of results to include in the response.
          in: query
          schema:
            type: integer
            default: 100
            maximum: 100
        - $ref: '#/components/parameters/listtags'
        - $ref: '#/components/parameters/listtypes'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/vertical'
      responses:
        '200':
          description: Lists
          content:
            application/json:
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/List'
                    - required:
                        - authors
                        - cover_image_url
                        - description
                        - id
                        - items_count
                        - saves
                        - subtitle
                        - temporary
                        - title
                        - url
                        - verticals
                    - properties:
                        category:
                          title: Category
                          required:
                            - code
                            - id
                            - name
                            - url
                        city:
                          required:
                            - cover_image_url
                            - id
                            - name
                        verticals:
                          items:
                            required:
                              - code
                              - id
                              - name
                type: array
                uniqueItems: true
        '404':
          description: 'Not found: no list matches request parameters'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '1400'
                      message: No list found matching search criteria
        default:
          $ref: '#/components/responses/default'
      tags:
        - cities
  /cities/{cityId}/venues:
    get:
      summary: Get venues in city
      description: >
        Response only contains venues with a `status` of `ACTIVE` and
        `events_count` value greater than zero.
      operationId: get/cities/cityId/venues
      parameters:
        - $ref: '#/components/parameters/cityId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/vertical'
      responses:
        '200':
          description: Venues in city
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Venue'
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - cities
  /cities/{cityId}/verticals:
    get:
      summary: Get verticals for city
      deprecated: true
      description: Returns an array of verticals for a city.
      operationId: get/cities/cityId/verticals
      parameters:
        - $ref: '#/components/parameters/cityId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Verticals for city
          content:
            application/json:
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/Vertical'
                    - required:
                        - active
                        - code
                        - count
                        - cover_image_url
                        - id
                        - meta_description
                        - meta_title
                        - name
                        - relevance
                        - slug
                        - url
                type: array
                uniqueItems: true
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - cities-deprecated
  /cities/{cityId}/verticals/{verticalId}/categories:
    get:
      summary: Get categories for vertical in city
      deprecated: true
      description: Returns an array of categories for a vertical in a city.
      operationId: get/cities/cityId/verticals/verticalId/categories
      parameters:
        - $ref: '#/components/parameters/cityId'
        - $ref: '#/components/parameters/verticalId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Categories for vertical in city
          content:
            application/json:
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/Category'
                    - required:
                        - code
                        - event_count
                        - id
                        - level
                        - name
                        - url
                type: array
                uniqueItems: true
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - cities-deprecated
  /countries:
    get:
      summary: Get countries
      description: Returns an array of countries.
      operationId: get/countries
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: limit
          description: |
            Limit the maximum number of results to include in the response.

            When this parameter is absent, all countries are returned.
          in: query
          schema:
            maximum: 100
            type: integer
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Countries
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Country'
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - countries
  /countries/{countryId}:
    get:
      summary: Get country
      description: Returns a country.
      operationId: get/countries/countryId
      parameters:
        - $ref: '#/components/parameters/countryId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Country
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Country'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - countries
  /countries/{countryId}/activities:
    get:
      summary: Search activities in country
      description: Response only contains activities with a status of `ONLINE`.
      operationId: get/countries/countryId/activities
      parameters:
        - $ref: '#/components/parameters/countryId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: limit
          description: >
            Limit the maximum number of results to include in the response.


            Using a value greater than the maximum is ignored and the maximum
            number of possible results is used instead.
          in: query
          schema:
            default: 10
            maximum: 100
            type: integer
        - $ref: '#/components/parameters/offset'
        - name: priority_city
          in: query
          description: >
            Sort results so that activities which belong to the requested city
            appear first.


            Returns a 400 status code response if the city does not belong to
            the country.
          schema:
            title: City ID
            minimum: 1
            type: integer
        - $ref: '#/components/parameters/vertical'
      responses:
        '200':
          description: Activities in country
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - countries
        - searching-activities
  /countries/{countryId}/cities:
    get:
      summary: Get cities in country
      description: Returns an array of cities in a country.
      operationId: get/countries/countryId/cities
      parameters:
        - $ref: '#/components/parameters/countryId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: limit
          description: Limit the maximum number of results to include in the response.
          in: query
          schema:
            default: 100
            maximum: 100
            type: integer
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Cities in country
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/City'
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - countries
  /countries/{countryId}/events:
    get:
      summary: Search events in country
      deprecated: true
      description: Response only contains events with a status of `ONLINE`.
      operationId: get/countries/countryId/events
      parameters:
        - $ref: '#/components/parameters/countryId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: limit
          description: >
            Limit the maximum number of results to include in the response.


            Using a value greater than the maximum is ignored and the maximum
            number of possible results is used instead.
          in: query
          schema:
            default: 10
            maximum: 100
            type: integer
        - $ref: '#/components/parameters/offset'
        - name: priority_city
          in: query
          description: >
            Sort results so that activities which belong to the requested city
            appear first.


            Returns a 400 status code response if the city does not belong to
            the country.
          schema:
            title: City ID
            minimum: 1
            type: integer
        - $ref: '#/components/parameters/vertical'
      responses:
        '200':
          description: Events in country
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - countries-removed
  /currencies:
    get:
      summary: Get currencies
      description: Returns an array of currencies.
      operationId: get/currencies
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Currencies
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Currency'
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - metadata
  /events:
    get:
      summary: Search events
      deprecated: true
      description: |
        *Event* is an older term for *activity*.

        This endpoint has been replaced by the `/activities` endpoint.
      operationId: get/events
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/category_in'
        - $ref: '#/components/parameters/city_in'
        - $ref: '#/components/parameters/country_in'
        - name: discounted
          description: |
            Filter results based on whether they have discounts or not:

              * `0`: return events without discounts.
              * `1`: only return events with discounts.
          in: query
          schema:
            enum:
              - 0
              - 1
            type: integer
        - name: id_in
          in: query
          description: Filter results to the specified numeric event IDs.
          explode: false
          schema:
            example:
              - 497
              - 545
            items:
              title: Event ID
              type: integer
            type: array
          style: form
        - name: limit
          description: Limit the maximum number of results to include in the response.
          in: query
          schema:
            default: 100
            maximum: 100
        - name: not_city_in
          in: query
          description: >-
            Filter results to those which are not connected to any of the
            specified cities.
          explode: false
          schema:
            items:
              title: City ID
              type: integer
            type: array
          style: form
        - name: not_country_in
          in: query
          description: >-
            Filter results to those which are not connected to any of the
            specified countries.
          explode: false
          schema:
            items:
              title: Country ID
              type: integer
            type: array
          style: form
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/page'
        - name: temporary
          description: |
            Filter results based on their `temporary` property:

              * `0`: return results with a temporary value of `false`.
              * `1`: return results with a temporary value of `true`.
          in: query
          schema:
            enum:
              - 0
              - 1
            type: integer
        - name: sort_by
          in: query
          description: >
            Sort results by one or more criteria.


            Results are sorted from lowest to highest value by default. To sort
            from highest to lowest, add `-` in front of the value.
          explode: false
          schema:
            example:
              - '-relevance'
            items:
              default: relevance
              enum:
                - '-relevance'
                - relevance
              type: string
            type: array
          style: form
        - $ref: '#/components/parameters/vertical_in'
      responses:
        '200':
          description: Events
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
                uniqueItems: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - events
  /events/{eventId}:
    get:
      summary: Get event
      deprecated: true
      description: Returns an event.
      operationId: get/events/eventId
      parameters:
        - $ref: '#/components/parameters/eventId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - events
  /events/{eventId}/comments:
    get:
      summary: Search comments about event
      deprecated: true
      description: >
        *Comments* are an older form of review submitted directly to the
        Musement platform.


        This endpoint has been replaced by the
        `/activities/{activityUuid}/reviews` endpoint, which incorporates
        reviews from various sources.
      operationId: get/events/eventId/comments
      parameters:
        - $ref: '#/components/parameters/eventId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/include_empty'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/locale'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/rating_in'
        - name: sort_by
          in: query
          description: |
            Sort comments by one of the following choices:

            * `DATE`: From least recent `sent_at` value to most recent.
            * `-DATE`: From most recent `sent_at` value to least recent
            * `RATING`: From lowest `rating` to highest.
            * `-RATING`: From highest `rating` to lowest.
          schema:
            type: string
            enum:
              - '-DATE'
              - '-RATING'
              - DATE
              - RATING
      responses:
        '200':
          description: Comments about event
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Comment'
                type: array
                uniqueItems: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - events
  /events/{eventId}/dates:
    get:
      summary: Search dates in event
      deprecated: true
      description: >
        Depending on the event configuration, this endpoint may return price
        info in addition to dates.


        For events with pickups, the `pickup` query parameter *must* be used.
      operationId: get/events/eventId/dates
      parameters:
        - $ref: '#/components/parameters/eventId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/date_from'
        - $ref: '#/components/parameters/date_to'
        - $ref: '#/components/parameters/discounts'
        - $ref: '#/components/parameters/pickup'
        - $ref: '#/components/parameters/tickets_number'
      responses:
        '200':
          description: Dates for event
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Date'
                type: array
                uniqueItems: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - events
  /events/{eventId}/media:
    get:
      summary: Get media for event
      deprecated: true
      description: >
        The response contains an array of media items for the event. Items are
        mainly images, but could also be video.


        Depending on the event configuration, the cover image may or may not be
        part of the results. If none of the results is the cover image, you can
        get its URL from the `/event/{eventId}` endpoint.
      operationId: get/events/eventId/media
      parameters:
        - $ref: '#/components/parameters/eventId'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Media for event
          content:
            application/json:
              schema:
                items:
                  example:
                    id: 94516
                    is_cover: false
                    title: Via Appia at sunset
                    type: image
                    url: >-
                      https://images-sandbox.musement.com/default/0001/95/thumb_94516_default_header.jpeg?w=750&h=500
                  properties:
                    id:
                      description: The media item's numeric ID.
                      minimum: 1
                      type: integer
                    is_cover:
                      description: >-
                        Whether the media item should be used as an event's
                        cover image or not.
                      type: boolean
                    title:
                      description: >-
                        The alternative text to use for the media item when
                        unable to display it.
                      type: string
                    type:
                      description: The type of media item.
                      enum:
                        - image
                        - video
                      type: string
                    url:
                      description: The URL for the media item.
                      format: uri
                      type: string
                  required:
                    - id
                    - is_cover
                    - title
                    - type
                    - url
                  type: object
                type: array
                uniqueItems: true
        '403':
          $ref: '#/components/responses/Activity403'
        '404':
          $ref: '#/components/responses/Activity404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - events
  /events/{eventId}/related-events:
    get:
      summary: Get events related to event
      deprecated: true
      description: >-
        Returns events that share the same city, country and/or vertical of the
        specified event, sorted by the `relevance` property.
      operationId: get/events/eventId/related-events
      parameters:
        - $ref: '#/components/parameters/eventId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: limit
          description: Limit the maximum number of results to include in the response.
          in: query
          schema:
            default: 6
            type: integer
      responses:
        '200':
          description: Related events
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
                uniqueItems: true
        '404':
          description: 'Not found: event does not exist or has no related events'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '1400'
                      message: No related events.
        default:
          $ref: '#/components/responses/default'
      tags:
        - events
  /flavours:
    get:
      summary: Search flavours
      description: >-
        This endpoint returns all available *flavours*, a type of tag for
        activities.
      externalDocs:
        description: For more info, check out our guide.
        url: https://partner-api.musement.com/guide/activities/flavours/
      operationId: get/flavours
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: group
          description: >-
            Filter results by `group`. When this parameter is absent, only
            flavours with no group are returned.
          in: query
          schema:
            enum:
              - tui-commercial-classification
            type: string
      responses:
        '200':
          description: Flavours
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Flavour'
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - metadata
  /features:
    get:
      summary: Get features
      description: >-
        Get a complete list of *feature* metadata items that can be used for
        activities.
      operationId: get/features
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Features
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/MetadataItem'
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - metadata
  /list-types:
    get:
      summary: Get list types
      description: >
        Every list is assigned a *list type* to indicate its general purpose.
        This endpoint returns all list types available in the API.
      operationId: get/list-types
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: List types
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ListType'
                type: array
                uniqueItems: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - lists
  /lists:
    get:
      summary: Search lists
      description: Response only contains published lists with one or more available items.
      operationId: get/lists
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Device-Type'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/category_in'
        - $ref: '#/components/parameters/city_in'
        - $ref: '#/components/parameters/country_in'
        - $ref: '#/components/parameters/exclude_not_tagged'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/listtags'
        - $ref: '#/components/parameters/listtypes'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/temporary'
        - $ref: '#/components/parameters/vertical'
      responses:
        '200':
          description: Lists
          content:
            application/json:
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/List'
                    - required:
                        - authors
                        - cover_image_url
                        - description
                        - id
                        - items_count
                        - saves
                        - subtitle
                        - temporary
                        - title
                        - url
                        - verticals
                    - properties:
                        category:
                          title: Category
                          required:
                            - code
                            - id
                            - name
                            - url
                        city:
                          required:
                            - cover_image_url
                            - id
                            - name
                        verticals:
                          items:
                            required:
                              - code
                              - id
                              - name
                type: array
                uniqueItems: true
        '404':
          description: 'Not found: no list matches request parameters'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '1400'
                      message: No list found matching search criteria
        default:
          $ref: '#/components/responses/default'
      tags:
        - lists
  /lists/{listId}:
    get:
      summary: Get list
      description: Returns a list.
      operationId: get/lists/listId
      parameters:
        - $ref: '#/components/parameters/listId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Market'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: List
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/List'
                  - required:
                      - authors
                      - cover_image_url
                      - description
                      - id
                      - items
                      - items_count
                      - list_type
                      - saves
                      - seo_description
                      - seo_title
                      - subtitle
                      - temporary
                      - title
                      - url
                      - verticals
                  - properties:
                      category:
                        required:
                          - code
                          - cover_image_url
                          - event_image_url
                          - id
                          - level
                          - name
                          - url
                      city:
                        required:
                          - cover_image_url
                          - id
                          - name
                          - time_zone
                          - url
                      verticals:
                        items:
                          allOf:
                            - required:
                                - active
                                - code
                                - cover_image_url
                                - id
                                - meta_description
                                - meta_title
                                - name
                                - relevance
                                - slug
                                - url
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - lists
  /lists/{listId}/regions:
    get:
      summary: Get pages for list
      description: >
        Get all available [musement.com](https://www.musement.com) pages for the
        specified list.
      operationId: get/lists/listId/regions
      parameters:
        - $ref: '#/components/parameters/listId'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Pages for list
          content:
            application/json:
              schema:
                items:
                  example:
                    code: us
                    url: https://.sbox.musement.com/us/new-york/top-experiences-l/
                  properties:
                    code:
                      description: The language code for the page, following RFC 3066.
                      type: string
                    url:
                      description: The URL for the page in the related language.
                      format: uri
                      type: string
                  required:
                    - code
                    - url
                  type: object
                type: array
                uniqueItems: true
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - lists
  /services:
    get:
      summary: Get services
      description: >-
        Get a complete list of *service* metadata items that can be used for
        activities.
      operationId: get/services
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Services
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/MetadataItem'
                type: array
                uniqueItems: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - metadata
  /orders:
    post:
      summary: Create order
      description: >
        When a customer cart is ready, it's time to create an order and proceed
        to payment. We strongly recommend creating orders only when payment is
        guaranteed in order to reduce unnecessary API calls and avoid misleading
        results in sales reports.


        Partners are able to include more details to help map the order to their
        own orders system.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/api/partner/booking-flow/order/create/
      operationId: post/orders
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Version'
      requestBody:
        content:
          application/json:
            schema:
              example:
                cart_uuid: ff111070-984a-4cff-87c7-2a32cd76de36
                email_notification: NONE
                extra_data: >-
                  {"clientReferenceId":"12345678","firstName":"John","lastName":"Smith","reservationId":"3E5B7445-00E6-4ED6-9321-19E30D73A128","utm_campaign":"example-it","utm_content":"it-native","utm_medium":"example-App
                  it","utm_source":"channel-abc"}
              properties:
                affiliate:
                  description: The affiliate partner's alphanumeric ID.
                  type: string
                affiliate_channel:
                  description: >-
                    A partner's channel ID for the order. Requires the
                    `affiliate` property in the request body.
                  type: string
                cart_id:
                  description: >-
                    The cart's numeric ID. Please use the `cart_uuid` property
                    instead.
                  deprecated: true
                  type: integer
                cart_uuid:
                  description: The cart's UUID.
                  format: uuid
                  type: string
                email_notification:
                  default: ALL
                  description: |
                    Specify which email notifications are sent:

                      * `ALL`: all relevant notification emails
                      * `NONE`: no emails are sent
                      * `TO-CUSTOMER`: notification emails are sent to the customer only
                  enum:
                    - ALL
                    - NONE
                    - TO-CUSTOMER
                  type: string
                extra_data:
                  description: >-
                    Additional info about the order that partners may want to
                    save. This value only accepts a serialized JSON object of
                    key-value pairs.
                  type: string
                sms_notification_to:
                  description: >-
                    A phone number for SMS notifications related to the order.
                    Values must follow the E.164 international standard.
                  type: string
                source:
                  description: The name of the application creating the order.
                  type: string
              required:
                - cart_uuid
              type: object
      responses:
        '200':
          description: Order
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        default:
          $ref: '#/components/responses/default'
      tags:
        - orders
  /orders/{orderUuid}:
    get:
      summary: Get order
      description: Returns an order.
      operationId: get/orders/orderUuid
      parameters:
        - $ref: '#/components/parameters/orderUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Order
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - orders
    patch:
      summary: Update order
      description: Once payment has occurred, orders cannot be updated.
      operationId: patch/orders/orderUuid
      parameters:
        - $ref: '#/components/parameters/orderUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Version'
      requestBody:
        description: Order information
        content:
          application/json:
            schema:
              properties:
                extra_data:
                  description: >-
                    Additional info about the order that partners may want to
                    save. This value only accepts a serialized JSON object of
                    key-value pairs.
                  example: >-
                    {"clientReferenceId":"12345678","firstName":"John","lastName":"Smith","reservationId":"3E5B7445-00E6-4ED6-9321-19E30D73A128","utm_campaign":"example-it","utm_content":"it-native","utm_medium":"example-App
                    it","utm_source":"channel-abc"}
                  type: string
              type: object
        required: true
      responses:
        '200':
          description: Order
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '404':
          $ref: '#/components/responses/404'
        '423':
          $ref: '#/components/responses/Order423'
        default:
          $ref: '#/components/responses/default'
      tags:
        - orders
  /orders/{orderUuid}/activities/{activityUuid}/tickets:
    get:
      summary: Get tickets for activity in order
      description: >-
        Returns an array of available tickets/vouchers for the specified
        activity in the order. Use the `GET
        /orders/{orderUuid}/activities/{activityUuid}/tickets/{ticketId}`
        endpoint to download each ticket.
      operationId: get/orders/orderUuid/activities/activityUuid/tickets
      parameters:
        - $ref: '#/components/parameters/orderUuid'
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Tickets for activity in order
          content:
            application/json:
              schema:
                items:
                  example:
                    id: AW50cmFuY2UtYXV2aW9ndWlkZXr3NzkwNzQ4MQ==
                    price_feature_code: entrance-audioguide
                    price_feature: Entrance + audio guide
                    date: 2021-06-15T16:00:00+0000
                  properties:
                    id:
                      type: string
                      description: The ticket's unique ID encoded in Base64.
                    price_feature_code:
                      description: >-
                        The unique alphanumeric identifier for the feature, aka
                        *ticket option*.
                      type: string
                    price_feature:
                      description: >-
                        The price tag feature, aka *ticket option*, translated
                        based on the `Accept-Language` header value.
                      type: string
                    date:
                      description: The reserved date and time.
                      format: date-time
                      type: string
                  required:
                    - id
                    - price_feature_code
                    - price_feature
                    - date
                  type: object
                minItems: 1
                type: array
                uniqueItems: true
        '404':
          description: >-
            Not found: order or activity do not exist or no tickets are
            available
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '9442'
                      message: Voucher not available
        default:
          $ref: '#/components/responses/default'
      tags:
        - vouchers
  /orders/{orderUuid}/activities/{activityUuid}/tickets/{ticketId}:
    get:
      summary: Get PDF ticket for product in order
      description: >-
        Returns a PDF for a single reserved activity product in the specified
        order.
      operationId: get/orders/orderUuid/activities/activityUuid/tickets/ticketId
      parameters:
        - $ref: '#/components/parameters/orderUuid'
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/ticketId'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: PDF ticket for product in order
          content:
            application/pdf:
              schema:
                format: binary
                type: string
        '404':
          description: 'Not found: order or activity do not exist or ticket is not available'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '9442'
                      message: Ticket not available
        '500':
          description: 'Internal server error: unable to create PDF'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '9498'
                      message: Voucher currently not generatable
        default:
          $ref: '#/components/responses/default'
      tags:
        - vouchers
  /orders/{orderUuid}/activities/{activityUuid}/voucher:
    get:
      summary: Get PDF voucher for activity in order
      description: >-
        Returns a single PDF with all available tickets/vouchers for the
        specified activity in the order.
      operationId: get/orders/orderUuid/activities/activityUuid/voucher
      parameters:
        - $ref: '#/components/parameters/orderUuid'
        - $ref: '#/components/parameters/activityUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: PDF voucher for activity in order
          content:
            application/pdf:
              schema:
                format: binary
                type: string
        '404':
          description: >-
            Not found: order or activity do not exist or at least one voucher is
            not available
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '9442'
                      message: Voucher not available
        '500':
          description: 'Internal server error: unable to create PDF'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '9498'
                      message: Voucher currently not generatable
        default:
          $ref: '#/components/responses/default'
      tags:
        - vouchers
  /orders/{orderUuid}/items/{orderItemUuid}:
    delete:
      summary: Cancel reservation for order item
      description: >
        Cancelling reservations requires extra permissions which are not enabled
        by default.


        Cancellations are possible for activities with one or more refund
        policies, provided the cancellation takes place before the refund cutoff
        date.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/guide/cancellation/canceling-an-order-item/
      operationId: delete/orders/orderUuid/items/orderItemUuid
      parameters:
        - $ref: '#/components/parameters/orderUuid'
        - $ref: '#/components/parameters/orderItemUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      requestBody:
        description: Details about the cancellation
        required: false
        content:
          application/json:
            schema:
              example:
                cancellation_additional_info: Customer rejected suggested change to reservation date.
                cancellation_reason: REJECTED-SCHEDULE-CHANGE
              properties:
                cancellation_additional_info:
                  description: >-
                    Additional information about the cancellation which partners
                    wish to communicate to Musement Customer Care.
                  maxLength: 255
                  type: string
                cancellation_integration_data:
                  description: >-
                    Additional information about the cancellation which partners
                    would like to save for their integration.
                  type: object
                cancellation_reason:
                  description: |
                    The reason for the cancellation, from the following options:

                      * `API-ISSUE`: Technical issue with API.
                      * `CANCELLED-BY-CUSTOMER`: Cancellation requested by customer.
                      * `GRACE-PERIOD`: An agreed upon time between paying for an order and cancelling without repercussions.
                      * `MISSING-MEETING-POINT-DETAILS`: Activity meeting point was incorrect or changed without contact from activity provider or Musement Customer Care.
                      * `MISSING-PASSENGER-INFO`: Provider cannot accept the reservation due to missing information such as date of birth or pickup location.
                      * `REJECTED-ORDER`: Provider cannot accept the reservation due to overbooking or because the requested date/time is no longer available.
                      * `REJECTED-SCHEDULE-CHANGE`: Cancellation because proposed change to reservation date/time was rejected by the customer.
                      * `TECHNICAL-ISSUE`: Technical issue not covered by any of the other reasons.
                      * `VENUE-CLOSED`: Reservation was not honored due to weather, maintenance, strikes, closed venue or other reason.
                  enum:
                    - API-ISSUE
                    - CANCELLED-BY-CUSTOMER
                    - GRACE-PERIOD
                    - MISSING-MEETING-POINT-DETAILS
                    - MISSING-PASSENGER-INFO
                    - REJECTED-ORDER
                    - REJECTED-SCHEDULE-CHANGE
                    - TECHNICAL-ISSUE
                    - VENUE-CLOSED
                  type: string
              required:
                - cancellation_reason
              type: object
      responses:
        '204':
          description: Order item successfully cancelled
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      security:
        - Partner:
            - order-item-cancellation
      tags:
        - cancellations
  /orders/{orderUuid}/items/{orderItemUuid}/notifications:
    post:
      summary: Request notification for order item
      description: >
        Trigger a webhook notification for an order item. This endpoint requires
        setting up a webhook URL with us ahead of time.


        Notifications cannot be requested for gifted order items.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/guide/orders-management/order-item-webhook/
      operationId: post/orders/orderUuid/items/orderItemUuid/notifications
      parameters:
        - $ref: '#/components/parameters/orderUuid'
        - $ref: '#/components/parameters/orderItemUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '204':
          description: Request was successful
        '400':
          description: 'Bad request: notification is not possible'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '1000'
                      message: Notifications cannot be triggered for this order item.
        '404':
          description: 'Not found: order or order item do not exist'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '1440'
                      message: Order item does not exist.
        default:
          $ref: '#/components/responses/default'
      tags:
        - orders
  /orders/{orderUuid}/items/{orderItemUuid}/refund-policies:
    get:
      summary: Get refund policies for order item
      description: Returns an array of refund policies for an order item.
      operationId: get/orders/orderUuid/items/orderItemUuid/refund-policies
      parameters:
        - $ref: '#/components/parameters/orderUuid'
        - $ref: '#/components/parameters/orderItemUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Refund policies for order item
          content:
            application/json:
              schema:
                items:
                  title: Refund policy
                  allOf:
                    - $ref: '#/components/schemas/RefundPolicy'
                    - properties:
                        applicable_until:
                          description: >-
                            The cutoff date and time when cancellations for the
                            order item are no longer refunded, in the following
                            format: `Y-m-d H:i`.
                          example: 2022-11-09 09:00
                          type: string
                        remaining_time:
                          description: >-
                            The remaining amount of time, following ISO 8601, to
                            cancel the order item and still receive a refund.
                          example: P6M26DT18H50M11S
                          type: string
                      required:
                        - applicable_until
                        - remaining_time
                type: array
                uniqueItems: true
        '404':
          $ref: '#/components/responses/RefundPolicy404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - orders
  /orders/{orderUuid}/items/{orderItemUuid}/voucher:
    get:
      summary: Get PDF for order item
      description: >-
        Returns a single PDF with all available tickets/vouchers for the
        specified order item.
      operationId: get/orders/orderUuid/items/orderItemUuid/voucher
      parameters:
        - $ref: '#/components/parameters/orderUuid'
        - $ref: '#/components/parameters/orderItemUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: PDF for order item
          content:
            application/pdf:
              schema:
                format: binary
                type: string
        '404':
          description: >-
            Not found: order or order item do not exist or at least one voucher
            is not available
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '9442'
                      message: Voucher not available
        '500':
          description: 'Internal server error: unable to create PDF'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '9498'
                      message: Voucher currently not generatable
        default:
          $ref: '#/components/responses/default'
      tags:
        - vouchers
  /orders/{orderUuid}/items/{orderItemUuid}/vouchers-external:
    get:
      summary: Get external PDF for order item
      description: >-
        Returns a single PDF with all externally sourced tickets/vouchers for
        the specified order item.
      operationId: get/orders/orderUuid/items/orderItemUuid/vouchers-external
      parameters:
        - $ref: '#/components/parameters/orderUuid'
        - $ref: '#/components/parameters/orderItemUuid'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: External PDF for order item
          content:
            application/pdf:
              schema:
                format: binary
                type: string
        '404':
          description: 'Not found: order or order item do not exist'
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '9442'
                      message: Voucher not available
        '409':
          description: >-
            Conflict: order item has no external vouchers or unable to get
            external voucher
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '9498'
                      message: No vouchers found.
        default:
          $ref: '#/components/responses/default'
      tags:
        - vouchers
  /payments/no/payment:
    post:
      summary: Pay for order via "no-payment flow"
      description: >
        Confirm order payment with the "no-payment flow".


        This flow can be used by any partner if the total price of an order is
        zero.


        For orders with a total price greater than zero, this flow is reserved
        for partners acting as merchant of record. Permission to use this flow
        must be set up ahead of time.
      externalDocs:
        description: For more info, check out our guide.
        url: https://partner-api.musement.com/guide/booking-flows/payment/
      operationId: post/payments/no/payment
      parameters:
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Version'
      requestBody:
        content:
          application/json:
            schema:
              example:
                uuid: de52057f-e788-46d6-8b18-6ccb8f9267d9
              properties:
                id:
                  deprecated: true
                  description: The numeric order ID.
                  type: integer
                uuid:
                  description: The order's UUID.
                  format: uuid
                  type: string
              required:
                - uuid
              type: object
        required: true
      responses:
        '200':
          description: Order
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '404':
          $ref: '#/components/responses/Payment404'
        '422':
          description: >-
            Unprocessable entity: order price is greater than zero and partner
            does not have permission to use "no-payment flow"
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - example:
                      code: '2201'
                      message: >-
                        Order cannot be processed using no payment strategy.
                        Order value must be zero.
        '423':
          $ref: '#/components/responses/Payment423'
        default:
          $ref: '#/components/responses/default'
      security:
        - Partner:
            - no-payment
      tags:
        - payments
  /payments/split/payment:
    post:
      summary: Begin payment via Adyen or Stripe
      description: >
        Start paying for an order using either Adyen or Stripe.


        Use of this endpoint requires completing payment with the `POST
        /payments/split/complete_3d_secure` endpoint.
      externalDocs:
        description: For more info, check out our guide.
        url: https://partner-api.musement.com/guide/booking-flows/payment/
      operationId: post/payments/split/payment
      parameters:
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - title: Adyen payment info
                  properties:
                    adyen_token:
                      description: >-
                        The Adyen token, prepared on the client application's
                        side.
                      type: string
                    card_brand:
                      description: The name of the credit card company.
                      type: string
                    card_country:
                      description: The card's country code.
                      maxLength: 2
                      minLength: 2
                      type: string
                    client_ip:
                      description: The client application's IP address.
                      type: string
                    order_uuid:
                      description: The UUID of the order to pay for.
                      format: uuid
                      type: string
                    redirect_url_success_3d_secure:
                      description: >-
                        The URL to send customers to after they have completed
                        3D Secure authentication.
                      format: uri
                      type: string
                  required:
                    - adyen_token
                    - order_uuid
                  type: object
                - title: Stripe payment info
                  properties:
                    card_brand:
                      description: The name of the credit card company.
                      type: string
                    card_country:
                      description: The card's country code.
                      maxLength: 2
                      minLength: 2
                      type: string
                    client_ip:
                      description: The client application's IP address.
                      type: string
                    is_apple_pay:
                      description: >-
                        Whether the payment is being made through Apple Pay or
                        not. Please note that Apple Pay can only be used via
                        Stripe.
                      type: boolean
                    order_uuid:
                      description: The UUID of the order to pay for.
                      format: uuid
                      type: string
                    redirect_url_success_3d_secure:
                      description: >-
                        The URL to send customers to after they have completed
                        3D Secure authentication.
                      format: uri
                      type: string
                    stripe_token:
                      description: >-
                        The Stripe token, prepared on the client application's
                        side.
                      type: string
                  required:
                    - order_uuid
                    - stripe_token
                  type: object
      responses:
        '200':
          description: Payment details
          content:
            application/json:
              schema:
                properties:
                  gateway:
                    description: The payment gateway to use.
                    enum:
                      - ADYEN
                      - STRIPE
                    type: string
                  3d_secure:
                    $ref: '#/components/schemas/Payment3dSecure'
                  reason:
                    description: |
                      An indication of which payment gateway was selected:

                        * `BUSINESS_STRATEGY`: automatically based on which gateway provides the best commission.
                        * `CLIENT_SELECTED`: based on request body.
                        * `FALLBACK`: when one gateway payment attempt fails, the other is selected for a second attempt.
                    enum:
                      - BUSINESS_STRATEGY
                      - CLIENT_SELECTED
                      - FALLBACK
                    type: string
                type: object
        '302':
          description: Redirect to 3D Secure authentication
        '401':
          $ref: '#/components/responses/Payment401'
        '404':
          $ref: '#/components/responses/Payment404'
        '422':
          $ref: '#/components/responses/Payment422'
        '423':
          $ref: '#/components/responses/Payment423'
        default:
          $ref: '#/components/responses/default'
      tags:
        - payments
  /payments/split/complete_3d_secure:
    post:
      summary: Complete payment via Adyen or Stripe
      description: >
        Finish paying for an order using either Adyen or Stripe.


        After completing 3D Secure authentication, use this endpoint to confirm
        successful payment for the order.
      externalDocs:
        description: For more info, check out our guide.
        url: https://partner-api.musement.com/guide/booking-flows/payment/
      operationId: post/payments/split/complete_3d_secure
      parameters:
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                order_uuid:
                  description: The order's UUID.
                  format: uuid
                  type: string
                payment_intent_id:
                  description: >-
                    The payment intent ID received from starting 3D Secure
                    authentication.
                  type: string
              required:
                - order_uuid
                - payment_intent_id
              type: object
        required: true
      responses:
        '200':
          description: Payment details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessfulPayment'
        '401':
          $ref: '#/components/responses/Payment401'
        '404':
          $ref: '#/components/responses/Payment404'
        '422':
          $ref: '#/components/responses/Payment422'
        '423':
          $ref: '#/components/responses/Payment423'
        default:
          $ref: '#/components/responses/default'
      tags:
        - payments
  /venues:
    get:
      summary: Search venues
      description: >-
        Response only contains venues with a `status` of `ACTIVE` and
        `events_count` value greater than zero.
      operationId: get/venues
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: country_in
          in: query
          description: >-
            Filter venues by country. Response contains venues which are located
            in at least one of the specified countries. Parameter expects a
            comma-separated list of country IDs.
          style: form
          explode: false
          schema:
            type: array
            items:
              type: integer
              minimum: 1
        - name: limit
          in: query
          description: Limit the maximum number of venues to include in the response.
          schema:
            type: integer
            minimum: 1
            maximum: 100
        - name: offset
          in: query
          description: >-
            Exclude the first `N` results from the response, where `N` is the
            specified integer value.
          schema:
            type: integer
            default: 0
            minimum: 0
        - name: page
          in: query
          description: Get the page number of venues, based on the `limit` parameter.
          schema:
            type: integer
            minimum: 1
        - name: sort_by
          in: query
          description: >-
            Sort results by a specified property. Sorts from lowest to highest
            by default. Add `-` to the beginning to sort from highest to lowest.
          schema:
            type: string
            enum:
              - relevance
              - '-relevance'
      responses:
        '200':
          description: Venues
          content:
            application/json:
              schema:
                type: array
                uniqueItems: true
                items:
                  $ref: '#/components/schemas/Venue'
        '404':
          description: 'Not found: no venue matches the search criteria'
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: Musement's internal status code for the error.
                    type: string
                    example: '1400'
                  message:
                    description: Brief message that explains the error.
                    type: string
                    example: No venue found matching search criteria
                required:
                  - code
                  - message
        default:
          $ref: '#/components/responses/default'
      tags:
        - venues
  /venues/{venueId}:
    get:
      summary: Get venue
      description: Returns a venue.
      operationId: get/venues/venueId
      parameters:
        - $ref: '#/components/parameters/venueId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Venue
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Venue'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - venues
  /venues/{venueId}/activities:
    get:
      summary: Search activities in venue
      description: Response only contains activities with a status of `ONLINE`.
      operationId: get/venues/venueId/activities
      parameters:
        - $ref: '#/components/parameters/venueId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/category'
        - $ref: '#/components/parameters/city'
        - $ref: '#/components/parameters/flavour'
        - name: limit
          description: Limit the maximum number of results to include in the response.
          in: query
          schema:
            default: 100
            maximum: 100
            type: integer
        - $ref: '#/components/parameters/offset'
        - name: sort_by
          description: >-
            Sort results by specific properties. Most values sort activities
            from highest to lowest values. However, when sorting by `price`, the
            results appear from lowest to highest values.
          in: query
          schema:
            default: city-relevance
            enum:
              - city-relevance
              - external-relevance
              - price
              - rating
              - relevance-city
              - relevance-external
              - relevance
            type: string
        - $ref: '#/components/parameters/vertical'
      responses:
        '200':
          description: Activities in venue
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
        '302':
          $ref: '#/components/responses/302'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - searching-activities
        - venues
  /venues/{venueId}/comments:
    get:
      summary: Search comments about activities in venue
      description: >
        *Comments* are an older form of review submitted directly to the
        Musement platform.
      operationId: get/venues/venueId/comments
      parameters:
        - $ref: '#/components/parameters/venueId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/include_empty'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/locale'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/rating_in'
        - name: sort_by
          in: query
          description: |
            Sort comments by one of the following choices:

            * `DATE`: From least recent `sent_at` value to most recent.
            * `-DATE`: From most recent `sent_at` value to least recent
            * `RATING`: From lowest `rating` to highest.
            * `-RATING`: From highest `rating` to lowest.
          schema:
            enum:
              - '-DATE'
              - '-RATING'
              - DATE
              - RATING
            type: string
      responses:
        '200':
          description: Comments about activities in venue
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Comment'
                type: array
                uniqueItems: true
        default:
          $ref: '#/components/responses/default'
      tags:
        - venues
  /venues/{venueId}/events:
    get:
      summary: Search events in venue
      deprecated: true
      description: Response only contains activities with a status of `ONLINE`.
      operationId: get/venues/venueId/events
      parameters:
        - $ref: '#/components/parameters/venueId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/category'
        - $ref: '#/components/parameters/city'
        - $ref: '#/components/parameters/flavour'
        - name: limit
          in: query
          description: Limit the maximum number of activities to include in the response.
          schema:
            type: integer
            default: 10
            minimum: 1
            maximum: 100
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/vertical'
      responses:
        '200':
          description: Activities in venue
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
                uniqueItems: true
                xml:
                  name: result
                  wrapped: true
        '302':
          $ref: '#/components/responses/302'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - venues-removed
  /venues/{venueId}/flavours:
    get:
      summary: Get flavours for activities in venue
      description: Returns an array of flavours for activities in a venue.
      operationId: get/venues/venueId/flavours
      parameters:
        - $ref: '#/components/parameters/venueId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Flavours for activities in venue
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Flavour'
                type: array
                uniqueItems: true
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - venues
  /verticals:
    get:
      summary: Get verticals
      deprecated: true
      description: Returns an array of verticals.
      operationId: get/verticals
      parameters:
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Verticals
          content:
            application/json:
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/Vertical'
                    - required:
                        - active
                        - code
                        - count
                        - cover_image_url
                        - id
                        - meta_description
                        - meta_title
                        - name
                        - relevance
                        - slug
                        - url
                type: array
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - verticals
  /verticals/{verticalId}:
    get:
      summary: Get vertical
      deprecated: true
      description: Returns a vertical.
      operationId: get/verticals/verticalId
      parameters:
        - $ref: '#/components/parameters/verticalId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
      responses:
        '200':
          description: Vertical
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                    - $ref: '#/components/schemas/Vertical'
                    - required:
                        - active
                        - code
                        - cover_image_url
                        - id
                        - meta_description
                        - meta_title
                        - name
                        - relevance
                        - slug
                        - url
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - verticals
  /verticals/{verticalId}/activities:
    get:
      summary: Search activities in vertical
      deprecated: true
      description: Returns an array of activities which belong to the vertical.
      operationId: get/verticals/verticalId/activities
      parameters:
        - $ref: '#/components/parameters/verticalId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Currency'
        - $ref: '#/components/parameters/X-Musement-Version'
        - $ref: '#/components/parameters/category'
        - $ref: '#/components/parameters/city'
        - name: limit
          description: Limit the maximum number of venues to include in the response.
          in: query
          schema:
            default: 100
            minimum: 1
            maximum: 100
            type: integer
        - $ref: '#/components/parameters/offset'
        - name: sort_by
          description: Sort results by a specified property, from highest value to lowest.
          in: query
          schema:
            enum:
              - category-relevance
              - city-relevance
              - external-relevance
              - price
              - rating
              - relevance
              - venue-relevance
            type: string
        - name: venue
          description: >-
            Filter results by venue. Resulting activities will be in the
            specified venue.
          in: query
          schema:
            title: Venue ID
            minimum: 1
            type: integer
      responses:
        '200':
          description: Activities in vertical
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Activity'
                uniqueItems: true
                type: array
        '302':
          description: >-
            When the `limit` parameter is greater than the maximum, endpoint is
            redirected with `limit={maximum}`.
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - verticals
  /verticals/{verticalId}/categories:
    get:
      summary: Search categories in vertical
      deprecated: true
      description: Returns an array of categories which belong to the vertical.
      operationId: get/verticals/verticalId/categories
      parameters:
        - $ref: '#/components/parameters/verticalId'
        - $ref: '#/components/parameters/Accept-Language'
        - $ref: '#/components/parameters/X-Musement-Application'
        - $ref: '#/components/parameters/X-Musement-Version'
        - name: filtering_aware
          in: query
          description: >-
            Filter results to categories which can or cannot be used as filters
            for special landing pages.
          schema:
            type: integer
            enum:
              - 0
              - 1
      responses:
        '200':
          description: Categories in vertical
          content:
            application/json:
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/Category'
                    - required:
                        - code
                        - id
                        - level
                        - name
                uniqueItems: true
                type: array
        '302':
          description: >-
            When the `limit` parameter is greater than the maximum, endpoint is
            redirected with `limit={maximum}`.
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/default'
      tags:
        - verticals
components:
  securitySchemes:
    Partner:
      description: The default security scheme for partners accessing the Musement API.
      flows:
        clientCredentials:
          refreshUrl: /refresh
          scopes:
            comment: Partner is allowed to submit reviews for an activity.
            no-payment: Partner is allowed to use the "no-payment flow" to pay for orders.
            order-item-cancellation: Partner is allowed to cancel bookings.
          tokenUrl: /login
      type: oauth2
    Webhook:
      description: >-
        This security scheme is used by the Musement API when calling a
        partner's service.
      scheme: basic
      type: http
  parameters:
    Accept-Language:
      name: Accept-Language
      description: >-
        The value of this parameter *might* affect the language of the content
        in the response, provided a translation in the requested language is
        available.
      in: header
      schema:
        title: Language code
        default: en-US
        type: string
    X-Musement-Application:
      name: X-Musement-Application
      description: >-
        A partner's application value, used for analyzing API usage and to
        identify areas of improvement.
      in: header
      schema:
        title: Application value
        externalDocs:
          description: For more info, check out our guide.
          url: >-
            https://partner-api.musement.com/guide/overview/x-musement-application-header/
        type: string
    X-Musement-Currency:
      name: X-Musement-Currency
      description: >-
        A valid currency `code` from the `/currencies` endpoint. Default value
        may vary depending on the `X-Musement-Market` header value.
      in: header
      schema:
        title: Currency code
        default: USD
        type: string
    X-Musement-Market:
      name: X-Musement-Market
      description: >
        Musement markets contain a modified catalog of activities and prices.
        Partners are expected to use their assigned *market code* to view their
        customized catalog.


        An invalid `X-Musement-Market` value will return a `400` status code
        response.
      in: header
      schema:
        title: Musement market
        default: us
        externalDocs:
          description: For more info, check out our guide.
          url: >-
            https://partner-api.musement.com/guide/overview/musement-market-header/
        type: string
    X-Musement-Version:
      name: X-Musement-Version
      description: >
        The API version to use for the request.


        When absent, the latest version is used by default, however the latest
        version may not be stable. Partners are encouraged to use the latest
        *stable* version: `3.4.0`.
      in: header
      required: false
      schema:
        example: 3.4.0
        externalDocs:
          description: For more info, check out our guide.
          url: https://partner-api.musement.com/guide/overview/versioning/
        pattern: ^[0-9]+?.[0-9]+?.[0-9]+?$
        type: string
    available_from:
      name: available_from
      description: >
        Filter activities by their available dates. Only activities with at
        least one available date after this parameter value are returned.


        Must be used together with `available_to` parameter.
      in: query
      schema:
        format: date
        type: string
    available_language_in:
      name: available_language_in
      in: query
      description: >-
        Filter activities to those which accommodate at least one of the
        specified languages.
      explode: false
      schema:
        example:
          - en
          - it
        items:
          title: Language code
          type: string
        type: array
      style: form
    available_to:
      name: available_to
      description: >
        Filter activities by their available dates. Only activities with at
        least one available date before this parameter value are returned.


        Must be used together with `available_from` parameter.
      in: query
      schema:
        format: date
        type: string
    city_in:
      name: city_in
      description: >-
        Filter results to those which are connected to at least one of the
        specified cities.
      explode: false
      in: query
      schema:
        items:
          title: City ID
          type: integer
        type: array
      style: form
    coordinates:
      name: coordinates
      description: >
        Filter results to those located near the specified latitude and
        longitude. Separate the coordinates with a comma.


        Must be used together with the `distance` parameter.
      in: query
      schema:
        example: 45.7386,-9.3641
        externalDocs:
          description: For more info, check out our guide.
          url: >-
            https://partner-api.musement.com/guide/booking-flows/filtering/#coordinates
        pattern: (-)?\d{1,3}(\.\d+)?,(-)?\d{1,3}(\.\d+)?
        type: string
    default_price_range:
      name: default_price_range
      description: >
        Filter results by price. Results will contain pricing which falls
        between the two specified amounts.


        Parameter requires two values, a lower and upper bound, separated by a
        comma. Each value must be a float or integer. Parameter accepts up to
        two decimal digits.


        This parameter uses the currency value in the `X-Musement-Currency`
        header.
      in: query
      schema:
        example: 0,34.23
        pattern: ^\d{1,5}(.\d{1,2})?,\d{1,5}(.\d{1,2})?$
        type: string
    distance:
      name: distance
      description: >
        Filter results to activities located within the specified radius around
        a pair of coordinates. Parameter must include one of the following
        units:

          * `KM`: kilometers
          * `M`: miles

        Must be used together with the `coordinates` parameter.
      in: query
      schema:
        example: 5KM
        externalDocs:
          description: For more info, check out our guide.
          url: >-
            https://partner-api.musement.com/guide/booking-flows/filtering/#coordinates
        pattern: ^\d{1,1000}(KM|M)$
        type: string
    discounted:
      name: discounted
      description: |
        Filter results by discount:

          * `NO`: return activities without discounts.
          * `YES`: only return activities with discounts.
      in: query
      schema:
        enum:
          - 'NO'
          - 'YES'
        type: string
    duration_range:
      name: duration_range
      description: >
        Filter results by their duration. Parameter can accept a single lower
        bound value or both a lower and upper bound separated by a comma.


        Parameter values are treated as *hours*. Values can have up to two
        decimal places.
      in: query
      schema:
        example: 2,8
        pattern: ^\d{1,5}(.\d{1,2})?(,\d{1,5}(.\d{1,2})?)?$
        type: string
    extend_content_fields:
      name: extend_content_fields
      description: >
        Combined with the `text` parameter, filter results based on the title
        only or all content properties:

          * `AUTO`: initially filter results based on titles. If no results are found, extend the search to include other content properties.
          * `NO`: filter results based on titles only.
          * `YES`: filter results based on all content properties.
      in: query
      schema:
        default: AUTO
        enum:
          - AUTO
          - 'NO'
          - 'YES'
        type: string
    extend_other_languages:
      name: extend_other_languages
      description: >
        Combined with the `text` parameter, filter results based on the
        `Accept-Language` header value or all languages:

         * `AUTO`: initially filter results based on the `Accept-Language` header value. If no results are found, extend the search to include all languages.
         * `NO`: filter results based on the `Accept-Language` header value.
         * `YES`: filter results based on all languages.
      in: query
      schema:
        default: AUTO
        enum:
          - AUTO
          - 'YES'
          - 'NO'
        type: string
    feature_in:
      name: feature_in
      in: query
      description: >-
        Filter results to activities which use at least one of the specified
        features.
      explode: false
      schema:
        example:
          - free
          - skip
        items:
          title: Feature code
          type: string
        type: array
      style: form
    flavour_in:
      name: flavour_in
      description: >
        Filter activities to those which use at least one of the specified
        flavours.


        Flavours are available from the `GET /flavours` endpoint.
      explode: false
      in: query
      schema:
        items:
          title: Flavour ID
          type: integer
        type: array
      style: form
    flavour_not_in:
      name: flavour_not_in
      description: >
        Filter activities to exclude those which use any of the specified
        flavours.


        Flavours are available from the `GET /flavours` endpoint.
      explode: false
      in: query
      schema:
        items:
          title: Flavour ID
          type: integer
        type: array
      style: form
    fuzziness_level:
      name: fuzziness_level
      description: >-
        Change the "fuzziness" level for the `text` parameter value. Higher
        levels are less strict about exact text matches.
      in: query
      schema:
        default: LEVEL-0
        enum:
          - AUTO
          - LEVEL-0
          - LEVEL-1
          - LEVEL-2
        type: string
    include_facets:
      name: include_facets
      in: query
      description: >
        Include specified statistics about activities matching the query.
        Results appear in the `facets` property in the response.


        Every facet contains details which can be used to modify the
        `/activities` query parameters further.


        Most facets contain a breakdown of the number of activities which use
        that value. These numbers account for all activities which match the
        query, not just those in the response. When querying for prices, facet
        values contain the relevant price value instead.


        Valid parameter values provide:

          * `available_language`: up to ten languages
          * `category`: up to ten categories
          * `categories_tree`: all categories in their tree structure
          * `city`: up to ten cities
          * `country`: up to 1000 countries
          * `duration`: a breakdown of activity durations:
            * Up to 2 hours
            * 2-4 hours
            * 4-8 hours
            * 8-24 hours
            * Over 24 hours
          * `feature`: up to 10 features
          * `hotel`: deprecated, use `pickup` or `hotel_pickup` instead
          * `hotel_pickup`: up to 1000 pickup points (type `HOTEL`)
          * `meeting_point_pickup`: up to 1000 pickup points (type `PICKUP`)
          * `pickup`: up to 1000 pickup points (of any type)
          * `price`: lowest and highest prices
          * `seller`: up to 10 seller gateways
          * `service`: up to 10 services
          * `vertical`: up to 10 verticals
          * `vertical_categories`: up to 10 verticals
      explode: false
      schema:
        example:
          - feature
          - service
        items:
          enum:
            - available_language
            - category
            - categories_tree
            - city
            - country
            - duration
            - feature
            - hotel
            - hotel_pickup
            - meeting_point_pickup
            - pickup
            - price
            - seller
            - service
            - venue
            - vertical
            - vertical_categories
          type: string
        type: array
      style: form
    limit:
      name: limit
      description: Limit the maximum number of results to include in the response.
      in: query
      schema:
        default: 10
        maximum: 100
        type: integer
    offset:
      name: offset
      in: query
      description: >-
        Exclude the first `N` results from the response, where `N` is the
        specified integer value.
      schema:
        default: 0
        minimum: 0
        type: integer
    pickup_in:
      name: pickup_in
      in: query
      description: >-
        Filter results to activities which use at least one of the specified
        pickups.
      explode: false
      schema:
        items:
          title: Pickup UUID
          format: uuid
          type: string
        type: array
      style: form
    preferred_seller_boost:
      name: preferred_seller_boost
      description: >-
        A numeric value to increase the boost for activities whose seller
        gateway matches the `preferred_seller_code` parameter.
      in: query
      schema:
        default: 1000
        type: integer
    preferred_seller_code:
      name: preferred_seller_code
      description: >-
        Activities connected to the specified seller gateway are "boosted" -
        treated as if they have a higher `relevance` value. When sorting by
        `-relevance` (from highest to lowest), these activities are more likely
        to appear first.
      in: query
      schema:
        example: Direct
        title: Seller gateway code
        type: string
    seller_in:
      name: seller_in
      description: >-
        Filter results to activities which use any of the specified seller
        gateways.
      explode: false
      in: query
      schema:
        example:
          - Direct
        items:
          title: Seller gateway code
          type: string
        type: array
      style: form
    text:
      name: text
      description: Filter results by key words.
      in: query
      schema:
        externalDocs:
          description: For more info, check out our guide.
          url: >-
            https://partner-api.musement.com/guide/booking-flows/filtering/#key-words
        type: string
    text_operator:
      name: text_operator
      description: >
        Change how the `text` parameter filters results when multiple words are
        used:

          * `AND`: results must contain all the key words.
          * `AUTO`: filters by `AND` first. If there are no results, extend to include `OR` results.
          * `OR`: results must contain at least one of the key words.
      in: query
      schema:
        default: AUTO
        enum:
          - AND
          - AUTO
          - OR
        type: string
    service_in:
      name: service_in
      in: query
      description: >-
        Filter results to activities which use at least one of the specified
        services.
      explode: false
      schema:
        example:
          - pick-up
          - pet-friendly
        items:
          title: Service code
          type: string
        type: array
      style: form
    sort_by:
      name: sort_by
      in: query
      description: >
        Sort results by one or more criteria.


        Results are sorted from lowest to highest value by default. To sort from
        highest to lowest, add `-` in front of the value.


        Sorting by distance requires the `coordinates` parameter.
      explode: false
      schema:
        example:
          - price
          - '-rating'
        items:
          default: relevance
          enum:
            - '-distance'
            - '-price'
            - '-rating'
            - '-relevance'
            - '-relevance-category'
            - '-relevance-city'
            - '-relevance-external'
            - '-relevance-venue'
            - distance
            - price
            - rating
            - relevance
            - relevance-category
            - relevance-city
            - relevance-external
            - relevance-venue
          type: string
        type: array
      style: form
    temporary:
      name: temporary
      description: |
        Filter results based on their `temporary` property:

          * `NO`: return results with a temporary value of `false`.
          * `YES`: return results with a temporary value of `true`.
      in: query
      schema:
        enum:
          - 'NO'
          - 'YES'
        type: string
    venue_in:
      name: venue_in
      in: query
      description: >-
        Filter results to activities which are connected to at least one of the
        specified venues.
      explode: false
      schema:
        items:
          title: Venue ID
          type: integer
        type: array
      style: form
    vertical_in:
      name: vertical_in
      deprecated: true
      description: >-
        Filter results to those which are connected to at least one of the
        specified verticals.
      explode: false
      in: query
      schema:
        example:
          - sightseeing
        items:
          title: Vertical code
          type: string
        type: array
      style: form
    zero_terms_query:
      name: zero_terms_query
      in: query
      description: >-
        If set to `ALL`, if all of the stop words have been removed, search will
        be performed, if set to 'NONE' will not
      required: false
      schema:
        type: string
        default: NONE
        enum:
          - NONE
          - ALL
    city_limit:
      name: city_limit
      description: |
        Limit the maximum number of cities to include in the response.

        A positive value is required in order to receive cities in the response.
      in: query
      schema:
        minimum: 0
        type: integer
    city_offset:
      name: city_offset
      description: >-
        Exclude the first `N` cities from the response, where `N` is the
        specified integer value.
      in: query
      schema:
        default: 0
        minimum: 0
        type: integer
    list_limit:
      name: list_limit
      description: |
        Limit the maximum number of Musement lists to include in the response.

        A positive value is required in order to receive lists in the response.
      in: query
      schema:
        minimum: 0
        type: integer
    list_offset:
      name: list_offset
      description: >-
        Exclude the first `N` Musement lists from the response, where `N` is the
        specified integer value.
      in: query
      schema:
        default: 0
        minimum: 0
        type: integer
    venue_limit:
      name: venue_limit
      description: >
        Limit the maximum number of venues to include in the response.


        A positive value is required in order to receive venues in the response.


        Using a value greater than the maximum is ignored and the maximum number
        of possible results is used instead.
      in: query
      schema:
        minimum: 0
        maximum: 5
        type: integer
    venue_offset:
      name: venue_offset
      description: >-
        Exclude the first `N` venues from the response, where `N` is the
        specified integer value.
      in: query
      schema:
        default: 0
        minimum: 0
        type: integer
    activityUuid:
      name: activityUuid
      description: The UUID of the activity.
      in: path
      required: true
      schema:
        format: uuid
        type: string
    include_empty:
      name: include_empty
      in: query
      description: Include comments in the response with an empty `body` property.
      schema:
        default: 'YES'
        enum:
          - 'NO'
          - 'YES'
        type: string
    locale:
      name: locale
      in: query
      description: Filter results by the `locale` property.
      schema:
        title: Language code
        example: en-US
        type: string
    rating_in:
      name: rating_in
      in: query
      description: >-
        Filter comments by their `rating` property. Providing a single integer
        returns comments greater than or equal to the value. Providing two
        integers separated by a comma returns comments with a `rating` within
        the specified range.
      schema:
        pattern: ^\d+(,\d+)*$
        type: string
    date_from:
      name: date_from
      description: |
        Filter results to those which take place on or after the specified date.

        When absent, today's date is used by default.
      in: query
      schema:
        format: date
        type: string
    date_to:
      name: date_to
      description: >
        Filter results to those which take place before the specified date.


        When absent, a value of roughly one year from today's date is used. The
        exact default value varies depending on the activity configuration.
      in: query
      schema:
        format: date
        type: string
    discounts:
      name: discounts[]
      in: query
      description: >
        Response will contain a `retail_prices_with_custom_discount` property
        which contains a preview of prices after the specified discounts are
        applied.


        Up to two decimal places are permitted.
      explode: true
      schema:
        example:
          - 10
          - 15.5
          - 22.05
        items:
          type: number
          format: float
        type: array
      style: form
    pickup:
      name: pickup
      in: query
      description: >
        Filter dates to those which are available for the specified pickup.


        Required for activities whose `order_box_elements` property contains
        `tours-and-activities-with-pickup`.
      schema:
        title: Pickup UUID
        externalDocs:
          description: For more info, check out our guide.
          url: >-
            https://partner-api.musement.com/guide/booking-flows/booking-flow-of-activities-with-pickup-points/
        format: uuid
        type: string
    tickets_number:
      name: tickets_number
      in: query
      description: >
        Filter dates to those which have enough seats available for the
        specified quantity.


        Used for activities with select seller gateways.
      schema:
        type: integer
    date:
      name: date
      description: The specified date.
      in: path
      required: true
      schema:
        format: date
        type: string
    cartUuid:
      name: cartUuid
      description: The UUID of the cart.
      in: path
      required: true
      schema:
        format: uuid
        type: string
    cartItemUuid:
      name: cartItemUuid
      description: The UUID of the cart item.
      in: path
      required: true
      schema:
        format: uuid
        type: string
    categoryId:
      name: categoryId
      description: The numeric ID of the category.
      in: path
      required: true
      schema:
        title: Category ID
        minimum: 1
        type: integer
    city:
      name: city
      in: query
      description: The numeric ID of the city.
      schema:
        title: City ID
        minimum: 1
        type: integer
    venue:
      name: venue
      in: query
      description: The numeric ID of the venue.
      schema:
        title: Venue ID
        minimum: 1
        type: integer
    vertical:
      name: vertical
      deprecated: true
      in: query
      description: The numeric ID of the vertical.
      schema:
        title: Vertical ID
        minimum: 1
        type: integer
    cityId:
      name: cityId
      description: The numeric ID of the city.
      in: path
      required: true
      schema:
        title: City ID
        minimum: 1
        type: integer
    category:
      name: category
      description: Filter results by category.
      in: query
      schema:
        title: Category ID
        minimum: 1
        type: integer
    X-Musement-Device-Type:
      name: X-Musement-Device-Type
      description: >
        This header affects the results of the `/lists` and
        `/cities/{cityId}/lists` endpoints. The response will contain lists
        which are considered better for customers using the specified device
        type.
      in: header
      schema:
        enum:
          - DESKTOP
          - MOBILE
        type: string
    exclude_not_tagged:
      name: exclude_not_tagged
      description: Exclude results which have no tags.
      in: query
      schema:
        enum:
          - 'NO'
          - 'YES'
        type: string
    listtags:
      name: listtags
      description: Filter results to those which best match the specified list tags.
      explode: false
      in: query
      schema:
        items:
          title: List tag
          pattern: a-z0-9\-
          type: string
        type: array
      style: form
    listtypes:
      name: listtype
      description: Filter results to those which match any of the specified list types.
      explode: false
      in: query
      schema:
        items:
          title: List type ID
          type: integer
        type: array
      style: form
    verticalId:
      name: verticalId
      description: The numeric ID of the vertical.
      in: path
      required: true
      schema:
        title: Vertical ID
        minimum: 1
        type: integer
    countryId:
      name: countryId
      in: path
      description: The country's numeric ID.
      required: true
      schema:
        title: Country ID
        type: integer
    category_in:
      name: category_in
      description: >-
        Filter results to those which use at least one of the specified
        categories.
      explode: false
      in: query
      schema:
        items:
          title: Category ID
          type: integer
        type: array
      style: form
    country_in:
      name: country_in
      description: >-
        Filter results to those which are connected to at least one of the
        specified countries.
      explode: false
      in: query
      schema:
        items:
          title: Country ID
          type: integer
        type: array
      style: form
    page:
      name: page
      description: Get the page number of results, based on the `limit` parameter.
      in: query
      schema:
        default: 1
        minimum: 1
        type: integer
    eventId:
      name: eventId
      description: The numeric ID of the event.
      in: path
      required: true
      schema:
        type: integer
    listId:
      name: listId
      in: path
      required: true
      schema:
        title: List ID
        minimum: 1
        type: integer
    orderUuid:
      name: orderUuid
      description: The order UUID.
      in: path
      required: true
      schema:
        format: uuid
        type: string
    ticketId:
      name: ticketId
      in: path
      description: The Base64 encoded ticket ID.
      required: true
      schema:
        type: string
    orderItemUuid:
      name: orderItemUuid
      in: path
      description: Order item identifier
      required: true
      schema:
        type: string
    venueId:
      name: venueId
      in: path
      description: Numeric ID for venue
      required: true
      schema:
        type: integer
    flavour:
      name: flavour
      in: query
      description: Filter results by flavour. Parameter expects a single flavour ID.
      schema:
        type: integer
        minimum: 1
    Content-Type:
      name: Content-Type
      description: The format of the request and response.
      in: header
      required: true
      schema:
        enum:
          - application/json
        type: string
  schemas:
    Error:
      title: Error
      example:
        code: '0'
        message: There was an error
      properties:
        code:
          description: The internal Musement code for the error.
          type: string
        message:
          description: A message with a brief explanation of the error.
          type: string
      required:
        - code
        - message
      type: object
    Country:
      title: Country
      properties:
        country_prefix:
          description: The country's main telephone country code.
          example: '+39'
          type: string
        currency_code:
          description: >-
            The main currency for the country as a Musement currency code. For a
            complete list of currencies, refer to the `/currencies` endpoint.
          example: EUR
          maxLength: 3
          minLength: 3
          type: string
        id:
          deprecated: true
          description: >-
            The country's numeric ID. This property will be removed in the
            future.
          example: 82
          type: integer
        iso_code:
          description: The two-character ISO code for the country.
          example: IT
          maxLength: 2
          minLength: 2
          type: string
        iso3char:
          description: The three-character ISO code for the country.
          example: ITA
          maxLength: 3
          minLength: 3
          type: string
        name:
          description: >-
            The country's name, translated based on the `Accept-Language` header
            value.
          example: Italy
          type: string
      required:
        - id
        - iso_code
        - iso3char
        - name
      type: object
      xml:
        name: country
    City:
      example:
        id: 76
        code: washington dc
        content: >-
          Often overshadowed by the more flashy New York City, Washington DC
          represents an essential destination of an East Coast tour. In fact,
          the District of Columbia is a real must-see for those who want to
          discover and get in touch with the true essence of American history
          and culture. Not only a political capital but also an important
          cultural and artistic center, Washington DC is found between the
          states of Virginia - on its southwest side - and Maryland - on its
          southeast, northeast, and northwest sides. The ideal tour of
          Washington starts from the National Mall, a monumental avenue of about
          3 km that runs along the east-west from Capitol Hill to the Lincoln
          Memorial.
        content_html: >-
          <p>Often overshadowed by the more flashy New York City,
          <strong>Washington DC </strong>represents an essential destination of
          an East Coast tour. In fact, the <strong>District of Columbia</strong>
          is a real <strong>must-see</strong> for those who want to discover and
          get in touch with the true essence of American history and
          culture.</p><p>Not only a <strong>political capital</strong> but also
          an <strong>important cultural and artistic center</strong>, Washington
          DC is found between the states of Virginia - on its southwest side -
          and Maryland - on its southeast, northeast, and northwest
          sides.</p><p>The ideal tour of Washington starts from the
          <strong>National Mall</strong>, a monumental avenue of about 3 km that
          runs along the east-west from <strong>Capitol Hill</strong> to the
          <strong>Lincoln Memorial</strong>. </p>
        country:
          id: 184
          iso_code: US
          iso3char: USA
          name: United States of America
        cover_image_url: >-
          https://images-sandbox.musement.com/cover/0001/43/washington_header-42349.jpeg
        activities_count: 14
        latitude: 38.918
        list_count: 0
        longitude: -77.037
        meta_description: >-
          Find out what's happening in Washington D.C. and book your tickets for
          the best museums and operas in advance. Skip the line, make your trip
          more enjoyable. Museums, opera, classical concerts at your fingertips.
        more: ''
        name: Washington DC
        show_in_popular: false
        time_zone: America/New_York
        top: false
        url: https://.sbox.musement.com/us/washington-dc/
        uuid: ec1dd48e-339d-11ea-ba3c-029a16533fe4
        venue_count: 1
        weight: 2
      properties:
        activities_count:
          description: The number of available activities for the city.
          type: integer
          x-specificVersion: 3.5.0
        id:
          description: The city's numeric ID.
          minimum: 1
          type: integer
        code:
          description: >-
            A string identifier for the city, based on the English version of
            the city name. This property is *not* affected by the
            `Accept-Language` header.
          type: string
        content:
          description: >-
            A plain text description of the city, translated according to the
            `Accept-Language` header value.
          type: string
        content_html:
          description: >-
            A description of the city with HTML tags, translated according to
            the `Accept-Language` header value.
          type: string
        country:
          title: Country
          allOf:
            - $ref: '#/components/schemas/Country'
            - required:
                - iso_code
                - id
                - name
        cover_image_url:
          description: A URL for the city's cover image.
          format: uri
          type: string
        event_count:
          description: The number of available activities for the city.
          type: integer
          x-specificVersion: 3.4.0
        headline:
          description: >-
            An SEO-friendly version of the city name for a page headline,
            translated based on the `Accept-Language` header value.
          type: string
        latitude:
          type: number
          format: float
        longitude:
          type: number
          format: float
        list_count:
          description: The number of available Musement list pages for the city.
          type: integer
        meta_description:
          description: >-
            An SEO-friendly description of the city, translated based on the
            `Accept-Language` header value.
          type: string
        meta_title:
          description: >-
            An SEO-friendly version of the city name, translated based on the
            `Accept-Language` header value.
          type: string
        more:
          deprecated: true
          description: >-
            Additional information about the city in plain text, ideal for a
            "Read more" section, translated based on the `Accept-Language`
            header value.
          type: string
        more_html:
          deprecated: true
          description: >-
            Additional information about the city with HTML tags, ideal for a
            "Read more" section, translated based on the `Accept-Language`
            header value.
          type: string
        name:
          description: >-
            The name of city, translated according to the `Accept-Language`
            header value.
          type: string
        slug:
          description: >-
            The city slug, used for creating the city URL. Changes based on the
            value of the `Accept-Language` value.
          type: string
        time_zone:
          description: The city's time zone.
          externalDocs:
            description: Based on PHP's list of valid time zones.
            url: https://www.php.net/manual/en/timezones.php
          type: string
        top:
          default: false
          description: >-
            When true, the city is considered one of Musement's most popular
            cities.
          type: boolean
        url:
          type: string
          format: uri
          description: >-
            An automatically generated Musement URL for the city based on the
            `X-Musement-Market` header and `slug` property. The URL is only
            valid for select `X-Musement-Market` values and cities.
        uuid:
          description: The city's UUID.
          format: uuid
          type: string
        venue_count:
          description: The number of available venues in the city.
          type: integer
        weight:
          description: >-
            A property used for ranking multiple cities by popularity. Top
            selling cities will have a higher value.
          type: integer
      title: City
      type: object
      xml:
        name: city_aggregated
    Category:
      title: Category
      example:
        code: new-activities
        id: 185
        level: '1'
        name: Activities
        url: https://.sbox.musement.com/us/all/activities-c/
      properties:
        id:
          description: The category's numerical ID.
          minimum: 1
          type: integer
        name:
          description: >-
            The category's name, translated based on the `Accept-Language`
            header value.
          type: string
        level:
          description: The category's level in the category tree.
          pattern: ^\d+?$
          type: string
        code:
          description: A unique string code for the category.
          type: string
        event_image_url:
          format: uri
          type: string
        cover_image_url:
          format: uri
          type: string
        url:
          description: >-
            An automatically generated Musement URL for the category based on
            the `X-Musement-Market` header, `code` property and `city` property
            (when present). The URL is only valid for select `X-Musement-Market`
            values and categories.
          format: uri
          type: string
        city:
          $ref: '#/components/schemas/City'
        meta_description:
          description: >-
            An SEO-friendly description of the category, translated based on the
            `Accept-Language` header value.
          type: string
        meta_title:
          description: >-
            An SEO-friendly version of the category name to use for search
            results, translated based on the `Accept-Language` header value.
          type: string
        headline:
          description: >-
            An SEO-friendly version of the category name for a page headline,
            translated based on the `Accept-Language` header value.
          type: string
        parent_id:
          description: The ID of the category's parent, if any.
          type: integer
      type: object
      xml:
        name: category
    Price:
      title: Price
      example:
        currency: USD
        formatted_value: $ 10.00
        formatted_iso_value: $10.00
        value: 10
      properties:
        currency:
          description: >-
            The currency of the price, using a currency `code` from the
            `/currencies` endpoint.
          maxLength: 3
          minLength: 3
          type: string
        formatted_iso_value:
          description: >-
            The price and currency, formatted based on the value of the
            `Accept-Language` header value.
          type: string
        formatted_value:
          description: The currency symbol and price, separated by a space.
          type: string
        value:
          description: The numeric value of the price.
          format: float
          type: number
      required:
        - currency
        - formatted_iso_value
        - formatted_value
        - value
      type: object
      xml:
        name: Price
    MetadataItem:
      title: Metadata item
      properties:
        code:
          description: A unique code that identifies the metadata item.
          type: string
        name:
          description: >-
            The name of the metadata item, translated based on the
            `Accept-Language` header value.
          type: string
      required:
        - code
        - name
      type: object
    Flavour:
      title: Flavour
      properties:
        active:
          type: boolean
        id:
          type: integer
          description: The flavour's numeric ID.
        name:
          type: string
          description: >-
            The name of the flavour, translated based on the `Accept-Language`
            header value.
        slug:
          type: string
      required:
        - active
        - id
        - name
        - slug
      type: object
    Activity:
      title: Activity
      example:
        about: >-
          Join this exclusive tour to discover one of the most iconic works
          ever: Leonardo da Vinci's Last Supper.You will meet your expert guide
          in Piazza Santa Maria delle Grazie, where you will begin the tour with
          a brief explanation.Afterward, thanks to your skip-the-line ticket,
          you'll go inside straight away without having to wait at the entrance
          so you can be united with one of the most admired paintings in the
          world, created by one of the greatest geniuses that ever existed.Here
          your guide will continue to unravel all the mysteries behind this
          artwork. What's ironic about the location of the painting? How come
          The Last Supper isn't a fresco? What happened to the eyes of some
          characters? How is the painting structured? What do the conspiracy
          theories say? How do we recognize the genius of Leonardo da Vinci?You
          will find all the answers to these questions and many others on this
          unmissable tour!
        about_html: >-
          <p>Join this exclusive tour to discover one of the most iconic works
          ever: Leonardo da Vinci's Last Supper.</p><p>You will meet your expert
          guide in Piazza Santa Maria delle Grazie, where you will begin the
          tour with a brief explanation.</p><p>Afterward, thanks to your
          skip-the-line ticket, you'll go inside straight away without having to
          wait at the entrance so you can be united with one of the most admired
          paintings in the world, created by one of the greatest geniuses that
          ever existed.</p><p>Here your guide will continue to unravel all the
          mysteries behind this artwork. What's ironic about the location of the
          painting? How come The Last Supper isn't a fresco? What happened to
          the eyes of some characters? How is the painting structured? What do
          the conspiracy theories say? How do we recognize the genius of
          Leonardo da Vinci?</p><p>You will find all the answers to these
          questions and many others on this unmissable tour!</p>
        about_markdown: >-
          Join this exclusive tour to discover one of the most iconic works
          ever: Leonardo da Vinci's Last Supper.


          You will meet your expert guide in Piazza Santa Maria delle Grazie,
          where you will begin the tour with a brief explanation.


          Afterward, thanks to your skip-the-line ticket, you'll go inside
          straight away without having to wait at the entrance so you can be
          united with one of the most admired paintings in the world, created by
          one of the greatest geniuses that ever existed.


          Here your guide will continue to unravel all the mysteries behind this
          artwork. What's ironic about the location of the painting? How come
          The Last Supper isn't a fresco? What happened to the eyes of some
          characters? How is the painting structured? What do the conspiracy
          theories say? How do we recognize the genius of Leonardo da Vinci?


          You will find all the answers to these questions and many others on
          this unmissable tour!
        automatically_translated: false
        best_price: false
        booking_type: CALENDAR-TIMESLOTS
        buy_multiplier: 1
        categories:
          - code: new-attractions-guided-tours
            cover_image_url: >-
              https://images.musement.com/cover/0001/10/da-vinci-s-last-supper-skip-the-line-tickets-and-guided-tour_header-9730.jpeg?w=540
            event_image_url: >-
              https://images.musement.com/cover/0001/10/da-vinci-s-last-supper-skip-the-line-tickets-and-guided-tour_header-9730.jpeg?w=540
            id: 209
            level: '1'
            name: Attractions & guided tours
            url: https://www.musement.com/us/milan/attractions-guided-tours-c/
        city:
          code: milan
          content: >-
            Top 6 things to do in MilanFashion paradise, design haven and the
            epitome of old-school elegance, Milan is a city with many faces. And
            discovering them is all part of its charm. Known for seamlessly
            combining both the historic and the on-trend, it's a place where
            haughty couture and chic dining goes hand-in-hand with magnificent
            palazzos, ancient churches and early Renaissance art. With so much
            to dazzle you, we've made it easier by selecting some of our
            all-time favorites. From gazing awe-struck at Da Vinci's magnificent
            Last Supper, to admiring the Old Masters at the Pinacoteca or
            enjoying a night at the city's world-famous opera house, we show you
            how to make the most of your trip to one of Italy's most
            cosmopolitan cities.1. The Last Supper Nothing compares to seeing
            one of Da Vinci's greatest works in the flesh (so to speak). Faded
            and fragile, partly due to Da Vinci experimenting with an unusual
            mix of oil and tempera, it's still a staggering work. Not least
            because of its striking composition and perspective, light years
            ahead of its time.2. The Duomo Six hundred years in the making, this
            epic white-marbled cathedral is not to be missed. Brimming with over
            a hundred spires and 3400 statues, it's the city's most elaborate
            symbol. Equally impressive is the interior with its enormous stained
            glass windows, while the rooftop offers spectacular views.3.
            PinacotecaImmerse yourself in the Old Masters, such as Titian,
            Tintoretto and Veronese to name a few. Our top highlights include
            Mantegna's Lamentation over the Dead Christ with its fantastic
            perspective and brutal realism, along with The Kiss by Francesco
            Hayez, a passionate symbol of Italy's unification.4. Galleria
            Vittorio Emanuele IIWith its glorious high arches of glass and
            steel, and marbled mosaic floors, the Galleria makes for an
            atmospheric stroll at any time of day. One of the world's oldest
            shopping arcades, it's also an ideal stop for high-end boutiques,
            with plenty of fancy dining options if you happen to get hungry.5.
            La ScalaA night at the opera reaches new heights when it's at La
            Scala. One of the world's famed opera houses, its stage has been
            graced by the likes of Maria Callas while Verdi built his impressive
            reputation here. For non-opera fans, there's also ballet and
            classical music performances, along with theater tours.6. Da Vinci's
            VineyardMany don't know that while Da Vinci was painting the Last
            Supper, he was also tending to his nearby vineyard. Gifted to him by
            Duke Ludovico Sforza in 1498, it's since been painstakingly
            recreated so not only can you saunter through the vines as Da Vinci
            might have done, you can also sip the same wine.Planning your Milan
            visitWhen to go?Milan is always a good idea, regardless of the month
            or season. In spring the weather is sunny and mild, while the city
            buzzes with international events such as Salone del Mobile and
            Fashion Week. Summer is also popular although it tends to get hot
            and humid, and the mosquitoes come out in droves. Locals flee the
            city, especially on the weekends, so it can be nice because the city
            feels a little less packed. Keep in mind though that come August and
            shops and restaurants outside of the center are likely to be closed
            or have summer trading hours. Autumn is ideal for the moderate
            weather and fewer tourists, while during the winter months you'll
            get to enjoy the Christmas markets, opera season at La Scala and
            January sales.How to get there?The city is serviced by three
            airports. The Malpensa Airport is the main airport for international
            flights. From here to the city center it's a 50-minute shuttle bus
            or train ride (via the Malpensa Express; €13 one way). By taxi it
            will cost €90 fixed fare. The Linate airport is more centrally
            located and serves mainly domestic flights and those from within the
            EU. Coaches or public buses (No. 73) are a 30-minute ride to the
            center, while taxis cost around €20 to €30. The Bergamo airport
            (Orio al Serio) is used mostly by budget airlines and is a 1-hour
            bus ride (€8 one way) from central Milan.How many days should you
            spend?Milan is a city that can be explored over both a weekend, a
            week, or even a month. In 48 hours you'll be able to experience all
            its main sights, from Leonardo's Last Supper to a night at La Scala,
            but keep in mind you'll have to plan in advance for most tickets.
            Instead, if you want to really immerse yourself in the city, we
            recommend you taking a little more time. Not only will you be able
            to shop the world-famed Quadrilatero d'Oro and wander the
            picturesque Navigli (canals), this will also give you time to get
            into the rhythm of the city and enjoy local delights, like a classic
            aperitivo.How to move around the city?The ATM runs the metro, bus
            and tram services. You'll be able to get to most places via the
            metro, which has four underground lines (a fifth is projected for
            the near future): red M1, green M2, yellow M3, and lilac M5. There's
            also the suburban rail network (the Passante Ferroviario), although
            it runs much less frequently. A single ticket costs €2; it's valid
            either for one metro ride or 90 minutes of travel on buses and
            trams. Other ticket options include a 10-trip carnet (€18) or 3-day
            ticket (€12).Where to shop?Milan is renowned for shopping and
            there's no shortage of high-end boutiques and classy consumer goods
            to swoon over. The Quadrilatero d'Oro is the city's acclaimed
            shopping district. Framed by four streets - Via Monte Napoleone, Via
            Sant'Andrea, Via Senato and Via Manzoni - within is a back-to-back
            line-up of stores by fashion power brands, such as Gucci, Versace,
            Prada etc. You'll find many of the same brands in the city's main
            shopping center, Rinascente, right next to the Duomo. Otherwise, if
            you're looking for something a little less glam, Via Torino has more
            mainstream brands such as H&M and Zara. Those interested in vintage
            and alternative clothing need look no further than the hip Ticinese
            area.
          country:
            id: 82
            iso_code: IT
            name: Italy
          cover_image_url: >-
            https://images.musement.com/cover/0002/39/milan-vittorio-emanuele-ii-gallery-italy-jpg_header-138313.jpeg
          headline: 'Things to do in Milan: tours and activities'
          id: 1
          latitude: 45.459
          longitude: 9.183
          meta_description: >-
            Discover Milan and book tickets to the best tours, attractions, and
            activities. Admire the Duomo of Milan, visit Leonardo's Last Supper
            or go on a city walking tour.
          meta_title: 'Things to do in Milan: Attractions, tours, and activities'
          name: Milan
          slug: milan
          time_zone: Europe/Rome
          top: false
          url: https://www.musement.com/us/milan/
          weight: 11
        cover_image_url: >-
          https://images.musement.com/cover/0001/10/da-vinci-s-last-supper-skip-the-line-tickets-and-guided-tour_header-9730.jpeg?w=540
        cutoff_time: P2D
        daily: false
        description: >-
          Buy your skip-the-line tickets for the Last Supper in Milan. Enjoy a
          guided tour and discover the mysteries hidden behind one of the most
          important works ever!
        discount: 0
        duration_range:
          max: PT45M
        exclusive: false
        features:
          - code: musement-tour
            name: features.musement-tour
          - code: istant
            name: Instant confirmation
          - code: skip
            name: Skip the line
          - code: official
            name: Official reseller
        flavours:
          - active: true
            id: 111
            name: Guided Tour
            slug: guided-tour
          - active: true
            id: 2
            name: Entrance Tickets
            slug: entrance-tickets
        food: []
        free_cancellation: true
        giftable: true
        giftcard: false
        group_size:
          - code: small
            name: Small group
        has_multiple_options: false
        has_price_info_on_date: true
        highlights:
          - Admire Leonardo da Vinci's Last Supper
          - Enter quickly by skipping the line at the entrance
          - Discover the wonders and mysteries hidden behind this work of art
        included:
          - Exclusive English or Italian-speaking Musement guide
          - Skip-the-line entrance to Leonardo da Vinci's Last Supper
        info: >-
          <ul><li>The venue requires us to provide the name and surname of each
          visitor; this information is mandatory for purchasing the ticket and
          for entering the Last Supper. If this requirement isn't met, it will
          not be possible to enter the venue. The name given at the time of
          booking must correspond to the name on the participant's passport or
          identity card. Tickets are nominal and cannot be changed once the
          booking is completed. Each participant must bring with him/her an
          identity document</li><li>Due to the rules imposed by the supervisor
          of cultural artifacts for the city of Milan, your visit to the Last
          Supper cannot exceed 15 minutes</li><li>Dress code: shoulders and
          knees must be covered and men should wear full-length
          trousers</li><li>No liquids, including water bottles, are allowed
          inside the site</li><li>Large bags/backpacks/suitcases are not
          permitted inside the Last Supper (only very small bags are allowed).
          There are no cloakrooms for storing these items but there are free
          lockers available for small items and bottles</li><li>Photos are not
          allowed</li><li>The tour is run in small groups</li></ul>
        is_available_today: false
        is_available_tomorrow: false
        languages:
          - code: en
            name: English
          - code: it
            name: Italian
        latitude: 45.4653785
        longitude: 9.1710985
        last_chance: false
        likely_to_sell_out: false
        max_confirmation_time: P0D
        meeting_point: >-
          At the corner of Piazza Santa Maria delle Grazie and Corso Magenta -
          in front of the Vigna di Leonardo Ticket Office, at least 15 minutes
          before the starting time of the tour.
        meeting_point_html: >-
          <p>At the corner of Piazza Santa Maria delle Grazie and Corso Magenta
          - in front of the Vigna di Leonardo Ticket Office, at least 15 minutes
          before the starting time of the tour.</p>
        meeting_point_markdown: >-
          At the corner of Piazza Santa Maria delle Grazie and Corso Magenta -
          in front of the Vigna di Leonardo Ticket Office, at least 15 minutes
          before the starting time of the tour.
        meta_description: >-
          Buy your skip-the-line tickets for the Last Supper in Milan. Enjoy a
          guided tour and discover the mysteries hidden behind one of the most
          important works ever!
        meta_title: Skip-the-line tickets and guided tour of the Last Supper
        must_see: false
        needs_voucher: false
        no_index: false
        not_included: []
        numbered_seats: false
        open: false
        order_box_elements:
          - tours-and-activities
        original_retail_price:
          currency: USD
          formatted_iso_value: $48.00
          formatted_value: $ 48.00
          value: 48
        original_retail_price_without_service_fee:
          currency: USD
          formatted_iso_value: $48.00
          formatted_value: $ 48.00
          value: 48
        relevance: 900
        relevance_venue: 10000
        retail_price:
          currency: USD
          formatted_iso_value: $48.00
          formatted_value: $ 48.00
          value: 48
        retail_price_without_service_fee:
          currency: USD
          formatted_iso_value: $48.00
          formatted_value: $ 48.00
          value: 48
        reviews_aggregated_info:
          '0': 1
          '1': 5
          '2': 13
          '3': 154
          '4': 1974
          '5': 2201
        reviews_avg: 4.5
        reviews_number: 4348
        seller_gateway:
          code: Direct
          name: Musement Partner
        service_fee:
          currency: USD
          formatted_iso_value: $0.00
          formatted_value: $ 0.00
          value: 0
        services:
          - code: dress-code
            name: Dress code
        slug: da-vinci-s-last-supper-skip-the-line-tickets-and-guided-tour
        slug_id: da-vinci-s-last-supper-skip-the-line-tickets-and-guided-tour-497
        sold_out: false
        special_offer: false
        status: ONLINE
        supplier:
          company_name: Musement - Cenacolo Vinciano
          uuid: c18dbadd-2044-11e7-9cc9-06a7e332783f
        supplier_currency: EUR
        temporary: false
        ticket: false
        ticket_not_included: false
        title: Da Vinci's Last Supper skip-the-line tickets and guided tour
        top_seller: true
        translated: true
        url: >-
          https://www.musement.com/us/milan/da-vinci-s-last-supper-skip-the-line-tickets-and-guided-tour-497/
        uuid: 0f548def-2046-11e7-9cc9-06a7e332783f
        validity: P0D
        venues:
          - address: Milan
            cover_image_url: >-
              https://images.musement.com/cover/0002/18/leonardo-s-last-supper_header-117602.jpeg
            description: >-
              The survival of Leonardo's masterpiece is almost as amazing as its
              vision. It was already being 'restored' in 1726, with an
              ill-advised application of caustic solvents and varnish. In 1770,
              Giusseppe Mazza repainted much of the original in oil. In 1853,
              Stefano Barezzi tried to detach the painting from the wall but
              failed and instead glued the paint fragments to the base.Only in
              1903 was it discovered that the painting was done in tempera, not
              oil, and its surface was cleaned accordingly. A bomb nearly
              destroyed the refectory in 1943, but the work was successfully
              cleaned of mildew and lightened in 1947.Modern restoration showed
              that the historical over-painting was eating the original and
              causing it to flake. The decision was therefore made to remove
              everything added to the mural since it was completed in 1498 - an
              extremely time-consuming microscopic task using advanced
              technology. Today, the painting is preserved by an air-filtration
              system, a monitored environment, and dust-filtering technology.
              Visitors are limited to 25 people for 15 minutes each time.Opening
              times

              - 8.15am-6.45pm - Tuesday to Sunday

              - CLOSED: Mondays and public holidays 1 January, 1 May, 25
              December

              About The Last SupperDuke Ludovico Sforza of Milan was behind the
              creation of Leonardo da Vinci's masterpiece The Last Supper. The
              Duke had adopted Santa Maria delle Grazie as his court church and
              wanted to decorate it in a manner that reflected his wealth and
              power. This meant a great painting by a great artist.Leonardo
              began work in 1495 on the northern wall of the refectory and
              completed the painting three years later, the complete image
              measuring 15x29ft. Contrary to popular belief, it was not a
              fresco, which required fast and decisive work before the wet
              plaster dried. Leonardo liked to take his time and change his
              mind, so he designed a new kind of application using tempera (an
              egg-based paint).Alas, the great genius Leonardo made a mistake
              this time. His base for the painting included pitch and mastic,
              which did not bond the pigment as well or as permanently as he had
              hoped. The aesthetic considerations, however, were sublime.
              Leonardo created his amazing illusions of perspective using a nail
              in the wall and strings radiating from it to ensure that all would
              be correctThe subject was a common one in churches, but Leonardo's
              innovation was to create a sense of drama and movement by
              portraying the exact moment when Jesus announced that one of his
              disciples would betray him. What we see is a radiating wave of
              shocked reaction. He also chose to portray all attendees in a
              straight line so that each could receive due attention.It's said
              that the faces in the work are based on real people known to the
              artist. Judas may have been a real-life local prisoner or criminal
              and, here, Leonardo puts him among the others rather than separate
              (as traditional dictated). Judas is the only one who seems not to
              be outraged or surprised. AddressPiazza Santa Maria delle Grazie
              2, Milan Getting there

              - By Metro: Line 1: Conciliazione

              - By tram: Line 16: S Maria delle Grazia
            headline: Leonardo Da Vinci's Last Supper tickets and tours
            id: 393
            latitude: 45.466091
            longitude: 9.171187
            meta_description: >-
              Get your tickets and tours for the Last Supper by Leonardo da
              Vinci in Milan. Admire one of the world's most famous masterpieces
              painted by one of the greatest artists!
            meta_title: Leonardo Da Vinci's Last Supper Tickets and Tours in Milan
            name: Leonardo's Last Supper
            url: https://www.musement.com/us/milan/leonardo-s-last-supper-v/
        verticals:
          - active: true
            code: arts-culture
            cover_image_url: >-
              https://images.musement.com/vertical/0001/30/art-and-culture_header-29023.jpeg?w=540
            id: 1
            meta_description: >-
              From classically beautiful renaissance paintings and sculptures to
              revolutionary modern artworks, admire world-renowned art with
              Musement.
            meta_title: Discover the remarkable world of Art and Museums
            name: Museums & art
            relevance: 100
            slug: museums-art
            url: https://www.musement.com/us/museums-art-t/
        voucher_access_usage: MOBILE
        voucher_always_include_ours: false
        where_text: <p>Corso Magenta, 65/69, 20123 Milan MI, Italy</p><p> </p>
      properties:
        about:
          description: >-
            The main description of the activity. Does not contain HTML.
            Translated based on the `Accept-Language` header value.
          type: string
        about_html:
          description: >-
            The main description of the activity in HTML. Translated based on
            the `Accept-Language` header value.
          type: string
        about_markdown:
          description: >-
            The main description of the activity in the Markdown markup
            language. Translated based on the `Accept-Language` header value.
          type: string
        automatically_translated:
          description: >-
            Whether any of the content in the response was machine translated or
            not.
          type: boolean
        best_price:
          description: >-
            Musement offers the cheapest price available for this activity
            compared to major competitors.
          type: boolean
        booking_type:
          description: |
            Describes the reservation flow for the activity:

              * `CALENDAR-NO-TIMESLOTS`: Show calendar with dates, but no timeslots.
              * `CALENDAR-TIMESLOTS`: Show calendar with dates and timeslots.
              * `NO-CALENDAR-FIXED-END`: Don't show calendar or timeslots. Purchases are valid until a specific date.
              * `NO-CALENDAR-FIXED-VALIDITY`: Don't show calendar or timeslots. Purchases are valid for a specific number of days.
          enum:
            - CALENDAR-TIMESLOTS
            - CALENDAR-NO-TIMESLOTS
            - NO-CALENDAR-FIXED-END
            - NO-CALENDAR-FIXED-VALIDITY
          type: string
        buy_multiplier:
          default: 1
          description: >-
            This property affects activities connected to packages. A voucher is
            issued for each multiple of the property value.
          type: integer
        categories:
          description: The categories the activity belongs to.
          items:
            $ref: '#/components/schemas/Category'
          type: array
          uniqueItems: true
        child_retail_price:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: >-
                The lowest price for child options. Only appears for activities
                connected to certain integrations.
          title: Price
        city:
          $ref: '#/components/schemas/City'
        cover_image_url:
          description: The URL for the activity's cover image.
          format: uri
          type: string
        cutoff_time:
          description: >
            A time range which will always be unavailable. Dates that fall
            within the time range do not appear in the
            `/activities/{activityUuid}/dates` endpoint.


            Values follow the ISO 8601 standard.
          externalDocs:
            description: For more info, check out our guide.
            url: >-
              https://partner-api.musement.com/guide/activities/cutoff-and-confirmation-times/
          type: string
        daily:
          description: >-
            When the `booking_type` property is `CALENDAR-NO-TIMESLOTS`, the
            `daily` property will be `true`. Ignore this property for all other
            `booking_type` values.
          type: boolean
        description:
          description: Same as the `meta_description` property.
          type: string
        discount:
          description: >-
            A discount percentage that might be applied to some (or all) prices
            in the activity.
          minimum: 0
          type: integer
        duration:
          deprecated: true
          description: |
            The duration of the activity, following the ISO 8601 standard.

            Use the `duration_range` property instead.
          type: string
          x-specificVersion: 3.4.0
        duration_range:
          description: >
            A general overview of how long a customer's experience with an
            activity will last. The `min` and `max` properties are both
            optional. Their presence changes the meaning of the duration:

              * When the `min` and `max` are both present and equal, this is a single period of time. Example: *Lasts 2 hours*
              * When `min` and `max` are both present, but different, the activity spans a range of time. Example: *Lasts 1 to 2 hours*
              * When `min` is absent and `max is present, the minimum duration is unknown. Example: *Lasts up to 2 hours*
              * When `min` is present and `max` is absent, the maximum duration is unknown. Example: *Lasts at least 1 hour*
              * When either `min` or `max` has a value of `P0D`, the duration cannot be well-defined. Example: *Flexible*

            When the entire `duration_range` property is absent, use the
            `validity` property instead.
          externalDocs:
            description: For more info, check out our guide.
            url: >-
              https://partner-api.musement.com/guide/activities/duration-and-validity/
          properties:
            max:
              description: >-
                The maximum amount of time an activity will last, if known.
                Value follows the ISO 8601 standard.
              type: string
            min:
              description: >-
                The minimum amount of a time an activity will last, if known.
                Value follows the ISO 8601 standard.
              type: string
          type: object
        emergency_phone_number:
          description: >-
            When customers are lost or running late, they can use the
            information in this property to contact the activity provider for
            help finding the meeting point. Does not contain HTML. Translated
            based on the `Accept-Language` header value.
          type: string
        exclusive:
          description: This activity only available via Musement's catalog.
          type: boolean
        extra_media_url:
          deprecated: true
          description: A URL for additional media, such as seat maps.
          type: string
        features:
          description: A list of features for the activity and/or reservation flow.
          items:
            $ref: '#/components/schemas/MetadataItem'
          type: array
          uniqueItems: true
        flavours:
          description: A list of tags about some of the activity's characteristics.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/activities/flavours/
          items:
            $ref: '#/components/schemas/Flavour'
          type: array
          uniqueItems: true
        food:
          description: A list of meals the activity includes.
          items:
            $ref: '#/components/schemas/MetadataItem'
          type: array
          uniqueItems: true
        free_cancellation:
          description: >-
            When `true`, the activity will offer a 100% refund for certin
            cancellations. Use the `/activities/{activityUuid}/refund-policies`
            endpoint for more details.
          type: boolean
        giftcard:
          description: Whether the activity is a Musement gift card or not.
          type: boolean
        giftable:
          description: >-
            Whether the activity can be given as a gift on
            [musement.com](https://www.musement.com) or not.
          type: boolean
        green_fee_days:
          description: >-
            The number of green fee days included for activities that take place
            at golf courses.
          minimum: 0
          type: integer
        group_size:
          description: The activity is able to accommodate groups of the listed sizes.
          items:
            $ref: '#/components/schemas/MetadataItem'
          type: array
          uniqueItems: true
        has_extra_customer_data:
          description: Whether the activity requires extra customer data or not.
          externalDocs:
            description: For more info, check out our guide.
            url: >-
              https://partner-api.musement.com/guide/activities/extra-customer-data-and-participants-info/
          type: boolean
          x-specificVersion: 3.4.0
        has_multiple_options:
          description: Whether the activity has multiple *ticket options* or not.
          type: boolean
        has_passenger_info:
          description: Whether the activity requires participant info or not.
          externalDocs:
            description: For more info, check out our guide.
            url: >-
              https://partner-api.musement.com/guide/activities/extra-customer-data-and-participants-info/
          type: boolean
          x-specificVersion: 3.4.0
        has_price_info_on_date:
          description: >-
            When `true`, dates in the `/activities/{activityUuid}/dates`
            endpoint will include price information.
          type: boolean
        highlights:
          description: >-
            A list of useful selling points for the activity. Does not contain
            HTML. Does not include taxonomies. Translated based on the
            `Accept-Language` header value.
          items:
            type: string
          type: array
        included:
          description: >-
            A list of inclusions. Does not contain HTML. Does not include
            taxonomies. Translated based on the `Accept-Language` header value.
          items:
            type: string
          type: array
        included_hotel_night_number:
          description: The number of nights at a hotel that the activity includes.
          minimum: 0
          type: integer
        info:
          description: >-
            Additional information about the activity, such as security or
            weather considerations. Contains HTML. Translated based on the
            `Accept-Language` header value.
          type: string
        is_available_today:
          description: Whether it is possible to reserve the activity for today or not.
          type: boolean
        is_available_tomorrow:
          description: Whether it is possible to reserve the activity for tomorrow or not.
          type: boolean
        languages:
          description: >-
            The activity is able to accommodate people who speak any of the
            languages in this property. It is not necessarily required to select
            one of these languages during the reservation flow.
          items:
            properties:
              code:
                description: The language code, following RFC 3066.
                type: string
              name:
                description: >-
                  The name of the language, translated based on the
                  `Accept-Language` header value.
                type: string
            required:
              - code
              - name
            type: object
          type: array
          uniqueItems: true
        last_chance:
          description: >-
            The activity has limited availability and is likely to completely
            sell out soon.
          type: boolean
        likely_to_sell_out:
          description: >-
            The activity is popular and has limited availability. Closer dates
            are likely to sell out quickly.
          type: boolean
        latitude:
          format: float
          type: number
        longitude:
          format: float
          type: number
        max_confirmation_time:
          description: >
            The maximum amount of time an activity provider needs to process a
            reservation request. Values follow the ISO 8601 standard.


            This property is not used for instant confirmation activities.
          externalDocs:
            description: For more info, check out our guide.
            url: >-
              https://partner-api.musement.com/guide/activities/cutoff-and-confirmation-times/
          type: string
        meeting_point:
          description: >-
            Additional details about where customers will start the activity.
            Does not contain HTML. Translated based on the `Accept-Language`
            header value.
          type: string
        meeting_point_html:
          description: >-
            Additional details about where customers will start the activity in
            HTML. Translated based on the `Accept-Language` header value.
          type: string
        meeting_point_markdown:
          description: >-
            Additional details about where customers will start the activity in
            the Markdown markup language. Translated based on the
            `Accept-Language` header value.
          type: string
        merchant_price:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: >-
                The price for partners based on commercial agreements. Appears
                for authenticated requests.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        meta_description:
          description: >-
            An SEO-friendly description of the activity. Does not contain HTML.
            Translated based on the `Accept-Language` header value.
          type: string
        meta_title:
          description: >-
            An SEO-friendly version of the activity title to use for search
            results. Does not contain HTML. Translated based on the
            `Accept-Language` header value.
          type: string
        must_see:
          description: The activity is popular enough to be considered a "must see".
          type: boolean
        needs_voucher:
          description: >-
            When `true`, the activity provider must manually review and confirm
            (or refuse) each reservation. When this is the case, the activity is
            not instant confirmation.
          type: boolean
        no_index:
          description: When `true`, the activity should not be indexed by search engines.
          type: boolean
          x-specificVersion: 3.5.0
        not_included:
          description: >-
            A list of exclusions. Does not contain HTML. Does not include
            taxonomies. Translated based on the `Accept-Language` header value.
          items:
            type: string
          type: array
        numbered_seats:
          description: >-
            When `true`, affects the `min_buy` parameter in the
            `/activities/{activityUuid}/dates/{date}` endpoint for select seller
            gateways.
          type: boolean
        open:
          description: >-
            When `true`, the activity `booking_type` property has a value of
            `NO-CALENDAR-FIXED-END` or `NO-CALENDAR-FIXED-VALIDITY`.
          type: boolean
        operational_days:
          description: >-
            A short summary of which days the activity is available. Contains
            HTML. Translated based on the `Accept-Language` header value.
          type: string
        order_box_elements:
          description: >
            Determines if pickups are a required part of the reservation flow.
            Value is an array with a single item, one of the following values:

              * `tours-and-activities`: Pickups are not part of the reservation flow.
              * `tours-and-activities-with-pickup`: Customers must select a pickup point for a reservation.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/activities/pickup-points/
          items:
            enum:
              - tours-and-activities
              - tours-and-activities-with-pickup
            type: string
          type: array
        original_retail_price:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: The base price with a service fee, but no discount.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        original_retail_price_without_service_fee:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: The base price with a discount, but no service fee.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        partner_internal_code:
          description: An activity provider's own identifier for the activity.
          type: string
        reduced:
          deprecated: true
          description: >-
            General information on who can take advantage of reduced rates for
            the activity. Contains HTML. Translated based on the
            `Accept-Language` header value.
          type: string
        relevance:
          description: >-
            This is the default property used to sort activities, typically from
            highest to lowest.
          type: integer
        relevance_venue:
          description: >-
            This property is used to sort activities by their venue, typically
            from highest to lowest.
          type: integer
        retail_price:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: The final price for customers.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        retail_price_without_service_fee:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: The base price with a discount, but no service fee.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        reviews_aggregated_info:
          description: >-
            A breakdown of the number of reviews for the activity using a "five
            star" rating system, where a value of `0` is poor and a value of `5`
            is excellent.
          properties:
            '0':
              minimum: 0
              type: integer
            '1':
              minimum: 0
              type: integer
            '2':
              minimum: 0
              type: integer
            '3':
              minimum: 0
              type: integer
            '4':
              minimum: 0
              type: integer
            '5':
              minimum: 0
              type: integer
          type: object
        reviews_avg:
          description: The overall rating for this activity based on the reviews.
          minimum: 0
          type: number
          format: float
        reviews_number:
          description: The total number of reviews for this activity.
          minimum: 0
          type: integer
        saves:
          deprecated: true
          description: The number of customers who saved this activity to their favorites.
          type: integer
          x-specificVersion: 3.4.0
        seller_gateway:
          deprecated: true
          description: The integration which handles the reservation flow.
          properties:
            code:
              description: The alphanumeric code that identifies the integration.
              type: string
            name:
              description: The name of the integration.
              type: string
          required:
            - code
            - name
          type: object
        service_fee:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: >-
                An extra fee to add to the base price to cover additional costs
                for creating a reservation.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        services:
          description: A list of customer-friendly services included in the activity.
          items:
            $ref: '#/components/schemas/MetadataItem'
          type: array
        slug:
          description: >-
            An automatically generated URL-friendly slug based on the `title`
            property.
          type: string
        slug_id:
          description: >-
            A combination of the `slug` property and the activity's numeric ID.
            This property is used for generating URLs for activities on
            [musement.com](https://www.musement.com).
          type: string
        sold_out:
          description: When `true`, the activity is no longer available for purchase.
          type: boolean
        special_offer:
          description: The activity has a temporary discount.
          type: boolean
        status:
          description: >
            The publication state of the activity and whether it is available
            for purchase


            The typical publication flow follows:

              1. `DRAFT`: The activity is being configured and is not available for purchase.
              1. `REVIEW`: The activity is being reviewed before publication and is not available for purchase yet.
              1. `ONLINE`: The activity has been published and is ready for purchase.

            The status of an `ONLINE` activity can change when an activity is no
            longer available. It can change to either of the following statuses:

              * `ARCHIVED`
              * `UNAVAILABLE`

            An activity that is not available may return to a status of `ONLINE`
            again.
          enum:
            - ARCHIVED
            - DRAFT
            - ONLINE
            - REVIEW
            - UNAVAILABLE
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/activities/status/
          type: string
        supplier:
          description: Information about the activity provider.
          properties:
            company_name:
              description: The name of the activity provider.
              type: string
            uuid:
              description: The activity provider's UUID.
              format: uuid
              type: string
          type: object
        supplier_currency:
          title: Currency code
          description: >-
            The original currency the activity prices were loaded in, using a
            currency `code` from the `/currencies` endpoint.
          type: string
        temporary:
          description: Temporary activities are likely to end in the near future.
          type: boolean
        ticket:
          description: Whether the activity is only an admission ticket or not.
          type: boolean
        ticket_not_included:
          description: >-
            When an activity includes a particular attraction, this property
            indicates if entry to the attraction is included in the final price
            or not.
          type: boolean
        title:
          description: >-
            The activity title, translated based on the `Accept-Language` header
            value.
          type: string
        top_seller:
          description: This is one of Musement's top selling activities.
          type: boolean
        translated:
          description: >-
            Whether the content in the response is a translation for the
            `Accept-Language` header value or not.
          type: boolean
        url:
          deprecated: true
          description: >-
            An automatically generated URL for the activity based on the
            activity properties and `X-Musement-Market` header value. The
            property value may consist of a single hashtag when no URL can be
            generated.
          format: uri
          type: string
        uuid:
          description: The activity's UUID.
          format: uuid
          type: string
        validity:
          description: >
            When the `duration_range` property is absent, this property
            indicates the maximum period of time the activity is valid for a
            customer once they start. Value follows the ISO 8601 standard.


            When the property has a value of `P0D`, the activity does not have a
            well-defined length of time.
          externalDocs:
            description: For more info, check out our guide.
            url: >-
              https://partner-api.musement.com/guide/activities/duration-and-validity/
          type: string
        venues:
          description: A list of venues the activity belongs to.
          items:
            $ref: '#/components/schemas/Venue'
          type: array
          uniqueItems: true
        verticals:
          deprecated: true
          description: >-
            A list of verticals the activity belongs to. Since this property is
            deprecated, partners are expected to use `categories` instead.
          items:
            $ref: '#/components/schemas/Vertical'
          type: array
          uniqueItems: true
        voucher_access_usage:
          description: >
            This property specifies if customers how customers need to present
            their vouchers to access a reserved activity:

              * MOBILE: Vouchers on smartphones or tablets are accepted. Printed vouchers are also accepted.
              * PRINTED: Vouchers must be printed. Vouchers on smartphones or tables are *not* accepted.
              * MIXED: Voucher requirements vary depending on the selected product.
          enum:
            - MIXED
            - MOBILE
            - PRINTED
          type: string
        voucher_always_include_ours:
          description: >-
            When an activity includes vouchers from activity providers, this
            property indicates whether customers must also receive a copy of the
            standard Musement voucher or not.
          type: boolean
        warnings:
          deprecated: true
          description: >-
            Information related to delays or security concerns. Contains HTML.
            Translated based on the `Accept-Language` header value.
          type: string
        when_text:
          deprecated: true
          description: >-
            General information on dates, times and closures. Contains HTML.
            Translated based on the `Accept-Language` header value.
          type: string
        where_text:
          description: >-
            A street address for the location of the activity. Contains HTML.
            Translated based on the `Accept-Language` header value.
          type: string
      type: object
      xml:
        name: event
    Vertical:
      title: Vertical
      example:
        active: true
        code: sightseeing
        cover_image_url: >-
          https://images-sandbox.musement.com/vertical/0001/31/sightseeing-00-jpg_header-30549.jpeg?w=540
        id: 2
        meta_description: >-
          Live every city like a local with Musement. Skip the line at some of
          the world's most popular attractions and discover hidden gems.
        meta_title: Access Top Tours and Attractions
        name: Tours & attractions
        relevance: 90
        slug: tours-attractions
        url: https://.sbox.musement.com/us/tours-attractions-t/
      properties:
        active:
          type: boolean
        code:
          description: A unique string code for the vertical.
          type: string
        count:
          type: integer
        cover_image_url:
          description: A URL for the vertical's cover image.
          format: uri
          type: string
        id:
          description: The vertical's numeric ID.
          type: integer
        meta_description:
          description: >-
            An SEO-friendly description of the venue, translated based on the
            `Accept-Language` header value.
          type: string
        meta_title:
          description: >-
            An SEO-friendly version of the venue name, translated based on the
            `Accept-Language` header value.
          type: string
        name:
          description: >-
            The vertical name, translated based on the `Accept-Language` header
            value.
          type: string
        slug:
          description: >-
            The vertical slug, used for creating the vertical URL. Changes based
            on the value of the `Accept-Language` value.
          type: string
        top_events:
          items:
            $ref: '#/components/schemas/Activity'
          type: array
        url:
          description: >-
            An automatically generated Musement URL for the vertical based on
            the `X-Musement-Market` header and `slug` property. The URL is only
            valid for select `X-Musement-Market` values and active verticals.
          format: uri
          type: string
        relevance:
          description: >-
            A property used for ranking multiple verticals by popularity. Top
            selling verticals will have a higher value.
          type: integer
      type: object
      xml:
        name: vertical
    Venue:
      title: Venue
      description: A popular attraction or landmark.
      properties:
        abstract:
          deprecated: true
          description: A short description of the venue.
          type: string
        address:
          description: The local address of the venue.
          type: string
        city:
          $ref: '#/components/schemas/City'
        country:
          $ref: '#/components/schemas/Country'
        cover_image_url:
          description: A URL for the venue's cover image.
          format: uri
          type: string
        description:
          description: >-
            A plain text description of the venue, translated based on the
            `Accept-Language` header value.
          type: string
        description_html:
          description: >-
            A description of the venue with HTML tags in the language of the
            `Accept-Language` header.
          type: string
        events_count:
          description: The number of `ONLINE` activities in the venue.
          minimum: 0
          type: integer
        id:
          description: The venue's numeric ID.
          type: integer
        latitude:
          format: float
          type: number
        longitude:
          format: float
          type: number
        meta_description:
          description: >-
            An SEO-friendly description of the venue, translated based on the
            `Accept-Language` header value.
          type: string
        meta_title:
          description: >-
            An SEO-friendly version of the venue name, translated based on the
            `Accept-Language` header value.
          type: string
        name:
          description: >-
            The venue name, translated based on the `Accept-Language` header
            value.
          type: string
        headline:
          description: >-
            An SEO-friendly version of the venue name for a page headline,
            translated based on the `Accept-Language` header value.
          type: string
        relevance:
          description: >-
            A property used for ranking multiple venues by popularity. Top
            selling venues will have a higher value.
          type: integer
        reviews_avg:
          description: The average rating from reviews for all the activities in the venue.
          format: float
          type: number
        reviews_number:
          description: >-
            The total number of reviews used to calculate the `reviews_avg`
            property.
          type: integer
        show_calendar:
          deprecated: true
          description: Show the calendar on the venue page.
          type: boolean
        show_flavours_filter:
          deprecated: true
          description: Show venue flavours as a filter on the venue page.
          type: boolean
        slug:
          description: >-
            The venue slug, used for creating the venue URL. Changes based on
            the value of the `Accept-Language` value.
          type: string
        status:
          enum:
            - ACTIVE
            - NOT-ACTIVE
          type: string
        tips:
          deprecated: true
          type: array
          x-specificVersion: 3.4.0
        url:
          description: >-
            An automatically generated Musement URL for the venue based on the
            `X-Musement-Market` header, `city` property and `slug` property. The
            URL is only valid for select `X-Musement-Market` values and venues
            with a status of `ACTIVE`.
          format: uri
          type: string
        verticals:
          items:
            $ref: '#/components/schemas/Vertical'
          type: array
          uniqueItems: true
      required:
        - address
        - description
        - description_html
        - events_count
        - id
        - name
        - relevance
        - reviews_avg
        - reviews_number
        - show_calendar
        - show_flavours_filter
        - slug
        - status
        - tips
        - url
        - verticals
      type: object
      xml:
        name: venue
    Facet:
      title: Facet
      example:
        facet_type: RANGE
        key: price
        query_param: default_price_range
        label: Price (per adult)
        values:
          - key: min
            label: Min
            value: 10
            query_value: '10'
          - key: max
            label: Max
            value: 199.99
            query_value: '199.99'
      properties:
        facet_type:
          description: |
            The type of facet represented:

              * `BUCKET_RANGE`: the facet portrays multiple ranges of values.
              * `RANGE`: the facet portrays a range consisting of a minimum value and a maximum value.
              * `TERMS`: the facet represents a specific entity.
          type: string
          enum:
            - BUCKET_RANGE
            - RANGE
            - TERMS
        key:
          description: The facet key as it appears in the `include_facets` parameter.
          type: string
        label:
          description: >-
            The name of the facet, translated based on the `Accept-Language`
            header value.
          type: string
        query_param:
          description: >-
            The query parameter to use for searching for activities connected to
            this facet.
          type: string
        values:
          description: >-
            A list of values for the facet based on all the results for the
            query, not just those returned in the response.
          items:
            $ref: '#/components/schemas/FacetValue'
          type: array
          uniqueItems: true
      type: object
    FacetValue:
      properties:
        key:
          description: The numeric ID or alphanumeric code of the facet.
          type: string
        facet:
          description: >-
            Sub-facets which belong to the current facet. Used mainly for
            categories and verticals.
          items:
            $ref: '#/components/schemas/Facet'
          type: array
          uniqueItems: true
        label:
          description: >-
            The name of the facet, translated based on the `Accept-Language`
            header value.
          type: string
        query_value:
          description: The value of the facet to use for query parameters.
          type: string
        value:
          description: >-
            For price facets, this is the corresponding price value. For all
            other facets, this is the number of activities which match the query
            and are connected to this facet.
          format: float
          type: number
      required:
        - key
        - label
        - query_value
        - value
      type: object
    Bundle:
      title: Bundle
      example:
        discount: 0
        discount_type: percentage
        bundle_type: no_discount
        rule_id: '247'
        activities:
          - bundled_price:
              currency: EUR
              formatted_iso_value: €25.00
              formatted_value: € 25.00
              value: 25
            cover_image_url: >-
              https://images-sandbox.musement.com/cover/0001/19/9-11-memorial-museum-tickets_header-18896.jpeg?w=540
            original_retail_price_without_service_fee:
              currency: EUR
              formatted_iso_value: €25.00
              formatted_value: € 25.00
              value: 25
            original_retail_price:
              currency: EUR
              formatted_iso_value: €25.00
              formatted_value: € 25.00
              value: 25
            retail_price:
              currency: EUR
              formatted_iso_value: €25.00
              formatted_value: € 25.00
              value: 25
            retail_price_without_service_fee:
              currency: EUR
              formatted_iso_value: €25.00
              formatted_value: € 25.00
              value: 25
            reviews_avg: 4.6
            service_fee:
              currency: EUR
              formatted_iso_value: €0.00
              formatted_value: € 0.00
              value: 0
            title: 9-11 Memorial and Museum tickets
            uuid: 11471ae8-2046-11e7-9cc9-06a7e332783f
      properties:
        activities:
          description: Activities which can be bundled with the current activity.
          items:
            title: Activity
            allOf:
              - $ref: '#/components/schemas/Activity'
              - properties:
                  bundled_price:
                    allOf:
                      - $ref: '#/components/schemas/Price'
                      - description: >-
                          The price of the activity based on the bundle
                          configuration.
                required:
                  - uuid
                  - title
                  - cover_image_url
                  - service_fee
                  - retail_price
                  - retail_price_without_service_fee
                  - original_retail_price_without_service_fee
                  - original_retail_price
                  - reviews_avg
          type: array
          uniqueItems: true
        bundle_type:
          description: |
            The type of bundle defines how its discount can affect prices:

              * `from_second`: the bundle discount only applies to the price of the activity in the bundle.
              * `no_discount`: the bundle offers no discount.
              * `on_everything`: the bundle discount applies to the combined price of both activities.
          enum:
            - from_second
            - no_discount
            - on_everything
          type: string
        discount:
          description: >-
            A discount which can be applied based on the `discount_type` and
            `bundle_type` property values.
          minimum: 0
          type: integer
        discount_type:
          description: |
            This property defines how to treat the `discount` property:

              * `absolute`: as a specific currency amount.
              * `percentage`: as a percentage.
          enum:
            - absolute
            - percentage
          type: string
        rule_id:
          description: The bundle's ID.
          type: string
      type: object
    Comment:
      title: Comment
      example:
        author:
          avatar: >-
            https://www.gravatar.com/avatar/64cd1afae494f878bf6004048aab3fa2?s=120&d=identicon&r=g
          firstname: Firstname 331069
        body: We loved this tour!
        locale: en
        rating: 5
        sent_at: 2018-05-13T09:01:19+0000
        title: Great!
        uuid: 19554b4f-18d4-4b9b-b650-d72517523473
      properties:
        author:
          description: Information about the creator of the comment.
          properties:
            avatar:
              description: A URL of the customer's avatar image.
              format: ur
              type: string
            country:
              description: The customer's country of origin.
              properties:
                iso_code:
                  description: The two-character ISO code for the country.
                  type: string
                name:
                  description: >-
                    The name of the country in the language of the
                    `Accept-Language` header.
                  type: string
              type: object
            firstname:
              description: The customer's first name.
              type: string
          required:
            - avatar
            - firstname
          type: object
        body:
          description: Additional feedback, if any, from the customer about the activity.
          type: string
        locale:
          description: The language the customer wrote their feedback in.
          type: string
        rating:
          description: >-
            The customer's rating of the activity on a scale of one (poor) to
            five (excellent).
          format: float
          type: number
        sent_at:
          description: The date and time the comment was submitted.
          format: date-time
          type: string
        title:
          description: The customer's feedback, if any, about the activity.
          type: string
        uuid:
          description: The comment's UUID.
          format: uuid
          type: string
      required:
        - author
        - locale
        - rating
        - sent_at
        - uuid
      type: object
    ActivityTranslation:
      title: Activity translation
      example:
        description: "<p>Join this exclusive tour to discover one of the most iconic works ever: Leonardo da Vinci&#39;s Last Supper.</p>\r\n\r\n<p>You will meet your expert guide in Piazza Santa Maria delle Grazie, where you will begin the tour with a brief explanation.</p>\r\n\r\n<p>Afterward, thanks to your skip-the-line ticket, you&#39;ll go inside straight away without having to wait at the entrance so you can be united with one of the most admired paintings in the world, created by one of the greatest geniuses that ever existed.</p>\r\n\r\n<p>Here your guide will continue to unravel all the mysteries behind this artwork. What&#39;s ironic about the location of the painting? How come The Last Supper isn&#39;t a fresco? What happened to the eyes of some characters? How is the painting structured? What do the conspiracy theories say? How do we recognize the genius of Leonardo da Vinci?</p>\r\n\r\n<p>You will find all the answers to these questions and many others on this unmissable tour!</p>"
        highlights: "<ul>\r\n\t<li>Admire Leonardo da Vinci&#39;s Last Supper</li>\r\n\t<li>Enter quickly&nbsp;by skipping the line at the entrance</li>\r\n\t<li>Discover the wonders and mysteries&nbsp;hidden behind this work of art</li>\r\n</ul>"
        included: "<ul>\r\n\t<li>Exclusive English or Italian-speaking Musement guide</li>\r\n\t<li>Skip-the-line entrance to Leonardo da Vinci&#39;s Last Supper</li>\r\n</ul>"
        info: "<ul>\r\n\t<li>The venue requires us to provide the name and surname of each visitor; this information is mandatory for purchasing the ticket and for entering the Last Supper. If this requirement isn&#39;t met, it will not be possible to enter the venue. The name given at the time of booking must correspond to the name on the participant&#39;s passport or identity card. Tickets are nominal and cannot be changed once the booking is completed. Each participant must bring with him/her an identity document</li>\r\n\t<li>Due to the rules imposed by the supervisor of cultural artifacts for the city of Milan, your visit to the Last Supper cannot exceed 15 minutes</li>\r\n\t<li>Dress code: shoulders and knees must be covered and men should wear full-length trousers</li>\r\n\t<li>No liquids,&nbsp;including water bottles, are allowed inside the site</li>\r\n\t<li>Large bags/backpacks/suitcases are not permitted inside the Last Supper (only very small bags are allowed). There are no cloakrooms for storing these items but there are free lockers available for small items and bottles</li>\r\n\t<li>Photos are not allowed</li>\r\n\t<li>The tour is run in small groups</li>\r\n</ul>"
        info_voucher: "<ul>\r\n\t<li>Tickets are nominal and cannot be changed once the booking is completed. Shoulders and knees must be covered and men should wear full-length trousers. No liquids,&nbsp;including water bottles, are allowed inside the site. Large bags/backpacks/suitcases are not permitted inside&nbsp;(only very small bags). There are no cloakrooms for storing these items. Free lockers are available for small items and bottles. Photos are not allowed</li>\r\n\t<li>Each participant must bring with him/her an identity document</li>\r\n</ul>"
        is_default: true
        is_manually_translated_complete: true
        is_manually_translated_highlights: true
        is_manually_translated_info_voucher: true
        is_manually_translated_meeting_point: true
        is_manually_translated_title: true
        locale: us
        meeting_point: >-
          <p>At the corner of Piazza Santa Maria delle Grazie&nbsp;and Corso
          Magenta&nbsp;- in front of the Vigna di Leonardo Ticket Office, at
          least 15 minutes before the starting time of the tour.</p>
        meta_description: >-
          Buy your skip-the-line tickets for the Last Supper in Milan. Enjoy a
          guided tour and discover the mysteries hidden behind one of the most
          important works ever!
        meta_title: Skip-the-line tickets and guided tour of the Last Supper
        slug: da-vinci-s-last-supper-skip-the-line-tickets-and-guided-tour
        title: Da Vinci's Last Supper skip-the-line tickets and guided tour
        translated: true
        where: "<p>Corso Magenta, 65/69, 20123 Milan MI, Italy</p>\r\n\r\n<p>&nbsp;</p>"
      properties:
        description:
          description: The main description of the activity. Contains HTML.
          type: string
        emergency_phone_number:
          description: >-
            When customers are lost or running late, they can use the
            information in this property to contact the activity provider for
            help finding the meeting point. Does not contain HTML.
          type: string
        highlights:
          description: >-
            Useful selling points for the activity. Contains HTML. Does not
            include taxonomies.
          type: string
        included:
          description: A list of inclusions. Contains HTML. Does not include taxonomies.
          type: string
        info:
          description: >-
            Additional information about the activity, such as security or
            weather considerations. Contains HTML.
          type: string
        info_voucher:
          description: >-
            Information to provide customers after a reservation has been
            confirmed. This info is ideal for a confirmation email and/or
            voucher. Contains HTML.
          type: string
        is_default:
          description: >-
            Default translations are used in other endpoints when a translation
            does not exist for the `Accept-Language` header value.
          type: boolean
        is_manually_translated_complete:
          description: All properties have been revised by a human translator.
          type: boolean
        is_manually_translated_highlights:
          description: The `highlights` property been revised by a human translator.
          type: boolean
        is_manually_translated_info_voucher:
          description: The `info_voucher` property has been revised by a human translator.
          type: boolean
        is_manually_translated_meeting_point:
          description: The `meeting_point` property has been revised by a human translator.
          type: boolean
        is_manually_translated_title:
          description: The `title` property has been revised by a human translator.
          type: boolean
        locale:
          description: The language of the translation.
          minLength: 2
          maxLength: 5
          type: string
        meeting_point:
          description: >-
            Additional details about where customers will start the activity.
            Contains HTML.
          type: string
        meta_description:
          description: An SEO-friendly description of the activity. Does not contain HTML.
          type: string
        meta_title:
          description: >-
            An SEO-friendly version of the activity title to use for search
            results. Does not contain HTML.
          type: string
        not_included:
          description: A list of exclusions. Contains HTML. Does not include taxonomies.
          type: string
        operational_days:
          description: >-
            A short summary of which days the activity is available. Does not
            contain HTML.
          type: string
        reduced:
          description: >-
            General information on who can take advantage of reduced rates for
            the activity. Contains HTML.
          type: string
        slug:
          description: >-
            Automatically generated based on the `title` property. Used for
            generating URLs on [musement.com](https://www.musement.com).
          type: string
        title:
          description: The title of the activity.
          type: string
        translated:
          description: >-
            Whether the translation was correctly written in the language of the
            `locale` property value or not.
          type: boolean
        when:
          description: General information on dates, times and closures. Contains HTML.
          type: string
        where:
          description: A street address for the location of the activity. Contains HTML.
          type: string
      required:
        - description
        - is_default
        - is_manually_translated_complete
        - is_manually_translated_highlights
        - is_manually_translated_info_voucher
        - is_manually_translated_meeting_point
        - is_manually_translated_title
        - locale
        - slug
        - title
        - translated
      type: object
    Date:
      properties:
        day:
          description: The date.
          example: '1985-11-05'
          format: date
          type: string
        discount_amount:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: >-
                A discount to subtract from the the "base price" due to
                promotions or special events.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        merchant_price:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: >-
                The price for partners based on commercial agreements. Appears
                for authenticated requests.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        original_retail_price:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: The base price with a service fee, but no discount.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        original_retail_price_without_service_fee:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: The base price with a discount, but no service fee.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        retail_price:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: The final price for customers.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        retail_price_without_service_fee:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: The base price with a discount, but no service fee.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        retail_prices_with_custom_discount:
          description: >-
            A preview of the final price for customers when custom discounts are
            provided via the `discounts[]` query parameter.
          items:
            $ref: '#/components/schemas/Price'
          type: array
        service_fee:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: >-
                An extra fee to add to the base price to cover additional costs
                for creating a reservation.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        sold_out:
          description: >-
            When `true`, the date is no longer available and should not be shown
            to customers.
          example: false
          type: boolean
      required:
        - day
        - sold_out
      type: object
    ScheduleProduct:
      title: Product
      example:
        activity_uuid: 6520c1d5-3484-4610-9bce-87670cee3ede
        age_range: 3-17
        availability: -1
        default: true
        discount_amount:
          currency: USD
          formatted_value: $ 0.00
          formatted_iso_value: $0.00
          value: 0
        holder_code: adult
        holder_code_normalized: ADULT
        language_codes:
          - en
          - it
        max_buy: 15
        min_buy: 1
        name: Adult
        original_retail_price:
          currency: USD
          formatted_iso_value: $48.00
          formatted_value: $ 48.00
          value: 48
        original_retail_price_without_service_fee:
          currency: USD
          formatted_iso_value: $48.00
          formatted_value: $ 48.00
          value: 48
        product_id: '14491063752'
        retail_price:
          currency: USD
          formatted_iso_value: $48.00
          formatted_value: $ 48.00
          value: 48
        retail_price_without_service_fee:
          currency: USD
          formatted_iso_value: $48.00
          formatted_value: $ 48.00
          value: 48
        service_fee:
          currency: USD
          formatted_value: $ 0.00
          formatted_iso_value: $0.00
          value: 0
      properties:
        activity_uuid:
          description: The UUID for the activity that the product belongs to.
          format: uuid
          type: string
        age_range:
          description: >
            The age range for the product. This could be depicted as a range
            with both a lower and a higher bound (such as *3-17*) or as a single
            lower bound (such as *18+*).
          pattern: .*((\d+-\d+|\d+\+)).*
          type: string
        availability:
          description: >
            The total number of remaining seats for the individual product.


            A value of `-1` means the number of remaining seats has not been
            specified for the product.
          externalDocs:
            description: For more info, check out our guide.
            url: >-
              https://partner-api.musement.com/api/booking-flow/product/quantities/
          type: integer
        default:
          description: >-
            A default product is the cheapest standard option available and is
            used for calculating the lowest price available per day.
          type: boolean
        discount_amount:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: >-
                A discount to subtract from the the "base price" due to
                promotions or special events.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        holder_code:
          description: A unique alphanumerical identifier for the product's ticket holder.
          type: string
        holder_code_normalized:
          description: The type of ticket holder based on the `holder_code` property.
          enum:
            - ADULT
            - CHILDREN
            - CUSTOM
            - FAMILY
            - GROUP
            - INFANT
            - REGULAR
            - SENIOR
            - STUDENT
          externalDocs:
            description: For more info, check out our guide.
            url: >-
              https://partner-api.musement.com/guide/availability/ticket-holders/
          type: string
        language_codes:
          description: A list of languages available for the product.
          items:
            title: Language code
            description: The language's unique two-character code.
            maxLength: 2
            minLength: 2
            type: string
          type: array
        max_buy:
          description: >
            The maximum quantity of a product that can be added to cart, based
            on sales restrictions (if any) and the number of remaining seats.
            The timeslot may have additional limits to observe.


            A value of zero means the product is no longer available.
          externalDocs:
            description: For more info, check out our guide.
            url: >-
              https://partner-api.musement.com/api/booking-flow/product/quantities/
          type: integer
        merchant_price:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: >-
                The price for partners based on commercial agreements. Appears
                for authenticated requests.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        min_buy:
          description: >-
            The minimum quantity of a product required for adding to cart. The
            timeslot may have additional limits to observe.
          externalDocs:
            description: For more info, check out our guide.
            url: >-
              https://partner-api.musement.com/api/booking-flow/product/quantities/
          type: integer
        name:
          description: >-
            The name of the ticket holder, translated based on the
            `Accept-Language` header value.
          type: string
        original_retail_price:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: The base price with a service fee, but no discount.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        original_retail_price_without_service_fee:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: The base price with a discount, but no service fee.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        product_id:
          description: The ID of the product, required for adding to cart.
          type: string
        retail_price:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: The final price for customers.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        retail_prices_with_custom_discount:
          description: >-
            A preview of the final price for customers when custom discounts are
            provided via the `discounts[]` query parameter.
          items:
            $ref: '#/components/schemas/Price'
          type: array
        retail_price_without_service_fee:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: The base price with a discount, but no service fee.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/activity-prices/
          title: Price
        type:
          description: The type of product, required for adding to cart.
          enum:
            - musement
            - musement-gift
            - musement-giftbox
            - musement-realtime
          example: musement
          type: string
      type: object
    ScheduleTimeslot:
      title: Schedule timeslot
      properties:
        availability:
          description: >
            The total number of remaining seats for the timeslot, shared among
            all products.


            A value of `-1` means the number of remaining seats has not been
            specified for the timeslot.
          example: -1
          externalDocs:
            description: For more info, check out our guide.
            url: >-
              https://partner-api.musement.com/api/booking-flow/product/quantities/
          type: integer
        languages:
          description: All languages available for the timeslot.
          example:
            - code: en
              name: English
            - code: it
              name: Italian
          items:
            properties:
              code:
                description: A unique two-character code for the language.
                example: en
                maxLength: 2
                minLength: 2
                type: string
              name:
                description: >-
                  The name of the language, translated based on the
                  `Accept-Language` header value.
                example: English
                type: string
            type: object
          type: array
          uniqueItems: true
        max_buy:
          description: >
            The maximum quantity that can be added to cart for this timeslot,
            based on sales restrictions (if any) and the number of remaining
            seats. Individual products may have their own quantity limits.


            A value of zero means the timeslot is no longer available.


            A value of `-1` means the timeslot has no maximum quantity limits.
            Product limits may still apply.
          example: -1
          externalDocs:
            description: For more info, check out our guide.
            url: >-
              https://partner-api.musement.com/api/booking-flow/product/quantities/
          type: integer
        min_buy:
          description: >-
            The minimum quantity required for adding to cart. Individual
            products may have their own quantity limits.
          example: 1
          externalDocs:
            description: For more info, check out our guide.
            url: >-
              https://partner-api.musement.com/api/booking-flow/product/quantities/
          type: integer
        products:
          description: Products for the current timeslot.
          items:
            $ref: '#/components/schemas/ScheduleProduct'
          type: array
          uniqueItems: true
        tags:
          example: []
          items:
            $ref: '#/components/schemas/MetadataItem'
          type: array
        time:
          description: >
            The time, in the local time zone for the activity. Times are always
            written in a 24-hour format.
          example: '18:00'
          type: string
      type: object
    ScheduleGroup:
      title: Schedule group
      properties:
        default:
          description: A default feature is the cheapest standard option available.
          example: false
          type: boolean
        description:
          description: >-
            Additional information about the feature, aka *ticket option*,
            translated based on the `Accept-Language` header value.
          example: ''
          type: string
        feature_code:
          description: >-
            The unique alphanumeric identifier for the feature, aka *ticket
            option*.
          example: tour
          type: string
        name:
          description: >-
            The name of the feature, aka *ticket option*, translated based on
            the `Accept-Language` header value.
          example: Tour
          type: string
        type:
          description: >
            Indicates whether times for the schedule should be shown to
            customers or not:

              * `DAY-BASED`: customers must select a date only for their reservation. Times must not be shown.
              * `TIME-BASED`: customers must select both a date and time as part of their reservation.
          enum:
            - DAY-BASED
            - TIME-BASED
          example: TIME-BASED
          type: string
        slots:
          description: Available timeslots for the feature.
          items:
            $ref: '#/components/schemas/ScheduleTimeslot'
          type: array
          uniqueItems: true
      type: object
    CustomerQuestions:
      title: Customer questions
      properties:
        title:
          description: |
            The type of item:

              * `cart_customer_guest`: Customer info for cart
              * `cart_item_participants_info`: Participant info for cart item
              * `form`: Extra customer data
              * `participant`: Participant info
          enum:
            - cart_customer_guest
            - cart_item_participants_info
            - form
            - participant
          type: string
        type:
          enum:
            - object
          type: string
        properties:
          additionalProperties:
            description: Each property varies depending on the activity configuration.
            properties:
              attr:
                description: >-
                  Attributes which should be applied to any form elements used
                  to collect property values.
                properties:
                  pattern:
                    description: >-
                      A regular expression pattern that the property value must
                      follow.
                    type: string
                  placeholder:
                    description: Placeholder text.
                    type: string
                type: object
              enum:
                description: A list of valid values for the property.
                items:
                  type: string
                type: array
              enum_titles:
                description: A list of human-friendly labels for the `enum` values.
                items:
                  type: string
                type: array
              format:
                description: The required format of the value.
                enum:
                  - date
                  - email
                type: string
              propertyOrder:
                description: >-
                  The order the property should be displayed to customers.
                  Properties with a lower `propertyOrder` value should appear
                  first.
                minimum: 1
                type: integer
              title:
                description: >-
                  The name of the field, translated based on the
                  `Accept-Language` header value.
                type: string
              type:
                description: The type of value required for the property.
                enum:
                  - integer
                  - string
                type: string
            required:
              - propertyOrder
              - title
              - type
            type: object
          type: object
        required:
          description: >-
            A list of properties which require values in order to complete a
            reservation.
          items:
            type: string
          type: array
      type: object
    ActivityPickup:
      title: Pickup
      example:
        latitude: 39.7191046
        longitude: 3.4578191
        name: Allsun Hotel Lux de Mar
        tags:
          - id: AC5257025
            type: CONTENT-MANAGER-DATA
          - id: '472'
            type: HOTEL-CODE
        type: HOTEL
        uuid: c2326f61-c0d7-4353-8a1f-c1f12c4249f3
      properties:
        latitude:
          format: float
          type: number
        longitude:
          format: float
          type: number
        name:
          description: The name of the pickup location.
          type: string
        place:
          type: string
        tags:
          items:
            title: Pickup tag
            properties:
              id:
                description: The pickup tag's alphanumeric ID.
                type: string
              type:
                description: The type of tag.
                enum:
                  - CONTENT-MANAGER-DATA
                  - HOTEL-CODE
                  - SUPPLIER
                type: string
            required:
              - id
              - type
            type: object
          type: array
        type:
          description: |
            The type of pickup:

            * `HOTEL`: A hotel where customers can wait in the lobby.
            * `PICKUP`: A general location. Customers may need to wait outside.
          enum:
            - HOTEL
            - PICKUP
          type: string
        uuid:
          description: The pickup's UUID.
          format: uuid
          type: string
      type: object
      xml:
        name: ActivityPickup
    RefundPolicy:
      title: Refund policy
      example:
        period: P2D
        type: PERCENTAGE
        uuid: e9d85f7d-6e48-11e8-8a05-02bc4b6113e8
        value: 100
      properties:
        currency_code:
          description: >-
            A currency `code` from the `/currencies` endpoint. Present when
            `type` is `ABSOLUTE`.
          type: string
        period:
          description: >-
            The minimum amount of time, following ISO 8601, before a scheduled
            reservation can be cancelled and still obtain a refund.
          type: string
          example: P2W
        type:
          description: |
            The type of refund policy:

              * `ABSOLUTE`: A specific amount is refunded in the `currency_code` value.
              * `PERCENTAGE`: A percentage of the product price is refunded.
          enum:
            - ABSOLUTE
            - PERCENTAGE
          type: string
        uuid:
          description: The refund policy's UUID.
          format: uuid
          type: string
        value:
          description: >-
            The refund policy amount. Depending on the `type` property, this
            could be a percentage or a specific currency amount.
          format: float
          type: number
      required:
        - period
        - type
        - uuid
        - value
      type: object
      xml:
        name: ActivityRefundPolicy
    Taxonomy:
      title: Taxonomy
      example:
        category: FOOD-AND-DRINK
        name: Mixed drinks at the bar - lit moves on the floor
        type: HIGHLIGHT
        uuid: 7a1de19f-51e1-11e7-96a2-06d26c7657b2
      properties:
        category:
          description: >
            The taxonomy's category, if any.


            A value of `NO-STANDARD` is used for taxonomies which were written
            by the activity provider. These non-standard taxonomies are part of
            the translation for a specific language and might not match the
            `Accept-Language` header value.
          enum:
            - ACCOMMODATION
            - ADDITIONAL-FEES-AND-COSTS
            - ART
            - EQUIPMENT
            - EXPLORE-THE-AREA
            - FAMILY-FRIENDLY
            - FOOD-AND-DRINK
            - GUIDE-OPTIONS
            - MEALS
            - NO-STANDARD
          type: string
        name:
          description: >-
            The taxonomy name/label, translated based on the `Accept-Language`
            header value.
          type: string
        type:
          description: The type of taxonomy.
          enum:
            - INCLUSION
            - EXCLUSION
            - HIGHLIGHT
          type: string
        uuid:
          description: The taxonomy's UUID.
          format: uuid
          type: string
      type: object
    TravelerType:
      title: Traveler type
      description: The customer's traveler type.
      enum:
        - ALONE
        - AS-A-COUPLE
        - WITH-FAMILY
        - WITH-FRIENDS
      type: string
    Review:
      title: Review
      description: A customer's review for an activity.
      example:
        comment: Just perfect!
        customer_country: Germany
        date: '2020-04-13'
        rating_value: 9.9
        uuid: d3edd1ff-91d5-4d56-ba93-47b49b921dcd
      properties:
        comment:
          description: >-
            The customer's review for the activity. This is always in the
            language the customer used and is not affected by the
            `Accept-Language` header value.
          type: string
        customer_country:
          description: >-
            The customer's country, translated based on  the `Accept-Language`
            header value.
          type: string
        date:
          description: The date the review was submitted.
          format: date
          type: string
        rating_value:
          description: >-
            The customer's rating for the activity on a scale of zero (poor) to
            ten (amazing).
          format: float
          maximum: 10
          minimum: 0
          type: number
        uuid:
          description: The review's UUID.
          type: string
          format: uuid
      required:
        - uuid
        - date
        - rating_value
      type: object
    RatingScale:
      title: Rating scale
      description: >
        The rating scale used for the review, from the lowest to the highest
        value: `{lowest}..{highest}`
      example: 1..10
      pattern: ^\d{1,3}\.{2}\d{1,3}$
      type: string
    ReviewCategoryCode:
      title: Review category code
      description: The code for the review category.
      enum:
        - SAFETY
        - SERVICE
        - STAFF
        - VALUE-FOR-MONEY
      type: string
    ReviewStatistics:
      title: Review statistics
      description: A breakdown of the reviews and their ratings for an activity.
      example:
        reviews_number: 700
        overall_rating: 7.65
        reviews_per_rating:
          - rating: 1
            reviews_count: 0
          - rating: 2
            reviews_count: 100
          - rating: 3
            reviews_count: 0
          - rating: 4
            reviews_count: 200
          - rating: 5
            reviews_count: 0
          - rating: 6
            reviews_count: 250
          - rating: 7
            reviews_count: 0
          - rating: 8
            reviews_count: 0
          - rating: 9
            reviews_count: 75
          - rating: 10
            reviews_count: 175
        rating_categories:
          - category_code: SERVICE
            category_name: Service
            category_rating: 7.5
      properties:
        overall_rating:
          description: >-
            The overall rating of the reviews on a scale of zero (poor) to ten
            (amazing).
          format: float
          type: number
        rating_categories:
          description: A breakdown of each rating by category.
          items:
            type: object
            properties:
              category_code:
                $ref: '#/components/schemas/ReviewCategoryCode'
              category_name:
                description: >-
                  The name of the category, translated based on the
                  `Accept-Language` header value.
                type: string
              category_rating:
                description: >-
                  The overall rating for the category on a scale of zero (poor)
                  to ten (amazing).
                format: float
                type: number
            example:
              category_code: SERVICE
              category_name: Service
              category_rating: 7.85
          type: array
        reviews_number:
          description: The total number of reviews for the activity.
          type: integer
        reviews_per_rating:
          description: A breakdown of the number of reviews per rating on the scale.
          type: array
          items:
            type: object
            properties:
              rating:
                description: The rating value on a scale of zero (poor) to ten (amazing).
                format: integer
                type: number
              reviews_count:
                description: The number of reviews which use the rating.
                format: integer
                type: number
            example:
              rating: 1
              reviews_count: 5
      required:
        - overall_rating
        - rating_categories
        - reviews_number
        - reviews_per_rating
      type: object
    Currency:
      title: Currency
      properties:
        code:
          description: The currency's unique identifying code.
          example: USD
          maxLength: 3
          minLength: 3
          type: string
        name:
          description: >-
            The currency's name, translated based on the `Accept-Language`
            header value.
          example: US Dollar
          type: string
        symbol:
          description: The currency's symbol.
          example: $
          type: string
      type: object
    CustomerGender:
      properties:
        code:
          description: |-
            Customer's gender code. Possible values are:
             * MALE: Male
             * FEMALE: Female
             * OTHER: Other
          type: string
          enum:
            - MALE
            - FEMALE
            - OTHER
          example: MALE
        name:
          description: >-
            Customer's gender label. | This value depends on the value of the
            header Accept-Language
          type: string
      type: object
    Customer:
      title: Customer
      example:
        email: api-distribution@tui.com
        events_related_newsletter: 'NO'
        extra_customer_data:
          1223356a-69a0-4c45-bf51-bd903820d210:
            phone_number: 1234567890
        firstname: John
        lastname: Smith
        musement_newsletter: 'NO'
        thirdparty_newsletter: 'NO'
      properties:
        country:
          title: Country
          description: The customer's country.
          allOf:
            - $ref: '#/components/schemas/Country'
        email:
          description: The customer's email address.
          format: email
          type: string
        extra_customer_data:
          title: Extra customer data
          description: Extra customer data, based on the customer's cart items.
          type: object
        firstname:
          description: The customer's first name.
          type: string
        lastname:
          description: The customer's last name.
          type: string
        thirdparty_newsletter:
          description: >-
            Whether the customer wants to receive newsletters from third parties
            or not.
          enum:
            - 'NO'
            - 'YES'
          type: string
        musement_newsletter:
          description: >-
            Whether the customer wants to receive newsletters from Musement or
            not.
          enum:
            - 'NO'
            - 'YES'
          type: string
        events_related_newsletter:
          description: >-
            Whether the customer wants to receive newsletters for related
            activities or not.
          enum:
            - 'NO'
            - 'YES'
          type: string
        id:
          type: integer
        avatar:
          type: string
        currency:
          $ref: '#/components/schemas/Currency'
        birthdate:
          title: Birthdate
          type: string
          format: date
          example: '1970-04-13'
        gender:
          $ref: '#/components/schemas/CustomerGender'
        id_number:
          type: string
        mobile:
          type: string
        address:
          type: string
        favourite_city:
          $ref: '#/components/schemas/City'
        locale:
          type: string
      type: object
    Pricetag:
      title: Price tag
      example:
        age_info: 18+
        price_feature: Tour
        price_feature_code: tour
        ticket_holder: Adult
        ticket_holder_code: adult
      properties:
        age_info:
          description: >
            The age range for the product. This could be depicted as a range
            with both a lower and a higher bound (such as *3-17*) or as a single
            lower bound (such as *18+*).
          pattern: .*((\d+-\d+|\d+\+)).*
          type: string
        price_feature:
          description: >-
            The price tag feature, aka *ticket option*, translated based on the
            `Accept-Language` header value.
          type: string
        price_feature_code:
          description: >-
            The unique alphanumeric identifier for the feature, aka *ticket
            option*.
          type: string
        ticket_holder:
          description: >-
            The price tag holder, translated based on the `Accept-Language`
            header value.
          type: string
        ticket_holder_code:
          description: >-
            The unique alphanumerical identifier for the product's ticket
            holder.
          type: string
      type: object
    Product:
      title: Product
      example:
        activity_uuid: df542cb8-8fca-44d0-94e6-715399c783f0
        api_url: >-
          https://sandbox.musement.com/api/v3/activities/df542cb8-8fca-44d0-94e6-715399c783f0
        cover_image_url: >-
          https://images-sandbox.musement.com/cover/0001/93/washington-d-c-day-tour-from-new-york-city-1_header-92769.jpeg
        date: 2022-05-01 10:15
        discount_amount:
          currency: EUR
          formatted_value: € 0.00
          formatted_iso_value: €0.00
          value: 0
        id: '4445102588'
        language:
          code: en
          name: English
        max_confirmation_time: P0D
        original_retail_price:
          currency: EUR
          formatted_value: € 9.00
          formatted_iso_value: €9.00
          value: 9
        original_retail_price_without_service_fee:
          currency: EUR
          formatted_value: € 9.00
          formatted_iso_value: €9.00
          value: 9
        retail_price:
          currency: EUR
          formatted_value: € 9.00
          formatted_iso_value: €9.00
          value: 9
        retail_price_without_service_fee:
          currency: EUR
          formatted_value: € 9.00
          formatted_iso_value: €9.00
          value: 9
        service_fee:
          currency: EUR
          formatted_value: € 0.00
          formatted_iso_value: €0.00
          value: 0
        title: Calendar activity with pickups and multiple price tag features
        type: musement
        url: >-
          https://.sbox.musement.com/bo-2b/washington-dc/calendar-activity-with-pickups-and-multiple-price-tag-features-175737/
      properties:
        activity_uuid:
          description: The UUID of the selected activity.
          format: uuid
          type: string
        api_url:
          description: >-
            The API endpoint to use for more information about the selected
            activity.
          format: uri
          type: string
        cover_image_url:
          description: A URL for the activity's cover image.
          format: uri
          type: string
        date:
          description: 'The selected date and time in the following format: `Y-m-d H:i`.'
          type: string
        discount_amount:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: >-
                A discount to subtract from the the "base price", for a quantity
                of 1, due to promotions or special events.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/cart-prices/
          title: Price
        id:
          description: The ID of the selected product.
          type: string
        language:
          description: The selected language for the product.
          properties:
            code:
              description: The language code, following RFC 3066.
              type: string
            name:
              description: >-
                The name of the language, translated based on the
                `Accept-Language` header value.
              type: string
          required:
            - code
            - name
          type: object
        max_confirmation_time:
          description: >
            The maximum amount of time an activity provider needs to process a
            reservation request. Values follow the ISO 8601 standard.


            This property is not used for instant confirmation activities.
          type: string
        original_retail_price:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: >-
                The base price for a quantity of 1 with a service fee, but no
                discount.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/cart-prices/
          title: Price
        original_retail_price_without_service_fee:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: >-
                The base price for a quantity of 1 with a discount, but no
                service fee.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/cart-prices/
          title: Price
        pickup:
          title: Pickup
          allOf:
            - $ref: '#/components/schemas/ActivityPickup'
            - description: The selected pickup.
        price_tag:
          title: Price tag
          allOf:
            - $ref: '#/components/schemas/Pricetag'
            - description: The selected option.
        retail_price:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: The final price for customers for a quantity of 1.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/cart-prices/
          title: Price
        retail_price_without_service_fee:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: >-
                The base price for a quantity of 1 with a discount, but no
                service fee.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/cart-prices/
          title: Price
        service_fee:
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: >-
                An extra fee to add to the base price, for a quantity of 1, to
                cover additional costs for creating a reservation.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/cart-prices/
          title: Price
        title:
          description: >-
            The title of the selected activity, translated based on the
            `Accept-Language` header value.
          type: string
        type:
          description: The type of product.
          enum:
            - musement
            - musement-realtime
          type: string
        url:
          description: >-
            An automatically generated Musement URL for the selected activity
            based on the `X-Musement-Market` header and item properties. The URL
            is only valid for select `X-Musement-Market` values and activities.
          format: uri
          type: string
      type: object
    CartItem:
      title: Cart item
      properties:
        product:
          title: Product
          allOf:
            - $ref: '#/components/schemas/Product'
            - description: The selected product.
        quantity:
          description: The quantity of requested product.
          minimum: 1
          type: integer
        status:
          description: |
            The status of the cart item:

              * `PREBOOK_KO`: the cart item is no longer available.
              * `PREBOOK_OK`: the cart item is still available for purchase.
          enum:
            - PREBOOK_OK
            - PREBOOK_KO
          type: string
        total_price:
          title: Price
          description: >-
            The product's `retail_price` multiplied by the cart's `quantity`
            property.
          allOf:
            - $ref: '#/components/schemas/Price'
        total_price_without_service_fee:
          title: Price
          description: >-
            The product's `retail_price_without_service_fee` multiplied by the
            cart's `quantity` property.
          allOf:
            - $ref: '#/components/schemas/Price'
        uuid:
          description: The cart item's UUID.
          format: uuid
          type: string
      type: object
    Cart:
      title: Cart
      properties:
        customer:
          title: Customer
          description: The cart's customer info.
          allOf:
            - $ref: '#/components/schemas/Customer'
        discount:
          title: Price
          description: Discount info for the cart if a promo code has been applied.
          allOf:
            - $ref: '#/components/schemas/Price'
        full_price:
          title: Price
          description: >-
            The sum of every product's `original_retail_price` property value
            multiplied by the corresponding cart item's `quantity`.
          allOf:
            - $ref: '#/components/schemas/Price'
        full_price_without_service_fee:
          title: Price
          description: >-
            The sum of every product's
            `original_retail_price_without_service_fee` property value
            multiplied by the corresponding cart item's `quantity`.
          allOf:
            - $ref: '#/components/schemas/Price'
        items:
          description: The cart items.
          items:
            $ref: '#/components/schemas/CartItem'
          type: array
          uniqueItems: true
        preferred_payment_gateway:
          description: >-
            This property defines which payment gateway should be used for
            partners following the split payment flow.
          enum:
            - ADYEN
            - STRIPE
          type: string
        promo_code:
          description: The promo code (if any) applied to cart for a discount.
          properties:
            code:
              type: string
          type: object
        retail_price:
          title: Price
          description: >-
            This property is the final price for customers. It is the sum of
            every cart item's `total_price` property value minus the cart's
            `discount` value.
          allOf:
            - $ref: '#/components/schemas/Price'
        retail_price_without_service_fee:
          title: Price
          description: >-
            The sum of every cart item's `total_price_without_service_fee`
            property value minus the cart's `discount` value.
          allOf:
            - $ref: '#/components/schemas/Price'
        service_fee:
          title: Price
          description: The sum of every product's `service_fee` property value.
          allOf:
            - $ref: '#/components/schemas/Price'
        total_discount:
          title: Price
          description: |
            The sum of:

              * The cart's `discount` property
              * Every product's `discount_amount` property value multiplied by the corresponding cart item's `quantity`.
          allOf:
            - $ref: '#/components/schemas/Price'
        uuid:
          description: The UUID of the cart.
          format: uuid
          type: string
      type: object
    CartRequestBody:
      title: Cart request
      properties:
        customer:
          title: Customer
          properties:
            email:
              description: The customer's email address.
              format: email
              type: string
            firstname:
              description: The customer's first name.
              type: string
            lastname:
              description: The customer's last name.
              type: string
          type: object
        tickets:
          items:
            properties:
              product:
                title: Product
                properties:
                  type:
                    description: The type of product.
                    enum:
                      - musement
                      - musement-realtime
                    type: string
                  id:
                    description: >-
                      The product identifier. Depending on the activity
                      configuration, this could be a numeric value or a complex
                      string.
                    type: string
                required:
                  - id
                  - type
                type: object
              quantity:
                description: The number of products to add to cart.
                minimum: 1
                type: integer
            required:
              - product
              - quantity
            type: object
          type: array
      type: object
    ErrorMessage:
      type: object
      additionalProperties: false
      properties:
        code:
          title: Error code
          type: string
          example: '1440'
        message:
          title: Text message with explanation of what happened
          type: string
          example: Element not found
      required:
        - code
        - message
      readOnly: true
      example:
        code: '1440'
        message: Element not found
    CategoryTree:
      title: Category tree
      example:
        children:
          - children:
              - children:
                  - children: []
                    code: new-helicopter-ride
                    id: 188
                    level: '3'
                    name: Helicopter rides
                code: new-air-activities
                id: 186
                level: '2'
                name: Air activities
            code: new-activities
            id: 185
            level: '1'
            name: Activities
        code: '0'
        id: 0
        level: '0'
        name: ''
      properties:
        children:
          description: >-
            Level-one categories, which can be considered sub-categories to the
            root level.
          items:
            title: Category level 1
            properties:
              children:
                description: Sub-categories, if any, which belong to the category.
                items:
                  title: Category level 2
                  properties:
                    children:
                      description: Sub-categories, if any, which belong to the category.
                      items:
                        title: Category level 3
                        properties:
                          children:
                            description: >-
                              Since level-three categories do not have
                              sub-categories, this value is always an empty
                              array.
                            type: array
                          id:
                            description: The category's numerical ID.
                            minimum: 1
                            type: integer
                          level:
                            description: The category's level in the category tree.
                            pattern: ^\d+?$
                            type: string
                          name:
                            description: >-
                              The category's name, translated based on the
                              `Accept-Language` header value.
                            type: string
                        required:
                          - id
                          - level
                          - name
                        type: object
                      type: array
                    id:
                      description: The category's numerical ID.
                      minimum: 1
                      type: integer
                    level:
                      description: The category's level in the category tree.
                      pattern: ^\d+?$
                      type: string
                    name:
                      description: >-
                        The category's name, translated based on the
                        `Accept-Language` header value.
                      type: string
                  required:
                    - children
                    - id
                    - level
                    - name
                  type: object
                type: array
              id:
                description: The category's numerical ID.
                minimum: 1
                type: integer
              level:
                description: The category's level in the category tree.
                pattern: ^\d+?$
                type: string
              name:
                description: >-
                  The category's name, translated based on the `Accept-Language`
                  header value.
                type: string
            required:
              - children
              - id
              - level
              - name
            type: object
          type: array
        id:
          default: 0
          description: The category's numerical ID. At the root level, this value is fake.
          type: integer
        level:
          default: '0'
          description: >-
            The category's level in the category tree. At the root level, this
            value is fake.
          type: string
        name:
          default: ''
          description: >-
            The category's name, translated based on the `Accept-Language`
            header value. At the root level, this value is fake.
          type: string
      required:
        - children
        - id
        - level
        - name
      type: object
    ListItemMusement:
      title: Musement activity
      description: An item in a list which represents a Musement activity.
      properties:
        event:
          title: Activity
          allOf:
            - $ref: '#/components/schemas/Activity'
            - description: The Musement activity that the item represents.
        public_type:
          description: The type of entity the item represents.
          enum:
            - generic
            - musement
            - thirdparty
          type: string
        title:
          description: >
            The item's title, translated based on the `Accept-Language` header
            value.


            The item title acts more as a placeholder and may not match the
            activity's title. When in doubt, use the activity's title.
          type: string
      required:
        - event
        - public_type
        - title
      type: object
    ListItemThirdParty:
      title: Third-party destination
      description: >-
        An item in a list which represents a destination, such as a bar or
        attraction, from a third-party service.
      properties:
        description:
          description: >-
            A description of the item, translated based on the `Accept-Language`
            header value.
          type: string
        destination:
          description: The destination that the item represents.
          properties:
            address:
              description: The destination's street address.
              type: string
            canonicalUrl:
              description: The provider's own URL for the destination.
              format: uri
              type: string
            comments:
              description: Customer reviews of the destination from the provider.
              items:
                properties:
                  author:
                    properties:
                      avatar:
                        description: The URL for the customer's profile image.
                        format: uri
                        type: string
                      name:
                        description: The customer's name.
                        type: string
                    type: object
                  date:
                    description: The date and time the review was written.
                    format: date-time
                    type: string
                  text:
                    description: >-
                      The customer's written review of their experience at the
                      destination.
                    type: string
                  title:
                    description: The review subject title, if any.
                    type: string
                type: object
              type: array
              uniqueItems: true
            id:
              description: Musement's internal numeric ID for the destination.
              minimum: 1
              type: integer
            latitude:
              format: float
              type: number
            longitude:
              format: float
              type: number
            name:
              description: >-
                The destination's name, translated based on the
                `Accept-Language` header value.
              type: string
            photos:
              description: Photos of the destination from the provider.
              items:
                properties:
                  title:
                    description: The photo's title, if any.
                    type: string
                  url:
                    description: The URL for the photo.
                    format: uri
                    type: string
                type: object
              type: array
              uniqueItems: true
            price_range:
              description: The destination's lowest price for standard entry, if any.
              format: float
              type: number
            provider:
              description: The name of the service providing the destination.
              type: string
            rating:
              description: >-
                The average customer rating for the destination according to the
                provider.
              format: float
              type: number
            saves:
              deprecated: true
              description: >-
                The number of customers who have saved this destination to their
                favorites.
              minimum: 0
              type: integer
              x-specificVersion: 3.4.0
            specialities:
              description: >-
                A list of the destination's specialities, if any, according to
                the provider.
              items:
                type: string
              type: array
              uniqueItems: true
            verticals:
              description: The destination's verticals, if any.
              items:
                title: Vertical
                allOf:
                  - $ref: '#/components/schemas/Vertical'
                  - required:
                      - active
                      - code
                      - cover_image_url
                      - id
                      - meta_description
                      - meta_title
                      - name
                      - relevance
                      - slug
                      - url
              type: array
              uniqueItems: true
            website:
              description: The destination's official URL.
              format: uri
              type: string
          type: object
        public_type:
          description: The type of item.
          enum:
            - generic
            - musement
            - thirdparty
          type: string
        title:
          description: >
            The item title, which acts more as a placeholder and may not match
            the destination's own title.


            When in doubt, use the destination's name.
          type: string
      required:
        - description
        - destination
        - public_type
        - title
      type: object
    ListType:
      title: List type
      example:
        id: 3
        name: Musement list
      properties:
        id:
          description: The list type's numeric ID.
          minimum: 1
          type: integer
        name:
          description: >-
            The name of the list type, translated based on the `Accept-Language`
            header value.
          type: string
      required:
        - id
        - name
      type: object
    List:
      title: List
      example:
        id: 244
        subtitle: Top experiences in New York
        title: Top experiences
        description: >-
          Pressed for time? Or maybe you just want to know what you can't miss
          straight up. This list was made for you. It rounds up the best
          experiences of the city, from fabulous local dining to landmark
          attractions.
        seo_title: Top experiences in New York
        seo_description: >-
          Pressed for time? Or maybe you just want to know what you can't miss
          straight up. This list was made for you. It rounds up the best
          experiences of the city, from fabulous local dining to attractions.
        temporary: false
        url: https://.sbox.musement.com/us/new-york/top-experiences-l/
        authors:
          - firstname: John
            lastname: Doe
            avatar: >-
              https://www.gravatar.com/avatar/e94c7fb0820eee18369683757700f3e6?s=120&d=identicon&r=g
        list_type:
          id: 3
          name: Musement list
        items:
          - event:
              title: >-
                Empire State Building Observatory standard or skip-the-line
                tickets
              uuid: 0f660706-2046-11e7-9cc9-06a7e332783f
            public_type: musement
            title: Empire State Building Observatory tickets
        items_count:
          generic: 0
          thirdparty: 1
          musement: 9
        city:
          id: 55
          name: New York
          cover_image_url: >-
            https://images-sandbox.musement.com/cover/0002/42/view-on-manhattan-at-night-new-york-usa-jpg_header-141511.jpeg
          url: https://.sbox.musement.com/us/new-york/
          time_zone: America/New_York
        cover_image_url: >-
          https://images-sandbox.musement.com/default/0001/59/thumb_58199_default_header.jpeg?w=750&h=500
        verticals: []
      properties:
        authors:
          description: The creators of the list.
          items:
            properties:
              avatar:
                description: A URL to the author's profile image.
                format: uri
                type: string
              firstname:
                description: The author's first name.
                type: string
              lastname:
                description: The author's last name.
                type: string
            type: object
          type: array
          uniqueItems: true
        category:
          $ref: '#/components/schemas/Category'
        city:
          $ref: '#/components/schemas/City'
        cover_image_url:
          description: A URL for the list's cover image.
          format: uri
          type: string
        description:
          description: >-
            A description of the list, translated based on the `Accept-Language`
            header value.
          type: string
        id:
          description: The list's numeric ID.
          type: integer
        items:
          description: The list's items.
          items:
            oneOf:
              - $ref: '#/components/schemas/ListItemMusement'
              - $ref: '#/components/schemas/ListItemThirdParty'
          type: array
          uniqueItems: true
        items_count:
          description: A breakdown of the items within the list.
          properties:
            generic:
              deprecated: true
              minimum: 0
              type: integer
            musement:
              description: The number of Musement activities connected to the list.
              minimum: 0
              type: integer
            thirdparty:
              description: The number of third-party items connected to the list.
              minimum: 0
              type: integer
          type: object
        list_type:
          $ref: '#/components/schemas/ListType'
        saves:
          deprecated: true
          description: The number of customers who have saved this list to their favorites.
          minimum: 0
          type: integer
          x-specificVersion: 3.4.0
        seo_description:
          description: >-
            An SEO-friendly description of the list, translated based on the
            `Accept-Language` header value.
          type: string
        seo_title:
          description: >-
            An SEO-friendly version of the list title to use for search results,
            translated based on the `Accept-Language` header value.
          type: string
        subtitle:
          description: >
            The list's subtitle, translated based on the `Accept-Language`
            header value.


            This property is best used as the page header.
          type: string
        temporary:
          description: >-
            Temporary lists will eventually end and be removed from the `/lists`
            endpoint response.
          type: boolean
        title:
          description: >
            The list's title, translated based on the `Accept-Language` header
            value.


            This property is best used as a general title to give the page
            effect. For a page header, please use the `subtitle` property.
          type: string
        url:
          description: >-
            An automatically generated Musement URL for the list based on the
            `X-Musement-Market` header and list properties. The URL is only
            valid for select `X-Musement-Market` values and lists.
          format: uri
          type: string
        verticals:
          deprecated: true
          description: The list's verticals, if any.
          items:
            $ref: '#/components/schemas/Vertical'
          type: array
          uniqueItems: true
      type: object
    NameValue:
      properties:
        name:
          type: string
      type: object
      xml:
        name: NameValue
    PassengerInfo:
      properties:
        salutation:
          type: string
        firstname:
          type: string
        lastname:
          type: string
        date_of_birth:
          title: date_of_birth
          type: string
          format: date-time
        passport:
          type: string
        email:
          type: string
        passport_expiry_date:
          title: passport_expiry_date
          type: string
          format: date-time
        nationality:
          type: string
        medical_notes:
          title: medical_note
          type: string
        address:
          type: string
        fan_card:
          type: string
        weight:
          type: number
          format: float
        phone_number:
          type: string
      type: object
      xml:
        name: PassengerInfo
    OrderItem:
      properties:
        quantity:
          description: The booked quantity.
          minimum: 1
          type: integer
        b2b_price:
          description: >-
            The amount a merchant or agency paid for the order item, in the
            currency used for payment.
          $ref: '#/components/schemas/Price'
        cancellation_additional_info:
          description: >-
            Additional information about the cancellation which partners wish to
            communicate to Musement Customer Care.
          example: Customer rejected suggested change to reservation date.
          maxLength: 255
          type: string
        cancellation_reason:
          description: Reason for a booking cancellation.
          enum:
            - API-ISSUE
            - CANCELLED-BY-CUSTOMER
            - GRACE-PERIOD
            - MISSING-MEETING-POINT-DETAILS
            - MISSING-PASSENGER-INFO
            - REJECTED-ORDER
            - REJECTED-SCHEDULE-CHANGE
            - TECHNICAL-ISSUE
            - VENUE-CLOSED
          example: REJECTED-SCHEDULE-CHANGE
          type: string
        error_status:
          description: When `true`, there was an error while booking the order item.
          type: boolean
        extra_customer_data:
          description: Submitted extra customer data for the order item.
          items:
            $ref: '#/components/schemas/NameValue'
          type: array
        is_gift_redeem:
          description: When `true`, the order item was used to redeem a gift or gift box.
          type: boolean
        participants_info:
          description: Submitted participant info for the order item.
          items:
            $ref: '#/components/schemas/PassengerInfo'
          type: array
        product:
          title: Product
          allOf:
            - $ref: '#/components/schemas/Product'
            - description: The selected product for the order item.
        status:
          type: string
          description: |
            The status of the order item:

              * `CANCELLATION_ERROR`: an error occurred while processing a cancellation. This status is temporary and will change to either `OK` or `REFUNDED` after examination by Musement Customer Care
              * `KO`: there was an issue finalizing the order item
              * `OK`: the order item is valid
              * `PENDING`: the order item's payment and confirmation are in progress
              * `REFUND_STARTED`: a refund request for the item is being processed. This status is temporary and will change to `REFUNDED` once the request has been resolved
              * `REFUNDED`: the order item has been cancelled and either partially or fully refunded
          enum:
            - CANCELLATION_ERROR
            - KO
            - OK
            - PENDING
            - REFUND_STARTED
            - REFUNDED
        transaction_code:
          description: A code identifying the order item's internal reservation details.
          type: string
        uuid:
          description: The order item's UUID.
          format: uuid
          type: string
        vouchers:
          description: Available vouchers for the order item.
          items:
            properties:
              url:
                description: URL to download the voucher for the order item.
                format: uri
                type: string
            type: object
          type: array
        retail_price_in_order_currency:
          description: >-
            The `retail_price` of a single item's product, regardless of the
            quantity, in the currency used to create the order.
          $ref: '#/components/schemas/Price'
        total_retail_price_in_order_currency:
          description: >-
            The `retail_price_in_order_currency` times the item `quantity`, in
            the currency used to create the order.
          $ref: '#/components/schemas/Price'
        original_retail_price_in_supplier_currency:
          description: >-
            The base price with a service fee of a single item's product, but no
            discount, in the currency suppliers use.
          $ref: '#/components/schemas/Price'
        total_original_retail_price_in_supplier_currency:
          description: >-
            The base price with a service fee times the item `quantity`, but no
            discount, in the currency suppliers use.
          $ref: '#/components/schemas/Price'
      type: object
      xml:
        name: OrderItem
    AffiliateI18n:
      required:
        - locale
      properties:
        locale:
          type: string
      type: object
      xml:
        name: AffiliateI18n
    Affiliate:
      required:
        - code
        - name
        - logo_url
      properties:
        uuid:
          type: string
        email:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        code:
          type: string
        name:
          type: string
        logo_url:
          type: string
        secondary_logo_url:
          type: string
        header:
          type: string
        customer_care_phone_number:
          type: string
        customer_care_email:
          type: string
        whitelabel:
          type: boolean
        show_cobranded_header:
          type: boolean
        show_cobranded_voucher:
          type: boolean
        show_cobranded_item_confirmation_email:
          type: boolean
        setup_cookie_after_first_visit:
          type: boolean
        translations:
          type: array
          items:
            $ref: '#/components/schemas/AffiliateI18n'
      type: object
      xml:
        name: Affiliate
    PromoCode:
      properties:
        code:
          type: string
        active:
          type: boolean
        percentage:
          type: boolean
        discount:
          type: integer
        max_usage:
          type: integer
        valid_from:
          type: string
          format: date-time
        valid_until:
          type: string
          format: date-time
        minimum_amount:
          type: number
          format: float
      type: object
      xml:
        name: PromoCode
    Order:
      title: Order
      properties:
        customer:
          title: Customer
          description: The customer for the order.
          allOf:
            - $ref: '#/components/schemas/Customer'
            - required:
                - email
                - firstname
                - lastname
        date:
          description: The order's creation date and time.
          type: string
          format: date-time
        discount_amount:
          title: Price
          allOf:
            - $ref: '#/components/schemas/Price'
            - description: >-
                The total discount for the order, the sum of every order item's
                `total_discount`. The `currency` property matches the currency
                used for payment. Unpaid orders default to `EUR`.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/order-prices/
        extra_data:
          description: >-
            Additional info about the order, provided by the partner. This
            property contains a serialized JSON object of key-value pairs.
          example: >-
            {"clientReferenceId":"12345678","firstName":"John","lastName":"Smith","reservationId":"3E5B7445-00E6-4ED6-9321-19E30D73A128","utm_campaign":"example-it","utm_content":"it-native","utm_medium":"example-App
            it","utm_source":"channel-abc"}
          type: string
        identifier:
          description: A unique human-friendly identifier for the order.
          pattern: ^MUS[0-9]+?$
          type: string
        items:
          description: The items for the order.
          items:
            $ref: '#/components/schemas/OrderItem'
          type: array
          uniqueItems: true
        market:
          title: Market code
          description: The market code used for the order.
          type: string
        status:
          description: |
            The status of the order:

              * `KO`: there was an issue finalizing the order or it has been cancelled without refund
              * `OK`: the order is valid
              * `PENDING`: the order's payment and item confirmation are in progress
              * `REFUND_STARTED`: a refund request for one or more order items is being processed. This status is temporary and will change to `REFUNDED` once the request has been resolved
              * `REFUNDED`: the order has been cancelled and either partially or fully refunded
          enum:
            - KO
            - OK
            - PENDING
            - REFUND_STARTED
            - REFUNDED
          type: string
        total_price:
          title: Price
          allOf:
            - $ref: '#/components/schemas/Price'
          description: >-
            The total price customers are expected to pay, the sum of every
            order item's `retail_price`. The `currency` property matches the
            currency used for payment. Unpaid orders default to `EUR`.
          externalDocs:
            description: For more info, check out our guide.
            url: https://partner-api.musement.com/guide/pricing/order-prices/
        trustpilot_url:
          description: >-
            The URL customers can use to leave a review on Trustpilot about
            their experience making a reservation with Musement.
          format: uri
          type: string
        uuid:
          description: The order's UUID.
          format: uuid
          type: string
        total_retail_price_in_order_currency:
          $ref: '#/components/schemas/Price'
        total_supplier_original_retail_price_in_supplier_currency:
          $ref: '#/components/schemas/Price'
        total_supplier_price_in_supplier_currency:
          $ref: '#/components/schemas/Price'
        affiliate:
          $ref: '#/components/schemas/Affiliate'
        affiliate_channel:
          type: string
        promo_codes:
          type: array
          items:
            $ref: '#/components/schemas/PromoCode'
        source:
          description: The name of the application that created the order.
          type: string
      required:
        - identifier
        - uuid
        - date
        - status
        - customer
        - items
        - total_price
        - total_retail_price_in_order_currency
        - total_supplier_original_retail_price_in_supplier_currency
        - total_supplier_price_in_supplier_currency
        - discount_amount
        - affiliate
      type: object
    Payment3dSecure:
      title: 3D Secure payment info
      description: Information required for setting up 3D Secure authentication.
      properties:
        payload:
          description: >-
            When the `type` property value is `FORM`, this property contains
            properties and values to include in the HTML form element.
          type: object
        payment_intent_client_secret:
          description: >
            When the type property value is `USE_STRIPE_SDK` then this property
            contains the `clientSecret` parameter to use for Stripe's
            *handleCardAction* method.
          type: string
        type:
          description: |
            This property defines how to carry out the 3D Secure authentication:

              * `FORM`: provide customers with an HTML form element to fill out.
              * `REDIRECT`: redirect customers to a specified URL.
              * `USE_STRIPE_SDK`: use the Stripe SDK on the client side.
          enum:
            - FORM
            - REDIRECT
            - USE_STRIPE_SDK
          type: string
        url:
          description: |
            Depending on the `type` property, this property has different uses:

              * `FORM`: use the `url` for the `action` attribute in a `form` element.
              * `REDIRECT`: the customer must be redirected to the `url`.
          format: uri
          type: string
      type: object
    SuccessfulPayment:
      title: 3D Secure payment info
      properties:
        3d_secure:
          $ref: '#/components/schemas/Payment3dSecure'
      type: object
  responses:
    '302':
      description: >-
        Found: when the `limit` parameter is greater than the maximum, the
        endpoint is redirected with `limit={maximum}`
    '404':
      description: Resource not found
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - example:
                  code: '1400'
                  message: Resource does not exist
    default:
      description: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            '400':
              summary: 400 Bad request
              value:
                code: '-1'
                message: Unknown market code.
            '401':
              summary: '401 Unauthorized: token is not valid'
              value:
                code: '1401'
                message: The access token provided has expired.
            '503':
              summary: 503 Service unavailable
              value:
                code: '1503'
                message: System unavailable. Try again later.
    ActivitySearchResults:
      description: Activities
      content:
        application/json:
          schema:
            properties:
              data:
                description: Activities which match the query.
                items:
                  $ref: '#/components/schemas/Activity'
                type: array
                uniqueItems: true
              facets:
                description: >-
                  A breakdown of characteristics for the activities which match
                  the query, based on the facets requested in the
                  `include_facets` query parameter.
                items:
                  $ref: '#/components/schemas/Facet'
                type: array
                uniqueItems: true
              meta:
                description: >
                  Additional information about the query results. This always
                  contains the `count` property by default.


                  When the `city_in`, `country_in` or `venue_in` parameters are
                  used, the `meta` property contains information about entities
                  that match the parameter values. When more than one of these
                  parameters is used, only one is displayed following this
                  preferred order:

                    * `venue_in`
                    * `city_in`
                    * `country_in`

                  If a parameter value does not correspond to an existing
                  entity, it is excluded from the match results.
                example:
                  count: 150
                  match_ids:
                    - '1'
                    - '76'
                  match_names:
                    - Milan
                    - Washington, D.C.
                  match_type: cities
                properties:
                  count:
                    description: >-
                      The total number of activities in the catalog which match
                      the query parameters.
                    minimum: 0
                    type: integer
                  match_type:
                    description: >-
                      The entity represented by the `match_names` and
                      `match_ids` properties.
                    type: string
                    enum:
                      - cities
                      - countries
                      - venues
                  match_names:
                    description: >-
                      The names of the entities which match the query parameter
                      values. These names will be translated based on the
                      `Accept-Language` header value.
                    items:
                      type: string
                    type: array
                    uniqueItems: true
                  match_ids:
                    description: >-
                      The IDs of the entities which match the query parameter
                      values. Even if the IDs are numeric, they will be
                      represented as strings.
                    items:
                      type: string
                    type: array
                required:
                  - count
                type: object
            required:
              - data
              - meta
            type: object
    Activity403:
      description: 'Forbidden: activity is not accessible to partners'
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - example:
                  code: '0'
                  message: You don't have permission to access this resource.
    Activity404:
      description: 'Not found: activity with UUID does not exist'
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - example:
                  code: '1400'
                  message: Activity not found.
    ParticipantInfo404:
      description: >-
        Not found: resource does not exist or it does not require participant
        info
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - example:
                  code: '1400'
                  message: The activity does not require any participant information
    RefundPolicy404:
      description: 'Not found: resource or refund policies do not exist'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            NoRefundExample1:
              summary: No refunds - example 1
              value:
                code: '1400'
                message: No refund policy version.
            NoRefundExample2:
              summary: No refunds - example 2
              value:
                code: '1400'
                message: No refund policy version for the activity
    Cart423:
      description: 'Locked: cart cannot be modified due to connected order status'
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - example:
                  code: '-1'
                  message: Cart is already connected to order with state 'closed'
    CartItem403:
      description: 'Forbidden: unable to remove item due to cart''s order status'
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/ErrorMessage'
              - example:
                  code: '0'
                  message: You don't have permission to delete this resource.
    CartItem404:
      description: >-
        Not found: a resource does not exist or the cart item does not require
        participant info
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - example:
                  code: '1400'
                  message: This cart item does not require participant info
    Order423:
      description: 'Locked: order cannot be modified due to status'
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - example:
                  code: '-1'
                  message: Order with state {closed} can't be modified.
    Payment404:
      description: 'Not found: specified order in request body does not exist'
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - example:
                  code: '1400'
                  message: Order not found
    Payment423:
      description: 'Locked: order has already been paid'
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/ErrorMessage'
              - example:
                  code: '1600'
                  message: Payment for order has already been made
    Payment401:
      description: 'Unauthorized: order does not belong to partner'
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - example:
                  code: '1601'
                  message: Order does not belong to authenticated partner
    Payment422:
      description: 'Unprocessable entity: error during payment'
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - example:
                  code: '1604'
                  message: Not enough balance
  headers:
    X-Number-Of-Elements:
      description: The number of items in the response.
      schema:
        minimum: 0
        type: integer
    X-Total-Count:
      description: The total number of items available based on the request parameters.
      schema:
        minimum: 0
        type: integer
    X-Total-Pages:
      description: >-
        The total number of pages available based on the request parameters, the
        `X-Total-Count` response header value and the `limit` query parameter
        value.
      schema:
        minimum: 0
        type: integer
  requestBodies:
    WebhookOrderItemUpdate:
      content:
        application/json:
          schema:
            example:
              order_id: '13459345'
              order_uuid: 8e9e5c6e-ea7d-4934-8753-f00954f30d00
              order_created: 2018-12-10T13:12:40+0000
              order_updated: 2018-12-10T13:12:40+0000
              order_version: '16'
              order_item_created: 2018-12-10T13:12:40+0000
              order_item_status: OK
              order_item_updated: 2018-12-10T13:12:40+0000
              order_item_uuid: 11045e18-e3ca-42e1-acb4-0d5be75036fd
              order_item_version: '22'
            properties:
              order_id:
                description: The order's numeric ID.
                format: ^[0-9]+?$
                type: string
              order_uuid:
                description: The order's UUID,
                format: uuid
                type: string
              order_created:
                description: When the order was created.
                format: date-time
                type: string
              order_updated:
                description: When the order was last updated.
                format: date-time
                type: string
              order_version:
                description: >-
                  A counter which tracks how many times the order has been
                  updated.
                format: ^[0-9]+?$
                type: string
              order_item_uuid:
                description: The order item's UUID
                format: uuid
                type: string
              order_item_created:
                description: When the order item was created.
                format: date-time
                type: string
              order_item_updated:
                description: When the order item was last updated.
                format: date-time
                type: string
              order_item_version:
                description: >-
                  A counter which tracks how many times the order item has been
                  updated.
                format: ^[0-9]+?$
                type: string
              order_item_status:
                description: |
                  The status of the order item:

                    * `CANCELLATION_ERROR`: an error occurred while processing a cancellation. This status is temporary and will change to either `OK` or `REFUNDED` after examination by Musement Customer Care
                    * `KO`: there was an issue finalizing the order item
                    * `OK`: the order item is valid
                    * `PENDING`: the order item's payment and confirmation are in progress
                    * `REFUND_STARTED`: a refund request for the item is being processed. This status is temporary and will change to `REFUNDED` once the request has been resolved
                    * `REFUNDED`: the order item has been cancelled and either partially or fully refunded
                enum:
                  - CANCELLATION_ERROR
                  - KO
                  - OK
                  - PENDING
                  - REFUND_STARTED
                  - REFUNDED
                type: string
            required:
              - order_created
              - order_id
              - order_item_created
              - order_item_status
              - order_item_updated
              - order_item_uuid
              - order_item_version
              - order_updated
              - order_uuid
              - order_version
            type: object
externalDocs:
  description: Find out more about Musement API
  url: https://partner-api.musement.com/
security: []
tags:
  - name: activities
    description: >-
      Activities can be any tour, attraction or experience that customers can
      reserve via the Musement API.
    x-displayName: Activities
  - name: activity-info
    description: >-
      A collection of endpoints which can be used to provide information to
      customers about a specific activity.
    x-displayName: Activity info
  - name: cancellations
    description: >-
      It is possible to cancel reservations, provided that the activity in
      question is refundable.
    x-displayName: Cancellations
  - name: carts
    description: >-
      A collection of endpoints for managing a customer's cart during the
      booking flow.
    x-displayName: Carts
  - name: categories
    description: Categories group activities based on similar characteristics.
    externalDocs:
      description: For more info, check out our guide.
      url: >-
        https://partner-api.musement.com/guide/activity-categorization/categorization/
    x-displayName: Categories
  - name: cities
    description: >
      Cities are different types of destinations: islands, natural landmarks,
      beaches, actual cities and more.
    externalDocs:
      description: For more info, check out our guide.
      url: https://partner-api.musement.com/guide/activities/cities/
    x-displayName: Cities
  - name: countries
    description: |
      A collection of endpoints related to countries in the Musement catalog.
    x-displayName: Countries
  - name: customer-info
    description: >-
      When making a reservation, different steps must be taken to provide
      information about the customers. This collection includes endpoints for
      submitting info about the lead booker, extra customer data and participant
      info.
    x-displayName: Customer info
  - name: dates
    description: A collection of endpoints for selecting available dates and products.
    x-displayName: Dates
  - name: lists
    description: >-
      Lists are collections of Musement activities and third-party destinations
      grouped together based on editorial themes.
    x-displayName: Lists
  - name: orders
    description: A collection of endpoints for managing orders as part of the booking flow.
    x-displayName: Orders
  - name: payments
    description: >-
      A collection of endpoints regarding payment during the booking flow.
      Partners have multiple payment options at their disposal, depending on
      agreements with the Strategic partnerships team.
    x-displayName: Payments
  - name: pickups
    description: >-
      Some activities require selecting a pickup location as part of the booking
      flow.
    x-displayName: Pickups
  - name: searching-activities
    description: >-
      A collection of endpoints which can be used to search the catalog for
      relevant activities.
    x-displayName: Searching activities
  - name: venues
    description: Venues are popular attractions or landmarks.
    externalDocs:
      description: For more info, check out our guide.
      url: https://partner-api.musement.com/guide/activities/venues/
    x-displayName: Venues
  - name: additional-searches
    description: >-
      A collection of additional endpoints which can be used to search parts of
      the catalog.
    x-displayName: Additional searches
  - name: carts-misc
    description: >-
      A collection of cart endpoints which are not strictly necessary for the
      booking flow.
    x-displayName: Carts
  - name: metadata
    description: Metadata is used for configuring several activity properties.
    x-displayName: Metadata
  - name: reviews
    description: >-
      Customers may leave reviews about their experience with an activity.
      Reviews consist of a numeric rating and optional written comment.
    x-displayName: Reviews
  - name: vouchers
    description: >-
      A collection of endpoints to use at the end of the booking flow to
      retrieve reserved tickets and vouchers.
    x-displayName: Vouchers
  - name: activities-deprecated
    description: A collection of deprecated endpoints for activities.
    x-displayName: Activities
  - name: carts-deprecated
    description: A collection of deprecated endpoints for carts.
    x-displayName: Carts
  - name: cities-deprecated
    description: A collection of deprecated endpoints for cities.
    x-displayName: Cities
  - name: verticals
    description: >
      Verticals are a type of *macro category* which group various parts of the
      catalog together based on similar characteristics.


      They are considered deprecated.
    x-displayName: Verticals
  - name: cities-removed
    description: A collection of endpoints for cities that were removed from the API.
    x-displayName: Cities
  - name: countries-removed
    description: A collection of endpoints for countries that were removed from the API.
    x-displayName: Countries
  - name: events
    description: >-
      A collection of endpoints for *events*, an older term for *activities*,
      that were removed from the API.
    x-displayName: Events
  - name: venues-removed
    description: A collection of endpoints for venues that were removed from the API.
    x-displayName: Venues
  - name: misc-removed
    description: A collection of various endpoints that were removed from the API.
    x-displayName: Misc
  - name: webhooks
    description: >-
      A collection of webhook requests that Musement's API can make to a
      partner's service.
    x-displayName: Webhooks
webhooks:
  order-item:
    post:
      summary: Update order item
      description: >
        The API sends this request to a partner's service when an order item
        status changes (for example from `PENDING` to `OK`).


        The body of the response is ignored. A 200 status code response confirms
        the request has been received and will be processed. All other status
        codes are treated as a failed attempt - another webhook request will be
        sent later.
      externalDocs:
        description: For more info, check out our guide.
        url: >-
          https://partner-api.musement.com/api/partner/booking-flow/order/webhook/
      operationId: post/order-item
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        $ref: '#/components/requestBodies/WebhookOrderItemUpdate'
      responses:
        '200':
          description: Order item request successfully received
      security:
        - Webhook: []
      tags:
        - webhooks
x-tagGroups:
  - name: Booking flow
    tags:
      - searching-activities
      - activity-info
      - pickups
      - dates
      - carts
      - customer-info
      - orders
      - payments
      - cancellations
  - name: Catalog
    tags:
      - activities
      - categories
      - cities
      - countries
      - lists
      - venues
  - name: Misc
    tags:
      - additional-searches
      - carts-misc
      - metadata
      - reviews
      - vouchers
      - webhooks
  - name: Deprecated
    tags:
      - activities-deprecated
      - carts-deprecated
      - cities-deprecated
      - verticals
  - name: Removed
    tags:
      - cities-removed
      - countries-removed
      - events
      - misc-removed
      - venues-removed
