finds.dev← search

// the find

jamalex/notion-py

★ 4,377 · Python · MIT · updated Feb 2026

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →