DéveloppeursAPI DE CONTENU PUBLIQUE

Du REST et du JSON simples. Fermés jusqu’à ce que vous ouvriez.

La configuration de l’API publique, site par site, contrôle exactement ce qui est exposé et à qui. Récupérez le contenu publié, les sitemaps et les redirections avec la même structure JSON prévisible partout — aucun schéma GraphQL à apprendre, aucun client généré à maintenir à jour. Chaque requête ci-dessous est réelle : un blog construit sur CMSHub, appelé avec un simple curl.

01 / RÉCUPÉRER LE CONTENU PUBLIÉ

Une requête GET, les enregistrements publiés en JSON

Dès qu’un site active l’API et autorise une collection, ses enregistrements publiés sont à portée d’un simple GET — résolus entièrement à partir de l’en-tête Host, sans clé API pour les données publiques.

  • Seuls les enregistrements PUBLIÉS sont renvoyés — brouillons et révisions non publiées ne fuient jamais par la voie publique.
  • Refus par défaut : un hôte inconnu, un site désactivé ou une collection non autorisée renvoient tous la même erreur 404.
  • ?locale=xx renvoie la variante publiée dans cette langue, avec repli sur la langue par défaut de l’espace de travail.
GEThttps://the-signal.blog/api/posts
curl https://the-signal.blog/api/posts
RESPONSE
{
  "siteId": "the-signal-4f2a",
  "siteName": "The Signal",
  "baseUrl": "https://the-signal.blog",
  "collection": {
    "id": "3b0d6f2a-9c41-4e8a-8f2e-1d4c9a7b6e11",
    "slug": "posts",
    "name": "Posts"
  },
  "data": [
    {
      "id": "a91f2e3c-7d5b-4a10-9c3e-6f8a2b1d0e44",
      "locale": "en",
      "translationOfId": null,
      "data": {
        "title": "Shipping a public content API without a GraphQL schema",
        "slug": "shipping-a-public-content-api",
        "excerpt": "Plain REST beats a bespoke query language when a frontend just needs JSON.",
        "category": "Engineering",
        "author": "Dana Osei",
        "published_at": "2026-09-10"
      }
    },
    {
      "id": "d2c5b8a1-4e3f-4c9d-8b7a-2f1e6d5c4b33",
      "locale": "en",
      "translationOfId": null,
      "data": {
        "title": "What the quality gate actually checks before you publish",
        "slug": "the-quality-gate-explained",
        "excerpt": "Every generated page passes the same checks, whether it's post 1 or post 10,000.",
        "category": "Product",
        "author": "Dana Osei",
        "published_at": "2026-09-04"
      }
    }
  ],
  "meta": {
    "locale": "en",
    "pagination": { "start": 0, "limit": 20, "total": 2, "nextCursor": null }
  }
}
02 / DÉCOUVERTE AUTOMATIQUE

Un sitemap toujours conforme à ce qui est réellement publié

sitemap.xml et robots.txt sont générés à partir du même inventaire de pages que celui lu par l’API de contenu — aucune configuration séparée à synchroniser, rien à régénérer à la main.

  • Reflète l’inventaire de pages en ligne à chaque requête — publiez une page, elle apparaît dans le sitemap.
  • Les alternatives hreflang sont ajoutées automatiquement pour toute page disposant de variantes traduites.
  • /robots.txt indique ce même sitemap aux robots d’exploration, pour chaque site.
GEThttps://the-signal.blog/sitemap.xml
curl https://the-signal.blog/sitemap.xml
RESPONSE
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url><loc>https://the-signal.blog/posts/shipping-a-public-content-api</loc><lastmod>2026-09-10T14:22:00.000Z</lastmod></url>
  <url><loc>https://the-signal.blog/posts/the-quality-gate-explained</loc><lastmod>2026-09-04T09:15:00.000Z</lastmod></url>
</urlset>
03 / FERMÉ PAR DÉFAUT

Vous décidez de ce qu’un site expose

Les API de contenu publiques restent fermées jusqu’à ce que vous configuriez explicitement ce qu’un site expose — aucun endpoint ouvert par défaut qui servirait discrètement du contenu non publié ou en brouillon.

Configuration par site

Activez et configurez l’API publique indépendamment pour chaque site d’un espace de travail.

Contenu publié uniquement

L’API publique ne sert que ce qui a passé le contrôle qualité et est réellement publié — jamais de brouillons.

Versionnée, stable

Chaque route se trouve sous un chemin versionné : une intégration construite aujourd’hui continue de fonctionner à mesure que CMSHub évolue.

APPELEZ UN VRAI ENDPOINT

Activez l’API publique pour un site.

Activez l’API de contenu publique pour l’un de vos sites et récupérez une page générée.