Читайте статьи, подборки и записи об изменениях с помощью API Notiondesk

Читайте статьи и подборки справочного центра Notiondesk в формате Markdown на любом языке с синхронизацией состояния и просматривайте список изменений через REST API.

3 мин чтения

API Notiondesk считывает все, что публикует ваш справочный центр: каждую статью и подборку на любом языке, с их содержимым в формате Markdown, статусом публикации и состоянием синхронизации, а также ваши опубликованные записи в журнале изменений. Используйте его для резервного копирования вашего справочного центра, передачи контента в другой инструмент или проверки того, какие статьи не удалось синхронизировать.

API считывает контент, но никогда не записывает его. Ваши статьи и коллекции остаются в Notion: чтобы изменить статью или коллекцию, отредактируйте её в Notion и запустите синхронизацию .

В API Notiondesk коллекция называется категорией .

Метод Путь Объем Делает
GET/sites/{site_id}/articlesreadСписок статей на одном языке
GET/sites/{site_id}/articles/{article_id}readПрочитывает одну статью с содержимым, размеченным в формате Markdown.
GET/sites/{site_id}/categoriesreadСписок коллекций на одном языке с указанием их иерархии.
GET/sites/{site_id}/categories/{category_id}readПрочитывает одну коллекцию с её содержимым в формате Markdown.
GET/sites/{site_id}/changelogreadСписок опубликованных записей в журнале изменений, начиная с самых новых.

Выберите язык

Каждый маршрут на этой странице принимает необязательный параметр запроса 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 Заголовок статьи и раздел с её ссылкой в ​​справочном центре.
statusdraft, 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Был ли этот язык создан с помощью автоматического перевода?
Примечание: Отфильтруйте результаты в своем коде, чтобы найти все статьи, последняя синхронизация которых не удалась, затем исправьте это в Notion и синхронизируйте снова .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. Пусто, если содержимое еще не сохранено.
truncatedtrue, когда 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_parenttrue для коллекции, находящейся на вершине иерархии
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"
}
Поле Значение
idarticle:, за которым следует идентификатор статьи. Удалите префикс, чтобы прочитать полную запись, используя маршрут по статье.
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 Ключ не имеет области видимости readinsufficient_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?

Разметка статьи превышает 200 000 байт, поэтому text содержит первые 200 000 байт, обрезанные по целому символу.

Почему для некоторых языков значение notion_article_page_url пустое?

Этот текст был создан с помощью автоматического перевода, поэтому у него нет собственной страницы в Notion.

Что дальше?

Связанные статьи

Эта страница была полезной?

Still need help? Ask us