Place a call
Start an outbound voice call with one of your agents.
202 is an acknowledgement - the call dials asynchronously. Track its outcome via
webhooks or GET /v1/calls/{id}.Choosing a version
Omitversion and the agent’s live version answers, which is what a real caller gets.
Pass version to dial a specific one — the same number every other version route takes, so you
can test what you just published without looking anything up:
agent_version_id names the same choice by uuid and still works. Sending both is a
400 invalid_request.
Idempotency-Key
returns the original call rather than placing a second one, and marks the response
Idempotent-Replay: true. The body is identical either way, which is the point of idempotency.Authorizations
Your API key as a Bearer token, e.g. Authorization: Bearer vk_….
Headers
Your own unique string for this attempt. Required for API-key callers: a repeat within 24h returns the ORIGINAL call instead of placing a second one, which is what stops a network timeout from dialling — and charging — twice.
Body
Outbound call request.
Agent to use for the call
Destination number (E.164)
Which version of that agent to run, by number — e.g. 4, the same number every other version route takes. Omit it and the agent's live version answers.
The same choice as version, by uuid. Prefer version: a number is what you already hold after publishing. Omit both and the agent's live version answers.
Our number (must be in workspace); optional if only one number
Prompt variables e.g. {customer_name: 'Rahul'}
Opaque customer JSON, stored + echoed on reads/webhooks
Response
Successful Response
A placed call, acknowledged. The call dials shortly after this returns.
The call's id. Use it on GET /v1/calls/{id} and to join webhook events to this call.
Where the request got to. The call is placed asynchronously — started means accepted, not answered.
Exactly what you sent as metadata, echoed back.