Skip to main content
This walks you from zero to a live, connected call. You’ll authenticate, place a call between two numbers, and check its outcome.
Prefer TypeScript? The official @revdesk/sdk wraps every endpoint below with typed methods, so revdesk.calls.dial({ … }) replaces the raw curl calls. See Official SDKs.
1

Get an API key

Create a key in Settings → API Keys (or ask your RevDesk contact). Keys are prefixed with rv_ and are shown once. Store it as an environment variable:
export REVDESK_API_KEY="rv_your_key_here"
Every request authenticates with a Bearer token. See Authentication for scopes.
2

Confirm a number you own

Calls go out as a number on your account. List yours:
curl https://api.revdesk.com/v1/phone-numbers \
  -H "Authorization: Bearer $REVDESK_API_KEY"
Note one active number to use as your caller ID (from_number). Don’t have one yet? See Phone Numbers to provision one.
3

Place your first call

Bridge your number to a destination. The called party sees your from_number:
curl -X POST https://api.revdesk.com/v1/calls/dial \
  -H "Authorization: Bearer $REVDESK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "from_number": "+14155550123",
    "to_number": "+14155559876"
  }'
The response returns immediately with a call_id and status: "QUEUED". The call is placed asynchronously.
4

Track the outcome

Poll the call to watch it progress (QUEUED → RINGING → IN_PROGRESS → COMPLETED) and get the duration and recording when it ends:
curl https://api.revdesk.com/v1/calls/CALL_ID \
  -H "Authorization: Bearer $REVDESK_API_KEY"

Where to go next

Choosing a calling path

Browser calling vs. connecting on a phone, and which fits your use case.

Send an SMS

Text from your numbers and stream inbound replies.

Caller ID & brand

Verify caller IDs, set CNAM, and register your brand.

Conventions

Errors, idempotency, and pagination shared by every endpoint.