Как работать с Notion API через Markdown? Теперь Markdown поддерживается нативно — конец эпохи блоков и конвертеров

Если вы когда-либо пытались автоматизировать работу с Notion через API, вы знаете боль. Вместо того чтобы просто отправить текст, нужно было разбирать каждый абзац на JSON-блоки, писать конвертеры туда и обратно, следить за вложенностью и ограничениями. Те времена прошли.

С версией Notion API 2026-03-11 появилась нативная поддержка Markdown — теперь страницы можно создавать, читать и обновлять прямо в markdown-формате.

Как было раньше

До этого обновления работа с контентом страниц через API выглядела примерно так:

{
  "children": [
    {
      "object": "block",
      "type": "paragraph",
      "paragraph": {
        "rich_text": [
          { "type": "text", "text": { "content": "Привет, мир!" } }
        ]
      }
    },
    {
      "object": "block",
      "type": "heading_2",
      "heading_2": {
        "rich_text": [
          { "type": "text", "text": { "content": "Заголовок" } }
        ]
      }
    }
  ]
}

Для каждого элемента — свой тип блока, своя структура rich_text, своя логика. Даже простой документ превращался в сотни строк JSON.

Проблема стала популярной

На Reddit разработчики регулярно спрашивали, как вообще добавить markdown через Notion API — и ответ всегда был один: «никак напрямую, нужно конвертировать». Появились сторонние библиотеки вроде md-notion, которые занимались этой конвертацией.

В n8n ситуация была ещё сложнее — для трансформации markdown в блоки Notion нужны были многошаговые workflow со специальными функциями и маппингом. Готовые решения всё равно требовали ручной настройки под каждый тип контента.

Как стало сейчас

Теперь всё сводится к одному полю. Три операции, три эндпоинта:

ОперацияEndpointОписание
СоздатьPOST /v1/pagesПередай markdown в поле markdown
ПрочитатьGET /v1/pages/:id/markdownПолучи весь контент страницы как markdown
ОбновитьPATCH /v1/pages/:id/markdownВставь или замени контент

Пример создания страницы

curl -X POST <https://api.notion.com/v1/pages> \\
  -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \\
  -H "Content-Type: application/json" \\
  -H "Notion-Version: 2026-03-11" \\
  --data '{
    "parent": { "database_id": "your-database-id" },
    "properties": {
      "title": { "title": [{ "text": { "content": "Мой пост" } }] }
    },
    "markdown": "# Заголовок\\n\\nЭто параграф с **жирным** текстом.\\n\\n## Раздел\\n\\n- Пункт 1\\n- Пункт 2"
  }'

Никаких конвертеров. Никаких промежуточных библиотек. Просто markdown.

Что поддерживается

API понимает большинство стандартных конструкций:

  • Заголовки # / ## / ###
  • Списки маркированные и нумерованные
  • Чеклисты - [ ] и - [x]
  • Цитаты >
  • Блоки кода с подсветкой синтаксиса
  • Таблицы
  • Изображения ![alt](url)
  • Жирный, курсив, ссылки — всё стандартное

Ряд специфичных блоков Notion (закладки, embed, link preview) пока не поддерживается и отображается как <unknown> — для них по-прежнему нужен block API.

Что это меняет на практике

Для разработчиков: интеграции с Notion стали в разы проще. LLM-агенты, которые генерируют контент, могут напрямую писать в Notion без промежуточного слоя конвертации.

Для n8n и других no-code инструментов: вместо многошаговых workflow достаточно одного HTTP-запроса с полем markdown.

Для AI-агентов: особенно полезно для систем, которые генерируют структурированный контент — теперь можно отдавать markdown напрямую в Notion без дополнительной обработки.

Итог

Notion сделал очевидную вещь, которую разработчики ждали давно. Поддержка нативного markdown в API — это не просто удобство, это смена парадигмы работы с контентом. Писать интеграции стало значительно быстрее и дешевле в поддержке.

Версия API: 2026-03-11. Обновляйте заголовок Notion-Version — и пользуйтесь.

Фото аватара

Руслан Комаров

Работаю с нейросетями для бизнеса. Тестирую GPT, Midjourney и аналоги в контексте предпринимательства.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *