Если вы когда-либо пытались автоматизировать работу с 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] - Цитаты
> - Блоки кода с подсветкой синтаксиса
- Таблицы
- Изображения
 - Жирный, курсив, ссылки — всё стандартное
Ряд специфичных блоков 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 — и пользуйтесь.