Developer API · v1
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.
Create a token in Settings → API tokens. Tokens are scoped to one workspace and shown once — copy it immediately. 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.
https://api.rodeo.so/api/public/v1
The version lives in the path (/v1). Breaking changes ship under a new version.
workspace:readRead workspace metadatapages:readList and read pagespages:writeCreate and edit pagesdatabases:readRead database schemas, views, and rowsdatabases:writeCreate and update rows/pagespages:readList the workspace's pages/pagespages:writeCreate a top-level page/databases/{id}databases:readGet a database's schema + views/databases/{id}/rowsdatabases:readQuery rows (optional ?view= & ?limit=)/databases/{id}/rowsdatabases:writeCreate a rowExample — 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"}}'Each token is limited to 120 requests per minute. Responses use standard status codes:
401 — missing/invalid/expired token403 — {"error":"insufficient_scope","required":"pages:write"}429 — rate limit exceeded