Aller au contenu

Référence

API de contenu

Votre front peut lui aussi lire l’historique. Il peut afficher une version passée, ou montrer ce qui a changé entre deux versions sur une page publique « modifications ». L’API est en lecture seule et fermée par défaut.

1. L’ouvrir pour un type de contenu

  1. Allez dans Réglages → Types de contenu.
  2. Sur la ligne du type de contenu, choisissez API de contenu : Versions publiées ou Toutes les versions enregistrées.
  3. Enregistrez.
ModeCe que l’API renvoie
FerméeRien. Le type de contenu répond comme s’il n’existait pas (404).
Versions publiéesLes versions qui ont été publiées. Un type de contenu sans brouillon ni publication est en ligne à chaque enregistrement : là, ce sont donc toutes les versions enregistrées.
Toutes les versions enregistréesToutes les versions enregistrées, brouillons compris.

Quel que soit le mode, l’API ne renvoie jamais les auto-sauvegardes (travail en cours) ni les instantanés de la corbeille.

2. Créer un jeton

Dans Réglages → Jetons d’API, créez un jeton Personnalisé. Sous Revisionary → versions, cochez les actions utiles : list, get, compare. Vous pouvez aussi accorder ces actions à un rôle du plugin Users & Permissions.

3. L’appeler

RequêteRenvoie
GET /api/revisionary/versions?contentType=articles&documentId=…&locale=frLes versions d’une entrée, de la plus récente à la plus ancienne. Utilisez page et pageSize (100 au plus) pour paginer.
GET /api/revisionary/versions/:idUne version au même format qu’un document REST. Les médias et les relations sont peuplés, et les composants et zones dynamiques sont inclus.
GET /api/revisionary/compare?from=:id&to=:idLes champs modifiés entre deux versions de la même entrée. Les champs texte incluent les différences mot à mot.

Pour contentType, vous pouvez passer l’uid (api::article.article), le nom au singulier ou le nom au pluriel.

bash
curl -H "Authorization: Bearer $REVISIONARY_API_TOKEN" \
  "https://cms.example.com/api/revisionary/versions?contentType=articles&documentId=x8k2m4p1&locale=fr"
json
{
  "data": [
    {
      "id": 412,
      "label": "v7",
      "name": "Validé par le juridique",
      "state": "published",
      "locale": "fr",
      "title": "Guide ISO 9001",
      "createdAt": "2026-10-01T10:00:00.000Z",
      "changes": { "added": 0, "modified": 2, "removed": 0, "fields": ["title", "body"] }
    }
  ],
  "meta": { "contentType": "api::article.article", "documentId": "x8k2m4p1", "locale": "fr",
            "pagination": { "page": 1, "pageSize": 25, "pageCount": 1, "total": 1 } }
}

Dans un composant serveur Next.js, le jeton reste côté serveur :

js
const res = await fetch(
  process.env.STRAPI_URL + '/api/revisionary/compare?from=' + from + '&to=' + to,
  { headers: { Authorization: 'Bearer ' + process.env.REVISIONARY_API_TOKEN }, cache: 'no-store' },
);
const { data } = await res.json();
// data.changes : [{ field, type, change: 'added' | 'modified' | 'removed', before, after, text? }]
// text : [{ op: 'equal' | 'insert' | 'delete', text }] — affichez les ajouts en vert et les suppressions barrées.

Ce que l’API ne renvoie jamais

  • Les champs privés, les mots de passe et les champs exclus du versionnage.
  • L’auteur d’une modification, son adresse IP et les notes internes. Une version dit seulement ce qui a changé.
  • Le contenu lié que le jeton ne peut pas lire. Le filtre de sortie de Strapi s’applique à chaque réponse.
Cette page vous a-t-elle aidé ?
Mis à jour le 1 novembre 2026