Quickstart

Your first call in five minutes.

Sign up, grab an API key, and talk to a live voice agent in your browser — no telecom setup. Then place a real phone call once you’ve connected a provider.

1 · Get an API key

Create an account and your first workspace. In the dashboard, open Settings → API Keys, create a key, and copy the vk_live_… value — it’s shown once. Use vk_test_… while you’re experimenting. New keys carry every scope by default. See Authentication for the details.

2 · Talk to your agent in the browser

A test room is a free, short-lived WebRTC session — no phone number, no credit hold. Pass an inline agent_config.prompt; no agent needs to exist yet.

curl -X POST https://api.rexa.ai/v1/rooms/test \
  -H "Authorization: Bearer vk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "agent_config": {
      "prompt": "You are a friendly scheduling assistant. Greet the caller and offer three time slots."
    }
  }'

You get back a room url + token:

{
  "id": "019eb8c6-8515-7b97-9143-c947f2f175f2",
  "url": "https://rooms.rexa.ai/r/abcd-efgh-ijkl",
  "token": "ey...<short-lived join token>",
  "expires_at": "2026-06-16T10:02:00.000Z"
}

Connect to it from the browser with PipecatClient or the Daily SDK and start talking. Test rooms are TTL-capped (~120 s) and rate-limited per workspace (~20/hour). For longer, billed rooms with full control, use POST /v1/rooms.

3 · Pick a voice

List the voice catalog and copy an id to pass as agent_config.voice_id. Omit it to use the platform default.

curl https://api.rexa.ai/v1/voices \
  -H "Authorization: Bearer vk_live_..."

4 · Place a real phone call

Outbound phone calls use your own telecom (BYO Telnyx / Twilio / Plivo) — there’s no platform-provided number. Connect a provider under Settings → Providers, then dial: the from number must be a DID on that provider.

curl -X POST https://api.rexa.ai/v1/calls \
  -H "Authorization: Bearer vk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "to":   "+14155552671",
    "from": "+15555551000",
    "agent_config": {
      "prompt": "You are calling to confirm tomorrow'"'"'s 3pm appointment.",
      "voice_id": "<id from GET /v1/voices>"
    }
  }'

The call returns 202 Accepted with a session you can track. Subscribe to webhooks to get the transcript, recording, and disposition when it ends.

Next

Go deeper: Authentication · Webhooks · Rooms.