notion

API de Notion para crear y gestionar páginas, bases de datos y bloques.

npx skills add https://github.com/firecrawl/openclaw --skill notion

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

Más skills de firecrawl

oracle
firecrawl
Mejores prácticas para usar la CLI de oracle (prompt + agrupación de archivos, motores, sesiones y patrones de adjuntar archivos).
official
firecrawl-monitor
firecrawl
Detecta cuándo cambia el contenido de un sitio web y recibe notificaciones por webhook o correo electrónico, sin necesidad de cron jobs, scrapers ni scripts de diferencias. Usa esta habilidad cada vez que el usuario quiera rastrear cambios en una página, monitorear precios de la competencia, recibir alertas sobre nuevas ofertas de trabajo o publicaciones de blog, supervisar páginas de documentación/changelog/estado, o diga "monitorear", "vigilar", "rastrear", "alertarme cuando", "notificarme cuando X cambie", "avísame si", "enviarme un correo cuando" o "enviar un webhook cuando". Un juez de IA integrado filtra formato, marcas de tiempo y...
officialweb-scrapingresearch
firecrawl-deep-research
firecrawl
Realizar investigación profunda de múltiples fuentes con Firecrawl. Usar cuando el usuario solicite investigar un tema, comparar perspectivas, producir un informe con fuentes, indagar una pregunta técnica o de mercado, o sintetizar evidencia web de muchas fuentes.
officialresearchweb-scraping
firecrawl-research-papers
firecrawl
Encuentra y sintetiza artículos de investigación, documentos técnicos, PDFs, informes técnicos y fuentes académicas con Firecrawl. Úsalo cuando el usuario quiera una revisión bibliográfica, resumen de artículos, panorama de investigación o síntesis con fuentes de PDFs y publicaciones académicas o de la industria.
officialresearchweb-scraping
firecrawl-market-research
firecrawl
Extrae métricas de mercado, financieras, de ganancias, industriales y de empresas con Firecrawl. Úsalo cuando el usuario solicite investigación de mercado, tendencias de la industria, datos de empresas públicas, comparaciones financieras, investigación de ganancias o informes de mercado estructurados.
officialresearchweb-scraping
firecrawl-website-design-clone
firecrawl
Extrae el sistema de diseño de cualquier sitio web y conviértelo en un DESIGN.md listo para agentes, utilizando evidencia extraída con Firecrawl. Úsalo cuando el usuario quiera colores, fuentes, espaciados, componentes, patrones de diseño o guías de marca/interfaz de un sitio web, para que agentes de IA puedan crear nuevos sitios, clonar una apariencia o construir páginas inspiradas en ese diseño.
officialdesignweb-scraping
firecrawl-knowledge-base
firecrawl
Construye una base de conocimiento a partir de contenido web con Firecrawl. Úsalo para documentación de referencia local, fragmentos listos para RAG, conjuntos de datos para ajuste fino, espejos de documentación, corpus temáticos o markdown listo para LLM organizado desde fuentes web.
officialweb-scrapingresearch
firecrawl-lead-research
firecrawl
Producir resúmenes de inteligencia de prospectos previos a reuniones con Firecrawl. Usar cuando el usuario necesite investigación de empresas, investigación de personas, noticias recientes, puntos de conversación, puntos débiles o preparación para contactos antes de una llamada de ventas, reunión de asociación, conversación con inversores o entrevista con clientes.
officialresearchweb-scraping