Potion is a reverse-engineered API for Notion. Write your content in Notion, and use Potion's hosted API endpoints to read your content.
I no longer maintain Potion, since the official Notion API has been released and is more stable than Notion’s internal API, which Potion relies on.
I've written a couple of blog posts on my website for using this API.
- How to use Notion as your blog's CMS
- API to read a Notion table
- How to turn a Notion doc into a website
All endpoints are relative to the base URL: https://potion-api.now.sh
Responses are cached for 10 seconds, so it'll take up to 10 seconds for changes made in Notion to show up.
<notion-page-id>
refers to the 32 character alphanumeric string in the URL of a Notion doc (but not a query parameter, so not the string after ?v=
).
Lists all entries in a full-page Notion table, along with additional details about each page.
The only query parameter is ?id=<notion-page-id>
.
Generates HTML for the description of a table.
The only query parameter is ?id=<notion-page-id>
.
Generates HTML for a given Notion page. You can insert it as the contents of a blog post, for example.
The only query parameter is ?id=<notion-page-id>
, which can be obtained from the /table
endpoint or just by copy-and-pasting from the URL.
Potion gives you syntax highlighting of Notion code blocks for free, when using the /html
endpoint!
You'll notice that the code block HTML that Potion returns is given CSS classes that make it compatible with Prism.js.
- Pick a theme you like from this README.
- Select the CSS file for that theme from this list and click View Raw.
- Include that stylesheet in the
head
of your HTML page to activate syntax highlighting. For example:
<link rel="stylesheet" href="https://unpkg.com/prism-themes@1.4.0/themes/prism-ghcolors.css" />
Potion supports syntax highlighting for most popular languages, and you can open an issue if you'd like to see a language supported that isn't currently.
Most, but not all, of the common Notion blocks are supported at the moment:
- Text
- To-do List
- Heading 1
- Heading 2
- Heading 3
- Bulleted List
- Numbered List
- Toggle List
- Quote
- Divider
- Link to Page
- Callout
- Image
- Embed
- Web Bookmark
- Video
- Audio
- Code
- File
- Math Equation
- Inline Equation
This project is built to be deployed on Vercel.
For local development, install Vercel's CLI and run vercel dev
.