Some checks failed
ClawSweeper Dispatch / dispatch (push) Has been cancelled
CodeQL / Security High (actions) (push) Has been cancelled
CodeQL / Security High (channel-runtime-boundary) (push) Has been cancelled
CodeQL / Security High (core-auth-secrets) (push) Has been cancelled
CodeQL / Security High (mcp-process-tool-boundary) (push) Has been cancelled
CodeQL / Security High (network-ssrf-boundary) (push) Has been cancelled
CodeQL / Security High (plugin-trust-boundary) (push) Has been cancelled
CodeQL / Security High (process-exec-boundary) (push) Has been cancelled
Docs Sync Publish Repo / sync-publish-repo (push) Has been cancelled
Docs / docs (push) Has been cancelled
OpenClaw Stable Main Closeout / Resolve stable release closeout inputs (push) Has been cancelled
OpenClaw Stable Main Closeout / Verify stable main closeout (push) Has been cancelled
Workflow Sanity / no-tabs (push) Has been cancelled
Workflow Sanity / actionlint (push) Has been cancelled
Workflow Sanity / generated-doc-baselines (push) Has been cancelled
CI / runner-admission (push) Has been cancelled
CI / preflight (push) Has been cancelled
CI / security-fast (push) Has been cancelled
CI / pnpm-store-warmup (push) Has been cancelled
CI / build-artifacts (push) Has been cancelled
CI / native-i18n (push) Has been cancelled
CI / ${{ matrix.check_name }} (push) Has been cancelled
CI / ${{ matrix.checkName }} (push) Has been cancelled
CI / checks-node-compat-node22 (push) Has been cancelled
CI / check-bundled-channel-config-metadata (push) Has been cancelled
CI / check-dependencies (push) Has been cancelled
CI / check-guards (push) Has been cancelled
CI / check-lint (push) Has been cancelled
CI / check-prod-types (push) Has been cancelled
CI / check-shrinkwrap (push) Has been cancelled
CI / check-test-types (push) Has been cancelled
CI / check-additional-boundaries-a (push) Has been cancelled
CI / check-additional-boundaries-bcd (push) Has been cancelled
CI / check-additional-extension-bundled (push) Has been cancelled
CI / check-additional-extension-channels (push) Has been cancelled
CI / check-additional-extension-package-boundary (push) Has been cancelled
CI / check-additional-runtime-topology-architecture (push) Has been cancelled
CI / check-session-accessor-boundary (push) Has been cancelled
CI / check-session-transcript-reader-boundary (push) Has been cancelled
CI / check-docs (push) Has been cancelled
CI / skills-python (push) Has been cancelled
CI / macos-swift (push) Has been cancelled
CI / ios-build (push) Has been cancelled
CI / ci-timings-summary (push) Has been cancelled
Native App Locale Refresh / Refresh native fa (push) Has been cancelled
Native App Locale Refresh / Refresh native fr (push) Has been cancelled
Native App Locale Refresh / Refresh native hi (push) Has been cancelled
Native App Locale Refresh / Refresh native id (push) Has been cancelled
Native App Locale Refresh / Refresh native it (push) Has been cancelled
Native App Locale Refresh / Refresh native ja-JP (push) Has been cancelled
Control UI Locale Refresh / plan (push) Has been cancelled
Control UI Locale Refresh / Refresh ${{ matrix.locale }} (push) Has been cancelled
Control UI Locale Refresh / Commit control UI locale refresh (push) Has been cancelled
Live Media Runner Image / Build live media runner image (push) Has been cancelled
Native App Locale Refresh / Refresh native ar (push) Has been cancelled
Native App Locale Refresh / Refresh native de (push) Has been cancelled
Native App Locale Refresh / Refresh native es (push) Has been cancelled
Native App Locale Refresh / Refresh native ko (push) Has been cancelled
Native App Locale Refresh / Refresh native nl (push) Has been cancelled
Native App Locale Refresh / Refresh native pl (push) Has been cancelled
Native App Locale Refresh / Refresh native pt-BR (push) Has been cancelled
Native App Locale Refresh / Refresh native ru (push) Has been cancelled
Native App Locale Refresh / Refresh native sv (push) Has been cancelled
Native App Locale Refresh / Refresh native th (push) Has been cancelled
Native App Locale Refresh / Refresh native tr (push) Has been cancelled
Native App Locale Refresh / Refresh native uk (push) Has been cancelled
Native App Locale Refresh / Refresh native vi (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-CN (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-TW (push) Has been cancelled
Native App Locale Refresh / Commit native locale refresh (push) Has been cancelled
Plugin Init Scaffold Validation / Validate provider scaffold (push) Has been cancelled
Plugin NPM Release / preview_plugins_npm (push) Has been cancelled
Plugin NPM Release / Validate release publish approval (push) Has been cancelled
Plugin NPM Release / preview_plugin_pack (push) Has been cancelled
Plugin NPM Release / publish_plugins_npm (push) Has been cancelled
Sandbox Common Smoke / sandbox-common-smoke (push) Has been cancelled
Website Installer Sync / static (push) Has been cancelled
Website Installer Sync / linux-docker (push) Has been cancelled
Website Installer Sync / macos-installer (push) Has been cancelled
Website Installer Sync / windows-installer (push) Has been cancelled
Website Installer Sync / sync-website (push) Has been cancelled
Adolf is a fork/vendored clone of github.com/openclaw/openclaw (v2026.6.11), free to diverge. Tree copied sans upstream .git; upstream remote added for future syncs. Node pinned to 24 (.nvmrc); engines already require >=22.19. Preserves docs/ARCHITECTURE.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LeqyaxJF2nbRXJtae2kNB2
151 lines
3.8 KiB
Markdown
151 lines
3.8 KiB
Markdown
---
|
|
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
|
|
|
|
```bash
|
|
npm install -g ntn
|
|
ntn --version
|
|
ntn login
|
|
```
|
|
|
|
Script/headless auth:
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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 get` prints 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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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`, not `archived`.
|
|
- Append block positioning uses `position`, not flat `after`.
|
|
- `transcription` block renamed to `meeting_notes`.
|
|
- Databases can contain multiple data sources; page parents generally use `data_source_id`.
|