📝 Better Notion OpenClaw Plugin & Skill | ClawHub
Looking to integrate Better Notion into your AI workflows? This free OpenClaw plugin from ClawHub helps you automate notes & pkm tasks instantly, without having to write custom tools from scratch.
What this skill does
Full CRUD for Notion pages, databases, and blocks. Create, read, update, delete, search, and query.
Install
npx clawhub@latest install better-notionFull SKILL.md
Open original| name | description |
|---|---|
| better-notion | Full CRUD for Notion pages, databases, and blocks. Create, read, update, delete, search, and query. |
SKILL.md content below is scrollable.
Notion
Use the Notion API for pages, data sources (databases), and blocks.
Setup
mkdir -p ~/.config/notion
echo "ntn_your_key_here" > ~/.config/notion/api_key
Share target pages/databases with your integration in Notion UI.
API Basics
NOTION_KEY=$(cat ~/.config/notion/api_key)
curl -X POST "https://api.notion.com/v1/..." \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json"
Common Operations
# Search
curl -X POST "https://api.notion.com/v1/search" -d '{"query": "title"}'
# Get page
curl "https://api.notion.com/v1/pages/{page_id}"
# Get page blocks
curl "https://api.notion.com/v1/blocks/{page_id}/children"
# Create page in database
curl -X POST "https://api.notion.com/v1/pages" -d '{
"parent": {"data_source_id": "xxx"},
"properties": {"Name": {"title": [{"text": {"content": "Item"}}]}}
}'
# Query database
curl -X POST "https://api.notion.com/v1/data_sources/{id}/query" -d '{
"filter": {"property": "Status", "select": {"equals": "Active"}}
}'
# Update page
curl -X PATCH "https://api.notion.com/v1/pages/{page_id}" -d '{
"properties": {"Status": {"select": {"name": "Done"}}}
}'
# Add blocks
curl -X PATCH "https://api.notion.com/v1/blocks/{page_id}/children" -d '{
"children": [{"type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "Text"}}]}}]
}'
# Delete page or block (moves to trash)
curl -X DELETE "https://api.notion.com/v1/blocks/{block_id}"
# Restore from trash (set archived to false)
curl -X PATCH "https://api.notion.com/v1/blocks/{block_id}" -d '{"archived": false}'
Property Types
| Type | Format |
|---|---|
| Title | {"title": [{"text": {"content": "..."}}]} |
| Text | {"rich_text": [{"text": {"content": "..."}}]} |
| Select | {"select": {"name": "Option"}} |
| Multi-select | {"multi_select": [{"name": "A"}]} |
| Date | {"date": {"start": "2024-01-15"}} |
| Checkbox | {"checkbox": true} |
| Number | {"number": 42} |
| URL | {"url": "https://..."} |
2025-09-03 API Notes
- Databases = "data sources" in API
- Use
data_source_idfor both creating pages and querying - Get
data_source_idfrom search results (theidfield) - Rate limit: ~3 req/sec