Chalet Montagne Public Front API
The Public Front API from Chalet Montagne — 7 operation(s) for public front.
The Public Front API from Chalet Montagne — 7 operation(s) for public front.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/chalet-montagne-com:chalet-montagne-com-public-front-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Chalet Montagne Com Public Front API
version: 1.0.0
contact:
email: equipe@alpium.com
description: 'Operations tagged Public Front across 2 of this provider''s published API definitions: openapi.json, chalet-montagne-com-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://mcp.chalet-montagne.com
description: Passerelle publique
tags:
- name: Public Front
paths:
/api/public-front/search:
get:
operationId: searchRentals
summary: Recherche de locations (pagination, filtres, dates, tri)
description: 'Endpoint unique de recherche. Règle métier prix : SANS dates, le prix affiché est un tarif SEMAINE (7 nuits) ; AVEC dates, le prix est le total du séjour demandé (le nombre de nuits détermine semaine vs court séjour). Dates au format ISO YYYY-MM-DD. Les paramètres tableau utilisent la syntaxe param[]=v1¶m[]=v2.'
parameters:
- name: stationSlug
in: query
schema:
type: string
description: Slug de station (voir /destinations)
- name: massif
in: query
schema:
type: string
description: Slug de massif
- name: department
in: query
schema:
type: string
description: Nom/slug de département
- name: skiDomainSlug
in: query
schema:
type: string
description: Slug de domaine skiable
- name: secteur
in: query
schema:
type: string
description: Slug de secteur d'une station
- name: dateStart
in: query
schema:
type: string
format: date
description: Arrivée (YYYY-MM-DD)
- name: dateEnd
in: query
schema:
type: string
format: date
description: Départ (YYYY-MM-DD)
- name: flexDays
in: query
schema:
type: integer
minimum: 0
maximum: 7
description: Souplesse ± jours autour des dates
- name: moisRecherche
in: query
schema:
type: string
description: Recherche par mois entier (YYYY-MM), alternative aux dates précises
- name: adults
in: query
schema:
type: integer
minimum: 1
default: 1
description: Nombre d'adultes (enfants comptés comme adultes en couchage)
- name: babies
in: query
schema:
type: integer
minimum: 0
default: 0
description: Nombre de bébés
- name: animals
in: query
schema:
type: integer
minimum: 0
default: 0
description: Nombre d'animaux
- name: nbPlacesMin
in: query
schema:
type: integer
description: Capacité minimale (couchages)
- name: nbPlacesMax
in: query
schema:
type: integer
- name: nbRoomsMin
in: query
schema:
type: integer
description: Nombre de chambres minimum
- name: nbRoomsMax
in: query
schema:
type: integer
- name: surfaceMin
in: query
schema:
type: integer
description: Surface minimale (m²)
- name: surfaceMax
in: query
schema:
type: integer
- name: priceMin
in: query
schema:
type: integer
description: 'Fourchette de prix (€) — s''applique au prix affiché : semaine sans dates, total du séjour avec dates'
- name: priceMax
in: query
schema:
type: integer
- name: hostingTypeIds[]
in: query
schema:
type: array
items:
type: integer
style: form
explode: true
description: IDs de types d'hébergement (chalet, appartement…) — IDs dynamiques via /search/filters
- name: optionIds[]
in: query
schema:
type: array
items:
type: integer
style: form
explode: true
description: IDs d'équipements/options — IDs dynamiques via /search/filters
- name: annonceTypes[]
in: query
schema:
type: array
items:
type: string
enum:
- par
- pro
- cv
- cs
- lc
- new
- hist
- saisonhiver
- saisonete
- di
style: form
explode: true
description: 'Types d''annonce : par=particulier, pro=professionnel, cs=court séjour, lc=location-chalet, new=nouveauté… Un séjour daté < 7 nuits force automatiquement ''cs''.'
- name: classificationLevels[]
in: query
schema:
type: array
items:
type: integer
minimum: 0
maximum: 5
style: form
explode: true
description: Niveaux d'étoiles (0 = non classé)
- name: lastMinuteOnly
in: query
schema:
type: boolean
description: Uniquement les offres dernière minute
- name: includeLastMinute
in: query
schema:
type: boolean
description: Ajoute un bandeau dernières minutes à la réponse (recherche unifiée)
- name: maxDistanceStation
in: query
schema:
type: integer
description: Distance max au centre station (mètres)
- name: maxDistanceLift
in: query
schema:
type: integer
description: Distance max aux pistes/remontées (mètres)
- name: sortBy
in: query
schema:
type: string
enum:
- points
- price
- surface
- capacity
- rooms
- classification
- distance-station
- distance-piste
- planning-a-jour
default: points
- name: sortDirection
in: query
schema:
type: string
enum:
- asc
- desc
- name: page
in: query
schema:
type: integer
minimum: 1
maximum: 1000
default: 1
- name: limit
in: query
schema:
type: integer
minimum: 1
maximum: 100
default: 30
- name: locale
in: query
schema:
type: string
enum:
- fr
- en
- de
- es
- it
- nl
default: fr
responses:
'200':
description: Résultats paginés (Cache-Control public 60 s). Chaque hosting expose id, name, station, capacité, surface, prix affiché, photos, badges.
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResponse'
'429':
$ref: '#/components/responses/TooManyRequests'
tags:
- Public Front
servers:
- url: https://mcp.chalet-montagne.com
description: Passerelle publique
/api/public-front/search/filters:
get:
operationId: getSearchFilters
summary: Référentiel des filtres dynamiques (bootstrap)
description: 'Retourne les IDs valides du moment : types d''hébergement, options/équipements, conditions d''annulation, niveaux de classement. À appeler avant d''utiliser hostingTypeIds/optionIds — ces IDs ne sont pas des constantes stables.'
parameters:
- name: locale
in: query
schema:
type: string
enum:
- fr
- en
- de
- es
- it
- nl
default: fr
responses:
'200':
description: Filtres disponibles avec IDs et libellés localisés
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
'429':
$ref: '#/components/responses/TooManyRequests'
tags:
- Public Front
servers:
- url: https://mcp.chalet-montagne.com
description: Passerelle publique
/api/public-front/destinations:
get:
operationId: getDestinations
summary: Référentiel des destinations (stations, massifs, départements)
description: Destinations avec leurs slugs — à utiliser pour résoudre une destination en texte libre vers stationSlug/massif/department.
responses:
'200':
description: Arbre des destinations
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
'429':
$ref: '#/components/responses/TooManyRequests'
tags:
- Public Front
servers:
- url: https://mcp.chalet-montagne.com
description: Passerelle publique
/api/public-front/hostings/{hostingId}/home:
get:
operationId: getRentalDetails
summary: Détail complet d'une fiche de location
description: 'Description, capacité, surface, chambres, équipements, tarifs, avis, station. Les coordonnées directes du propriétaire ne sont JAMAIS incluses (mise en relation via POST /contact-owner). Page publique correspondante : https://www.chalet-montagne.com/locations-vacances-montagne/{hostingId}-{slug}'
parameters:
- name: hostingId
in: path
required: true
schema:
type: integer
- name: locale
in: query
schema:
type: string
enum:
- fr
- en
- de
- es
- it
- nl
default: fr
responses:
'200':
description: Fiche complète
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
'404':
description: Lot inconnu ou inactif
'429':
$ref: '#/components/responses/TooManyRequests'
tags:
- Public Front
servers:
- url: https://mcp.chalet-montagne.com
description: Passerelle publique
/api/public-front/hostings/{hostingId}/availability:
get:
operationId: getAvailabilityCalendar
summary: Calendrier de disponibilités d'un lot (par mois)
parameters:
- name: hostingId
in: path
required: true
schema:
type: integer
- name: from
in: query
schema:
type: string
description: 'Mois de départ (YYYY-MM) — défaut : mois courant'
- name: count
in: query
schema:
type: integer
minimum: 1
maximum: 24
default: 4
description: Nombre de mois à retourner
responses:
'200':
description: Statut jour par jour (libre/occupé/arrivée/départ)
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
'404':
description: Lot inconnu
'429':
$ref: '#/components/responses/TooManyRequests'
tags:
- Public Front
servers:
- url: https://mcp.chalet-montagne.com
description: Passerelle publique
/api/public-front/calculate-price:
get:
operationId: calculateStayPrice
summary: Prix d'un séjour daté pour un lot
description: Calcule le prix total du séjour à partir des périodes tarifaires réelles (semaine, court séjour, nuits supplémentaires). Vérifier la disponibilité séparément via /availability ou /planning-coverage.
parameters:
- name: hostingId
in: query
required: true
schema:
type: integer
- name: checkin
in: query
required: true
schema:
type: string
format: date
description: Arrivée (YYYY-MM-DD)
- name: checkout
in: query
required: true
schema:
type: string
format: date
description: Départ (YYYY-MM-DD)
- name: pricingScheduleId
in: query
schema:
type: integer
description: 'Optionnel : forcer une grille tarifaire précise'
responses:
'200':
description: Prix calculé, ou motif d'impossibilité dans l'enveloppe
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
'429':
$ref: '#/components/responses/TooManyRequests'
tags:
- Public Front
servers:
- url: https://mcp.chalet-montagne.com
description: Passerelle publique
/api/public-front/planning-coverage:
get:
operationId: checkPlanningCoverage
summary: Le planning du lot couvre-t-il une plage de dates ?
parameters:
- name: hostingId
in: query
required: true
schema:
type: integer
- name: checkin
in: query
required: true
schema:
type: string
format: date
- name: checkout
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: Couverture et disponibilité de la plage
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
'429':
$ref: '#/components/responses/TooManyRequests'
tags:
- Public Front
servers:
- url: https://mcp.chalet-montagne.com
description: Passerelle publique
components:
schemas:
SearchResponse:
type: object
properties:
success:
type: boolean
data:
type: object
properties:
hostings:
type: array
items:
type: object
total:
type: integer
page:
type: integer
limit:
type: integer
totalPages:
type: integer
Envelope:
type: object
properties:
success:
type: boolean
data:
description: Charge utile (forme selon l'endpoint)
error:
type: string
responses:
TooManyRequests:
description: Rate limit dépassé (120 GET/min par IP) — respecter l'en-tête Retry-After
headers:
Retry-After:
schema:
type: integer
description: Secondes à attendre
x-refined-from:
- openapi.json
- chalet-montagne-com-openapi.json