API Notiondesk позволяет публиковать ваши изменения в Notion, как только они будут готовы: синхронизировать весь справочный центр, одну коллекцию или одну статью из скрипта, конвейера CI или собственного инструмента. Вы также можете включать или отключать запланированную синхронизацию. Ваш контент остается в Notion; синхронизация считывает его снова и публикует изменения.
| Метод | Путь | Объем | Делает |
|---|---|---|---|
POST | /sites/{site_id}/sync | sync | Синхронизирует весь справочный центр. |
POST | /sites/{site_id}/categories/{category_id}/sync | sync | Синхронизирует одну коллекцию и содержащиеся в ней статьи. |
POST | /sites/{site_id}/articles/{article_id}/sync | sync | Синхронизирует одну статью |
PATCH | /sites/{site_id}/settings/auto-sync | sync | Включает или выключает запланированную синхронизацию |
Впервые сталкиваетесь с синхронизацией? Сначала прочтите инструкцию по синхронизации справочного центра с Notion .
Синхронизировать весь справочный центр
Маршрут Notiondesk повторно считывает каждую статью и коллекцию из Notion и публикует изменения. Маршрут отвечает 204 No Content, как только синхронизация ставится в очередь, и синхронизация выполняется в фоновом режиме.
Одновременно выполняется только одна синхронизация сайта. Пока синхронизация справочного центра находится в очереди или выполняется (независимо от того, была ли она запланирована, запущена с панели управления или через API), другой триггер выдает ошибку 409 conflict_error. Подождите несколько минут и запустите триггер снова.
Контент, не изменившийся с момента последней синхронизации, не переводится повторно.
Синхронизировать одну коллекцию
Используйте идентификатор коллекции id из списка коллекций . Notiondesk повторно считывает коллекцию и каждую из ее статей из Notion, а затем публикует только те статьи, которые были отредактированы с момента последней синхронизации. Неизмененные статьи не переводятся и не оплачиваются повторно.
Синхронизировать одну статью
Используйте id из списка статей .
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"Чем синхронизация коллекций и статей отличается от синхронизации всего сайта?
| Синхронизация сайта | Синхронизация коллекции или статьи | |
|---|---|---|
| Читает из Notion | Каждая статья и подборка | Один сборник и его статьи или одна статья |
| В это время выполняется еще одна синхронизация того же элемента. | Ответы 409 __СОХРАНЕНО_45__ | Поставляется в очередь еще одна синхронизация. Ответ на conflict_error так и не приходит. |
| Ограничено | Синхронизация по одной за раз | Ваш лимит записи по ключу составляет 20 запросов в минуту. |
Каждая завершенная синхронизация обновляет весь справочный центр. Запускайте синхронизацию один раз после каждого редактирования в Notion, а не по таймеру. Для регулярных обновлений используйте запланированную синхронизацию.
Подтвердите синхронизацию
Триггер синхронизации отвечает 204, когда синхронизация поставлена в очередь, а не когда она завершена. Синхронизации, запущенные через API, не отображаются в статусе синхронизации , который содержит только список запланированных запусков.
Чтобы подтвердить синхронизацию, прочтите опубликованный контент:
- Запустите синхронизацию и запишите время.
- Читайте отредактированную статью с помощью
GET /sites/{site_id}/articles/{article_id}каждые 30 секунд.
- Остановитесь, когда
last_updatedстанет позже указанного вами времени или когдаtextпокажет ваши изменения.
- Если
sync_failedравноtrue, тоsync_error_codeобъясняет причину. Исправьте статью в Notion и выполните повторную синхронизацию.
Включить или выключить запланированную синхронизацию
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}'| Поле | Тип | Примечания |
|---|---|---|
auto_sync_enabled | логический | Синхронизируется ли Notiondesk из Notion по расписанию. |
Маршрут отвечает 204 No Content. Ознакомьтесь с новым состоянием в auto_sync_enabled справочного центра и расписанием в его статусе синхронизации.
- Отправьте логические значения JSON
trueилиfalse. Значения0и"false"считываются какtrue.
- Частоту синхронизации нельзя изменить через API: отправка
auto_sync_frequencyприводит к ответу 400validation_error. Измените её на панели управления.
- Ваш тарифный план должен включать запланированную синхронизацию.
- Включение запланированной синхронизации позволяет запускать платный перевод в автоматическом режиме, даже когда автоматический перевод включен.
Для этого маршрута требуется область видимости sync, а не write, поскольку именно она определяет, когда запускаются автоматические синхронизации.
Ошибки
| Статус | Когда | code |
|---|---|---|
| 400 | Только автоматическая синхронизация: в теле документа содержится неизвестное поле, в том числе auto_sync_frequency | validation_error |
| 403 | Ключ не имеет области видимости sync | insufficient_scope |
| 403 | Центр поддержки отключен, ваш тарифный план не включает запланированную синхронизацию, или создатель ключа не может синхронизировать этот центр поддержки. | permission_denied |
| 404 | Центр поддержки, подборка статей или сама статья отсутствуют в вашем рабочем пространстве. | not_found |
| 409 | Только синхронизация сайта: синхронизация справочного центра уже поставлена в очередь или выполняется. | conflict_error |
| 409 | Запрос с тем же номером Idempotency-Key все еще обрабатывается. | request_in_progress |
conflict_error и request_in_progress — это разные ошибки с одинаковым статусом: ветка на code. См. раздел «Обработка ошибок API Notiondesk, ограничений скорости и повторных попыток» .
Часто задаваемые вопросы
Безопасно ли повторять запуск синхронизации?
Да, с Idempotency-Key. Повторная попытка с тем же ключом отвечает 204 с X-Idempotent-Replay: true и ничего не ставит в очередь, даже пока выполняется первая синхронизация.
Как узнать, когда синхронизация завершилась?
Читайте синхронизированную статью или коллекцию до тех пор, пока last_updated не станет позже, чем ваш триггер, или пока text не отобразит ваше изменение. Не полагайтесь только на sync_in_progress: он может оставаться false в течение нескольких секунд после триггера, прежде чем начнется синхронизация, поставленная в очередь. Синхронизация, запускаемая через API, не отображается в статусе синхронизации.
Следует ли синхронизировать одну статью или весь справочный центр?
Синхронизируйте одну статью после ее редактирования и одну коллекцию после редактирования нескольких статей в ней. Синхронизируйте весь справочный центр после более крупных изменений, таких как перемещение статей между коллекциями.
Можно ли синхронизировать данные из GitHub Actions?
Да. Сохраните ключ как секрет репозитория и вызовите маршрут синхронизации сайта на шаге рабочего процесса. См. раздел «Автоматизация распространенных задач справочного центра с помощью API Notiondesk» .