RadiusOS Public API
Workspace-scoped REST API powering the official Zapier integration. Same auth, same endpoints, available for any custom workflow tool you want to wire up. Full reference at /docs/api.
What it is
RadiusOS exposes a small, focused REST API for managing contacts, tasks, and pipeline stages in your workspace. The same endpoints power the official Zapier integration; you can use them directly from any HTTP client (curl, n8n, Make.com, a custom script) without going through Zapier at all.
Authentication is by workspace-scoped API key. Keys are created from inside the workspace and are not shared across workspaces or organizations.
MCP server access (for Claude Desktop, Cursor, ChatGPT) uses the same API key system. One key, multiple distribution channels.
Endpoints at a glance
| Category | What's covered |
|---|---|
| Authentication | Connection test endpoint that returns the workspace label. |
| Triggers (REST hooks) | Subscribe and unsubscribe to events (contact.created, contact.updated, contact.stage_changed, task.created, task.completed). Plus polling fallback endpoints for recent contacts and tasks. |
| Actions | Create a contact, create a task, move a contact to a new pipeline stage. |
| Dropdowns | Search-as-you-type contacts and stages picker sources, for building UIs that mirror Zapier's pickers. |
See the full reference at /docs/api for every endpoint's request shape, response shape, error codes, and a curl example.
Get an API key
Open the workspace whose data you want to expose
Each key authorizes exactly one workspace. If you manage several, create one key per workspace.
Go to Settings -> API Keys
The page lives at /{org}/{workspace}/settings/api-keys.
Create the key and copy it once
Keys are shown exactly once. Name them after where they'll live (Zapier, n8n, internal-script) so you can revoke a single key without breaking everything else.
Send the key with every request
Authorization: Bearer ros_<your_key> is the canonical header. X-Api-Key and ?api_key= are also accepted.
Error shape and rate limits
Every error response is JSON with a stable shape: { error: '<machine_code>', message: '<human text>' }. Use the error field for branching, the message field for user-facing display.
Rate limits are fair-use today. The hard limits are at the plan level (Free workspaces are capped at 1 active Zap, 250 contacts) rather than as per-second caps. Bursty traffic may be rate-limited at the edge with a 429.
If you have a sustained high-throughput use case, write to support@radiusos.ai and we'll raise the ceiling on your workspace.
Open the full reference
The full developer reference lives at /docs/api. It's a single long page covering every endpoint with full request and response shape, error codes, and a copy-pasteable curl example for each.