Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Use the Notion API (2026-01-15) to create, move, update, and manage pages, databases, blocks, and apply templates with support for locking and data source qu...
Use the Notion API (2026-01-15) to create, move, update, and manage pages, databases, blocks, and apply templates with support for locking and data source qu...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
All requests need: NOTION_KEY=$(cat ~/.config/notion/api_key) curl -X GET "[https://api.notion.com/v1/](https://api.notion.com/v1/)..." \ -H "Authorization: Bearer $NOTION_KEY" \ -H "Notion-Version: 2025-09-03" \ -H "Content-Type: application/json" Note: The Notion-Version header is required. Use 2025-09-03. The features released in Jan 2026 (Move Page, Templates) are additive and use this version header.
Search for pages and data sources: curl -X POST "[https://api.notion.com/v1/search](https://api.notion.com/v1/search)" \ -H "Authorization: Bearer $NOTION_KEY" \ -H "Notion-Version: 2025-09-03" \ -H "Content-Type: application/json" \ -d '{"query": "page title"}' Get page: curl "[https://api.notion.com/v1/pages/](https://api.notion.com/v1/pages/){page_id}" \ -H "Authorization: Bearer $NOTION_KEY" \ -H "Notion-Version: 2025-09-03" Move a page (Change Parent): curl -X POST "[https://api.notion.com/v1/pages/](https://api.notion.com/v1/pages/){page_id}/move" \ -H "Authorization: Bearer $NOTION_KEY" \ -H "Notion-Version: 2025-09-03" \ -H "Content-Type: application/json" \ -d '{ "parent": {"type": "page_id", "page_id": "new_parent_page_id"} }' Note: To move to a database, use {"type": "data_source_id", "data_source_id": "..."}. Create page (Standard): curl -X POST "[https://api.notion.com/v1/pages](https://api.notion.com/v1/pages)" \ -H "Authorization: Bearer $NOTION_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"}} } }' Create page from Template: curl -X POST "[https://api.notion.com/v1/pages](https://api.notion.com/v1/pages)" \ -H "Authorization: Bearer $NOTION_KEY" \ -H "Notion-Version: 2025-09-03" \ -H "Content-Type: application/json" \ -d '{ "parent": {"database_id": "xxx"}, "template": {"type": "template_id", "template_id": "yyy"} }' List Data Source Templates: curl -X GET "[https://api.notion.com/v1/data_sources/](https://api.notion.com/v1/data_sources/){data_source_id}/templates" \ -H "Authorization: Bearer $NOTION_KEY" \ -H "Notion-Version: 2025-09-03" Update page properties: curl -X PATCH "[https://api.notion.com/v1/pages/](https://api.notion.com/v1/pages/){page_id}" \ -H "Authorization: Bearer $NOTION_KEY" \ -H "Notion-Version: 2025-09-03" \ -H "Content-Type: application/json" \ -d '{ "properties": {"Status": {"select": {"name": "Done"}}}, "is_locked": true }' Apply Template to existing page (erasing content): curl -X PATCH "[https://api.notion.com/v1/pages/](https://api.notion.com/v1/pages/){page_id}" \ -H "Authorization: Bearer $NOTION_KEY" \ -H "Notion-Version: 2025-09-03" \ -H "Content-Type: application/json" \ -d '{ "template": {"type": "template_id", "template_id": "yyy"}, "erase_content": true }' Query a data source (database): curl -X POST "[https://api.notion.com/v1/data_sources/](https://api.notion.com/v1/data_sources/){data_source_id}/query" \ -H "Authorization: Bearer $NOTION_KEY" \ -H "Notion-Version: 2025-09-03" \ -H "Content-Type: application/json" \ -d '{ "filter": {"property": "Status", "select": {"equals": "Active"}}, "sorts": [{"property": "Date", "direction": "descending"}] }' Add blocks to page: curl -X PATCH "[https://api.notion.com/v1/blocks/](https://api.notion.com/v1/blocks/){page_id}/children" \ -H "Authorization: Bearer $NOTION_KEY" \ -H "Notion-Version: 2025-09-03" \ -H "Content-Type: application/json" \ -d '{ "children": [ {"object": "block", "type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "Hello"}}]}} ] }'
Common property formats for database items: 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": "2024-01-15", "end": "2024-01-16"}} Checkbox: {"checkbox": true} Number: {"number": 42} URL: {"url": "https://..."} Email: {"email": "a@b.com"} Relation: {"relation": [{"id": "page_id"}]}
Move Page API: Use /v1/pages/{id}/move to reparent pages. Templates: New endpoints to list templates and parameters to apply them during page creation/update. Locking: is_locked boolean now supported in Update Page. Tokens: New tokens use ntn_ prefix (formerly secret_). Data Sources: Continue using data_source_id for queries (introduced in 2025-09-03).
Page/database IDs are UUIDs (with or without dashes) The API cannot set database view filters โ that's UI-only Rate limit: ~3 requests/second average Use is_inline: true when creating data sources to embed them in pages
Workflow acceleration for inboxes, docs, calendars, planning, and execution loops.
Largest current source with strong distribution and engagement signals.