Construire une expérience shopping avec l'API Club Med

  • Shopping
  • 18 routes
Comment lister les produits, les hébergements et les prix avec l'API Shopping ?

Ce scénario explique comment exploiter l'API Shopping pour alimenter une expérience de découverte et de consultation produit. Le parcours couvre la liste des resorts, le détail produit, les hébergements, les activités, les transferts ainsi que les ressources de prix informatifs utiles pour guider un parcours d'achat.

Il est adapté aux intégrations qui doivent composer une page shopping complète à partir du contenu produit, du contexte de disponibilité et des endpoints orientés prix, sans entrer immédiatement dans la création de réservation.

Vue d'ensemble

Ce scénario documente les ressources de l'API Shopping nécessaires pour construire une expérience de consultation autour des produits, des hébergements, des transferts, des activités et des prix indicatifs.

Prérequis

  • Une x-api-key valide et un header accept-language.
  • Un product_id retourné par les routes de catalogue avant la lecture des ressources détaillées.
  • Les filtres produit, marché et voyageurs attendus par les routes de calendrier et de recherche tarifaire.

Résultat attendu

L'application peut lister les produits, enrichir une fiche avec son contenu détaillé, exposer les hébergements et les transferts, puis ajouter des blocs de prix indicatifs sans entrer dans le parcours de réservation.

Process workflow

Legend:
Obligatoire
Optionnel
1

Lister les produits

Optionnel

Cette étape utilise GET/v2/products pour lister les produits.

Prérequis

Préparez les paramètres utiles à l'appel. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v2/products?limit=20&page=1"

Example answer

[
{
"id": "product-1",
"label": "Club Med Valmorel",
"country_code": "FR",
"type": "RESORT"
}
]

info: Réutilisez l'identifiant renvoyé par cette étape dans les appels suivants.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v2/products
Voir plus
2

Consulter le détail du produit

Optionnel

Cette étape utilise GET/v2/products/{product_id} pour consulter le détail du produit.

Prérequis

Préparez product_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v2/products/{product_id}"

Example answer

{
"id": "product-1",
"label": "Club Med Valmorel",
"country_code": "FR",
"type": "RESORT",
"description": "Family resort in the Alps"
}

info: Réutilisez l'identifiant renvoyé par cette étape dans les appels suivants.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v2/products/{product_id}
Voir plus
3

Récupérer les dates d'ouverture

Optionnel

Cette étape utilise GET/v0/products/{product_id}/opening_dates pour récupérer les dates d'ouverture.

Prérequis

Préparez product_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v0/products/{product_id}/opening_dates?date_format=ISO"

Example answer

[
{
"start_date": "2026-07-05",
"end_date": "2026-07-12",
"status": "OPEN"
}
]

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v0/products/{product_id}/opening_dates
Voir plus
4

Lire les critères de réservation

Optionnel

Cette étape utilise GET/v0/products/{product_id}/booking_criteria pour lire les critères de réservation.

Prérequis

Préparez product_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v0/products/{product_id}/booking_criteria"

Example answer

{
"durations": [
7,
14
],
"max_attendees": 6,
"departure_options": [
{
"id": "PAR"
}
]
}

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v0/products/{product_id}/booking_criteria
Voir plus
5

Lister les offres de childcare

Optionnel

Cette étape utilise GET/v2/products/{product_id}/childcare pour lister les offres de childcare.

Prérequis

Préparez product_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v2/products/{product_id}/childcare"

Example answer

[
{
"id": "childcare-1",
"label": "Petit Club Med",
"min_age": 2,
"max_age": 3
}
]

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v2/products/{product_id}/childcare
Voir plus
6

Récupérer les visuels du produit

Optionnel

Cette étape utilise GET/v1/products/{product_id}/pictures pour récupérer les visuels du produit.

Prérequis

Préparez product_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v1/products/{product_id}/pictures"

Example answer

[
{
"id": "picture-1",
"label": "Resort exterior",
"url": "https://example.com/picture.jpg"
}
]

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v1/products/{product_id}/pictures
Voir plus
7

Lire les informations pratiques

Optionnel

Cette étape utilise GET/v0/products/{product_id}/practical_information pour lire les informations pratiques.

Prérequis

Préparez product_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v0/products/{product_id}/practical_information"

Example answer

{
"address": "Valmorel, France",
"check_in_time": "15:00",
"contact_phone": "+33123456789"
}

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v0/products/{product_id}/practical_information
Voir plus
8

Lister les catégories d'activité

Optionnel

Cette étape utilise GET/v0/activity_categories pour lister les catégories d'activité.

Prérequis

Préparez les paramètres utiles à l'appel. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v0/activity_categories"

Example answer

[
{
"id": "ski",
"label": "Ski"
},
{
"id": "wellness",
"label": "Wellness"
}
]

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v0/activity_categories
Voir plus
9

Consulter le détail d'une activité

Optionnel

Cette étape utilise GET/v2/products/{product_id}/activities/{activity_id} pour consulter le détail d'une activité.

Prérequis

Préparez product_id, activity_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v2/products/{product_id}/activities/{activity_id}"

Example answer

