Notion API Integration
SkillDatabases & dataLets your agent read, create, and update Notion pages and databases.
Then ask your AI: use the Notion API Integration skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add it as a step in a pipeline you build on Ahel, or connect Ahel to Claude, ChatGPT, Cursor, Claude Code or Codex and ask your AI to use it.
About this skill
Read, create, and update Notion pages and databases via the Notion REST API
What this skill tells your AI
The instructions your AI receives, as published by taracodlabs/aiden in skills/notion/SKILL.md and read by Ahel’s review.
Interact with Notion workspaces through the official REST API. Requires an Internal Integration token (NOTION_TOKEN) and pages/databases shared with that integration.
When to Use
- User wants to read content from a Notion page
- User wants to create a new page or database entry
- User wants to query a Notion database with filters
- User wants to append blocks to an existing page
- User wants to search across their Notion workspace
How to Use
1. Set up the integration token
The user must create an Internal Integration at https://www.notion.so/my-integrations and share their pages/databases with it.
# Set token in session (or add to .env)
$env:NOTION_TOKEN = "ntn_..."
2. Search workspace
$headers = @{ "Authorization" = "Bearer $env:NOTION_TOKEN"; "Notion-Version" = "2022-06-28"; "Content-Type" = "application/json" }
$body = '{"query": "meeting notes"}'
$resp = Invoke-RestMethod -Uri "https://api.notion.com/v1/search" -Method Post -Headers $headers -Body $body
$resp.results | Select-Object -ExpandProperty properties | ConvertTo-Json -Depth 5
3. Read a page
$pageId = "your-page-id" # from Notion URL: notion.so/Page-Title-<pageId>
$headers = @{ "Authorization" = "Bearer $env:NOTION_TOKEN"; "Notion-Version" = "2022-06-28" }
$page = Invoke-RestMethod -Uri "https://api.notion.com/v1/pages/$pageId" -Headers $headers
$blocks = Invoke-RestMethod -Uri "https://api.notion.com/v1/blocks/$pageId/children" -Headers $headers
$blocks.results | ForEach-Object { $_.paragraph.rich_text.plain_text }
4. Query a database
$dbId = "your-database-id"
$headers = @{ "Authorization" = "Bearer $env:NOTION_TOKEN"; "Notion-Version" = "2022-06-28"; "Content-Type" = "application/json" }
$filter = '{"filter": {"property": "Status", "select": {"equals": "In Progress"}}}'
$resp = Invoke-RestMethod -Uri "https://api.notion.com/v1/databases/$dbId/query" -Method Post -Headers $headers -Body $filter
$resp.results | ForEach-Object { $_.properties.Name.title.plain_text }
5. Create a page in a database
$dbId = "your-database-id"
$headers = @{ "Authorization" = "Bearer $env:NOTION_TOKEN"; "Notion-Version" = "2022-06-28"; "Content-Type" = "application/json" }
$payload = @{
parent = @{ database_id = $dbId }
properties = @{
Name = @{ title = @(@{ text = @{ content = "My New Page" } }) }
}
} | ConvertTo-Json -Depth 10
Invoke-RestMethod -Uri "https://api.notion.com/v1/pages" -Method Post -Headers $headers -Body $payload
6. Append text blocks to a page
$pageId = "your-page-id"
$headers = @{ "Authorization" = "Bearer $env:NOTION_TOKEN"; "Notion-Version" = "2022-06-28"; "Content-Type" = "application/json" }
$payload = @{
children = @(@{
object = "block"
type = "paragraph"
paragraph = @{ rich_text = @(@{ type = "text"; text = @{ content = "Appended content here." } }) }
})
} | ConvertTo-Json -Depth 10
Invoke-RestMethod -Uri "https://api.notion.com/v1/blocks/$pageId/children" -Method Patch -Headers $headers -Body $payload
Examples
"Show me all In Progress tasks in my Notion project database" → Use step 4 with a Status filter. Ask for database ID from the Notion URL.
"Create a new meeting notes page in Notion for today" → Use step 5 to create a page, then step 6 to append an agenda block.
"Search my Notion workspace for anything about Q2 planning"
→ Use step 2 with query Q2 planning.
Cautions
- Integration must be explicitly shared with each page/database — it won't see everything by default
- Page IDs are the 32-character hex string at the end of Notion URLs
- API rate limit is 3 requests/second per integration — add delays for bulk operations
- Rich text properties have nested structure — always check
rich_text[0].plain_textfor text values
Signals
- GitHub stars
- 851
- Forks
- 149
- Last commit
- Sep 2026
Ahel review
S4info
community integration, published by taracodlabs, not notion
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Item type
- skill
- Key
notion-taracodlabs- Source
- github.com/taracodlabs/aiden
Related picks
Skill · openai
The pick for Notionnotion-spec-to-implementation
Skill · davila7
The pick for Notionnotion-databases
Skill · devin-axis
The pick for Notionnotion-api
Skill · intellectronica
The pick for Notionnotion-automation
Skill · sickn33
The pick for Notionanalytics
Skill · coreyhaines31
More in Databases & data