Agent skill · software engineering · sundial-org
notion
Notion API for creating and managing pages, databases, and blocks.
Why this skill is useful
Provides specific API commands and workflows for interacting with the Notion API that the AI wouldn't reliably generate on its own.
What it needs
Requires notion account access. About 2k tokens when loaded. Last updated 2026-03-07. 639 stars on the source repository.
What this skill does
notion Use the Notion API to create/read/update pages, data sources (databases), and blocks. Setup 1. Create an integration at https://notion.so/my-integrations 2. Copy the API key (starts with ntn or secret) 3. Store it: 4. Share target pages/databases with your integration (click "..." → "Connect to" → your integration name) API Basics All requests need: Note: The Notion-Version header is required. This skill uses 2025-09-03 (latest). In this version, databases are called "data sources" in the API. Common Operations Search for pages and data sources: Get page: Get page content (blocks): Create page in a data source: Query a data source (database): Create a data source (database): Update page properties: Add blocks to page: Property Types Common property formats for database items: Title: {"title": [{"text": {"content": "..."}}]} Rich text: {"richtext": [{"text": {"content": "..."}}]} Select: {"select": {"name": "Option"}} Multi-select: {"multiselect": [{"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": "pageid"}]} Key Differences in 2025-09-03 Databases → Data Sources: Use /datasources/ endpoints for queries and retrieval Two IDs: Each database now has both a databaseid and a datasourceid Use databaseid when creating pages (parent: {"databaseid": "..."}) Use datasourceid when querying (POST /v1/datasources/{id}/query) Search results: Databases return as "object": "datasource" with their datasourceid Parent in responses: Pages show parent.datasourceid alongside parent.databaseid Finding the datasourceid: Search for the database, or call GET /v1/datasources/{datasourceid} Notes 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 isinline: true when creating data sources to embed them in pa …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills sundial-org/notion