API wrapper for Notion written in Python
Project description
notion-python
notion-python is an API wrapper for Notion, written in Python.
This library uses Oauth2 for authentication.
Installing
pip install notion-python-2
Usage
- If you don't have an access token:
from notion.client import Client
client = Client(client_id, client_secret, redirect_uri)
To obtain and set an access token, follow this instructions:
- Get authorization URL
url = client.authorization_url()
- Get access token using code
response = client.get_access_token(code)
- Set access token
client.set_token(access_token)
Check more information about Notion Oauth: https://developers.notion.com/docs/authorization
- If you already have an access token:
from notion.client import Client
client = Client(access_token=access_token)
User
- Get Current User
user = client.get_current_user()
- List users
users = client.list_users(page_size=3)
# page_size: max 100
# start_cursor: pagination variable, get this value from previous page 'next_cursor' parameter.
Databases and Pages
- List all objects
# object_type options are: page or database
# page_size: max 100
# start_cursor: pagination variable, get this value from previous page 'next_cursor' parameter.
databases_list = client.list_objects("database", page_size=5)
- Get database
database = client.get_database(database_id)
- Query database pages
How to build a filter object: https://developers.notion.com/reference/post-database-query-filter
How to build a sort object: https://developers.notion.com/reference/post-database-query-sort
filter_criteria = {"property": "Main Email", "email": {"equals": "example@mail.com"}}
# Where 'Main Email' is the field name and 'email' is the field type
pages = client.query_database_pages(
database_id,
filters=filter_criteria,
sorts: dict = None,
start_cursor=None,
page_size=None
)
- Create page
properties_example = {
"Project name": {
"title": [
{
"text": {
"content": "First project built with this library"
}
}
]
},
}
cover_url = "https://upload.wikimedia.org/wikipedia/commons/1/1/example.jpg"
page = client.create_page(database_id, properties_example, cover_url=cover_url)
- Update page
properties_example = {
"Project name": {
"title": [
{
"text": {
"content": "Project field modified"
}
}
]
},
}
page = client.update_page(page_id, properties_example, cover_url=None)
How to build a properties object: https://developers.notion.com/reference/page-property-values
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_python_2-0.1.2.tar.gz
.
File metadata
- Download URL: notion_python_2-0.1.2.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e8c0722b4562353aae9d6eed7e9283387370b81363a26f307cffd4e294ad22d |
|
MD5 | e6c87f751eafba1026400f6494954841 |
|
BLAKE2b-256 | eb89e060197e3cdb932eb01cf1ca9fec72aba148667784f47051a65512a67ddb |
File details
Details for the file notion_python_2-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: notion_python_2-0.1.2-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f842bced668876480a5d155936eea16df1393af2d3185b809ff3af0bc73d454e |
|
MD5 | e96cf4d8741edbdafcbaefc598271015 |
|
BLAKE2b-256 | 136732fb85d0c9639f53c70b2d8933e41cc01d54f8012bc889c5437cb1867f90 |