1
0
mirror of synced 2025-12-21 02:51:29 -05:00
Files
airbyte/airbyte-integrations/connectors/source-notion/bootstrap.md
2024-05-07 08:19:33 -07:00

32 lines
2.0 KiB
Markdown

# Notion
## Overview
Notion is an application that provides components such as notes, databases, kanban boards, wikis, calendars and reminders. Notion REST API allows a developer to retrieve pages, databases, blocks, and users on the Notion platform.
## Endpoints
Notion API consists of three endpoints which can be extracted data from:
1. **User**: The User object represents a user in a Notion workspace. Users include guests, full workspace members, and bots.
2. **Block**: A block object represents content within Notion. Blocks can be text, lists, media, and more. Page and database is also a type of block.
3. **Search**: This endpoint is used to get list of pages and databases.
## Quick Notes
- Notion stores content in hierarchy, each node is called a 'block'. Block is a generic term which can be text, lists, media, even page and database are also block.
- Due to this hierarchical structure, we use recursive request to get the full list of blocks.
- Pages and databases can be extracted from the `Search` endpoint separately, so they are excluded from the block list request.
- Airbyte CDK doesn't support recursive schema, so some elements of the block schema which can be recursive are replaced with empty objects.
- Page and database must grant permission to the internal integration, otherwise API cannot extract data from them. See [https://developers.notion.com/docs/authorization#authorizing-internal-integrations](https://developers.notion.com/docs/authorization#authorizing-internal-integrations)
- Rate limiting is a standard exponential backoff when a 429 HTTP status code returned. The rate limit for incoming requests is an average of 3 requests per second. Some bursts beyond the average rate are allowed. Notion API also has size limit, see [https://developers.notion.com/reference/errors#request-limits](https://developers.notion.com/reference/errors#request-limits)
## API Reference
The API reference documents: [https://developers.notion.com/reference/intro](https://developers.notion.com/reference)