notionNotion API for creating and managing pages, databases, and blocks.
Install via ClawdBot CLI:
clawdbot install steipete/notionUse the Notion API to create/read/update pages, data sources (databases), and blocks.
ntn_ or secret_)mkdir -p ~/.config/notion
echo "ntn_your_key_here" > ~/.config/notion/api_key
All requests need:
NOTION_KEY=$(cat ~/.config/notion/api_key)
curl -X GET "https://api.notion.com/v1/..." \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03" \
-H "Content-Type: application/json"
Note: TheNotion-Versionheader is required. This skill uses2025-09-03(latest). In this version, databases are called "data sources" in the API.
Search for pages and data sources:
curl -X POST "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/{page_id}" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03"
Get page content (blocks):
curl "https://api.notion.com/v1/blocks/{page_id}/children" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2025-09-03"
Create page in a data source:
curl -X POST "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"}}
}
}'
Query a data source (database):
curl -X POST "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"}]
}'
Create a data source (database):
curl -X POST "https://api.notion.com/v1/data_sources" \
-H "Authorization: Bearer $NOTION_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": {}}
}
}'
Update page properties:
curl -X PATCH "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"}}}}'
Add blocks to page:
curl -X PATCH "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": [{"text": {"content": "..."}}]}{"rich_text": [{"text": {"content": "..."}}]}{"select": {"name": "Option"}}{"multi_select": [{"name": "A"}, {"name": "B"}]}{"date": {"start": "2024-01-15", "end": "2024-01-16"}}{"checkbox": true}{"number": 42}{"url": "https://..."}{"email": "a@b.com"}{"relation": [{"id": "page_id"}]}/data_sources/ endpoints for queries and retrievaldatabase_id and a data_source_iddatabase_id when creating pages (parent: {"database_id": "..."})data_source_id when querying (POST /v1/data_sources/{id}/query)"object": "data_source" with their data_source_idparent.data_source_id alongside parent.database_idGET /v1/data_sources/{data_source_id}is_inline: true when creating data sources to embed them in pagesGenerated Feb 16, 2026
Teams can create a Notion data source to track tasks, deadlines, and assignees. They can query active tasks, update statuses, and add progress notes as blocks to pages. This enables real-time collaboration and centralized project oversight.
Marketing teams can set up a data source to schedule blog posts, social media updates, and campaigns. They can create pages for each content piece with properties like publish date and status, and query upcoming items for planning.
Sales teams can manage leads and clients by creating a data source with properties for contact info, deal stage, and follow-up dates. They can update deal statuses and add meeting notes as blocks to client pages.
Academics or analysts can organize research papers, data sets, and notes in a Notion data source. They can query by topic or date, and add detailed summaries as rich text blocks to each entry for easy reference.
Event organizers can create a data source to manage vendors, schedules, and budgets. They can update task completions, query pending items, and add logistical details as blocks to event pages for coordination.
Offer a service that integrates Notion with other tools like CRM or project management software. Charge subscription fees for automated data syncs and custom API workflows, targeting businesses needing streamlined operations.
Provide consulting to set up Notion data sources and pages tailored to client needs, such as for project tracking or inventory management. Revenue comes from one-time setup fees and ongoing support contracts.
Sell pre-built Notion templates for scenarios like content calendars or CRM systems. Monetize through direct sales or a subscription for template access, appealing to users seeking quick setup solutions.
💬 Integration Tip
Ensure the Notion-Version header is set to 2025-09-03, and note that databases are now called data sources in API calls, requiring different IDs for creation and querying.
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
Create, search, and manage Bear notes via grizzly CLI.
Track water and sleep with JSON file storage
Smart ClawdBot documentation access with local search index, cached snippets, and on-demand fetch. Token-efficient and freshness-aware.
Work with Obsidian vaults as a knowledge base. Features: fuzzy/phonetic search across all notes, auto-folder detection for new notes, create/read/edit notes with frontmatter, manage tags and wikilinks. Use when: querying knowledge base, saving notes/documents, editing existing notes by user instructions.
Organize your agent's knowledge using PARA (Projects, Areas, Resources, Archive) — then make it ALL searchable. The symlink trick enables full semantic search across your entire knowledge base, not just MEMORY.md. Includes session transcript indexing and memory flush protocol. Your agent finally has a real second brain.