manage agents
create, configure, deploy, roll back, delete.
voices and languages
what
ttsConfig and language may be set to.variables and tools
{name} placeholders with defaults, filled by your own endpoints.outbound calls
dial a number and connect the caller to an agent.
phone numbers
rent a number and connect it to an agent for inbound calls.
sip trunks
bring your own carrier numbers.
base url and authentication
the same base URL and key as the rest of the api:agent scope — keys created in the dashboard have it by
default. a key without it gets 403 forbidden_scope.
naming an agent
everywhere an agent is named — in a path, inagentId — you can pass either
its UUID or its short handle (ua_…). both come back on every agent object.
draft, then deploy
saving an agent never changes what it says on a live call.POST and PATCH
write a draft; POST /v1/agents/{agent_ref}/deploy promotes it to a
numbered version and puts it live. an agent that has never been deployed
(deployed: false) answers no calls and cannot be connected to a number.
every deploy is kept: GET /v1/agents/{agent_ref}/versions lists them and
POST …/versions/{n}/activate rolls back.
field names
bodies and responses are camelCase (systemInstruction, toNumber). the
snake_case spelling is accepted on input too. ids are UUIDs, timestamps are
ISO 8601 in UTC, money is in nanos — billionths of the wallet’s currency
unit, so 236250000000 nanos INR is ₹236.25.
errors
the same envelope as every other endpoint:
a
422 carries the failing fields:
rate limits
each key has its own budget of requests per minute (100 by default; the dashboard shows it on the key). a429 rate_limited carries limit and
current and a Retry-After header. calls themselves are bounded by your
account’s concurrency, not by this — see limits.
from zero to a phone call
1
create an agent
POST /v1/agents with a prompt, a greeting and a voice.2
deploy it
POST /v1/agents/{agent_ref}/deploy.3
call someone
POST /v1/calls with the agent and a number. the agent is on the line the
moment they answer.