Skip to content

Musement API (3.5.0)

For merchant or affiliate partners wishing to use the Musement API.

Authentication

See the Authentication section for details on how to authenticate with the API.

Release notes

2024-06-18

Endpoints

  • GET /activities/{activityUuid}/dates/{date}
    • Changed default min_buy value from -1 to 1

2024-02-21

Endpoints

  • Added GET /orders/{orderUuid}/refunds
    • Returns an array of paid refunds for an order

2024-02-20

Endpoints

  • GET /activities/{activityUuid}/dates/{date}
    • Added availability, max_buy and min_buy properties to timeslots. For more info, check out our guide
Download OpenAPI description
Overview
Languages
Servers
Mock server
https://partner-api.musement.com/_mock/reference/openapi
Sandbox server
https://sandbox.musement.com/api/v3
Production server
https://api.musement.com/api/v3

Searching activities

A collection of endpoints which can be used to search the catalog for relevant activities.

Operations

Activity info

A collection of endpoints which can be used to provide information to customers about a specific activity.

Operations

Pickups

Some activities require selecting a pickup location as part of the booking flow.

Operations

Dates

A collection of endpoints for selecting available dates and products.

Operations

Carts

A collection of endpoints for managing a customer's cart during the booking flow.

Operations

Customer info

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.

Operations

Orders

A collection of endpoints for managing orders as part of the booking flow.

Operations

Payments

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.

Operations

Cancellations

It is possible to cancel reservations, provided that the activity in question is refundable.

Operations

Activities

Activities can be any tour, attraction or experience that customers can reserve via the Musement API.

Operations

Categories

Categories group activities based on similar characteristics.

Operations

Cities

Cities are different types of destinations: islands, natural landmarks, beaches, actual cities and more.

Operations

Countries

A collection of endpoints related to countries in the Musement catalog.

Operations

Lists

Lists are collections of Musement activities and third-party destinations grouped together based on editorial themes.

Operations

Venues

Venues are popular attractions or landmarks.

Operations

Additional searches

A collection of additional endpoints which can be used to search parts of the catalog.

Operations

Carts

A collection of cart endpoints which are not strictly necessary for the booking flow.

Operations

Metadata

Metadata is used for configuring several activity properties.

Operations

Reviews

Customers may leave reviews about their experience with an activity. Reviews consist of a numeric rating and optional written comment.

Operations

Vouchers

A collection of endpoints to use at the end of the booking flow to retrieve reserved tickets and vouchers.

Operations

Webhooks

A collection of webhook requests that Musement's API can make to a partner's service.

Webhooks

Activities

A collection of deprecated endpoints for activities.

Operations

Carts

A collection of deprecated endpoints for carts.

Operations

Update cartDeprecated

Request

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.
Path
cartUuidstring(uuid)required

The UUID of the cart.

Query
affiliatestring

The name of the affiliate partner making the request.

Headers
Accept-Languagestring(Language code)

The value of this parameter might affect the language of the content in the response, provided a translation in the requested language is available.

Default en-US
X-Musement-Applicationstring(Application value)

A partner's application value, used for analyzing API usage and to identify areas of improvement.

X-Musement-Currencystring(Currency code)

A valid currency code from the /currencies endpoint. Default value may vary depending on the X-Musement-Market header value.

Default USD
X-Musement-Marketstring(Musement market)

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.

Default us
X-Musement-Versionstring^[0-9]+?.[0-9]+?.[0-9]+?$

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.

Example: 3.4.0
Bodyapplication/jsonrequired

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.

customerobject(Customer)
ticketsArray of objects
curl -i -X PATCH \
  'https://partner-api.musement.com/_mock/reference/openapi/carts/{cartUuid}?affiliate=string' \
  -H 'Accept-Language: en-US' \
  -H 'Content-Type: application/json' \
  -H 'X-Musement-Application: string' \
  -H 'X-Musement-Currency: USD' \
  -H 'X-Musement-Market: us' \
  -H 'X-Musement-Version: 3.4.0' \
  -d '{
    "customer": {
      "email": "user@example.com",
      "firstname": "string",
      "lastname": "string"
    },
    "tickets": [
      {
        "product": {
          "type": "musement",
          "id": "string"
        },
        "quantity": 1
      }
    ]
  }'

Responses

Cart

Bodyapplication/json
customerobject(Customer)

The cart's customer info.

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"}
discountobject(Price)

Discount info for the cart if a promo code has been applied.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
full_priceobject(Price)

