Turn Notion into a REST + MCP endpoint
Writ turns the Notion actions you already do in a browser into a callable REST endpoint your software (and your AI agents) can call.
curl -X POST https://api.usewrit.app/v1/notion/run \
-H "Authorization: Bearer wt_8f2c...a91" \
-H "Content-Type: application/json" \
-d '{ "input": { "query": "your search term" } }' No Notion API yet? Build one in minutes
Record the Notion task once (open a page, then read a database view) and call it as a REST endpoint and an MCP tool. No backend project, no waiting on Notion to ship an API.
- 1Record the Notion task once
Open the recorder and open a page on Notion in a real browser. Writ captures each step, including login and 2FA, into a reusable workflow.
- 2Publish it as an endpoint
One click turns the workflow into a callable REST endpoint at /v1/notion/run and a matching MCP tool. Inputs become a typed schema.
- 3Call it from anything
Call Notion from your code, a no-code tool, or an AI agent. Run it on your own machine for free, or on metered cloud.
Read the REST API docs, see what's possible on workflows, or search for another site. Free to start. See pricing.
Notion doesn't give you the endpoint you need
Notion has an API, but some database views, page renders, and admin actions are only reachable in the browser UI.
Writ closes that gap. Record the Notion task once (or describe it to an AI session) and publish it as a REST endpoint at /v1/notion/run and a matching MCP tool. Writ runs on your own accounts, with your own credentials and data, on sites you are authorized to use.
What you can call on Notion
Each operation below is a real Notion action recorded into a workflow and exposed as a typed endpoint.
Returns structured fields such as page, database row, property value: typed JSON, not raw page text.
A real Notion endpoint, authorized with a wt_ key
POST your inputs, get structured output. Authenticate every call with a scoped wt_ key.
curl -X POST https://api.usewrit.app/v1/notion/run \
-H "Authorization: Bearer wt_8f2c...a91" \
-H "Content-Type: application/json" \
-d '{ "input": { "query": "your search term" } }' import requests
r = requests.post(
"https://api.usewrit.app/v1/notion/run",
headers={"Authorization": "Bearer wt_8f2c...a91"},
json={"input": {"query": "your search term"}},
)
print(r.json()["output"]) {
"run_id": "run_noti_7b21",
"status": "succeeded",
"output": {
"page": "...",
"database_row": "...",
"property_value": "..."
}
} Also an MCP tool. The same workflow is exposed as an MCP tool your AI agent can call. See Notion MCP tools, or browse all MCP clients.
Login, 2FA, and dynamic pages on Notion
The reason Notion has no usable API is the same reason it's hard to automate. Writ handles it.
Writ signs into your own Notion workspace through a Persona and runs inside that session.
Three ways to build your Notion endpoint
Pick whichever fits the task. All three produce the same callable workflow.
Built on the same engine as the recorder and workflows.
Trigger your Notion endpoint on a change
Monitor Notion for database row change, new page in a view and fire this endpoint the instant something changes.
Monitors check as fast as every 10s (10s on Enterprise). A detected change becomes an automation trigger that runs your workflow in seconds. Monitor Notion ▸
Free on your own machine, or on cloud
Local / BYO agent
No compute charge. The agent runs on your hardware, so it can reach Notion even from an intranet or VPN-only network, and your AI keys never leave your machine.
Writ cloud
Metered by running time at $0.12 per browser-hour, drawn from your plan’s included usage. No infrastructure to manage.
Other ways to work with Notion
Notion API questions
Does Notion have an API?
Is there a ready-made Notion API I can use?
Is it allowed to automate Notion this way?
Does this work with Notion login and 2FA?
Can I run it on my own machine?
Build a Notion API
Record it once, then call it from your software and your AI agents. Get started free.