{
"id": "activity-1",
"label": "Snowshoe hike",
"duration": 90,
"level": "DISCOVERY"
}

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v2/products/{product_id}/activities/{activity_id}
Voir plus
10

Lire le détail de la croisière

Optionnel

Cette étape utilise GET/v0/products/{product_id}/cruise_detail pour lire le détail de la croisière.

Prérequis

Préparez product_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v0/products/{product_id}/cruise_detail"

Example answer

{
"ship": "Club Med 2",
"itinerary": [
{
"day": 1,
"port": "Barcelona"
}
]
}

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v0/products/{product_id}/cruise_detail
Voir plus
11

Lister les transferts disponibles

Optionnel

Cette étape utilise GET/v1/products/{product_id}/transfers pour lister les transferts disponibles.

Prérequis

Préparez product_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v1/products/{product_id}/transfers"

Example answer

[
{
"id": "transfer-1",
"label": "Airport shuttle",
"price": {
"amount": 60,
"currency": "EUR"
}
}
]

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v1/products/{product_id}/transfers
Voir plus
12

Consulter le détail d'un transfert

Optionnel

Cette étape utilise GET/v1/products/{product_id}/transfers/{transfer_id} pour consulter le détail d'un transfert.

Prérequis

Préparez product_id, transfer_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v1/products/{product_id}/transfers/{transfer_id}"

Example answer

{
"id": "transfer-1",
"label": "Airport shuttle",
"duration": 45,
"price": {
"amount": 60,
"currency": "EUR"
}
}

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v1/products/{product_id}/transfers/{transfer_id}
Voir plus
13

Lister les catégories d'hébergement

Optionnel

Cette étape utilise GET/v0/products/{product_id}/accommodation_categories pour lister les catégories d'hébergement.

Prérequis

Préparez product_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v0/products/{product_id}/accommodation_categories"

Example answer

[
{
"id": "cat-1",
"label": "Superior rooms"
}
]

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v0/products/{product_id}/accommodation_categories
Voir plus
14

Consulter le détail d'une catégorie d'hébergement

Optionnel

Cette étape utilise GET/v0/products/{product_id}/accommodation_categories/{accommodation_category_id} pour consulter le détail d'une catégorie d'hébergement.

Prérequis

Préparez product_id, accommodation_category_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v0/products/{product_id}/accommodation_categories/{accommodation_category_id}"

Example answer

{
"id": "cat-1",
"label": "Superior rooms",
"description": "Comfortable category for couples and families"
}

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v0/products/{product_id}/accommodation_categories/{accommodation_category_id}
Voir plus
15

Consulter le détail d'un hébergement

Optionnel

Cette étape utilise GET/v2/products/{product_id}/accommodations/{accommodation_id} pour consulter le détail d'un hébergement.

Prérequis

Préparez product_id, accommodation_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v2/products/{product_id}/accommodations/{accommodation_id}"

Example answer

{
"id": "room-1",
"label": "Superior Room",
"occupancy": 2,
"description": "Mountain view room"
}

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v2/products/{product_id}/accommodations/{accommodation_id}
Voir plus
16

Comparer le détail d'un autre hébergement

Optionnel

Cette étape utilise GET/v2/products/{product_id}/accommodations/{accommodation_id} pour comparer le détail d'un autre hébergement.

Prérequis

Préparez product_id, accommodation_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v2/products/{product_id}/accommodations/{accommodation_id}"

Example answer

{
"id": "room-1",
"label": "Superior Room",
"occupancy": 2,
"description": "Mountain view room"
}

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v2/products/{product_id}/accommodations/{accommodation_id}
Voir plus
17

Consulter la vue calendrier

Optionnel

Cette étape utilise GET/v2/products/{product_id}/calendar pour consulter la vue calendrier.

Prérequis

Préparez product_id. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v2/products/{product_id}/calendar?duration=7&first_date=2026-07-01&last_date=2026-08-31&number_attendees=2"

Example answer

{
"months": [
{
"month": "2026-07",
"days": [
{
  "date": "2026-07-05",
  "availability": "AVAILABLE",
  "price": {
    "amount": 2890,
    "currency": "EUR"
  }
}
]
}
]
}

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v2/products/{product_id}/calendar
Voir plus
18

Rechercher les prix

Optionnel

Cette étape utilise GET/v1/search_price pour rechercher les prix.

Prérequis

Préparez les paramètres utiles à l'appel. Conservez x-api-key et, si la route est customer-scoped, un bearer token valide.

Calling CURL

curl -X GET \
-H "x-api-key: YOUR_API_KEY" \
-H "accept-language: fr-FR" \
"https://api.clubmed.com/v1/search_price?product_id=product-1&start_date=2026-07-05&end_date=2026-07-12&number_attendees=2"

Example answer

{
"currency": "EUR",
"amount": 2890,
"breakdown": [
{
"label": "Stay",
"amount": 2500
},
{
"label": "Transport",
"amount": 390
}
]
}

info: Cette réponse peut être réutilisée comme base de décision pour l'étape suivante du parcours.


Codes de réponse

  • 200 OK : les données attendues sont renvoyées.
  • 400 Bad Request : la requête est invalide ou incomplète.
  • 404 Not Found : la ressource demandée est introuvable.
GET/v1/search_price
Voir plus