Potion is a reverse-engineered API for Notion. Write your content in Notion, and use Potion's hosted API endpoints to read your content.
If you have any questions about using Potion in your project, I'd love to help. Send me an email: benborgers@hey.com
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 (supported but deactivated)
- 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
.
yarn install
vercel dev