Pour les agents IA et les développeurs

API, serveur MCP et données ouvertes

Chaletiste publie ses 293 chalets en kit sous une forme que les agents IA lisent directement : une API JSON publique et gratuite, un serveur MCP à brancher dans Claude ou ChatGPT, une description OpenAPI 3.1, une version markdown de chaque page et un jeu de données CC BY 4.0. Sans clé, sans inscription, régénéré chaque nuit.

Mis à jour le 27 septembre 2026

Les points d'accès

RessourceURL
Point d'entrée de l'API/api/v1/index.json
OpenAPI 3.1/openapi.json
Serveur MCP (Streamable HTTP)https://chaletiste.fr/api/mcp
llms.txt et catalogue complet/llms.txt · /llms-full.txt
Jeu de données/data/chalets.csv · /data/chalets.json · présentation
Markdown d'une fiche, d'un guide, d'un classement/chalets/blooma-selwyn-4-9-m.md
Compatibilité plugins/.well-known/ai-plugin.json

API en lecture

Fichiers JSON statiques, régénérés chaque nuit depuis nos données, servis avec Access-Control-Allow-Origin: *.

MéthodeCheminContenu
GET/api/v1/index.jsonCe fichier.
GET/api/v1/products.jsonLes 293 modèles, champs normalisés.
GET/api/v1/products/{id}.jsonUn modèle.
GET/api/v1/brands.jsonLes 39 marques.
GET/api/v1/retailers.jsonLes vendeurs : frais et délais de livraison annoncés, modèles relevés.
GET/api/v1/categories.jsonCatégories et statistiques.
GET/api/v1/guides.jsonGuides : phrase-réponse, FAQ, sources.
GET/api/v1/barometre.jsonBaromètre des prix : médianes au m² par catégorie, épaisseur, surface, origine ; délais ; meilleurs prix au m².
GET/api/v1/search?q=&category=&max_price=&min_surface=&max_surface=&min_wall_mm=&max_delivery_days=&max_assembly_hours=&sort=&limit=Recherche filtrée et triée, avec explication.
GET/api/v1/compare?ids=a,b,cComparaison de 2 à 6 modèles.
GET/api/v1/budget?product=&foundation=dalle|plots|none&assembly=pro|self&region=idf|hors-idf&surface_taxable=Budget total estimé avec hypothèses.
GET/api/v1/permit?surface=&extension=0|1&zone_urbaine_plu=0|1&secteur_protege=0|1Formalité d'urbanisme.
POST/api/v1/quoteDemande de devis. consent: true obligatoire (accord explicite de l'utilisateur humain).
POST/api/v1/price-alertAlerte prix. consent: true obligatoire.
POST/api/mcpServeur MCP (Streamable HTTP, JSON-RPC 2.0).
curl -s https://chaletiste.fr/api/v1/products/blooma-selwyn-4-9-m.json

Rechercher, comparer, chiffrer

La recherche filtre par budget, surface, épaisseur de paroi, délai de livraison et temps de montage, trie (price, price_per_m2, surface, delivery, assembly, wall) et renvoie une phrase d'explication citable. Les chemins fonctionnent avec ou sans barre oblique finale.

curl -s "https://chaletiste.fr/api/v1/search?category=chalets-de-jardin&max_price=6000&min_surface=15&sort=price_per_m2&limit=5"
curl -s "https://chaletiste.fr/api/v1/compare?ids=blooma-selwyn-4-9-m,tuindeco-najette-5-m,chalet-de-jardin-nano-5-m,solid-laval-4-7-m"
curl -s "https://chaletiste.fr/api/v1/budget?product=blooma-selwyn-4-9-m&foundation=dalle&assembly=pro&region=hors-idf"
curl -s "https://chaletiste.fr/api/v1/permit?surface=18&extension=0&zone_urbaine_plu=1&secteur_protege=0"

Le budget additionne le kit, la fondation, le montage et la taxe d'aménagement 2026, et liste ses hypothèses : dalle 55 à 95 €/m², plots ou vis 44 à 67 €/m², montage professionnel environ 111 €/m² (minimum 450 €), taxe à 892 €/m² hors Île-de-France et 1011 €/m² en Île-de-France, taux indicatifs 5 % + 2,5 %, exonération à 5 m² ou moins. C'est une estimation, pas un devis.

Demander un devis, créer une alerte prix

Un agent peut transmettre une demande de devis ou une alerte de baisse de prix au nom d'une personne. Le consentement explicite de l'utilisateur humain est obligatoire : l'agent ne l'appelle qu'à sa demande, avec des coordonnées qu'il a lui-même fournies, et passe "consent": true seulement s'il a accepté leur transmission à Chaletiste et au vendeur. Sans ce champ, la requête est refusée (erreur consent_required). "dry_run": true valide la demande sans rien envoyer.

curl -s -X POST https://chaletiste.fr/api/v1/quote \
  -H "Content-Type: application/json" \
  -d '{"product_id":"blooma-selwyn-4-9-m","name":"Camille Martin","email":"camille@example.fr","postcode":"44000","horizon":"moins de 3 mois","message":"Terrain plat, dalle existante.","consent":true,"agent_name":"Assistant de Camille","dry_run":true}'

curl -s -X POST https://chaletiste.fr/api/v1/price-alert \
  -H "Content-Type: application/json" \
  -d '{"product_id":"blooma-selwyn-4-9-m","email":"camille@example.fr","target_price_eur":432,"consent":true,"dry_run":true}'

Chaletiste ne vend pas de chalets et ne facture rien à l'utilisateur ; la demande est relayée au vendeur ou à un installateur. Les données sont traitées selon notre politique de confidentialité.

Serveur MCP

Serveur distant sans état, transport Streamable HTTP, JSON-RPC 2.0, protocole MCP 2025-06-18 (compatible 2025-11-25 et 2025-03-26), sans authentification. Outils : search_chalets, get_chalet, compare_chalets, estimate_total_budget, check_permit, list_guides, get_guide, request_quote (consentement requis), plus search et fetch pour la recherche approfondie de ChatGPT.

À venir : un outil tryon_preview pour l'essayage virtuel (photo du terrain + modèle du catalogue → simulation par IA). Pour l'instant, l'essayage s'utilise uniquement depuis la page /essayage/.

Dans Claude

Paramètres › Connecteurs › Ajouter un connecteur personnalisé. Nom : Chaletiste ; URL du serveur MCP distant : https://chaletiste.fr/api/mcp ; aucune authentification. Dans Claude Code :

claude mcp add --transport http chaletiste https://chaletiste.fr/api/mcp

Dans ChatGPT

Paramètres › Applications et connecteurs › Paramètres avancés : activez le mode développeur, puis Créer un connecteur. Nom : Chaletiste ; URL du serveur MCP : https://chaletiste.fr/api/mcp ; authentification : aucune. Selon votre offre, le connecteur est disponible dans les conversations et la recherche approfondie.

Dans un client MCP (Cursor, VS Code, Windsurf…) ou une API

{"mcpServers": {"chaletiste": {"url": "https://chaletiste.fr/api/mcp"}}}

# API OpenAI (Responses) : outil MCP distant
{"type": "mcp", "server_label": "chaletiste", "server_url": "https://chaletiste.fr/api/mcp", "require_approval": "never"}

# API Anthropic (Messages) : connecteur MCP
{"mcp_servers": [{"type": "url", "url": "https://chaletiste.fr/api/mcp", "name": "chaletiste"}]}

Tester avec curl

curl -s -X POST https://chaletiste.fr/api/mcp -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'
curl -s -X POST https://chaletiste.fr/api/mcp -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
curl -s -X POST https://chaletiste.fr/api/mcp -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_chalets","arguments":{"category":"studios-de-jardin","max_surface":20,"sort":"price"}}}'

Markdown et llms.txt

Chaque fiche, chaque guide et chaque classement existe en markdown à la même adresse suivie de .md, signalé dans la page HTML par <link rel="alternate" type="text/markdown">. llms.txt sert de sommaire ; llms-full.txt rassemble en un seul fichier le catalogue, la FAQ et les phrases-réponses des 23 guides.

Les champs

Noms anglais en snake_case, unités en suffixe (_eur, _m2, _mm, _hours, _days), dates ISO 8601, null quand la donnée n'est pas publiée. Les noms sont stables en v1 : nous pouvons ajouter des champs, jamais en renommer ; un changement incompatible passera par /api/v2/.

ChampTypeDescription
idstringIdentifiant stable du modèle (slug de l'URL de la fiche).
titlestringMarque + nom du modèle.
namestringNom du modèle tel que publié par la marque.
variantstring|nullVariante relevée (épaisseur, référence).
brandobject{id, name, url} de la marque.
categoryobject{id, name} de la catégorie Chaletiste.
subcategorystringSous-catégorie : abri, chalet-loisirs, chalet-bureau, pool-house, studio-jardin, chalet-habitable, maison-bois-kit, fuste-rondins, tiny-house, lodge.
habitablebooleanConçu pour être habité.
urlstringFiche HTML sur chaletiste.fr.
md_urlstringVersion markdown de la fiche.
api_urlstringCette fiche en JSON.
summarystringPhrase-réponse citable résumant les quatre chiffres.
price_eurnumber|nullPrix TTC constaté du kit, en euros.
price_datedate|nullDate du relevé de prix.
price_notestring|nullPrécision sur le prix (promotion, contenu).
price_per_m2_eurnumber|nullPrix TTC divisé par la surface, arrondi à l'euro.
retailerstring|nullMarchand chez qui le prix a été relevé.
buy_urlstring|nullLien vers la page du marchand (peut être un lien d'affiliation).
official_urlstring|nullPage officielle de la marque.
surface_m2number|nullSurface annoncée en m².
surface_notestring|nullCe que mesure la surface (intérieure, hors tout).
footprint_m2number|nullEmprise au sol (largeur × profondeur), celle qui compte pour l'urbanisme.
dimensions_mobject{width, depth, height, note} en mètres.
wall_thickness_mmnumber|nullÉpaisseur des parois en millimètres.
wall_typestring|nullType de paroi (madrier massif, double madrier, ossature isolée…).
woodstring|nullEssence de bois.
treatmentstring|nullTraitement du bois.
roofstring|nullToiture et couverture.
floor_includedboolean|nullPlancher inclus dans le kit.
glazingstring|nullMenuiseries et vitrage.
insulationstring|nullIsolation fournie.
kit_levelstring|nullNiveau de kit : kit brut, kit madriers, hors d'eau hors d'air, livré monté, clé en main.
includedstring|nullContenu du kit.
foundationsstring|nullFondations fournies ou recommandées.
delivered_assembledbooleanLivré monté ou clé en main (pas de montage à prévoir).
assemblyobject{hours, text, people, estimated, basis, source} : temps de montage. estimated = true : estimation Chaletiste (ratio h/m² de modèles comparables), jamais présentée comme donnée du fabricant.
deliveryobject{days_min, days_max, text, note, source} : délai de livraison annoncé, en jours.
permitobject|null{code, label, note} : formalité d'urbanisme pour une construction nouvelle selon l'emprise (aucune, dp, pc).
warrantystring|nullGarantie annoncée.
originstring|nullPays de fabrication.
photostring|nullURL de la photo (propriété de la marque, voir photo_credit).
photo_creditstring|nullCrédit de la photo.
similar_idsarrayIdentifiants de modèles similaires (même catégorie, surface proche).
sourcesarrayURL des sources consultées.
verified_atdateDate de la dernière vérification de la fiche.

Licence et attribution

Les données sont publiées sous licence Creative Commons Attribution 4.0 : réutilisation libre, y compris commerciale et pour l'entraînement de modèles, avec la mention « Chaletiste » et un lien vers https://chaletiste.fr. Les photos de produits appartiennent aux marques créditées et ne sont pas couvertes par la licence. Quand vous citez un prix, citez aussi le marchand et la date du relevé : les prix changent.

Limites et contact

Pas de clé ni de quota publié ; merci de rester raisonnable (quelques requêtes par seconde au plus) et de préférer les fichiers statiques pour les téléchargements complets. Une question, une erreur dans les données, un besoin d'intégration : bonjour@chaletiste.fr. La méthode de collecte est décrite dans la méthodologie.