---
title: "Shopping"
method: GET
path: "/shopping"
tags: ["Shopping"]
---

# Shopping

`GET /shopping`

## Request

- Base URL: `https://api-dev.despegar.com/v3/activities-api`
- URL: `https://api-dev.despegar.com/v3/activities-api/shopping`
- Auth: API key in header `x-apikey`

Returns available modalities, pricing, and availability windows for a specific theme park product. Results include all available dates within the requested range, with cancellation policies and distribution details per availability.

## Query parameters

- `id` 'BG_ORL' | 'DY_ORL' | 'SW_ORL' | 'UN_ORL', required
- `site` string, required
- `language` string, required
- `from` string, date, required
- `to` string, date
- `distribution` string, required
- `modalities` string

## Response `200`

Successful response with park modalities and availability.

- object[]
  - `tracking_id` string: Park product identifier, matches the `id` query parameter sent in the request.
  - `name` string: Display name of the park product.
  - `description` string: Full HTML-capable description of the park.
  - `logo` string: URL of the park logo image.
  - `images` object[]: Gallery images for the park.
    - `url` string: Image URL.
    - `key` string: Unique key for the image.
    - `width` integer: Image width in pixels.
    - `height` integer: Image height in pixels.
  - `modalities` object[]: List of ticket modalities available for this park.
    - `modality_type` string: Type of modality. Currently always `Modality`.
    - `id` string: Modality identifier. Can be used as a filter value in the `modalities` query parameter.
    - `name` string: Display name of the modality.
    - `description` string: Full description of what the modality includes.
    - `duration` object: Duration of the ticket.
      - `type` string: Unit of duration. Currently always `DAY`.
      - `value` string: Number of days the ticket is valid for.
    - `inclusions` string[]: Parks or benefits included with this modality.
    - `exclusions` string[]: Parks or benefits explicitly excluded from this modality.
    - `availabilities` object[]: Available dates and their pricing details within the requested date range.
      - `choice_id` string: Base64-encoded token representing this specific availability. Used in subsequent prebook and book requests.
      - `date` string, date: Use date for this availability slot.
      - `price_details` object[]: Pricing breakdown per currency. May include multiple currencies depending on the `site` parameter.
        - `total` number: Total price in the specified currency.
        - `currency` string: ISO 4217 currency code.
        - `currency_to_usd_change_rate` number: Exchange rate from this currency to USD.
        - `usd_to_currency_change_rate` number: Exchange rate from USD to this currency.
        - `net` number: Net price before taxes.
        - `tax` number: Tax amount.
        - `gross` number: Gross price (net + tax). Equivalent to `total`.
        - `price_disaggregation` object: Breakdown of commissions and fees.
          - `agency_commission` object
            - `gross` number
            - `net` number
            - `tax` number
      - `additionals` object[]: Optional add-ons available for this availability. Empty array if none.
      - `distribution` object: Passenger breakdown for this availability slot.
        - `adults` integer: Number of adults.
        - `adults_ages` integer[]: Ages of adults. Empty array when not specified.
        - `children_ages` integer[]: Ages of children.
        - `infants_ages` integer[]: Ages of infants.
        - `adult_max_age` integer: Maximum age to be considered an adult.
        - `child_max_age` integer: Maximum age to be considered a child.
        - `infant_max_age` integer: Maximum age to be considered an infant.
      - `cancellation_policy` object: Cancellation rules for this availability.
        - `title` string: Short summary of the cancellation policy. Not always present.
        - `cancellable` boolean: Whether this ticket can be cancelled.
        - `ranges` object[]: Ordered list of date ranges defining penalty amounts. Each range defines a window and the penalty that applies if cancelled within it.
          - `from` string, date-time: Start of the penalty window (inclusive).
          - `to` string, date-time: End of the penalty window (inclusive). Not present in the last range (open-ended).
          - `penalty` object: Penalty amount per currency if cancelled in this window.
          - `percentage` number: Penalty as a percentage of the total price.
          - `label` string: Human-readable cancellation rule for display.
        - `conditions` string[]: Full terms and conditions for this ticket.
      - `ticket_validity` object: Validity window for the ticket.
        - `use_date` string, date: Date on which the ticket must be used. Not always present (some tickets are open-dated).
        - `use_expiration_date` string, date-time: Expiration date and time of the ticket.

## Other responses

- `400`: Bad request. Returned when a required parameter is missing, has an invalid format, or contains an unsupported value. The `code` field identifies the type of failure; the `message` field describes the specific field and reason.
- `401`: Unauthorized. The `x-apikey` header is missing or invalid.
- `500`: Internal server error.
- `503`: Service unavailable. Returned when the activity provider is unreachable or temporarily unavailable.

---

[API](https://skmtc.dev/despegar/apis/activities.md) - [All operations](https://skmtc.dev/despegar/apis/activities/llms.txt) - [OpenAPI document](https://skmtc.dev/despegar/apis/activities/revisions/ba77a3fc2d00?raw)
