Bearer token
All API requests require a Bearer token in theAuthorization header. Registered OAuth clients
use short-lived access tokens; other integrations may use organization-scoped RevDesk API keys.
Getting your API key
Create a RevDesk account, then create and manage keys in Settings → API Keys. Key creation is self-serve and does not require a sales conversation. Each key is prefixed withrv_ and should be kept secret.
OAuth authorization code
OAuth-capable clients discover RevDesk’s authorization server from the API or MCP protected-resource metadata. RevDesk supports authorization code with PKCE (S256) and refresh tokens. During consent,
a person selects an organization and approves named v1 scopes. Every API request re-checks that the
person is unlocked, the registered client still exists, and the person still belongs to that
organization.
API keys are hashed before storage (SHA-256). The plaintext is shown only once, at creation. If you lose it,
generate a new one.
Key format
Scopes
Every key belongs to one organization and carries an explicit list of scopes that gate which endpoints it can call. Each endpoint declares the scope it requires; a request missing that scope is rejected withscope_missing.
A key created without narrowing gets every scope except
compliance:write, which is opt-in only.
agents:read and agents:write govern /v1/agents, which returns assistants: the runtime voices
attached to your numbers and tasks. These are not the same objects as the agents
you hire in the product, and the counts will not match. There is no agents scope.voice:webrtc).
Lead intake endpoints do not use API keys. Each lead source has a rotatable URL token and source secret so a
CRM or form provider can deliver leads without receiving access to the rest of your workspace. See Tasks
and lead sources. The retired
/v1/workflows, /v1/workflows/{id}/enroll, and /v1/workflow_contacts endpoints and their workflow-only
scope are no longer available; use /v1/tasks for programmatic work. /v1/jobs remains a deprecated
compatibility alias.Security best practices
- Store API keys in environment variables, never in source code
- Grant the smallest scope set that works (e.g.
voice:webrtconly for browser calling) - Rotate keys periodically: revoke the old key in Settings → API Keys, then issue a new one (plaintext is shown once at creation; we only store the SHA-256 hash)
- Use separate keys for development and production
- Monitor key usage via the account endpoint