Lisez les articles, les collections et les entrées du journal des modifications avec l'API Notiondesk

Lisez les articles et les collections du centre d'aide Notiondesk au format Markdown, dans n'importe quelle langue, avec un état synchronisé, et listez les entrées du journal des modifications via l'API REST.

8 minutes de lecture

L'API Notiondesk lit tout ce que publie votre centre d'aide : chaque article et collection, quelle que soit la langue, avec son contenu au format Markdown, son statut de publication et son état de synchronisation, ainsi que les entrées de votre journal des modifications. Utilisez-la pour sauvegarder votre centre d'aide, intégrer votre contenu à un autre outil ou identifier les articles qui n'ont pas pu être synchronisés.

L'API lit le contenu mais ne l'écrit jamais. Vos articles et collections restent dans Notion : pour en modifier un, éditez-le dans Notion et déclenchez une synchronisation .

Dans l'API Notiondesk, une collection est appelée une catégorie .

Méthode Chemin Portée Fait
GET/sites/{site_id}/articlesreadListe des articles dans une seule langue
GET/sites/{site_id}/articles/{article_id}readLit un article avec son contenu Markdown
GET/sites/{site_id}/categoriesreadListe les collections dans une langue, avec leur hiérarchie
GET/sites/{site_id}/categories/{category_id}readLit une collection avec son contenu Markdown
GET/sites/{site_id}/changelogreadListe des entrées du journal des modifications publiées, de la plus récente à la plus ancienne.

Choisissez la langue

Chaque route de cette page accepte un paramètre de requête optionnel locale, tel que ?locale=fr. Sans ce paramètre, la réponse utilise la langue par défaut du centre d'aide. Pour les routes de type liste, locale doit correspondre à l'une des langues prises en charge par le centre d'aide : la langue supported_locales du centre d'aide . Consultez la section « Prise en charge de plusieurs langues dans votre centre d'aide » pour ajouter des langues.

Articles de liste

La liste comprend tous les articles, quel que soit leur statut, y compris les brouillons et les articles archivés, dans l'ordre de leur création. Parcourez-la avec page_size et cursor, comme décrit dans la section Pagination et les requêtes API de la version Notiondesk .

curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/articles?page_size=100&locale=en" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16"
{
  "object": "list",
  "data": [
    {
      "id": "1761580412",
      "title": "Connect your Notion workspace",
      "slug": "connect-your-notion-workspace",
      "status": "published",
      "categories": [
        {"id": "910000002", "name": "Connecting Notion", "slug": "connecting-notion", "locale": "en", "status": "published"}
      ],
      "tags": [{"name": "Setup", "slug": "setup"}],
      "locales_count": 2,
      "updated_at": "2026-10-18T14:39:03+00:00",
      "published_at": "2026-10-05T04:39:04+00:00",
      "locale": "en",
      "reading_time": 3,
      "views_count": 42,
      "reactions_percent": {"smiley": 50, "neutral_face": 25, "disappointed": 25},
      "source_notion_page_id": "3d5001d0-2470-8122-a1b2-c3d4e5f60789",
      "notion_article_page_url": "https://www.notion.so/3d5001d024708122a1b2c3d4e5f60789",
      "sync_in_progress": false,
      "sync_timeout": false,
      "sync_failed": false,
      "sync_error_code": null,
      "auto_translated": false
    }
  ],
  "has_more": true,
  "next_cursor": "OPAQUE_CURSOR"
}
Champ Signification
idL'identifiant de l'article, utilisé comme article_id pour lire l'article
title, slug Le titre de l'article et son chemin d'accès dans le centre d'aide
statusdraft, published, review ou archived. Voir Comment contrôler la visibilité des articles
categoriesLes collections auxquelles appartient l'article, chacune comportant les mentions id, name, slug, locale et status
tagsLes balises de l'article, chacune comportant name et slug
locales_countDans combien de langues l'article existe-t-il ?
__PRÉSERVÉ_85__, __PRÉSERVÉ_84__ Date de dernière modification de l'article et date de publication
localeLa langue de cet article
reading_timeTemps de lecture estimé, en minutes
views_countCombien de fois les lecteurs ont ouvert l'article ?
reactions_percentChaque réaction de lecteur est accompagnée de sa part, en pourcentage, dans l'ensemble des réactions. Le nom des réactions dépend de votre style de feedback.
__PRÉSERVÉ_79__, __PRÉSERVÉ_78__ La page Notion à partir de laquelle l'article est synchronisé, et l'URL de la page Notion de cette langue (null pour une traduction automatique)
sync_in_progress, sync_timeout, sync_failed, sync_error_code Si la synchronisation de l'article est en cours, si la dernière a expiré ou échoué, et pourquoi
auto_translatedQue ce langage ait été produit par traduction automatique
Remarque : Filtrez les résultats dans votre code pour trouver chaque article dont la dernière synchronisation a échoué, puis corrigez-le dans Notion et synchronisez-le à nouveau .sync_failed: true

