Skip to main content
POST
Create an agent. The response includes webhook_secret, which is shown only in this response and again only if you rotate it. Store it now. For field rules, see Agents and Tools and webhooks.

Request

Headers

string
required
Bearer token with your API key (scope agents)
string
required
application/json

Body

string
required
1–64 characters. Unique in the workspace, case-insensitive
string
required
1–8,000 characters. Who the agent is and how it handles calls
string
required
A 60db voice ID. See Voices
string | null
Up to 500 characters. The opening line when the call connects
string | null
female, male or null
string[]
Up to 20 lowercase codes, for example ["hi", "en"]. No dialect tags
string[]
Up to 20 lowercase codes the agent may reply in
boolean
default:"true"
Expressive speech
object[]
Up to 16 tools, each with name, description (1–500 characters) and parameters (JSON Schema with "type": "object", up to 4 KB). Requires tool_webhook_url
object[]
Call transfer. Up to 10 groups, each { "name": "Sales", "numbers": ["+919876543210"] }. name is up to 40 characters, starts with a letter, and uses letters, digits, spaces, _ or -; two names that become the same function (Sales and sales) are refused. numbers holds 1–10 unique E.164 numbers, tried in turn. Each group becomes a transfer_to_<name> function the agent can use. See Call transfer
string | null
Public HTTPS URL on port 443 that receives tool calls. Up to 2,048 characters
string | null
Public HTTPS URL on port 443 that receives call.completed, call.failed and recording.ready
string | null
UUID of a workspace Smart Memory collection. Personal collections are not supported yet
object
Default call settings: speaks_first, start_delay_ms, idle_ms, idle_checkins, max_duration_secs (10–900), record, voice_speed, voice_stability, voice_similarity, speech_terms. Overridable per call

Response

201 Created. The agent, plus webhook_secret.

Errors

Example