/NotionPy

A python module for interacting with notion

Primary LanguagePythonMIT LicenseMIT

NotionPy

for creating,updating and querying databases and pages , NotionPy is a python module to help you integrete notion with your software/workflow

installation

in your terminal :

pip install auto-py-notion

Requirments

before we get started there are a couple of things we need to do :

  1. create an integration and grab a token from here

  2. share the integration with you database or page

  3. get the id of the database or page : https://www.notion.so/myworkspace/a8aec43384f447ed84390e8e42c2e089?v=...

    the database id is before the question mark and after the backslash

more details from official notion docs

Getting Started

let's create a sample page inside a database :

from NotionPy.notionpy import NotionClient

inst = NotionClient("Your integration token")

inst.create.page(
    database_id="the id of database of choice",
    data=[      # List of tuples # provided properties must be created first in the db
        ("Name", "title", "kareem"),
            ("price", "number", 254),
            ("to-do", "checkbox", False),
    ],
    #Optional
    icon="🔥",
    #Optional
    cover="https://images.unsplash.com/photo-1523867574998-1a336b6ded04?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxzZWFyY2h8Mnx8Y292ZXJ8ZW58MHx8MHx8&w=1000&q=80",
)

-> Note that the data inserted must be [ ( prop_name ,type ,value ) ]

  • currently there is no support for creating empty pages or empty values but look forward for feature updates

retreiving data from a database :

inst.query.db("id of the database",
                in_json=True, #Optional
                json_indent=2, #Optional
                print_data=True #Optional
            )

Supported properties type

    -title          -rich_text
    -select         -multi_select
    -relation       -people
    -checkbox       -url
    -files          -email
    -phone          -number

NotionPy 0.1.2 , What's New !


  • sorting in queryring databases
  • filtering in queyring databases
  • Bug fx

Notes

  • there are other modules that interact with notion's API so what makes this module different ? it is the fact that , as far as my research went , it is the most userfriendly and practical one
  • This module is still has a lot to offer in the future , so all of your suggestions , issues , contributions are very welcomed