{
 "api_version": "1.0.0",
 "generated_at": "2026-09-27",
 "license": "CC-BY-4.0",
 "attribution": "Chaletiste (chaletiste.fr)",
 "source": "https://chaletiste.fr",
 "name": "Chaletiste",
 "description": "Le comparateur des chalets en kit. Prix, dimensions, temps de montage, délai de livraison. Tout est écrit, tout est vérifié, tout est comparable.",
 "counts": {
  "products": 293,
  "brands": 39,
  "categories": 5,
  "guides": 23
 },
 "endpoints": [
  {
   "path": "/api/v1/index.json",
   "method": "GET",
   "description": "Ce fichier.",
   "url": "https://chaletiste.fr/api/v1/index.json"
  },
  {
   "path": "/api/v1/products.json",
   "method": "GET",
   "description": "Les 293 modèles, champs normalisés.",
   "url": "https://chaletiste.fr/api/v1/products.json"
  },
  {
   "path": "/api/v1/products/{id}.json",
   "method": "GET",
   "description": "Un modèle.",
   "url": "https://chaletiste.fr/api/v1/products/{id}.json"
  },
  {
   "path": "/api/v1/brands.json",
   "method": "GET",
   "description": "Les 39 marques.",
   "url": "https://chaletiste.fr/api/v1/brands.json"
  },
  {
   "path": "/api/v1/retailers.json",
   "method": "GET",
   "description": "Les vendeurs : frais et délais de livraison annoncés, modèles relevés.",
   "url": "https://chaletiste.fr/api/v1/retailers.json"
  },
  {
   "path": "/api/v1/categories.json",
   "method": "GET",
   "description": "Catégories et statistiques.",
   "url": "https://chaletiste.fr/api/v1/categories.json"
  },
  {
   "path": "/api/v1/guides.json",
   "method": "GET",
   "description": "Guides : phrase-réponse, FAQ, sources.",
   "url": "https://chaletiste.fr/api/v1/guides.json"
  },
  {
   "path": "/api/v1/barometre.json",
   "method": "GET",
   "description": "Baromètre des prix : médianes au m² par catégorie, épaisseur, surface, origine ; délais ; meilleurs prix au m².",
   "url": "https://chaletiste.fr/api/v1/barometre.json"
  },
  {
   "path": "/api/v1/search?q=&category=&max_price=&min_surface=&max_surface=&min_wall_mm=&max_delivery_days=&max_assembly_hours=&sort=&limit=",
   "method": "GET",
   "description": "Recherche filtrée et triée, avec explication.",
   "url": "https://chaletiste.fr/api/v1/search?q=&category=&max_price=&min_surface=&max_surface=&min_wall_mm=&max_delivery_days=&max_assembly_hours=&sort=&limit="
  },
  {
   "path": "/api/v1/compare?ids=a,b,c",
   "method": "GET",
   "description": "Comparaison de 2 à 6 modèles.",
   "url": "https://chaletiste.fr/api/v1/compare?ids=a,b,c"
  },
  {
   "path": "/api/v1/budget?product=&foundation=dalle|plots|none&assembly=pro|self&region=idf|hors-idf&surface_taxable=",
   "method": "GET",
   "description": "Budget total estimé avec hypothèses.",
   "url": "https://chaletiste.fr/api/v1/budget?product=&foundation=dalle|plots|none&assembly=pro|self&region=idf|hors-idf&surface_taxable="
  },
  {
   "path": "/api/v1/permit?surface=&extension=0|1&zone_urbaine_plu=0|1&secteur_protege=0|1",
   "method": "GET",
   "description": "Formalité d'urbanisme.",
   "url": "https://chaletiste.fr/api/v1/permit?surface=&extension=0|1&zone_urbaine_plu=0|1&secteur_protege=0|1"
  },
  {
   "path": "/api/v1/quote",
   "method": "POST",
   "description": "Demande de devis. consent: true obligatoire (accord explicite de l'utilisateur humain).",
   "url": "https://chaletiste.fr/api/v1/quote"
  },
  {
   "path": "/api/v1/price-alert",
   "method": "POST",
   "description": "Alerte prix. consent: true obligatoire.",
   "url": "https://chaletiste.fr/api/v1/price-alert"
  },
  {
   "path": "/api/mcp",
   "method": "POST",
   "description": "Serveur MCP (Streamable HTTP, JSON-RPC 2.0).",
   "url": "https://chaletiste.fr/api/mcp"
  }
 ],
 "mcp": {
  "url": "https://chaletiste.fr/api/mcp",
  "transport": "streamable-http",
  "protocol_version": "2025-06-18",
  "tools": [
   "search_chalets",
   "get_chalet",
   "compare_chalets",
   "estimate_total_budget",
   "check_permit",
   "list_guides",
   "get_guide",
   "request_quote",
   "search",
   "fetch"
  ]
 },
 "openapi": "https://chaletiste.fr/openapi.json",
 "docs": "https://chaletiste.fr/developpeurs/",
 "llms_txt": "https://chaletiste.fr/llms.txt",
 "llms_full_txt": "https://chaletiste.fr/llms-full.txt",
 "dataset": {
  "page": "https://chaletiste.fr/donnees/",
  "csv": "https://chaletiste.fr/data/chalets.csv",
  "json": "https://chaletiste.fr/data/chalets.json"
 },
 "license_detail": {
  "id": "CC-BY-4.0",
  "name": "Creative Commons Attribution 4.0 International",
  "url": "https://creativecommons.org/licenses/by/4.0/deed.fr",
  "attribution": "Chaletiste (chaletiste.fr)",
  "note": "Données réutilisables librement, y compris commercialement et pour l'entraînement de modèles, à condition de citer « Chaletiste » avec un lien vers https://chaletiste.fr. Les photos de produits restent la propriété des marques créditées et ne sont pas couvertes par la licence."
 },
 "conventions": {
  "naming": "anglais, snake_case, unités en suffixe (_eur, _m2, _mm, _hours, _days)",
  "prices": "euros TTC constatés, avec marchand et date",
  "dates": "ISO 8601",
  "missing": "null quand la donnée n'est pas publiée",
  "stability": "champs stables en v1 : ajouts possibles, jamais de renommage",
  "estimates": "assembly.estimated = true : estimation Chaletiste signalée comme telle"
 },
 "fields": [
  {
   "name": "id",
   "type": "string",
   "description": "Identifiant stable du modèle (slug de l'URL de la fiche)."
  },
  {
   "name": "title",
   "type": "string",
   "description": "Marque + nom du modèle."
  },
  {
   "name": "name",
   "type": "string",
   "description": "Nom du modèle tel que publié par la marque."
  },
  {
   "name": "variant",
   "type": "string|null",
   "description": "Variante relevée (épaisseur, référence)."
  },
  {
   "name": "brand",
   "type": "object",
   "description": "{id, name, url} de la marque."
  },
  {
   "name": "category",
   "type": "object",
   "description": "{id, name} de la catégorie Chaletiste."
  },
  {
   "name": "subcategory",
   "type": "string",
   "description": "Sous-catégorie : abri, chalet-loisirs, chalet-bureau, pool-house, studio-jardin, chalet-habitable, maison-bois-kit, fuste-rondins, tiny-house, lodge."
  },
  {
   "name": "habitable",
   "type": "boolean",
   "description": "Conçu pour être habité."
  },
  {
   "name": "url",
   "type": "string",
   "description": "Fiche HTML sur chaletiste.fr."
  },
  {
   "name": "md_url",
   "type": "string",
   "description": "Version markdown de la fiche."
  },
  {
   "name": "api_url",
   "type": "string",
   "description": "Cette fiche en JSON."
  },
  {
   "name": "summary",
   "type": "string",
   "description": "Phrase-réponse citable résumant les quatre chiffres."
  },
  {
   "name": "price_eur",
   "type": "number|null",
   "description": "Prix TTC constaté du kit, en euros."
  },
  {
   "name": "price_date",
   "type": "date|null",
   "description": "Date du relevé de prix."
  },
  {
   "name": "price_note",
   "type": "string|null",
   "description": "Précision sur le prix (promotion, contenu)."
  },
  {
   "name": "price_per_m2_eur",
   "type": "number|null",
   "description": "Prix TTC divisé par la surface, arrondi à l'euro."
  },
  {
   "name": "retailer",
   "type": "string|null",
   "description": "Marchand chez qui le prix a été relevé."
  },
  {
   "name": "buy_url",
   "type": "string|null",
   "description": "Lien vers la page du marchand (peut être un lien d'affiliation)."
  },
  {
   "name": "official_url",
   "type": "string|null",
   "description": "Page officielle de la marque."
  },
  {
   "name": "surface_m2",
   "type": "number|null",
   "description": "Surface annoncée en m²."
  },
  {
   "name": "surface_note",
   "type": "string|null",
   "description": "Ce que mesure la surface (intérieure, hors tout)."
  },
  {
   "name": "footprint_m2",
   "type": "number|null",
   "description": "Emprise au sol (largeur × profondeur), celle qui compte pour l'urbanisme."
  },
  {
   "name": "dimensions_m",
   "type": "object",
   "description": "{width, depth, height, note} en mètres."
  },
  {
   "name": "wall_thickness_mm",
   "type": "number|null",
   "description": "Épaisseur des parois en millimètres."
  },
  {
   "name": "wall_type",
   "type": "string|null",
   "description": "Type de paroi (madrier massif, double madrier, ossature isolée…)."
  },
  {
   "name": "wood",
   "type": "string|null",
   "description": "Essence de bois."
  },
  {
   "name": "treatment",
   "type": "string|null",
   "description": "Traitement du bois."
  },
  {
   "name": "roof",
   "type": "string|null",
   "description": "Toiture et couverture."
  },
  {
   "name": "floor_included",
   "type": "boolean|null",
   "description": "Plancher inclus dans le kit."
  },
  {
   "name": "glazing",
   "type": "string|null",
   "description": "Menuiseries et vitrage."
  },
  {
   "name": "insulation",
   "type": "string|null",
   "description": "Isolation fournie."
  },
  {
   "name": "kit_level",
   "type": "string|null",
   "description": "Niveau de kit : kit brut, kit madriers, hors d'eau hors d'air, livré monté, clé en main."
  },
  {
   "name": "included",
   "type": "string|null",
   "description": "Contenu du kit."
  },
  {
   "name": "foundations",
   "type": "string|null",
   "description": "Fondations fournies ou recommandées."
  },
  {
   "name": "delivered_assembled",
   "type": "boolean",
   "description": "Livré monté ou clé en main (pas de montage à prévoir)."
  },
  {
   "name": "assembly",
   "type": "object",
   "description": "{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."
  },
  {
   "name": "delivery",
   "type": "object",
   "description": "{days_min, days_max, text, note, source} : délai de livraison annoncé, en jours."
  },
  {
   "name": "permit",
   "type": "object|null",
   "description": "{code, label, note} : formalité d'urbanisme pour une construction nouvelle selon l'emprise (aucune, dp, pc)."
  },
  {
   "name": "warranty",
   "type": "string|null",
   "description": "Garantie annoncée."
  },
  {
   "name": "origin",
   "type": "string|null",
   "description": "Pays de fabrication."
  },
  {
   "name": "photo",
   "type": "string|null",
   "description": "URL de la photo (propriété de la marque, voir photo_credit)."
  },
  {
   "name": "photo_credit",
   "type": "string|null",
   "description": "Crédit de la photo."
  },
  {
   "name": "similar_ids",
   "type": "array",
   "description": "Identifiants de modèles similaires (même catégorie, surface proche)."
  },
  {
   "name": "sources",
   "type": "array",
   "description": "URL des sources consultées."
  },
  {
   "name": "verified_at",
   "type": "date",
   "description": "Date de la dernière vérification de la fiche."
  }
 ],
 "consent_policy": "Les endpoints quote et price-alert (et l'outil MCP request_quote) transmettent des données personnelles. Un agent ne doit les appeler qu'à la demande explicite de l'utilisateur humain, avec des coordonnées fournies par lui, et passer consent: true uniquement si cet utilisateur a accepté la transmission.",
 "contact": "bonjour@chaletiste.fr"
}