Lire l'article en format Markdown

curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/articles/1761580412?locale=en" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16"
{
  "id": "1761580412",
  "type": "article",
  "title": "Connect your Notion workspace",
  "slug": "connect-your-notion-workspace",
  "text": "# Connect your Notion workspace\n\nOpen **Settings**, then **Notion**...",
  "url": "https://help.example.com/en/articles/connect-your-notion-workspace",
  "locale": "en",
  "last_updated": "2026-10-18T14:39:03+00:00",
  "category": {"id": "910000002", "title": "Connecting Notion", "slug": "connecting-notion"},
  "tags": ["setup"],
  "truncated": false,
  "author": {"name": "Ada Lovelace"},
  "status": "published",
  "content_available": true,
  "sync_in_progress": false,
  "sync_timeout": false,
  "sync_failed": false,
  "sync_error_code": null
}
Champ Signification
typeToujours __PRÉSERVÉ_69__
textLe contenu de l'article au format Markdown. Vide si aucun contenu n'est encore enregistré.
truncatedtrue lorsque text a été tronqué à 200 000 octets. La troncature se fait toujours sur un caractère entier.
content_availableEst-ce que Notiondesk contient déjà du contenu pour cette langue ?
urlL'adresse publique de l'article
categoryCollection principale de l'article : id, title et slug
tagsLes identifiants des balises de l'article
authorL'auteur de l'article : name

Chaque statut est lisible, vous pouvez donc lire un brouillon avant de le publier. Un article sans traduction dans la réponse demandée locale renvoie 404 not_found.

Liste des collections

Chaque élément est une collection dans la langue demandée, dans l'ordre de création des collections :

Reconstruisez l'arborescence de votre collection avec trois champs :

curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/categories?page_size=100" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16"
{
  "id": "910000001",
  "name": "Getting Started",
  "slug": "getting-started",
  "updated_at": "2026-10-18T14:39:12+00:00",
  "locale": "en",
  "is_parent": true,
  "source_notion_page_id": "5d5001d0-2470-8122-a1b2-c3d4e5f60789",
  "notion_category_page_url": "https://www.notion.so/5d5001d024708122a1b2c3d4e5f60789",
  "sync_in_progress": false,
  "sync_timeout": false,
  "sync_failed": false,
  "sync_error_code": null,
  "parent_ids": [],
  "children_ids": ["910000002"],
  "locales_count": 2,
  "status": "published",
  "auto_translated": false
}
Champ Signification
is_parenttrue pour une collection au sommet de la hiérarchie
parent_idsLes collections juste au-dessus de celle-ci
children_idsLes collections juste en dessous de celle-ci

Cette liste ne contient pas le nombre d'articles. Pour compter les articles d'une collection, listez-les et regroupez-les par categories. Découvrez comment les collections organisent votre centre d'aide dans la section « Utiliser les collections pour organiser vos articles » .

Lire une collection

La réponse a la même forme qu'un article : type est category, title, slug, url, status, les champs de synchronisation, et text avec le contenu propre de la collection au format Markdown, vide lorsqu'il n'y en a pas.

