Skip to main content
RevDesk ships two official packages so you don’t have to hand-roll HTTP calls or wire up browser audio:

@revdesk/sdk

Typed REST client for the v1 API — calls, SMS, phone numbers, caller IDs, caller trust, usage, and sub-entities. Types are generated from the OpenAPI spec, so they never drift from the API.

@revdesk/webrtc

Browser-calling client. Place and receive calls in the browser through the RevDesk voice network, with one branded surface for both connection paths.

@revdesk/sdk

Install

Quickstart

AI agents

Every number you buy gets a RevDesk AI agent wired up to answer it automatically — through the dashboard or the API, the same provisioning path, no extra setup. The agents resource lets you discover, configure, assign, and call those agents from code.
Reading agents needs the agents:read scope; configuring, assigning, and webCall need agents:write. Configuring an agent requires a user-scoped key.

Bounded client tokens

Mint a short-lived, number-restricted token on your server, then hand it to an untrusted client (mobile app, browser) in place of your API key. The client can only call within the from/to numbers you choose. See Bounded client tokens for the full model.
Minting requires the tokens:mint scope. A minted token cannot mint further tokens.

Pagination

Cursor-paginated endpoints expose listAll(), an async iterator that walks every page for you:
listAll() is available on phoneNumbers, agents, subEntities, and callerTrust.reputation.numbers.

Idempotency

Mutating calls accept an idempotencyKey so a retried request is processed once:

Errors

Every non-2xx response throws a typed RevDeskError:
See Errors for the full RevDeskError shape.

@revdesk/webrtc

Install

Issue the call token server-side with @revdesk/sdk, then hand it to the browser client. Both clients emit the same callUpdate / error / ended events, so your UI doesn’t change when you switch paths. See Choosing a calling path for the differences.

Browser-direct — RevDeskRTC

Relay — RevDeskRoom

Calls fail through the error event with a typed RevDeskCallError (code is one of connection_failed, connection_timeout, call_rejected, …).