The sum of every product's original_retail_price property value multiplied by the corresponding cart item's quantity.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
full_price_without_service_feeobject(Price)

The sum of every product's original_retail_price_without_service_fee property value multiplied by the corresponding cart item's quantity.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
itemsArray of objects(CartItem)unique

The cart items.

preferred_payment_gatewaystring

This property defines which payment gateway should be used for partners following the split payment flow.

Enum"ADYEN""STRIPE"
promo_codeobject

The promo code (if any) applied to cart for a discount.

retail_priceobject(Price)

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.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
retail_price_without_service_feeobject(Price)

The sum of every cart item's total_price_without_service_fee property value minus the cart's discount value.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
service_feeobject(Price)

The sum of every product's service_fee property value.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
total_discountobject(Price)

The sum of:

  • The cart's discount property
  • Every product's discount_amount property value multiplied by the corresponding cart item's quantity.
Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
uuidstring(uuid)

The UUID of the cart.

Response
application/json
{ "customer": { "email": "api-distribution@tui.com", "events_related_newsletter": "NO", "extra_customer_data": {}, "firstname": "John", "lastname": "Smith", "musement_newsletter": "NO", "thirdparty_newsletter": "NO" }, "discount": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "full_price": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "full_price_without_service_fee": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "items": [ {} ], "preferred_payment_gateway": "ADYEN", "promo_code": { "code": "string" }, "retail_price": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "retail_price_without_service_fee": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "service_fee": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "total_discount": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }

Replace cartDeprecated

Request

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.
Path
cartUuidstring(uuid)required

The UUID of the cart.

Headers
Accept-Languagestring(Language code)

The value of this parameter might affect the language of the content in the response, provided a translation in the requested language is available.

Default en-US
X-Musement-Applicationstring(Application value)

A partner's application value, used for analyzing API usage and to identify areas of improvement.

X-Musement-Currencystring(Currency code)

A valid currency code from the /currencies endpoint. Default value may vary depending on the X-Musement-Market header value.

Default USD
X-Musement-Marketstring(Musement market)

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.

Default us
X-Musement-Versionstring^[0-9]+?.[0-9]+?.[0-9]+?$

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.

Example: 3.4.0
Bodyapplication/jsonrequired

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.

customerobject(Customer)required
customer.​emailstring(email)

The customer's email address.

customer.​firstnamestring

The customer's first name.

customer.​lastnamestring

The customer's last name.

ticketsArray of objects
curl -i -X PUT \
  'https://partner-api.musement.com/_mock/reference/openapi/carts/{cartUuid}' \
  -H 'Accept-Language: en-US' \
  -H 'Content-Type: application/json' \
  -H 'X-Musement-Application: string' \
  -H 'X-Musement-Currency: USD' \
  -H 'X-Musement-Market: us' \
  -H 'X-Musement-Version: 3.4.0' \
  -d '{
    "customer": {
      "email": "user@example.com",
      "firstname": "string",
      "lastname": "string"
    },
    "tickets": [
      {
        "product": {
          "type": "musement",
          "id": "string"
        },
        "quantity": 1
      }
    ]
  }'

Responses

Cart

Bodyapplication/json
customerobject(Customer)

The cart's customer info.

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"}
discountobject(Price)

Discount info for the cart if a promo code has been applied.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
full_priceobject(Price)

The sum of every product's original_retail_price property value multiplied by the corresponding cart item's quantity.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
full_price_without_service_feeobject(Price)

The sum of every product's original_retail_price_without_service_fee property value multiplied by the corresponding cart item's quantity.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
itemsArray of objects(CartItem)unique

The cart items.

preferred_payment_gatewaystring

This property defines which payment gateway should be used for partners following the split payment flow.

Enum"ADYEN""STRIPE"
promo_codeobject

The promo code (if any) applied to cart for a discount.

retail_priceobject(Price)

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.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
retail_price_without_service_feeobject(Price)

The sum of every cart item's total_price_without_service_fee property value minus the cart's discount value.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
service_feeobject(Price)

The sum of every product's service_fee property value.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
total_discountobject(Price)

The sum of:

  • The cart's discount property
  • Every product's discount_amount property value multiplied by the corresponding cart item's quantity.
Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
uuidstring(uuid)

The UUID of the cart.

