Перейти к содержанию

On this page API Notion через curl: страницы, базы данных, блоки, поиск.

Метаданные навыка

| | |---|---| |Источник| Встроенный (устанавливается по умолчанию) | |Путь| skills/productivity/notion | |Версия| 1.0.0 | |Автор| community | |Лицензия| MIT | |Теги| Notion, Productivity, Notes, Database, API |

Справочник: полный SKILL.md

info Ниже приведено полное определение навыка, которое Hermes загружает при его активации. Это инструкции, которые видит агент, когда навык активен.

Notion API

Используйте Notion API через curl для создания, чтения и обновления страниц, баз данных (источников данных) и блоков. Никаких дополнительных инструментов не требуется — только curl и ключ API Notion.

Предварительные требования

  1. Создайте интеграцию на https://notion.so/my-integrations
  2. Скопируйте ключ API (начинается с ntn_ или secret_)
  3. Сохраните его в ~/.hermes/.env: [code] NOTION_API_KEY=ntn_your_key_here

[/code] 4. Важно: Предоставьте доступ к целевым страницам/базам данных вашей интеграции в Notion (нажмите «...» → «Connect to» → название вашей интеграции)

Основы API

Все запросы используют этот шаблон: [code] curl -s -X GET \"https://api.notion.com/v1/...\" \
-H \"Authorization: Bearer $NOTION_API_KEY\" \
-H \"Notion-Version: 2025-09-03\" \
-H \"Content-Type: application/json\"

[/code] Заголовок Notion-Version обязателен. Этот навык использует 2025-09-03 (последняя версия). В этой версии базы данных называются «источниками данных» (data sources) в API.

Распространённые операции

Поиск

[code] curl -s -X POST \"https://api.notion.com/v1/search\" \
-H \"Authorization: Bearer $NOTION_API_KEY\" \
-H \"Notion-Version: 2025-09-03\" \
-H \"Content-Type: application/json\" \
-d '{\"query\": \"page title\"}'

[/code]

Получить страницу

[code] curl -s \"https://api.notion.com/v1/pages/{page_id}\" \
-H \"Authorization: Bearer $NOTION_API_KEY\" \
-H \"Notion-Version: 2025-09-03\"

[/code]

Получить содержимое страницы (блоки)

[code] curl -s \"https://api.notion.com/v1/blocks/{page_id}/children\" \
-H \"Authorization: Bearer $NOTION_API_KEY\" \
-H \"Notion-Version: 2025-09-03\"

[/code]

Создать страницу в базе данных

[code] curl -s -X POST \"https://api.notion.com/v1/pages\" \
-H \"Authorization: Bearer $NOTION_API_KEY\" \
-H \"Notion-Version: 2025-09-03\" \
-H \"Content-Type: application/json\" \
-d '{
\"parent\": {\"database_id\": \"xxx\"},
\"properties\": {
\"Name\": {\"title\": [{\"text\": {\"content\": \"New Item\"}}]},
\"Status\": {\"select\": {\"name\": \"Todo\"}}
}
}'

[/code]

Запросить базу данных

[code] curl -s -X POST \"https://api.notion.com/v1/data_sources/{data_source_id}/query\" \
-H \"Authorization: Bearer $NOTION_API_KEY\" \
-H \"Notion-Version: 2025-09-03\" \
-H \"Content-Type: application/json\" \
-d '{
\"filter\": {\"property\": \"Status\", \"select\": {\"equals\": \"Active\"}},
\"sorts\": [{\"property\": \"Date\", \"direction\": \"descending\"}]
}'

[/code]

Создать базу данных

[code] curl -s -X POST \"https://api.notion.com/v1/data_sources\" \
-H \"Authorization: Bearer $NOTION_API_KEY\" \
-H \"Notion-Version: 2025-09-03\" \
-H \"Content-Type: application/json\" \
-d '{
\"parent\": {\"page_id\": \"xxx\"},
\"title\": [{\"text\": {\"content\": \"My Database\"}}],
\"properties\": {
\"Name\": {\"title\": {}},
\"Status\": {\"select\": {\"options\": [{\"name\": \"Todo\"}, {\"name\": \"Done\"}]}},
\"Date\": {\"date\": {}}
}
}'

[/code]

Обновить свойства страницы

[code] curl -s -X PATCH \"https://api.notion.com/v1/pages/{page_id}\" \
-H \"Authorization: Bearer $NOTION_API_KEY\" \
-H \"Notion-Version: 2025-09-03\" \
-H \"Content-Type: application/json\" \
-d '{\"properties\": {\"Status\": {\"select\": {\"name\": \"Done\"}}}}'

[/code]

Добавить содержимое на страницу

[code] curl -s -X PATCH \"https://api.notion.com/v1/blocks/{page_id}/children\" \
-H \"Authorization: Bearer $NOTION_API_KEY\" \
-H \"Notion-Version: 2025-09-03\" \
-H \"Content-Type: application/json\" \
-d '{
\"children\": [
{\"object\": \"block\", \"type\": \"paragraph\", \"paragraph\": {\"rich_text\": [{\"text\": {\"content\": \"Hello from Hermes!\"}}]}}
]
}'

[/code]

Типы свойств

Распространённые форматы свойств для элементов базы данных: * Title: {\"title\": [{\"text\": {\"content\": \"...\"}}]} * Rich text: {\"rich_text\": [{\"text\": {\"content\": \"...\"}}]} * Select: {\"select\": {\"name\": \"Option\"}} * Multi-select: {\"multi_select\": [{\"name\": \"A\"}, {\"name\": \"B\"}]} * Date: {\"date\": {\"start\": \"2026-01-15\", \"end\": \"2026-01-16\"}} * Checkbox: {\"checkbox\": true} * Number: {\"number\": 42} * URL: {\"url\": \"https://...\"} * Email: {\"email\": \"user@example.com\"} * Relation: {\"relation\": [{\"id\": \"page_id\"}]}

Ключевые отличия в версии API 2025-09-03

  • Базы данных → Источники данных: Используйте эндпоинты /data_sources/ для запросов и получения данных
  • Два ID: Каждая база данных имеет как database_id, так и data_source_id
    • Используйте database_id при создании страниц (parent: {\"database_id\": \"...\"})
    • Используйте data_source_id при запросах (POST /v1/data_sources/{id}/query)
  • Результаты поиска: Базы данных возвращаются как \"object\": \"data_source\" с их data_source_id

Примечания