Skip to content

ultimate-notion/ultimate-notion

Repository files navigation

Ultimate-Notion logo

Ultimate Notion is the ultimate Python client for Notion ๐Ÿš€ It allows you to access and modify your Notion databases and pages in the most convenient and pythonic way.

CI/CD Tests Coverage Publish Package Build Docs
Package PyPI - Version PyPI - Downloads PyPI - Python Version
Details Hatch project Linting - Ruff Pre-Commit Types - Mypy License - MIT Docs - mkdocs GitHub Sponsors

Installation

Install the most recent release using PyPI with:

pip install ultimate-notion

or to install all additional dependencies, use:

pip install 'ultimate-notion[all]'

Usage

Make sure you have set the environment variable NOTION_TOKEN to your Notion integration token. Then it's as simple as:

import ultimate_notion as uno

PAGE_TITLE = "Getting Started"

with uno.Session() as notion:
    page = notion.search_page(PAGE_TITLE).item()
    page.show()

# Alternatively, without a context manager:
notion = uno.Session()
page = notion.search_page(PAGE_TITLE).item()
page.show()
notion.close()

Check out the official Ultimate Notion documentation for more details. Especially the page about creating a Notion integration to get the token. The documentation is made with Material for MkDocs and is hosted on GitHub Pages.

Contributing

After having cloned this repository:

  1. make sure hatch is installed globally, e.g. pipx install hatch,
  2. make sure pre-commit is installed globally, e.g. with pipx install pre-commit,

and then you are already set up to start hacking. Use hatch run test to run the unit tests or hatch run vcr-only to run the offline unit tests using VCR.py. Regenerate the cassettes with hatch run vcr-rewrite. Check out the environment setup of hatch in pyproject.toml for many more commands.

If you are using VS Code, it's quite convenient to create a file .vscode/.env with

NOTION_TOKEN=secret_YOUR_TOKEN_TO_YOUR_TEST_NOTION_ACCOUNT
ULTIMATE_NOTION_CONFIG=/path/to/repo/.ultimate-notion/config.toml

Check out this page about contributing for more details.

License & Credits

Ultimate Notion is distributed under the terms of the MIT license. To start this project off a lot of inspiration and code was taken from hatch and notional. Ultimate Notion highly depends on notion-sdk-py.