{
  "name": "C'est pas Versailles ici ! — API publique",
  "url": "https://cestpasversailles.stationsetrecharge.com",
  "version": "1.0.0",
  "description": "API JSON publique du suivi du prix de l'électricité en France (Tempo, EPEX, taxes). Sans authentification pour les endpoints listés.",
  "contact": "contact@stationsetrecharge.com",
  "license": "Données sources : RTE / EPEX, INSEE, FMI (via FRED), réutilisation conforme à leurs conditions.",
  "authentication": "none (public)",
  "rateLimit": {
    "global": "120 req/min/IP",
    "sensitivePost": "5-10 req/min/IP"
  },
  "endpoints": [
    {
      "method": "GET",
      "path": "/api/v1/health",
      "description": "État du service."
    },
    {
      "method": "GET",
      "path": "/api/v1/dashboard",
      "description": "Lampe du jour, prix temps réel, couleur Tempo aujourd'hui/demain, jours restants. Paramètre optionnel : device_token."
    },
    {
      "method": "GET",
      "path": "/api/v1/agenda",
      "description": "Agenda des couleurs Tempo à venir (J+1 gratuit, J+7 premium). Params : days, device_token."
    },
    {
      "method": "GET",
      "path": "/api/v1/details/today",
      "description": "Détails du jour : couleur, signal réseau, mix de production ; prix horaires en premium."
    },
    {
      "method": "GET",
      "path": "/api/v1/stats/prices",
      "description": "Moyennes journalières du prix de gros EPEX. Params : period=1m|3m|6m|1y."
    },
    {
      "method": "GET",
      "path": "/api/v1/stats/gas",
      "description": "Prix de gros du gaz (TTF, moyennes mensuelles en €/MWh). Params : period=1m|3m|6m|1y|2y|3y|5y."
    },
    {
      "method": "GET",
      "path": "/api/v1/stats/fioul",
      "description": "Prix mensuel du fioul domestique (INSEE, €/1000 L, €/L, €/kWh). Params : period=1m|3m|6m|1y|2y|3y|5y."
    },
    {
      "method": "GET",
      "path": "/api/v1/stats/contracts",
      "description": "Coût quotidien estimé par contrat (Base, Tempo, HC/HP, dynamique) et cumuls. Params : days=7..365."
    },
    {
      "method": "GET",
      "path": "/api/v1/stats/tempo-calendar",
      "description": "Couleurs Tempo d'une année civile + compteurs. Params : year."
    },
    {
      "method": "GET",
      "path": "/api/v1/taxes/kwh",
      "description": "Décomposition du prix du kWh (produit, acheminement, accise, TVA). Param optionnel : price (€/kWh, sinon prix du jour)."
    },
    {
      "method": "POST",
      "path": "/api/v1/newsletter/subscribe",
      "description": "Inscription newsletter double opt-in. Body JSON : { email, consent: true }."
    },
    {
      "method": "GET",
      "path": "/api/v1/newsletter/confirm",
      "description": "Confirmation double opt-in via jeton (page HTML). Param : token."
    },
    {
      "method": "GET/POST",
      "path": "/api/v1/newsletter/unsubscribe",
      "description": "Désinscription via jeton (page HTML + confirmation POST)."
    },
    {
      "method": "GET",
      "path": "/api/v1/calendar/ics",
      "description": "Calendrier Tempo iCalendar (premium, device_token requis)."
    }
  ],
  "contentNegotiation": {
    "markdown": "Toutes les pages HTML sont disponibles en Markdown via ?format=md ou Accept: text/markdown (header Link rel=alternate annoncé)."
  }
}
