Nos partenaires et nous-mêmes utilisons différentes technologies, telles que les cookies, pour personnaliser les contenus et les publicités, proposer des fonctionnalités sur les réseaux sociaux et analyser le trafic. Merci de cliquer sur le bouton ci-dessous pour donner votre accord. Vous pouvez changer d’avis et modifier vos choix à tout moment. Informations RGPD
swagger: '2.0' host: 'api.staging.clubmed.com' basePath: / schemes: - https info: title: ClubMed Developers version: 0.1252.0 tags: [] paths: /v1/products: get: summary: Provides the list of products with their key information operationId: getV1Products description: >- # Products ## Seasons Club Med have some mountain resort which are open during summer and winter. Those resort provide totally different services, therefore there is a WINTER product and SUMMER product. Example: * Punta Cana is a permanent resort, it has one product_id: PCAC * Chamonix is open during the winter and the summer, it has two product_id: CHAC_WINTER and CHAC_SUMMER. ## Prices The prices are the best prices available. ## Products Pagination The pagination is not activated by default. # Use of the Pagination ## Request You can require a paginated result with two optional parameters, to be passed in the query string: * **`limit`**: items per page. For example, if `limit=10`, any call result will contain an array of at most 10 items. * **`page`**: the page you want to reach. By default, `page=1` and you get the first items. If there are more than `limit` items, you may have to repeat the call for pages 2, 3, etc. Depending on the endpoint, pagination may be activated by default or not, with a default `limit` parameter. ## Response If the response is paginated, a specific HTTP status code will be sent: * Status Code = `206 Partial Content` The response headers will contain metadata describing the result pagination: * Header **`Accept-Ranges`** : the type of the paginated items (example: products) * Header **`Content-Range`** : the range of paginated items for the current response, on format "first-last/total". Example: 0-9/256 => items 0 to 9 over a total of 256 * Header **`Link`** : contains the links allowing to navigate to other pages of the same request, typed by the `rel` attribute: self, prev, next, first, last ``` Link: <http://...?limit=10&page=2>; rel="self" Link: <http://...?limit=10&page=1>; rel="prev" Link: <http://...?limit=10&page=3>; rel="next" Link: <http://...?limit=10&page=1>; rel="first" Link: <http://...?limit=10&page=25>; rel="last" ``` The client will have to iterate over the pages, sending the same request with an increased `page` parameter (or following the `next` Link), in order to fetch the complete result. The `Content-Range` header, or the lack of the `next` Link, indicates that the last page is reached. parameters: - type: string description: 'Language/Country. Ex: "en-US", "fr-FR", "ja-JP"...' name: accept-language in: header required: true - type: string description: Api_key provided by ClubMed API team name: api_key in: query required: false - type: array description: >- string composed of a field name (can be a path), a comparison operator (>, >=, <=, <, ==, !=) and a value. Logical operator AND applies between filters x-constraint: single: true items: type: string pattern: '/[A-Za-z0-9.[\]]+(>|>=|<=|<|==|!=).+/' collectionFormat: multi name: filter in: query required: false - type: integer description: Maximum rows count per page minimum: 1 maximum: 200 name: limit in: query - type: integer description: 'Requested page number, starting from 1 (default: 1)' minimum: 1 name: page in: query tags: - product information responses: '200': description: >- List of products for a locale.<br> The prices are for the entire season schema: $ref: '#/definitions/product_list_v1' '206': description: partial_content '403': description: forbidden '416': description: Requested range not satisfiable '500': description: internal_server_error '/v1/products/{product_id}': get: summary: Provides detailed information regarding a product operationId: getV1ProductsProduct_id description: The prices are the best prices available parameters: - type: string description: 'Language/Country. Ex: "en-US", "fr-FR", "ja-JP"...' name: accept-language in: header required: true - type: string description: a product_id from v1/products resource name: product_id in: path required: true - type: string description: Api_key provided by ClubMed API team name: api_key in: query required: false tags: - product information responses: '200': schema: $ref: '#/definitions/product_v1' description: Successful '403': description: forbidden '404': description: not_found '500': description: internal_server_error definitions: product_category_v1: type: object properties: id: type: string description: product category id example: product_type_sun label: type: string description: >- name of the product category. The category give the segmentation beetween our product (ex: Sun, Snow, Montain in the summer...) example: Village soleil surroundings_images: type: array items: type: string description: product surroundings images example: 'http:myresortsurroundingpicture' country_v1: type: object properties: id: type: string description: ISO 2 country code example: FR label: type: string description: country label example: France description: type: string description: country description example: |- France in brief - Surface area: 632,834 sq km - Capital: Paris - Official language: French - Currency: the Euro. required: - id - label countries_v1: type: array items: $ref: '#/definitions/country_v1' destination_light_v1: type: object properties: geographical_area: type: string description: product geographical area example: Alps surroundings_images: $ref: '#/definitions/surroundings_images' countries: $ref: '#/definitions/countries_v1' comfort_v1: type: object properties: level: type: number description: comfort grade level example: 4 label: type: string description: comfort grade level label example: 4 tridents departureDetails: type: object properties: country: type: string description: departure country label example: Guadeloupe city: type: string description: departure city label example: Guadeloupe date: type: string format: date description: departure date example: '20180102' Duration: type: object description: information regarding a tour or cruise arrival properties: in_nights: type: number description: duration in nights example: 8 in_days: type: number description: duration in days example: 9 required: - in_nights - in_days initial_price_v1: type: object description: 'Initial prices for the given conditions, without any discount.' properties: per_trip: type: number description: >- prices for all the stay without any discounts, according to terms and conditions example: 975 per_trip_with_fees: type: number description: >- prices for all the stay with fees without any discounts, according to terms and conditions example: 1002.5 per_night: type: number description: >- prices by night without any discounts, according to terms and conditions example: 140 per_night_with_fees: type: number description: >- prices by night with fees without any discounts, according to terms and conditions example: 144 best_price_v1: type: object description: Best prices for the given conditions. properties: per_trip: type: number description: >- minimum price for all the stay for this product, according to terms and conditions example: 824 per_trip_with_fees: type: number description: >- minimum price for all the stay with fees for this product, according to terms and conditions example: 851.5 per_night: type: number description: >- minimum price by night for this product, according to terms and conditions example: 118 per_night_with_fees: type: number description: >- minimum price by night with fees for this product, according to terms and conditions example: 122 fee_v1: type: object properties: per_trip: type: number description: fee amounts for the total stay example: 27.5 per_night: type: number description: fee amounts by night example: 4 accomodation: type: object properties: id: type: string description: accommodation included for the price id example: C label: type: string description: accommodation included for the price label example: Club Room departure_city_v1: type: object properties: id: type: string description: 'departure city id, if any transportation' example: PAR label: type: string description: 'departure city label, if any transportation' example: Paris departure_location_v1: type: object properties: id: type: string description: 'international code if relevant (airport, train station, harbour...)' example: CDG label: type: string description: 'label of the departure location (ex: label of the departure airport)' example: Charles de Gaulle airport terms_and_condition_v1: type: object properties: price_per: type: string description: 'type of price. (ADULT, or ROOM)' example: ADULT enum: - ADULT - ROOM package: type: string description: package in which the price is applied example: ALL_INCLUSIVE departure_date: type: string description: >- date of the journey beginning. If relevant, date of the transportation departure example: '20171115' arrival_date: type: string description: 'date of the journey ending. If any transportation, date of arrival' example: '20171115' stay_duration: type: number description: 'duration of the stay in days, without transportation' example: 7 total_duration: type: number description: 'trip duration in days, including transportation if any' example: 7 number_of_rooms_available_for_this_comfort: type: number description: refreshed every 24 hours example: 2 number_of_adults: type: number description: number of adults used to calculate the price example: 2 accomodation: $ref: '#/definitions/accomodation' departure_city: $ref: '#/definitions/departure_city_v1' departure_location: $ref: '#/definitions/departure_location_v1' term_and_conditions_v1: type: object properties: initial_price: $ref: '#/definitions/initial_price_v1' best_price: $ref: '#/definitions/best_price_v1' fee: $ref: '#/definitions/fee_v1' currency: type: string example: EUR terms_and_conditions: $ref: '#/definitions/terms_and_condition_v1' season_v1: type: array description: opening seasons (SUMMER and/or WINTER) items: type: string example: WINTER enum: - WINTER - SUMMER range_v1: type: object description: range for a tour properties: id: type: string description: range unique id example: range_escapade label: type: string description: range label example: Escapade required: - id - label ProductV1AreaComfort: type: object properties: level: type: integer description: comfort grade level example: 5 x-constraint: positive: true label: type: string description: comfort grade level label example: 5 tridents ProductV1Area: type: object properties: id: type: string description: id of the area example: area_comfort_level_5_tridents label: type: string description: label of the area example: 5 tridents area comfort: $ref: '#/definitions/ProductV1AreaComfort' required: - id - label ProductV1Areas: type: array items: $ref: '#/definitions/ProductV1Area' product_summary_v1: type: object properties: id: type: string description: Club Med product unique id example: CHAC_WINTER category: $ref: '#/definitions/product_category_v1' sibling_id: type: string description: 'id of the sibling product open another season, if relevant' example: CHAC_SUMMER seo_description: type: string description: description to be used for seo example: >- Enjoy a luxury all-inclusive ski holiday in our France resort. For ski holidays, activity holidays and spa holidays, our Chamonix resort has it all. map: type: string description: map for the product example: 'http://mymapsurl' resort_id: type: string description: 'resort id, deprecated' example: CHAC title: type: string description: product title example: Chamonix Mont-Blanc full_title: type: string description: product full title to be used outside Club Med apps example: Clubmed Chamonix Mont-Blanc opening_status: type: string description: >- commercial status indicating if the product is OPEN, CLOSED or NOT_YET_OPEN example: OPEN enum: - OPEN - CLOSED - NOT_YET_OPEN destination: $ref: '#/definitions/destination_light_v1' comfort: $ref: '#/definitions/comfort_v1' type: type: string description: type of product example: VILLAGE enum: - CRUISE - TOUR - JOYVIEW - VILLAGE - VILLA description_title: type: string description: description headline" example: 'A stay at Chamonix, to enjoy the elegance of a legendary ski resort' adult_only: type: boolean description: '"true" if the product is forbidden to children.' example: false departure_details: $ref: '#/definitions/departureDetails' duration: $ref: '#/definitions/Duration' immersive_image: type: string description: product representative image example: 'http://mypicture' price: $ref: '#/definitions/term_and_conditions_v1' seasons: $ref: '#/definitions/season_v1' min_authorized_age_in_months: type: number description: customer minimum age welcomed in the product example: 24 minimum: 0 range: $ref: '#/definitions/range_v1' areas: $ref: '#/definitions/ProductV1Areas' required: - id - resort_id - title - full_title - opening_status - adult_only product_list_v1: type: array description: List of products for a locale.<br> The prices are for the entire season items: $ref: '#/definitions/product_summary_v1' product_strengths_v1: type: array description: strengths for the product items: type: string example: >- Recovering from your exertions in the pool or at Club Med Spa by CINQ MONDES bars_images_v1: type: array items: type: string example: 'http://image.jpg' bars_descriptions_v1: type: object properties: extra: type: string description: description of bar extra costs in an all inclusive package example: >- Champagnes, VSOP and XO spirits, bottled and canned drinks are available from vending machines... included: type: string description: description of the all inclusive package advantages at the bar example: >- Drinks served by the glass and at the bar only: water, fruit juices and sodas, hot drinks and cocktails with and without alcohol... bars_introduction_v1: type: object properties: description: type: string description: global description of bars for this product example: Relax in one of our bar... images: $ref: '#/definitions/bars_images_v1' all_inclusive_description: $ref: '#/definitions/bars_descriptions_v1' restaurants_introduction_v1: type: object properties: description: type: string description: global description of restaurants for this product example: >- Each country has its own gastronomy, its own culinary art with its specific flavours and ingredients. images: $ref: '#/definitions/bars_images_v1' accommodations_introduction_v1: type: object properties: description: type: string description: global description of restaurants for this product example: >- The Resort has 249 rooms in a hotel with several wings, less than 5 minutes walking distance from the centre of Chamonix... images: $ref: '#/definitions/bars_images_v1' rooms_count: type: number description: number of rooms in the product example: '249' arrival_details: type: object properties: country: type: string description: arrival country label example: Guadeloupe city: type: string description: arrival city label example: Guadeloupe date: type: string format: date description: arrival date example: '20180102' KeyPointsList: type: array description: list of the product key points items: type: string description: a product key point example: 24 participants max. Model_1: type: object properties: id: type: string example: PCAC required: - id V1RelatedProductsDetail: type: array description: list of products for before/during/After trip booking items: $ref: '#/definitions/Model_1' LinkModel: type: object properties: rel: type: string description: Name of the relationship example: self method: type: string description: HTTP method to use example: GET href: type: string description: Link to the resource example: 'https://api.clubmed.com/products' related_links: type: array description: meta data (linked information) about the product items: $ref: '#/definitions/LinkModel' product_v1: type: object properties: id: type: string description: Club Med product unique id example: CHAC_WINTER category: $ref: '#/definitions/product_category_v1' sibling_id: type: string description: 'id of the sibling product open another season, if relevant' example: CHAC_SUMMER seo_description: type: string description: description to be used for seo example: >- Enjoy a luxury all-inclusive ski holiday in our France resort. For ski holidays, activity holidays and spa holidays, our Chamonix resort has it all. map: type: string description: map for the product example: 'http://mymapsurl' resort_id: type: string description: 'resort id, deprecated' example: CHAC title: type: string description: product title example: Chamonix Mont-Blanc full_title: type: string description: product full title to be used outside Club Med apps example: Clubmed Chamonix Mont-Blanc opening_status: type: string description: >- commercial status indicating if the product is OPEN, CLOSED or NOT_YET_OPEN example: OPEN enum: - OPEN - CLOSED - NOT_YET_OPEN destination: $ref: '#/definitions/destination_light_v1' comfort: $ref: '#/definitions/comfort_v1' type: type: string description: type of product example: VILLAGE enum: - CRUISE - TOUR - JOYVIEW - VILLAGE - VILLA description_title: type: string description: description headline" example: 'A stay at Chamonix, to enjoy the elegance of a legendary ski resort' adult_only: type: boolean description: '"true" if the product is forbidden to children.' example: false immersive_image: type: string description: product representative image example: 'http://mypicture' price: $ref: '#/definitions/term_and_conditions_v1' seasons: $ref: '#/definitions/season_v1' min_authorized_age_in_months: type: number description: customer minimum age welcomed in the product example: 24 minimum: 0 range: $ref: '#/definitions/range_v1' description_1: type: string description: main product description example: >- Skiing in Chamonix means the unique pleasure of discovering a legendary resort, a true pioneer in the history of skiing, with all the charm this legendary name conjures up... description_2: type: string description: secondary product description example: >- A ski holiday in Chamonix is the chance to enjoy one of the world's most legendary ski resorts with a fabulous view of Mont Blanc... strengths: $ref: '#/definitions/product_strengths_v1' site_surface_area_in_ha: type: number description: product total surface area in hectares example: 150 bars_introduction: $ref: '#/definitions/bars_introduction_v1' restaurants_introduction: $ref: '#/definitions/restaurants_introduction_v1' accommodations_introduction: $ref: '#/definitions/accommodations_introduction_v1' departure_details: $ref: '#/definitions/departureDetails' arrival_details: $ref: '#/definitions/arrival_details' fact_sheet_url: type: string description: link to display the product fact sheet example: 'https://ns.clubmed.com/icp/factsheet/Factsheet.pdf' x-format: uri: true duration: $ref: '#/definitions/Duration' key_points: $ref: '#/definitions/KeyPointsList' areas: $ref: '#/definitions/ProductV1Areas' related_products: $ref: '#/definitions/V1RelatedProductsDetail' _links: $ref: '#/definitions/related_links' required: - id - resort_id - title - full_title - opening_status - adult_only - key_points