It remains for me the best way to organise a team's knowledge - especially when building out a Sales function.
Notion has an OK API. It's not great and could benefit from better documentation but it does the job.
You can fetch data from a Notion database to manipulate as needed.
See examples here: Fetch Notion database data with Python and here Fetch Notion database data with Python-to-grist