@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. Theagents 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 exposelistAll(), an async iterator that walks every page for you:
listAll() is available on phoneNumbers, agents, subEntities, and callerTrust.reputation.numbers.
Idempotency
Mutating calls accept anidempotencyKey so a retried request is processed once:
Errors
Every non-2xx response throws a typedRevDeskError:
RevDeskError shape.
@revdesk/webrtc
Install
@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, …).