{"openapi":"3.1.0","info":{"title":"antonin.studio — API publique","version":"1.0.0","description":"API gratuite en lecture seule des contenus publiés. Aucun compte, clé API ou OAuth. Instantanés mis à jour au déploiement, pas de données temps réel. GET uniquement, sans recherche serveur ni pagination ; filtrer items côté client. Deprecation policy / politique de retrait : une rupture de contrat utilisera /api/v2/ ; tout retrait de v1 sera annoncé dans la documentation avec sa date de sunset avant sa date d’effet. Aucune version n’est actuellement dépréciée. Les erreurs de l’hébergement (dont 404) peuvent être HTML : vérifier le statut et Content-Type avant de décoder le JSON."},"servers":[{"url":"/"}],"security":[],"externalDocs":{"description":"Documentation et exemples de requêtes","url":"https://antonin.studio/developers/"},"paths":{"/api/v1/index.json":{"get":{"operationId":"getPublicIndex","summary":"Découvrir les ressources de l’API publique, la documentation et l’absence d’authentification.","description":"Découvrir les ressources de l’API publique, la documentation et l’absence d’authentification.","security":[],"responses":{"200":{"description":"Instantané complet de la ressource publique, sans paramètre ni effet de bord.","content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"string","const":"1.0.0"},"name":{"type":"string"},"description":{"type":"string"},"authentication":{"type":"string","const":"none"},"readOnly":{"type":"boolean","const":true},"documentation":{"type":"string","format":"uri"},"specification":{"type":"string","format":"uri"},"endpoints":{"type":"object","properties":{"index":{"type":"string","format":"uri"},"pages":{"type":"string","format":"uri"},"posts":{"type":"string","format":"uri"},"offers":{"type":"string","format":"uri"}},"required":["index","pages","posts","offers"],"additionalProperties":false}},"required":["version","name","description","authentication","readOnly","documentation","specification","endpoints"],"additionalProperties":false}}}}}}},"/api/v1/pages.json":{"get":{"operationId":"getPublicPages","summary":"Lister les titres, descriptions et URL canoniques des pages indexables du site. Exclut noindex et canoniques externes.","description":"Lister les titres, descriptions et URL canoniques des pages indexables du site. Exclut noindex et canoniques externes.","security":[],"responses":{"200":{"description":"Instantané complet de la ressource publique, sans paramètre ni effet de bord.","content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"string","const":"1.0.0"},"total":{"type":"integer","minimum":0},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"url":{"type":"string","format":"uri"}},"required":["id","title","description","url"],"additionalProperties":false}}},"required":["version","total","items"],"additionalProperties":false}}}}}}},"/api/v1/posts.json":{"get":{"operationId":"getPublicPosts","summary":"Lire les articles publiés du Blog et du Journal, avec leur corps Markdown et leurs dates éditoriales réelles. Exclut les brouillons et noindex.","description":"Lire les articles publiés du Blog et du Journal, avec leur corps Markdown et leurs dates éditoriales réelles. Exclut les brouillons et noindex.","security":[],"responses":{"200":{"description":"Instantané complet de la ressource publique, sans paramètre ni effet de bord.","content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"string","const":"1.0.0"},"total":{"type":"integer","minimum":0},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"url":{"type":"string","format":"uri"},"section":{"type":"string","enum":["blog","journal"]},"category":{"type":"string"},"datePublished":{"type":"string","format":"date-time"},"dateModified":{"type":"string","format":"date-time"},"introduction":{"type":"string"},"bodyMarkdown":{"type":"string","description":"Corps Markdown publié, sans frontmatter ni contenu des brouillons."}},"required":["id","title","description","url","section","category","datePublished","introduction","bodyMarkdown"],"additionalProperties":false}}},"required":["version","total","items"],"additionalProperties":false}}}}}}},"/api/v1/offers.json":{"get":{"operationId":"getPublicOffers","summary":"Comparer les formules détaillées publiées, leurs inclusions et conditions. Création, mensualité et première année restent distinctes ; les prix ambigus restent du texte.","description":"Comparer les formules détaillées publiées, leurs inclusions et conditions. Création, mensualité et première année restent distinctes ; les prix ambigus restent du texte.","security":[],"responses":{"200":{"description":"Instantané complet de la ressource publique, sans paramètre ni effet de bord.","content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"string","const":"1.0.0"},"total":{"type":"integer","minimum":0},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"url":{"type":"string","format":"uri"},"included":{"type":"array","items":{"type":"string"}},"terms":{"type":"array","items":{"type":"string"}},"plans":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"url":{"type":"string","format":"uri"},"creation":{"type":"object","properties":{"display":{"type":"string"},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,2})?$","description":"Montant décimal exact, omis pour un prix ambigu ou sur devis."},"currency":{"type":"string","const":"EUR"}},"required":["display"],"additionalProperties":false},"monthly":{"type":"object","properties":{"display":{"type":"string"},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,2})?$","description":"Montant décimal exact, omis pour un prix ambigu ou sur devis."},"currency":{"type":"string","const":"EUR"}},"required":["display"],"additionalProperties":false},"firstYear":{"type":"object","properties":{"display":{"type":"string"},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,2})?$","description":"Montant décimal exact, omis pour un prix ambigu ou sur devis."},"currency":{"type":"string","const":"EUR"}},"required":["display"],"additionalProperties":false},"benefits":{"type":"array","items":{"type":"string"}},"groups":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"items":{"type":"array","items":{"type":"string"}},"help":{"type":"string"},"note":{"type":"string"}},"required":["title","items"],"additionalProperties":false}}},"required":["id","title","description","url","creation","monthly","firstYear","benefits","groups"],"additionalProperties":false}}},"required":["id","title","url","included","terms","plans"],"additionalProperties":false}}},"required":["version","total","items"],"additionalProperties":false}}}}}}}}}