API Notiondesk считывает все, что публикует ваш справочный центр: каждую статью и подборку на любом языке, с их содержимым в формате Markdown, статусом публикации и состоянием синхронизации, а также ваши опубликованные записи в журнале изменений. Используйте его для резервного копирования вашего справочного центра, передачи контента в другой инструмент или проверки того, какие статьи не удалось синхронизировать.
API считывает контент, но никогда не записывает его. Ваши статьи и коллекции остаются в Notion: чтобы изменить статью или коллекцию, отредактируйте её в Notion и запустите синхронизацию .
В API Notiondesk коллекция называется категорией .
| Метод | Путь | Объем | Делает |
|---|---|---|---|
GET | /sites/{site_id}/articles | read | Список статей на одном языке |
GET | /sites/{site_id}/articles/{article_id} | read | Прочитывает одну статью с содержимым, размеченным в формате Markdown. |
GET | /sites/{site_id}/categories | read | Список коллекций на одном языке с указанием их иерархии. |
GET | /sites/{site_id}/categories/{category_id} | read | Прочитывает одну коллекцию с её содержимым в формате Markdown. |
GET | /sites/{site_id}/changelog | read | Список опубликованных записей в журнале изменений, начиная с самых новых. |
Выберите язык
Каждый маршрут на этой странице принимает необязательный параметр запроса locale, например ?locale=fr. Без него ответ будет использовать язык по умолчанию справочного центра. Для маршрутов списка locale должен быть одним из языков, которые обслуживает справочный центр: supported_locales справочного центра . Для добавления языков ознакомьтесь с разделом «Поддержка нескольких языков в вашем справочном центре» .
Список статей
Список включает все статьи во всех статусах, черновики и архивные статьи, в порядке их создания. Пролистывайте его с помощью page_size и cursor, как описано в разделе «Пагинация» и запросах API версии 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"
}| Поле | Значение |
|---|---|
id | Идентификатор статьи, используемый для чтения статьи, — article_id. |
title, slug | Заголовок статьи и раздел с её ссылкой в справочном центре. |
status | draft, published, review или archived. См. раздел «Как управлять видимостью статьи». |
categories | Статья относится к коллекциям, каждая из которых содержит id, name, slug, locale и status |
tags | Теги статьи, каждый из которых содержит name и slug |
locales_count | На скольких языках существует эта статья? |
updated_at, published_at | Когда в последний раз вносились изменения в статью и когда она была опубликована. |
locale | Язык данного элемента |
reading_time | Примерное время чтения в минутах |
views_count | Сколько раз читатели открыли статью? |
reactions_percent | Каждая реакция читателя с указанием её доли во всех реакциях в процентах. Названия реакций зависят от вашего стиля обратной связи. |
source_notion_page_id, notion_article_page_url | Страница Notion, с которой синхронизируется статья, и URL-адрес страницы Notion для данного языка (null для автоматического перевода) |
sync_in_progress, sync_timeout, sync_failed, sync_error_code | Проводится ли синхронизация статьи, и произошла ли последняя ошибка или превышение времени ожидания, и почему. |
auto_translated | Был ли этот язык создан с помощью автоматического перевода? |
sync_failed: trueПрочитайте статью в формате 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
}| Поле | Значение |
|---|---|
type | Всегда __СОХРАНЕНО_69__ |
text | Содержимое статьи в формате Markdown. Пусто, если содержимое еще не сохранено. |
truncated | true, когда text был обрезан на отметке 200 000 байт. Обрезка всегда происходит на целом символе. |
content_available | Содержит ли Notiondesk контент для этого языка? |
url | Публичное обращение к статье |
category | Основная подборка статьи: id, title и slug |
tags | Слаги тегов статьи |
author | Автор статьи: name |
Каждый статус доступен для чтения, поэтому вы можете прочитать черновик перед публикацией. Статья без перевода в запрошенном locale отвечает 404 not_found.
Список коллекций
Каждый элемент представляет собой коллекцию на запрошенном языке в порядке создания коллекций:
Перестройте дерево коллекции, используя три поля:
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
}| Поле | Значение |
|---|---|
is_parent | true для коллекции, находящейся на вершине иерархии |
parent_ids | Коллекции, расположенные непосредственно над этой. |
children_ids | Под этой подборкой находятся следующие коллекции. |
В списке нет данных о количестве статей. Чтобы подсчитать количество статей в коллекции, перечислите статьи и сгруппируйте их по categories. Узнайте, как коллекции организуют ваш справочный центр, в разделе «Использование коллекций для организации статей» .
Прочитайте сборник
Ответ имеет ту же структуру, что и статья: type — это category, title, slug, url, status, поля синхронизации, и text с собственным содержимым коллекции в формате Markdown, пустое, если его нет.
Список записей об изменениях
В журнале изменений отображаются опубликованные статьи, размещенные в ваших коллекциях журналов изменений, начиная с самых новых. Настройте его с помощью раздела «Настройка журналов изменений» в вашем справочном центре .
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"
}| Поле | Значение |
|---|---|
id | article:, за которым следует идентификатор статьи. Удалите префикс, чтобы прочитать полную запись, используя маршрут по статье. |
text | Текст записи в чистом виде, обычно это отрывок примерно из 30 слов. |
published_at, last_updated | Дата публикации записи и дата последнего изменения. |
tags | Слизни тегов записи |
url | Ваша страница с журналом изменений на этом языке. |
Полезно знать:
- Запись отображается только в том случае, если соответствующий сборник изменений опубликован на запрошенном языке.
- В справочном центре, использующем гостевые учетные записи, отображается только та информация, которая доступна всем пользователям.
- Список содержит максимум 1000 новых записей. После этого
has_moreстановитсяfalse, даже если существуют более старые записи.
- В редких случаях, во время временных проблем с обслуживанием, при прочтении списка может быть пропущена или повторена какая-либо запись. Прочитайте его позже, чтобы увидеть полный список.
Ошибки
| Статус | Когда | code |
|---|---|---|
| 400 | Значение page_size выходит за пределы диапазона от 1 до 100, значение cursor недопустимо, значение locale не соответствует языку, который обслуживает справочный центр (в списках), или не содержит от 2 до 10 символов (для одного чтения), или запрос содержит неизвестный параметр. | validation_error |
| 403 | Ключ не имеет области видимости read | insufficient_scope |
| 403 | Только журнал изменений: журнал изменений отключен или не включен в ваш тарифный план, либо аналитика в центре поддержки отключена. | permission_denied |
| 404 | Центр поддержки, статья или подборка отсутствуют в вашем рабочем пространстве, у них нет перевода в locale, или список изменений включен, но отсутствует подборка изменений. | not_found |
Каждый маршрут также может отвечать на запросы invalid_version, authentication_error, rate_limited и internal_error. См. раздел «Обработка ошибок API Notiondesk, ограничений скорости и повторных попыток» .
Часто задаваемые вопросы
Могу ли я создавать или редактировать статьи с помощью API Notiondesk?
Нет. Notion — это источник достоверной информации о вашем контенте. Отредактируйте статью в Notion, затем запустите синхронизацию с API или дождитесь запланированной синхронизации.
Включены ли в список статей черновики?
Да. Список и маршрут чтения включают все статусы: draft, published, review и archived. Отфильтруйте результаты в вашем коде по статусу status, чтобы оставить только опубликованные статьи.
Как экспортировать все статьи в формате Markdown?
Перечислите статьи, затем прочтите каждую по ее id. В статье с примерами есть полный скрипт резервного копирования.
Что означает truncated: true?
truncated: true?Разметка статьи превышает 200 000 байт, поэтому text содержит первые 200 000 байт, обрезанные по целому символу.
Почему для некоторых языков значение notion_article_page_url пустое?
notion_article_page_url пустое?Этот текст был создан с помощью автоматического перевода, поэтому у него нет собственной страницы в Notion.