en un clic
notion
Create and manage pages, databases, and blocks in Notion
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Create and manage pages, databases, and blocks in Notion
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
Query and search AWS CloudWatch Logs and run Logs Insights queries
Query events, run HogQL analytics, and access product data
Query Sentry issues, events, and releases for error monitoring and triage
Analyze the codebase database schema, query patterns, and business domain to build a data-agent skill. Use when setting up a new project, after schema changes, or when the data-agent skill needs updating.
Configure the Byaan MCP server in AI coding assistants (Claude Code, Cursor, Codex CLI). Detects the local project, builds the correct stdio config, and installs it into the chosen tool. Only works for local/community mode — not the Mac desktop app.
Initialize Byaan development environment using Docker. Builds and starts backend and frontend containers with SQLite, opens the browser, learns the codebase, and configures MCP. Use when setting up the project for the first time.
| name | notion |
| display_name | Notion |
| description | Create and manage pages, databases, and blocks in Notion |
| emoji | 📄 |
| homepage | https://developers.notion.com |
| api | {"base_url":"https://api.notion.com/v1","domain":"notion.com","type":"rest","auth":{"type":"bearer"},"headers":{"Notion-Version":"2022-06-28"}} |
| credentials | [{"key":"api_key","label":"API Key","placeholder":"ntn_... or secret_...","help":"Internal Integration Secret from notion.so/my-integrations. Starts with 'ntn_' (newer) or 'secret_' (older)."}] |
Use the Notion API to search, create, read, and update pages, databases, and blocks.
Before using this skill, you need to create a Notion integration and grant it access to your pages:
ntn_ or secret_)This step is required — integrations can only see pages explicitly shared with them.
You do not need to handle authentication manually. When you call execute_skill_api(), the system automatically:
Authorization: Bearer <api_key> headerNotion-Version: 2022-06-28 headerJust call the API with skill name, endpoint path, method, and body — authentication is handled for you.
When a user asks to find, read, or work with a Notion page, ALWAYS start with a search. Never assume you know the page ID.
POST /search
{"query": "Meeting Notes"}
POST /search
{
"query": "Meeting Notes",
"filter": {"property": "object", "value": "page"}
}
POST /search
{
"query": "",
"sort": {"direction": "descending", "timestamp": "last_edited_time"}
}
POST /search
{"query": ""}
GET /blocks/{page_id}/children
| Parameter | Description |
|---|---|
query | Text to match against titles (empty string returns all) |
filter.property | Always "object" |
filter.value | "page" or "database" |
sort.direction | "ascending" or "descending" |
sort.timestamp | "last_edited_time" |
page_size | Number of results (max 100) |
start_cursor | Pagination cursor from previous response |
properties.title, not a simple title fieldGET /pages/{page_id}
GET /blocks/{page_id}/children
POST /pages
{
"parent": {"database_id": "xxx"},
"properties": {
"Name": {"title": [{"text": {"content": "New Item"}}]},
"Status": {"select": {"name": "Todo"}}
}
}
POST /pages
{
"parent": {"page_id": "parent_page_id"},
"properties": {
"title": {"title": [{"text": {"content": "Page Title"}}]}
},
"children": [
{"object": "block", "type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "Content here"}}]}}
]
}
POST /databases/{database_id}/query
{
"filter": {"property": "Status", "select": {"equals": "Active"}},
"sorts": [{"property": "Date", "direction": "descending"}]
}
GET /databases/{database_id}
POST /databases
{
"parent": {"page_id": "xxx"},
"title": [{"text": {"content": "My Database"}}],
"properties": {
"Name": {"title": {}},
"Status": {"select": {"options": [{"name": "Todo"}, {"name": "Done"}]}},
"Date": {"date": {}}
}
}
PATCH /pages/{page_id}
{"properties": {"Status": {"select": {"name": "Done"}}}}
PATCH /blocks/{page_id}/children
{
"children": [
{"object": "block", "type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "Hello"}}]}}
]
}
DELETE /blocks/{block_id}
Common property formats for database items:
| Type | Format |
|---|---|
| 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": "a@b.com"} | |
| Relation | {"relation": [{"id": "page_id"}]} |
All list endpoints support pagination:
page_size: Number of results per request (default and max: 100)start_cursor: Cursor from previous response to get next pageResponse includes:
has_more: true if more results existnext_cursor: Use as start_cursor in next requestExample pagination flow:
POST /databases/{id}/query
{"page_size": 100}
# If response has "has_more": true
POST /databases/{id}/query
{"page_size": 100, "start_cursor": "next_cursor_value"}
"Object not found" errors: The integration hasn't been granted access to that page. Go to the page in Notion → "..." → "Connections" → add your integration.
Search returns empty results: Search only finds pages explicitly shared with the integration, not all pages in the workspace.
Can't find page content: GET /pages/{id} returns metadata only. Use GET /blocks/{id}/children to get the actual content.
Database rows are pages: Items in a Notion database are actually pages with parent.type: "database_id". Query the database, then fetch each row's blocks if you need content.
Page IDs from URLs: Notion URLs contain the page ID at the end (32 hex chars). Convert abc123def456... to UUID format abc123de-f456-... or use without dashes — both work.
Rich text arrays: Text properties are always arrays of rich text objects, even for simple strings: [{"text": {"content": "Hello"}}]
is_inline: true when creating databases to embed them in pages