Response
application/json
{ "customer": { "email": "api-distribution@tui.com", "events_related_newsletter": "NO", "extra_customer_data": {}, "firstname": "John", "lastname": "Smith", "musement_newsletter": "NO", "thirdparty_newsletter": "NO" }, "discount": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "full_price": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "full_price_without_service_fee": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "items": [ {} ], "preferred_payment_gateway": "ADYEN", "promo_code": { "code": "string" }, "retail_price": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "retail_price_without_service_fee": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "service_fee": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "total_discount": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }

Add tickets to cartDeprecated

Request

Tickets are an older term for cart items.

This endpoint has been replaced by POST /carts/{cartUuid}/items.

Path
cartUuidstring(uuid)required

The UUID of the cart.

Headers
Accept-Languagestring(Language code)

The value of this parameter might affect the language of the content in the response, provided a translation in the requested language is available.

Default en-US
X-Musement-Applicationstring(Application value)

A partner's application value, used for analyzing API usage and to identify areas of improvement.

X-Musement-Currencystring(Currency code)

A valid currency code from the /currencies endpoint. Default value may vary depending on the X-Musement-Market header value.

Default USD
X-Musement-Marketstring(Musement market)

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.

Default us
X-Musement-Versionstring^[0-9]+?.[0-9]+?.[0-9]+?$

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.

Example: 3.4.0
Bodyapplication/json
ticketsArray of objects

An array of products to add to cart.

Example: [{"product":{"type":"musement","id":"4445092627"},"quantity":2}]
curl -i -X POST \
  'https://partner-api.musement.com/_mock/reference/openapi/carts/{cartUuid}/tickets' \
  -H 'Accept-Language: en-US' \
  -H 'Content-Type: application/json' \
  -H 'X-Musement-Application: string' \
  -H 'X-Musement-Currency: USD' \
  -H 'X-Musement-Market: us' \
  -H 'X-Musement-Version: 3.4.0' \
  -d '{
    "tickets": [
      {
        "product": {
          "type": "musement",
          "id": "4445092627"
        },
        "quantity": 2
      }
    ]
  }'

Responses

Cart

Bodyapplication/json
customerobject(Customer)

The cart's customer info.

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"}
discountobject(Price)

Discount info for the cart if a promo code has been applied.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
full_priceobject(Price)

The sum of every product's original_retail_price property value multiplied by the corresponding cart item's quantity.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
full_price_without_service_feeobject(Price)

The sum of every product's original_retail_price_without_service_fee property value multiplied by the corresponding cart item's quantity.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
itemsArray of objects(CartItem)unique

The cart items.

preferred_payment_gatewaystring

This property defines which payment gateway should be used for partners following the split payment flow.

Enum"ADYEN""STRIPE"
promo_codeobject

The promo code (if any) applied to cart for a discount.

retail_priceobject(Price)

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.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
retail_price_without_service_feeobject(Price)

The sum of every cart item's total_price_without_service_fee property value minus the cart's discount value.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
service_feeobject(Price)

The sum of every product's service_fee property value.

Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
total_discountobject(Price)

The sum of:

  • The cart's discount property
  • Every product's discount_amount property value multiplied by the corresponding cart item's quantity.
Example: {"currency":"USD","formatted_value":"$ 10.00","formatted_iso_value":"$10.00","value":10}
uuidstring(uuid)

The UUID of the cart.

Response
application/json
{ "customer": { "email": "api-distribution@tui.com", "events_related_newsletter": "NO", "extra_customer_data": {}, "firstname": "John", "lastname": "Smith", "musement_newsletter": "NO", "thirdparty_newsletter": "NO" }, "discount": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "full_price": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "full_price_without_service_fee": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "items": [ {} ], "preferred_payment_gateway": "ADYEN", "promo_code": { "code": "string" }, "retail_price": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "retail_price_without_service_fee": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "service_fee": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "total_discount": { "currency": "USD", "formatted_value": "$ 10.00", "formatted_iso_value": "$10.00", "value": 10 }, "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f" }

Cities

A collection of deprecated endpoints for cities.

Operations

Verticals

Verticals are a type of macro category which group various parts of the catalog together based on similar characteristics.

They are considered deprecated.

Operations

Cities

A collection of endpoints for cities that were removed from the API.

Operations

Countries

A collection of endpoints for countries that were removed from the API.

Operations

Events

A collection of endpoints for events, an older term for activities, that were removed from the API.

Operations

Misc

A collection of various endpoints that were removed from the API.

Operations

Venues

A collection of endpoints for venues that were removed from the API.

Operations