Developer API · v1
Build on your workspace
A simple REST API to read and write your pages and databases. Authenticate with a personal access token, scoped to exactly what your integration needs.
Authentication
Create a token in Settings → API tokens. Tokens are scoped to one workspace and shown once, so copy it straight away. Send it as a bearer token on every request:
curl https://api.rodeo.so/api/public/v1/pages \ -H "Authorization: Bearer rodeo_pat_xxxxxxxx"
The workspace is bound to the token, so you never pass a workspace id. A first-party session token or an MCP token will not work here: the public API only accepts personal access tokens.
Base URL and versioning
https://api.rodeo.so/api/public/v1
The version lives in the path (/v1). Breaking changes ship under a new version.
Scopes
workspace:readRead workspace metadatapages:readList and read pagespages:writeCreate and edit pagesdatabases:readRead database schemas, views, and rowsdatabases:writeCreate and update rowsfiles:writeUpload images to the workspacecomments:writePost comments on pages
Endpoints
- GET
/pagespages:readList the workspace's pages - POST
/pagespages:writeCreate a top-level page - GET
/databases/{id}databases:readGet a database's schema and views - GET
/databases/{id}/rowsdatabases:readQuery rows (optional ?view= and ?limit=) - POST
/databases/{id}/rowsdatabases:writeCreate a row
Example: create a row
curl -X POST https://api.rodeo.so/api/public/v1/databases/DB_ID/rows \
-H "Authorization: Bearer rodeo_pat_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"values":{"Name":"Acme","Status":"Lead"}}'Rate limits and errors
Each token is limited to 120 requests per minute. Responses use standard status codes:
401missing, invalid or expired token403{"error":"insufficient_scope","required":"pages:write"}429rate limit exceeded
Bring the team's docs, plans and data into one place.
Free for up to 3 members · no card · import from Notion