Features¶
Some of the feature listed here, loosely correspond to the features of the endpoints defined in the Notion API. Please note that a slightly different terminology is used. Since the term properties is highly overloaded, we call the properties of a database schema and refer to the individual properties as columns. With page properties, we denote only the properties of a page within a database that correspond to the columns of the schema. In contrast to that, the properties that every page has, e.g. title, icon, last edited by/time, etc., are called page attributes.
Databases¶
- retrieve a database by its ID
- search for a database by its title
- create a new database with a given schema, i.e. columns and their types
- delete/archive and restore/unarchive a database
- update a database schema, i.e. adding/removing columns or changing their types
- change the properties of database columns, e.g. name, formula of formula column, options, etc.
- read the database attributes like title, description, cover, icon, etc.
- change database attributes like title, description, etc.
- retrieve all pages of a database
- query with filters and sortings to retrieve only specific pages
- display the content of a database as a table, e.g. in Jupyter Lab
- create new pages with properties within the database respecting the schema
Pages¶
- retrieve a page by its ID
- search for a page by its title
- create a new page
- delete/archive and restore/unarchive a page
- read page attributes like title, cover, icon, etc.
- change page attributes like title, cover, icon, etc.
- read page properties defined by a database schema
- change page properties
- navigate pages using parent and children links
- read the blocks within a page
- add/remove and modify the blocks within a page
- view the content of a page as Markdown
Blocks¶
- navigate blocks using references of parent and children
- create blocks within a page or another block
- modify blocks
Users¶
- retrieve a user by their ID
- retrieve own bot user, i.e. self-identify
- retrieve all users
- read the attributes of a user
Comments¶
- create a comment within a block or page
- retrieve comments of a block or page
Miscellaneous¶
- general synchronization capabilities with external services
- client for Google Tasks API and synchronization adapter
Notion API Limitations¶
Some features that the Notion UI provides are not possible to implement due to limitations of the API itself.
- creating a Status column or updating the options as well as option groups. Sending an Status column within a create database call is currently accepted but just ignored, i.e. a database without the column will show up.
- creating a Unique ID column or updating its properties like the prefix. This column type is not even mentioned as one of the database properties.
- creating a Wiki database which has a special Verification column.
- updating the database schema with respect to the options of a select/multi-select column, the formula of a formula column, and synced content.
- referencing in a formula expression another formula column, e.g.
prop("other formula")
. Use substitution instead. - creating a two-way relation with the same source and target database, i.e. self-referencing. The update database call is currently accepted but only a one-way relation created, which seems to be a bug.
- uploading files as icons or in general uploading files.
- setting the icon and cover of a database.
If you think those limitations should be fixed, let the developers of Notion know 😆