Skip to content

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 😆