Skip to Content
ReferenceAPI de diffusion headless

API de diffusion headless

Ceci est une référence développeur. Si vous configurez un espace headless pour la première fois, commencez par Créer un espace headless.

Chaque espace headless sert ses articles publiés depuis une API de lecture publique, compatible CDN et sans cache. Il n’y a ni authentification ni clé API — l’API retourne uniquement les articles publiés (les brouillons et les articles planifiés n’apparaissent jamais), et un blog est public par définition.

L’URL de base de votre espace — incluant les identifiants de votre espace de travail et de votre site — est affichée sur la page Delivery API de votre site dans le portail client, ainsi que des URL de flux prêts à l’emploi par langue. Tous les chemins ci-dessous sont relatifs à cette base.

Endpoints

RouteRetourne
GET /postsArticles publiés, du plus récent au plus ancien (champs résumés uniquement)
GET /posts/{slug}Un article publié, contrat complet (voir ci-dessous)
GET /termsCatégories et tags avec le nombre d’articles

Paramètres de requête (/posts)

ParamètreDescription
languageArticles dans une langue (ex. de). Chaque langue est un blog distinct — une campagne par langue.
categoryFiltrer par slug de catégorie. Exclusif avec tag.
tagFiltrer par slug de tag. Exclusif avec category.
cursorPage suivante (plus ancienne) — passez le nextCursor de la réponse précédente.
beforePage précédente (plus récente) — passez le prevCursor de la réponse.
limitÉléments par page ; valeur par défaut et maximum : 50.

language se cumule avec category ou tag : /posts?language=de&category=news correspond aux archives « News » du blog en allemand. /terms?language=de applique la même portée à la taxonomie.

Pagination

Les réponses de liste sont bidirectionnelles : chacune retourne nextCursor (vers les articles plus anciens) et prevCursor (vers les articles plus récents). Un curseur null signifie qu’il n’y a plus de pages dans cette direction — affichez chaque page uniquement à partir de son jeton d’URL, sans avoir besoin de conserver un historique de curseurs.

Contrat de réponse pour un article individuel

GET /posts/{slug} retourne { post } avec :

  • id, slug, title, excerpt — identité et texte de résumé.
  • html — le contenu rendu et assaini. Les liens relatifs à la racine sont absolutisés par rapport à l’URL publique de votre site. Peut être injecté tel quel : liste d’autorisation stricte de balises, pas d’attributs <script>/<style>/on*.
  • blocks — le tableau de blocs structurés, si vous préférez le rendu à l’injection de html.
  • metaTitle, metaDescription, keyphrase, categories, tags.
  • featuredImage, bodyImage — { url, width, height, alt?, caption? }.
  • og — { title, description, image }, prêt pour les balises Open Graph.
  • schema — un tableau d’objets schema.org JSON-LD (HowTo, FAQPage) lorsque l’article contient ces sections ; [] dans le cas contraire. Fourni hors bande car l’assainisseur de contenu supprime <script> — émettez un <script type="application/ld+json"> par entrée dans le <head> de votre page pour l’éligibilité aux résultats enrichis. Les sections correspondantes du contenu portent les classes structura-howto / structura-faq pour la mise en forme.
  • publishedAt, updatedAt — ISO 8601. updatedAt est votre signal de revalidation.

La réponse de liste retourne uniquement le sous-ensemble résumé — sans html, blocks ni schema.

Consommation depuis un framework

Effectuez la requête au moment du build ou de la revalidation et traitez l’API comme votre CMS :

Last updated on