Skip to main content

1. Get a key

Mint one in the console under Settings → API keys. The plaintext is shown once. Export it:

2. Find a number to call from

A bare JSON array. Take the id (num-14155551234) of a number with outbound enabled — its E.164 value works too.

3. Find the assistant

assistantId is the assistant’s uuid, shown on its configure page in the console. Names and slugs are not accepted.

4. Place the call

This returns as soon as the room exists and the INVITE is on its way — it does not wait for an answer, which takes seconds. The call appears in the calls list from this moment, so a carrier rejection (which produces no trace at all, because no agent ever joins) is visible rather than looking like a call that simply never rang. contactRef is an opaque reference of yours, echoed back on the webhook — put your own account or record id there and the end-of-call report joins to your data without matching on a phone number. variables are per-call {{var}} values merged over the assistant’s own.

5. Receive the report

Polling GET /v1/calls/{id} works, but the report comes to you. Point Vodex at your endpoint once:
First-time setup mints the signing secret and returns it once. When the call ends you receive a signed interaction.completed — see Webhooks for the payload and how to verify it.

Next

Webhooks

Verifying the report, and reading outcome without sniffing strings.

Connect an AI assistant

Ask about your calls, batches and usage over MCP — no key to copy.

Batch dialing

A list in, calls out, with retry policy and per-number rotation.

SMS

The same interaction stream, with channel: "sms".