notion
steipete/clawdis
Notion CLI/API for pages, Markdown content, data sources, files, comments, search, Workers, and raw API calls.
What is notion?
Official Notion CLI (`ntn`) and curl-based API access for managing pages, databases, files, and workspace data. Use this when you need to read/write Notion content, query data sources, upload files, or make raw API calls from code or scripts.
- Create, read, update, and trash Notion pages with Markdown-first helpers
- Query data sources and databases with filtering, sorting, and limit options
- Upload and manage files (images, documents) with external URL support
- Execute raw Notion API calls with typed JSON parameters and headers
- Inspect API endpoints, specs, and documentation via `ntn doctor` and `ntn api`
- Deploy and manage Notion Workers for automation (Business/Enterprise plans)
How to install notion
npx skills add https://github.com/steipete/clawdis --skill notion- Node.js and npm (for `ntn` CLI installation)
- Notion workspace with API access enabled
- Notion API token (via `ntn login` or `NOTION_API_TOKEN` environment variable)
- Page IDs, database IDs, or data source IDs for the resources you want to access
How to use notion
- 1.Install the official Notion CLI: `npm install -g ntn`
- 2.Authenticate: run `ntn login` or set `NOTION_API_TOKEN` environment variable
- 3.Inspect available endpoints: `ntn doctor` and `ntn api ls`
- 4.Use Markdown helpers for pages: `ntn pages get <id>`, `ntn pages create`, `ntn pages update`
- 5.Query data sources: `ntn datasources query <id> --filter '...' --sort '...'`
- 6.For advanced operations, use raw API: `ntn api v1/<endpoint> <args>`
- 7.Upload files: `ntn files create < file.png`
- 8.Deploy Workers (if enabled): `ntn workers new` and `ntn workers deploy`
Use cases
- Sync Notion pages to external systems or generate reports from database queries
- Bulk create or update pages programmatically from Markdown templates
- Upload files to Notion and embed them in pages
- Query filtered/sorted data sources to extract specific records
- Automate workspace tasks via Workers or scheduled scripts
- Backend developers integrating Notion with applications
- DevOps engineers automating documentation and knowledge base updates
- Data analysts querying Notion databases for reporting
- Automation engineers building Notion-based workflows
- Teams using Notion as a data source for CI/CD or ETL pipelines
notion FAQ
`ntn pages` provides Markdown-first helpers for common operations (get, create, update, trash). `ntn api v1/pages` gives raw API access for advanced features like properties, templates, and full Pages API control.
Set the `NOTION_API_TOKEN` environment variable with your API token, and optionally `NOTION_API_VERSION`. The CLI will use these instead of prompting for login.
Yes, use `ntn datasources query <id> --filter '<json>' --sort '<field> <direction>'`. You need the data source ID; use `ntn datasources resolve <database-id>` to convert a database ID.
`path=value` for strings, `path:=json` for typed JSON, `name==value` for query params, `Header:Value` for headers, and `--data '<json>'` or stdin for larger bodies.
No, Workers may require a Business or Enterprise plan and must be enabled by your workspace administrator.
Full instructions (SKILL.md)
Source of truth, from steipete/clawdis.
name: notion description: "Notion CLI/API for pages, Markdown content, data sources, files, comments, search, Workers, and raw API calls." homepage: https://developers.notion.com/cli/get-started/overview metadata: { "openclaw": { "emoji": "📝", "requires": { "anyBins": ["ntn", "curl"] }, "primaryEnv": "NOTION_API_TOKEN", "install": [ { "id": "node", "kind": "node", "package": "ntn", "bins": ["ntn"], "label": "Install official Notion CLI (npm)", }, ], }, }
Notion
Prefer official ntn CLI. Use curl only when ntn is unavailable or a raw request is clearer.
Setup
npm install -g ntn
ntn --version
ntn login
Script/headless auth:
export NOTION_API_TOKEN=secret_or_ntn_token
export NOTION_API_VERSION=2026-03-11
ntn api sets Authorization and Notion-Version automatically. It uses CLI login by default, or NOTION_API_TOKEN when set.
Inspect
ntn doctor
ntn api ls
ntn api ls --json
ntn api v1/comments --help
ntn api v1/comments --spec -X POST
ntn api v1/comments --docs -X POST
Pages
Markdown-first helpers:
ntn pages get <page-id>
ntn pages get <page-id> --json
ntn pages create --parent page:<page-id> --content '# Title\n\nBody'
ntn pages create --parent data-source:<data-source-id> < page.md
ntn pages update <page-id> --content '# Updated'
ntn pages update <page-id> < page.md
ntn pages trash <page-id> --yes
Notes:
pages getprints Markdown with page properties as frontmatter.- Content input:
--content, stdin, or editor in a TTY. - Parent refs:
page:<id>,database:<id>,data-source:<id>. - For properties/templates/full Pages API, use
ntn api v1/pages.
Data sources
ntn datasources resolve <database-id>
ntn datasources resolve <database-id> --json
ntn datasources query <data-source-id>
ntn datasources query <data-source-id> --limit 50 --json
ntn datasources query <data-source-id> --sort 'Date desc'
ntn datasources query <data-source-id> --filter '{"property":"Done","checkbox":{"equals":true}}'
Use resolve when you have a database ID. Query needs a data source ID.
Raw API
ntn api v1/users/me
ntn api v1/search query=roadmap page_size:=10
ntn api v1/pages 'parent[data_source_id]='"$DS_ID" 'properties[Name][title][0][text][content]=New item'
ntn api "v1/pages/$PAGE_ID" -X PATCH in_trash:=true
ntn api "v1/blocks/$PAGE_ID/children" -X PATCH \
'children[0][type]=paragraph' \
'children[0][paragraph][rich_text][0][text][content]=Hello'
Input syntax:
path=value: string body field.path:=json: typed JSON body field.name==value: query parameter.Header:Value: request header.--data '<json>'or stdin JSON for larger bodies.- Only one body source per request.
Files
ntn files create < image.png
ntn files create --filename photo.png --content-type image/png < /tmp/photo
ntn files create --external-url https://example.com/photo.png
ntn files get <upload-id>
ntn files list
Workers
ntn workers new
ntn workers deploy
ntn workers list --json
ntn workers runs list --json
ntn workers runs logs <run-id>
Workers may require Business/Enterprise plan and workspace enablement.
Curl fallback
curl -sS "https://api.notion.com/v1/users/me" \
-H "Authorization: Bearer $NOTION_API_TOKEN" \
-H "Notion-Version: 2026-03-11" \
-H "Content-Type: application/json"
Version notes
- Current latest API version:
2026-03-11. - Use
in_trash, notarchived. - Append block positioning uses
position, not flatafter. transcriptionblock renamed tomeeting_notes.- Databases can contain multiple data sources; page parents generally use
data_source_id.
Related skills
More from steipete/clawdis and the wider catalog.

obsidian
Work with Obsidian vaults via official CLI: read, search, create, edit notes, tasks, links, and properties.

openai-whisper
Local speech-to-text transcription using OpenAI's Whisper CLI—no API key required.

openai-whisper-api
Transcribe audio files using OpenAI's Whisper API and newer gpt-4o models via curl.

openhue
Control Philips Hue lights and scenes via OpenHue CLI.

oracle
Second-model code review, debug, and refactor with file selection, token preview, and API or browser execution.

ordercli
CLI for checking Foodora past orders and tracking active delivery status.