Skip to content

FirstRoundCapital/notion-api-worker

 
 

Repository files navigation

Notion API Worker API Version

THIS IS A FORK OF THIS OPEN SOURCE REPOSITORY

To run with wrangler locally, specify the entrypoint with wrangler:

wrangler dev worker/script.js

Wrangler docs

A serverless wrapper for the private Notion API. It provides fast and easy access to your Notion content. Ideal to make Notion your CMS.

This project is self-hosted at firstround.cloud on Cloudflare.

Use with caution. This is based on the private Notion API. We can not gurantee it will stay stable.

Features

🍭 Easy to use – Receive Notion data with a single GET request

🗄 Table Access – Get structured data from tables & databases

Blazing Fast – Built-in SWR caching for instant results

🛫 CORS Friendly – Access your data where you need it

Use Cases

  • Use it as data-source for blogs and documentation. Create a table with pages and additional metadata. Query the /table endpoints everytime you want to render a list of all pages.

  • Get data of specific pages, which can be rendered with react-notion

Endpoints

Load page data

/v1/page/<PAGE_ID>

Example (Source Notion Page)

https://firstround.cloud/v1/page/2e22de6b770e4166be301490f6ffd420

Locally: http://172.20.2.14:8787/v1/page/2e22de6b770e4166be301490f6ffd420

Returns all block data for a given page. For example, you can render this data with react-notion.

Load data from table

/v1/table/<PAGE_ID>

Example (Source Notion Page)

https://firstround.cloud/v1/table/20720198ca7a4e1b92af0a007d3b45a4

Locally: http://172.20.2.14:8787/v1/table/20720198ca7a4e1b92af0a007d3b45a4

Authentication for private pages

All public pages can be accessed without authorization. If you want to fetch private pages there are two options.

  • The recommended way is to host your own worker with the NOTION_TOKEN environment variable set. You can find more information in the Cloudflare Workers documentation. This is what we currently do.

Receiving the token

To obtain your token, login to Notion and open your DevTools and find your cookies. There should be a cookie called token_v2, which is used for the authorization.

Deploys

Deploys are done using wrangler. See the wrangler.example.toml file for configuration.

Install wrangler with https://github.com/cloudflare/workers-sdk. Configure using wrangler login.

After configuring the .toml file, you can deploy with wrangler publish worker/script.js.

Credits

About

Notion as CMS with easy API access

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 96.8%
  • JavaScript 3.2%