// the find
jamalex/notion-py
Unofficial Python API client for Notion.so
An unofficial Python client for Notion's internal API (v3 — not the public API Notion eventually shipped). Maps Notion's block/collection model to Python objects with read/write support. Useful if you want to script Notion content manipulation without clicking through the UI.
The object model is well thought out — collections map cleanly to queryable Python objects with auto-slugified column names, which makes database scripting genuinely ergonomic. The central RecordStore design means related records returned by any API call update the local cache automatically, reducing redundant fetches. The query builder covers filtered, sorted, and aggregated queries with enough flexibility for real automation tasks. Multi-account support (set_user_by_email / set_user_by_uid) is a practical detail most unofficial clients skip.
It's built against Notion's private internal API, which means any undocumented change on Notion's side can silently break it — and the README itself admits the live-update/monitoring feature is already broken. Notion shipped an official public API in 2021; this library predates it and doesn't use it, so you're betting on reverse-engineered endpoints staying stable. The token_v2 cookie approach is a credentials antipattern — it expires, it's session-scoped, and it's not something you can rotate safely. Development looks largely stalled with a long TODO list and no signs of the websocket/monitoring fixes arriving.