Integration with Notion API
September 9, 2023Notion is a versatile workspace tool combining note-taking, task management, databases, and collaboration features into a single platform.
It also supports integration with Notion content, facilitating tasks such as creating pages, retrieving a block, and filtering database entries via API.
Prerequisites
- Notion account
- Generated Integration token (Settings & Members → Connections → Develop or manage integrations → New integration)
- Notion database ID (open database as full page, extract database ID from the URL (
https://notion.so/<USERNAME>/<DATABASE_ID>?v=v
)) - Added Notion connection (three dots (
...
) menu → Add Connections → choose created integration) @notionhq/client
package installed
Integration
Below is an example of interacting with Notion API to create the page (within the chosen database) with icon, cover, properties, and child blocks.
const { Client } = require('@notionhq/client');const notion = new Client({ auth: process.env.NOTION_INTEGRATION_TOKEN });const response = await notion.pages.create({parent: {type: 'database_id',database_id: process.env.NOTION_DATABASE_ID},icon: {type: 'emoji',emoji: '🆗'},cover: {type: 'external',external: {url: 'https://cover.com'}},properties: {Name: {title: [{type: 'text',text: {content: 'Some name'}}]},Score: {number: 42},Tags: {multi_select: [{name: 'A'},{name: 'B'}]},Generation: {select: {name: 'I'}}// other properties},children: [{object: 'block',type: 'bookmark',bookmark: {url: 'https://bookmark.com'}}]});
Check out Sparxno for more Notion-related content.