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 — 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.

Base URL & 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 metadata
pages:readList and read pages
pages:writeCreate and edit pages
databases:readRead database schemas, views, and rows
databases:writeCreate and update rows

Endpoints

GET/pagespages:readList the workspace's pages
POST/pagespages:writeCreate a top-level page
GET/databases/{id}databases:readGet a database's schema + views
GET/databases/{id}/rowsdatabases:readQuery rows (optional ?view= & ?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 & errors

Each token is limited to 120 requests per minute. Responses use standard status codes:

401 — missing/invalid/expired token
403{"error":"insufficient_scope","required":"pages:write"}
429 — rate limit exceeded