A simple and easy to use Python client for the Notion API
Project description
Notion SDK
is a fully typed Python library to use the Notion API. It supports asyncio.
It uses the great httpx as an HTTP client and pydantic
for data validation and typing. This client is meant to be a Python version of the reference JavaScript SDK, so usage should be pretty similar between both.
Installation
$ pip install notion-sdk
Usage
Import and initialize a client using an integration token or an OAuth access token.
from notion import NotionClient
notion = NotionClient(auth="YOUR_ACCESS_TOKEN")
def fetch_databases() -> None:
response = notion.databases.list()
for database in response.results:
print(database.title)
if __name__ == "__main__":
fetch_databases()
More example are available in the examples folder.
Async Usage
This library supports asynchronous calls to Notion API.
Each method returns a Coroutine
that have to be awaited to retreive the typed response.
The same methods are available for sync or async but you have to use the NotionAsyncClient
like
in the following example:
import asyncio
from notion import NotionAsyncClient
notion = NotionAsyncClient(auth="YOUR_ACCESS_TOKEN")
async def fetch_databases() -> None:
response = await notion.databases.list()
for database in response.results:
print(database.title)
if __name__ == "__main__":
asyncio.run(fetch_databases())
Clients options
NotionClient
and NotionAsyncClient
support the following options on initialization.
These options are all keys in the single constructor parameter.
Option | Default value | Type | Description |
---|---|---|---|
auth |
None |
string |
Bearer token for authentication. If left undefined, the auth parameter should be set on each request. |
timeout |
60 |
int |
Number of seconds to wait before emitting a RequestTimeoutError |
base_url |
"https://api.notion.com/v1/" |
string |
The root URL for sending API requests. This can be changed to test with a mock server. |
user_agent |
notion-sdk/VERSION (https://github.com/getsyncr/notion-sdk) |
string |
A custom user agent send with every request. |
Requirements
This package supports the following minimum versions:
- Python >=
3.7
httpx
>=0.15.0
pydantic
>=1.7
Earlier versions may still work, but we encourage people building new applications to upgrade to the current stable.
License
Distributed under the Apache License. See LICENSE for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file notion-sdk-0.7.0.tar.gz
.
File metadata
- Download URL: notion-sdk-0.7.0.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.7 CPython/3.9.5 Darwin/20.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c5a76aea4e607b93d9b403aae08ad1b9a11525d766ebea41105ba1478fcefff |
|
MD5 | 8e4abfc35800ed707a76de546f6ec5b8 |
|
BLAKE2b-256 | 3327113032de6262cd59d7bcc6e40c7ec1b1add1353c484754a016341f375114 |
File details
Details for the file notion_sdk-0.7.0-py3-none-any.whl
.
File metadata
- Download URL: notion_sdk-0.7.0-py3-none-any.whl
- Upload date:
- Size: 17.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.7 CPython/3.9.5 Darwin/20.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df66baf53739235b3725ca202f8e593e18d6d09c9ece98b562f3b65b06d59e6d |
|
MD5 | 2ac5312b2a764cd37e94fcc906ce7026 |
|
BLAKE2b-256 | 6eab1c8a19134bfed2af7d55e18e020af8d0c9c0033ceb89c715b69456a2709e |