Liste des entrées du journal des modifications

Le journal des modifications répertorie les articles publiés, classés par ordre chronologique inverse. Configurez-le en suivant les instructions de la section « Configuration des journaux des modifications » de votre centre d'aide .

curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/categories/910000001?locale=en" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16"
curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/changelog?page_size=50&locale=en" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16"
{
  "object": "list",
  "data": [
    {
      "id": "article:1761497350",
      "title": "Multilingual sync is now available",
      "slug": "multilingual-sync-is-now-available",
      "text": "Help centers on the Enterprise plan can now sync every configured locale in a single run instead of one language at a time.",
      "published_at": "2026-10-13T09:12:44+00:00",
      "last_updated": "2026-10-18T14:39:03+00:00",
      "tags": [],
      "url": "https://help.example.com/en/changelogs",
      "locale": "en"
    }
  ],
  "has_more": true,
  "next_cursor": "OPAQUE_CURSOR"
}
Champ Signification
idarticle: suivi de l'identifiant de l'article. Supprimez le préfixe pour lire l'article complet.
textLe texte brut de l'entrée, généralement un extrait d'environ 30 mots
published_at, last_updated Date de publication et date de dernière modification de l'article
tagsLes slugs des balises de l'entrée
urlVotre page de journal des modifications dans cette langue

Bon à savoir :

  • Une entrée n'apparaît que lorsque son journal des modifications est publié dans la langue demandée.
  • Sur un centre d'aide utilisant des comptes invités, la liste n'affiche que les entrées visibles par tous les lecteurs.
  • La liste ne contient au maximum que les 1 000 entrées les plus récentes. Au-delà, has_more devient false même si des entrées plus anciennes existent.
  • Il arrive exceptionnellement, lors d'une interruption de service temporaire, qu'une entrée soit omise ou répétée lors de la lecture d'une liste. Veuillez la consulter à nouveau ultérieurement pour obtenir la liste complète.

Erreurs

Statut Quandcode
400 page_size est hors de la plage 1 à 100, cursor est invalide, locale n'est pas une langue prise en charge par le centre d'aide (listes) ou ne comporte pas entre 2 et 10 caractères (lecture unique), ou la requête contient un paramètre inconnuvalidation_error
403 La clé ne possède pas la portée readinsufficient_scope
403 Journal des modifications uniquement : le journal des modifications est désactivé ou non inclus dans votre forfait, ou les analyses du centre d’aide sont désactivées.permission_denied
404 Le centre d'aide, l'article ou la collection n'existe pas dans votre espace de travail, il n'a pas de traduction dans locale, ou le journal des modifications est activé mais ne contient aucune collection de journaux des modificationsnot_found

Chaque route peut également répondre aux requêtes invalid_version, authentication_error, rate_limited et internal_error. Voir Gestion des erreurs, des limites de débit et des nouvelles tentatives de l'API Notiondesk .

Questions fréquentes

Puis-je créer ou modifier des articles avec l'API Notiondesk ?

Non. Notion est la source de référence pour votre contenu. Modifiez l'article dans Notion, puis déclenchez une synchronisation avec l'API ou attendez la synchronisation planifiée.

La liste des articles inclut-elle les brouillons ?

Oui. La liste et le chemin de lecture incluent tous les statuts : draft, published, review et archived. Filtrez les résultats dans votre code sur status pour ne conserver que les articles publiés.

Comment exporter tous les articles au format Markdown ?

Listez les articles, puis lisez chacun d'eux en fonction de son id. L' article « Exemples » contient un script de sauvegarde complet.

Que signifie truncated: true ?

Le texte Markdown de l'article est plus long que 200 000 octets, donc text contient les 200 000 premiers octets, coupés sur un caractère entier.

Pourquoi la variable notion_article_page_url est-elle vide pour certaines langues ?

Ce texte a été produit par traduction automatique, il ne possède donc pas de page Notion dédiée.

Et ensuite ?

Articles associés

Cette page a-t-elle été utile ?

Encore besoin d'aide ? Écrivez-nous