← Back to Skills Marketplace
mohdalhashemi98-hue

MH notion

cross-platform ✓ Security Clean
517
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install mh-notion
Description
Notion API for creating and managing pages, databases, and blocks.
README (SKILL.md)

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:
mkdir -p ~/.config/notion
echo "ntn_your_key_here" > ~/.config/notion/api_key
  1. Share target pages/databases with your integration (click "..." → "Connect to" → your integration name)

API Basics

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: 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:

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"}}]}}
    ]
  }'

Property Types

Common property formats for database items:

  • Title: {"title": [{"text": {"content": "..."}}]}
  • Rich text: {"rich_text": [{"text": {"content": "..."}}]}
  • Select: {"select": {"name": "Option"}}
  • Multi-select: {"multi_select": [{"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": "[email protected]"}
  • Relation: {"relation": [{"id": "page_id"}]}

Key Differences in 2025-09-03

  • Databases → Data Sources: Use /data_sources/ endpoints for queries and retrieval
  • Two IDs: Each database now has both a database_id and a data_source_id
    • Use database_id when creating pages (parent: {"database_id": "..."})
    • Use data_source_id when querying (POST /v1/data_sources/{id}/query)
  • Search results: Databases return as "object": "data_source" with their data_source_id
  • Parent in responses: Pages show parent.data_source_id alongside parent.database_id
  • Finding the data_source_id: Search for the database, or call GET /v1/data_sources/{data_source_id}

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 is_inline: true when creating data sources to embed them in pages
Usage Guidance
This skill appears to do exactly what it says: call the Notion API using your Notion integration key. Before installing, consider: (1) Prefer providing the key via the platform's declared NOTION_API_KEY env variable or confirm whether the agent will read ~/.config/notion/api_key (the SKILL.md examples use the file); (2) Use a dedicated, least-privilege Notion integration token that you can revoke; (3) Avoid placing the key in a world-readable file — restrict file permissions if you follow the SKILL.md example; (4) Confirm the agent will only send requests to api.notion.com and that you’re comfortable with the agent having that single API key access.
Capability Analysis
Type: OpenClaw Skill Name: mh-notion Version: 1.0.0 The skill bundle provides documentation and examples for interacting with the Notion API. All `curl` commands in `SKILL.md` target the legitimate Notion API endpoint (`https://api.notion.com`). The skill requires a `NOTION_API_KEY` for authentication, which is standard for API integrations. There is no evidence of data exfiltration, malicious execution, persistence mechanisms, or prompt injection attempts designed to subvert the agent's behavior for harmful purposes. The instructions are purely descriptive for using the Notion API.
Capability Assessment
Purpose & Capability
Name/description (Notion API page/database/block management) align with the single requested credential (NOTION_API_KEY) and the curl-based API examples. Required actions (create integration, share pages) are consistent with Notion integrations.
Instruction Scope
SKILL.md stays within the Notion API domain and only references the user's Notion integration and a local config file (~/.config/notion/api_key). However, the examples set NOTION_KEY by reading ~/.config/notion/api_key rather than demonstrating use of the declared env var NOTION_API_KEY — a minor inconsistency in how credentials are expected to be provided.
Install Mechanism
Instruction-only skill with no install steps and no code files, so nothing is written to disk or fetched during installation.
Credentials
Only one credential is required (NOTION_API_KEY), which is appropriate. The SKILL.md shows storing the key in ~/.config/notion/api_key and sourcing it into NOTION_KEY; the registry metadata declares NOTION_API_KEY as the primaryEnv — the mismatch should be clarified but is not disproportionate.
Persistence & Privilege
always is false and there are no install hooks or requests to modify other skill or system-wide configs. Default autonomous invocation is allowed (platform default) but not combined with other concerning privileges.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install mh-notion
  3. After installation, invoke the skill by name or use /mh-notion
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Priority upload batch
Metadata
Slug mh-notion
Version 1.0.0
License
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is MH notion?

Notion API for creating and managing pages, databases, and blocks. It is an AI Agent Skill for Claude Code / OpenClaw, with 517 downloads so far.

How do I install MH notion?

Run "/install mh-notion" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is MH notion free?

Yes, MH notion is completely free (open-source). You can download, install and use it at no cost.

Which platforms does MH notion support?

MH notion is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created MH notion?

It is built and maintained by mohdalhashemi98-hue (@mohdalhashemi98-hue); the current version is v1.0.0.

💬 Comments