---
uuid: 4e4093f2-c3a6-4821-9e3e-273039a83988
date_created: 2026-01-19T13:39:18.009Z
date_updated: 2026-04-07T09:48:40.789Z
seo_url: browse-club-med-offers
category: Shopping
routes: 
  - GET /v1/offers
  - GET /v1/offers/{offer_id}
---

# Browse Club Med offers

This scenario explains how to list the available Club Med commercial offers and then inspect one offer in detail to expose its editorial content and associated products. It fits marketing, shopping, and promotional-display journeys.

The flow starts from the offer list and then reuses one `offer_id` to retrieve the selected offer in detail.

## Flow

```mermaid
flowchart LR
    step0["List the available offers"]
    step1["Retrieve an offer detail"]
    step0 --> step1
```

## Overview

This scenario helps an interface expose Club Med promotional offers and deepen the content of one selected offer.

## Prerequisites

* An `accept-language` header matching the target market.
* A valid `x-api-key`.
* An `offer_id` returned by the first step to inspect one offer in detail.

## Expected result

The application can display the available offers and then load one offer with its marketing arguments, associated products, and pricing context.

## 1 - List the available offers

Use `GET /v1/offers` to retrieve the commercial offers exposed for the current locale before selecting one to display in detail.

#### Prerequisites

* Send `accept-language` and `x-api-key`.
* Add a `filter` only if you want to reduce the returned offer list.
* Reuse the same locale as the rest of the commercial journey.

#### Calling CURL

```bash
curl -X 'GET' \
  'https://api.clubmed.com/v1/offers' \
  -H 'accept: application/json' \
  -H 'accept-language: en-US' \
  -H 'x-api-key: YOUR_API_KEY'
```

#### Example answer

```json
[
  {
    "id": "TFO",
    "label": "Family offer",
    "short_label": "Family",
    "seo_label": "family-offer",
    "type": "PROMOTION",
    "color": "#FF6600"
  }
]
```

> **info:** Reuse the returned `offer_id` to open the detailed content of the selected offer in the next step.

***

**Response codes**

* **OK Response (200):** returns the list of offers available for the current locale.
* **Error (400):** the request or the submitted filter is invalid.
* **Error (401):** non documented in Swagger.
* **Error (404):** non documented in Swagger.

**Related route**: [GET https://api.clubmed.com//v1/offers](https://api.clubmed.com/doc?search=GET%20%2Fv1%2Foffers)

## 2 - Retrieve an offer detail

Use `GET /v1/offers/{offer_id}` to retrieve the detailed content of one commercial offer after selecting it from the list.

#### Prerequisites

* Reuse a valid `offer_id`.
* Send `accept-language` and `x-api-key`.
* Keep the same locale as the listing step so labels and SEO fields stay aligned.

#### Calling CURL

```bash
curl -X 'GET' \
  'https://api.clubmed.com/v1/offers/TFO' \
  -H 'accept: application/json' \
  -H 'accept-language: en-US' \
  -H 'x-api-key: YOUR_API_KEY'
```

#### Example answer

```json
{
  "id": "TFO",
  "label": "Family offer",
  "description": "Special conditions for family bookings",
  "terms_and_conditions": "Offer valid on selected departures",
  "codes": ["FRFAM"],
  "products": [
    {
      "id": "ALHC_WINTER",
      "label": "ALPES HUEZ"
    }
  ]
}
```

> **info:** The detailed offer payload helps you expose marketing copy, eligible products, and the commercial code used downstream in search or pricing flows.

***

**Response codes**

* **OK Response (200):** returns the full detail of the selected offer.
* **Error (400):** the request is invalid or the provided `offer_id` is malformed.
* **Error (401):** non documented in Swagger.
* **Error (404):** non documented in Swagger.

**Related route**: [GET https://api.clubmed.com//v1/offers/{offer\_id}](https://api.clubmed.com/doc?search=GET%20%2Fv1%2Foffers%2F%7Boffer_id%7D)
