L'API Notiondesk vous permet de publier vos modifications Notion dès qu'elles sont prêtes : synchronisez un centre d'aide entier, une collection ou un article, à partir d'un script, d'un pipeline d'intégration continue ou de votre propre outil. Vous pouvez également activer ou désactiver la synchronisation planifiée. Votre contenu reste dans Notion ; une synchronisation le relit et publie les modifications.
| Méthode | Chemin | Portée | Fait |
|---|---|---|---|
POST | /sites/{site_id}/sync | sync | Synchronise l'intégralité du centre d'aide |
POST | /sites/{site_id}/categories/{category_id}/sync | sync | Synchronise une collection et ses articles |
POST | /sites/{site_id}/articles/{article_id}/sync | sync | Synchronise un article |
PATCH | /sites/{site_id}/settings/auto-sync | sync | Active ou désactive la synchronisation programmée |
Vous débutez avec la synchronisation ? Lisez d’abord « Comment synchroniser votre centre d’aide avec Notion » .
Synchroniser un centre d'aide complet
Notiondesk relit chaque article et collection de Notion et publie les modifications. La route répond 204 No Content dès que la synchronisation est mise en file d'attente, et celle-ci s'exécute en arrière-plan.
Une seule synchronisation de site est exécutée à la fois. Pendant qu'une synchronisation du centre d'aide est en attente ou en cours (qu'elle soit planifiée, lancée depuis le tableau de bord ou via l'API), un autre déclencheur renvoie l'erreur 409 conflict_error. Veuillez patienter quelques minutes avant de relancer la synchronisation.
Les contenus qui n'ont pas été modifiés depuis leur dernière synchronisation ne sont pas traduits à nouveau.
Synchroniser une collection
Utilisez la collection id de la liste des collections . Notiondesk lit à nouveau la collection et chacun de ses articles depuis Notion, puis publie uniquement les articles modifiés depuis leur dernière synchronisation. Les articles inchangés ne sont ni traduits ni facturés à nouveau.
Synchroniser un article
Utilisez l'article id de la liste des articles .
curl -i -X POST "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/sync" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Idempotency-Key: 9b2e4c1a-sync-after-notion-edit"curl -i -X POST "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/categories/1761493027/sync" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Idempotency-Key: 2c8e5b7d-sync-billing"curl -i -X POST "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/articles/1761580412/sync" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Idempotency-Key: 4d7a0f3e-sync-getting-started"En quoi la synchronisation des collections et des articles diffère-t-elle de la synchronisation d'un site ?
| Synchronisation du site | Synchronisation de collection ou d'article | |
|---|---|---|
| Lectures à partir de Notion | Chaque article et collection | Une collection et ses articles, ou un article |
| Pendant qu'une autre synchronisation du même élément est en cours. | Réponses 409 __PRÉSERVÉ_45__ | Lance une autre synchronisation. Elle ne répond jamais à conflict_error |
| Limité par | Une synchronisation à la fois | Votre budget d'écriture est de 20 requêtes par minute. |
Chaque synchronisation effectuée actualise l'intégralité du centre d'aide. Déclenchez une synchronisation après chaque modification dans Notion, et non à intervalles réguliers. Pour des mises à jour régulières, utilisez plutôt la synchronisation planifiée.
Confirmer une synchronisation
Un déclencheur de synchronisation répond 204 lorsque la synchronisation est mise en file d'attente, et non lorsqu'elle est terminée. Les synchronisations lancées via l'API n'apparaissent pas dans l' état de synchronisation , qui ne répertorie que les exécutions planifiées.
Pour confirmer une synchronisation, consultez le contenu qu'elle publie :
- Déclenchez la synchronisation et notez l'heure.
- Lisez l'article modifié avec
GET /sites/{site_id}/articles/{article_id}toutes les 30 secondes.
- Arrêtez-vous lorsque
last_updatedest plus tard que l'heure que vous avez notée, ou lorsquetextaffiche votre modification.
- Si
sync_failedesttrue,sync_error_codeexplique pourquoi. Corrigez l'article dans Notion et synchronisez à nouveau.
Activer ou désactiver la synchronisation programmée
curl -i -X PATCH "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/settings/auto-sync" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Content-Type: application/json" \
-d '{"auto_sync_enabled": true}'| Champ | Taper | Notes |
|---|---|---|
auto_sync_enabled | booléen | Que Notiondesk se synchronise avec Notion selon une planification |
La route répond 204 No Content. Lisez le nouvel état dans auto_sync_enabled du centre d'aide et la planification dans son état de synchronisation.
- Envoyez les booléens JSON
trueoufalse. Les valeurs0et"false"sont lues commetrue.
- La fréquence de synchronisation ne peut pas être modifiée via l'API : l'envoi de
auto_sync_frequencyrenvoie 400validation_error. Modifiez-la dans le tableau de bord.
- Votre forfait doit inclure une synchronisation programmée.
- L'activation de la synchronisation planifiée permet aux synchronisations sans intervention de démarrer la traduction facturée même lorsque la traduction automatique est activée.
Cette route a besoin de la portée sync, et non de write, car elle détermine quand les synchronisations non supervisées s'exécutent.
Erreurs
| Statut | Quand | code |
|---|---|---|
| 400 | Synchronisation automatique uniquement : le corps contient un champ inconnu, notamment auto_sync_frequency | validation_error |
| 403 | La clé ne possède pas la portée sync | insufficient_scope |
| 403 | Le centre d'aide est désactivé, votre forfait ne comprend pas la synchronisation planifiée ou le créateur de la clé ne peut pas synchroniser ce centre d'aide. | permission_denied |
| 404 | Le centre d'aide, la collection ou l'article n'existe pas dans votre espace de travail. | not_found |
| 409 | Synchronisation du site uniquement : une synchronisation du centre d’aide est déjà en cours ou en attente. | conflict_error |
| 409 | Une requête portant le même identifiant Idempotency-Key est toujours en cours de traitement. | request_in_progress |
conflict_error et request_in_progress sont des erreurs différentes ayant le même statut : branchement sur code. Voir Gestion des erreurs d’API, des limites de débit et des nouvelles tentatives de Notiondesk .
Questions fréquentes
Est-il sûr de réessayer un déclencheur de synchronisation ?
Oui, avec un Idempotency-Key. Une nouvelle tentative avec la même clé répond 204 par X-Idempotent-Replay: true et ne met rien en file d'attente, même si la première synchronisation est toujours en cours.
Comment savoir quand une synchronisation est terminée ?
Lisez l'article ou la collection synchronisée jusqu'à ce que last_updated soit postérieur à votre déclencheur, ou que text affiche votre modification. Ne vous fiez pas uniquement à sync_in_progress : il peut rester à false pendant quelques secondes après le déclencheur, avant que la synchronisation en file d'attente ne démarre. Les synchronisations déclenchées par l'API ne sont pas affichées dans l'état de la synchronisation.
Dois-je synchroniser un seul article ou l'intégralité du centre d'aide ?
Synchronisez un article après l'avoir modifié, et une collection après y avoir modifié plusieurs articles. Synchronisez l'ensemble du centre d'aide après des modifications importantes, comme le déplacement d'articles entre collections.
Puis-je synchroniser depuis GitHub Actions ?
Oui. Stockez la clé comme secret de référentiel et appelez la route de synchronisation du site dans une étape de flux de travail. Consultez la section Automatisation des tâches courantes du centre d'aide avec l'API Notiondesk .