# Get experiences

Get all experiences for the company.

Returns experiences in any non-deleted lifecycle state, including INACTIVE and ARCHIVED.
Filter by state client-side if you only want bookable experiences. The response is paginated;
pass the returned next cursor on subsequent calls to continue.

Endpoint: GET /v1/experiences
Security: OAuth2

## Header parameters:

  - `Accept-Language` (string, required)
    A lowercase ISO 639-1 language code (e.g. "da"),
optionally followed by a hyphen and an uppercase ISO 3166-1 country code (e.g. "en-US").

If no value matches what is available in the host's Storefront, an error response is returned.

You can optionally provide multiple language-country pairs with a priority, separated by commas based on content negotiation.
    Example: "en-GB; q=1.0, en-US; q=0.8"

## Query parameters:

  - `cursor` (string)
    Pagination cursor for fetching the next page of results.
Omit or pass an empty string to start from the beginning of the list.

  - `limit` (integer)
    Maximum number of items to return per page.
Defaults to 100, maximum 100.

## Response 200 fields (application/json):

  - `next` (string)
    Cursor for the next page of results.
An empty string or absent value indicates the end of the list.

  - `items` (array)

  - `items.id` (string, required)
    The unique identifier of the experience.

  - `items.state` (string, required)
    The lifecycle state of the experience.

- ACTIVE — bookable; the default operational state.
- INACTIVE — temporarily not bookable, but still managed by the company. Can transition back to ACTIVE.
- ARCHIVED — terminal state. The experience is hidden from active management; it is no longer bookable and cannot transition back.
- DELETED — terminal state. The experience has been deleted; it is no longer bookable and cannot transition back.
- UNKNOWN — defensive default; should not appear on a correctly configured experience.
    Enum: "ACTIVE", "INACTIVE", "ARCHIVED", "DELETED", "UNKNOWN"

  - `items.name` (string, required)
    The display name of the experience, returned in the language negotiated via the Accept-Language header.

  - `items.created_at` (string, required)
    Timestamp of when the experience was created.

  - `items.updated_at` (string, required)
    Timestamp of when the experience was last modified.

Includes both content edits and lifecycle transitions (state changes, archival, deletion).

  - `items.description` (string)
    A long-form description of the experience, returned in the language negotiated via the Accept-Language header.

The string may contain Markdown formatting; clients should render it accordingly.

  - `items.tag_ids` (array)
    Opaque tag identifiers associated with the experience.

Use them to group or filter experiences in your own UI; the IDs are not resolved to tag entities by this API.

  - `items.media` (array) — one of (discriminator: type):
    Media items (images and videos) attached to the experience, ordered as configured by the company.
    - IMAGE:
      - `type` (string, required)
        Discriminator value identifying this media item as an image.
        Enum: "IMAGE"
      - `url` (string, required)
        URL where the image can be fetched.
      - `mime_type` (string, required)
        IANA media type of the image, e.g. image/jpeg or image/png.
    - VIDEO:
      - `type` (string, required)
        Discriminator value identifying this media item as a video.
        Enum: "VIDEO"
      - `url` (string, required)
        URL where the video can be fetched.

  - `items.metadata` (object)
    Free-form key-value pairs attached by the integrator. Both keys and values are strings; the API does not enforce schema, length, or content.

## Response 400 fields (application/json):

  - `message` (string, required)

  - `code` (string, required)


