Skip to main content
POST

Body

application/json

stt and tts are required in practice for simple agents — flow agents carry their speech selection inside graph_data.agentDefaults and omit the root objects.

agent_name
string
required

Name of the agent, 2–200 characters.

Required string length: 2 - 200
Example:

"Customer Support Agent"

llm
LlmConfig · object
required

Language model configuration. Select the model by llm_id; see List LLM models.

language_code
string | null

BCP-47 language code for the agent, for example en-US.

timezone
string | null

Canonical IANA time zone the agent reads its clock in, e.g. 'Asia/Tokyo'. Rejected if it is not a tzdb name: abbreviations (JST), UTC offsets (+09:00) and city-only strings (Tokyo) are not accepted. Omitted or null leaves the agent without a timezone; there is no default.

speech_speed
number | null
default:1

Speaking-rate multiplier for the agent's audio: 1.0 is normal, below 1.0 slower, above 1.0 faster.

Required range: 0.5 <= x <= 2
knowledge_base_id
string | null

Knowledge base the agent retrieves from.

welcome_message
string | null

Custom message the agent speaks when the call begins.

Example:

"Hello! Thanks for calling. How can I help you today?"

welcome_message_delay_in_seconds
number | null
default:2

Delay in seconds, 0–10, before the agent speaks the welcome message.

Required range: 0 <= x <= 10
enable_user_interruptions
boolean | null
default:true

Whether the caller can interrupt the agent while it is speaking.

interruption_mode
enum<string> | null

Interruption detection strategy. Null when unset.

Available options:
vad,
adaptive
minimum_speech_duration_for_interruptions
number | null
default:0.5

Seconds of speech before an interruption is accepted. Minimum 0.5 on create; 0.0 is accepted on update.

Required range: 0.5 <= x <= 15
minimum_words_before_interruption
integer | null
default:2

Minimum number of words, 0–10, the caller must say before the agent treats the speech as an interruption. Used when enable_user_interruptions is true.

Required range: 0 <= x <= 10
vad_activation_threshold
number | null

Voice activity detection sensitivity, 0.10–0.90. There is no service-side default: when unset, the call handler uses its own per-language default, and the key is omitted from create, get and update responses. On update, omitting the key keeps the stored value.

Required range: 0.1 <= x <= 0.9
wait_time_before_detecting_end_of_speech
number | null

Seconds of silence before the caller's turn is treated as finished. Flow agents only: when omitted on create, a flow agent gets 0.2. Other agent types ignore the value: create stores nothing and update keeps whatever was stored.

Required range: 0 <= x <= 15
max_endpointing_delay
number | null

Upper bound, in seconds, on how long end-of-speech detection may wait. Flow agents only: when omitted on create, a flow agent gets 2.0. It must be greater than wait_time_before_detecting_end_of_speech, otherwise the request returns 422. Other agent types ignore the value.

Required range: 0 <= x <= 15
ambient_sound
enum<string> | null
default:none

Background sound mixed into the call audio. none adds no sound.

Available options:
office,
cafe,
restaurant,
park,
street,
home,
library,
airport,
train_station,
beach,
none
ambient_sound_volume
number | null
default:1

Volume of the ambient sound, 0–2, where 1 is normal volume.

Required range: 0 <= x <= 2
enable_noise_cancellation
boolean | null
default:true

Whether to apply noise cancellation to the caller's audio before speech recognition.

webhook_url
string | null

Receives webhook notifications about call events.

end_call_after_silence_seconds
integer | null
default:10

Seconds of caller silence, 10–30, after which the call ends automatically.

Required range: 10 <= x <= 30
max_call_duration_seconds
integer | null
default:1800

Maximum duration of the call in seconds, 30–3600.

Required range: 30 <= x <= 3600
end_call_instruction
string | null

Instruction given to the LLM governing how and when to end the call.

agent_ended_call_delay_seconds
number | null
default:2

Delay in seconds, 0–10, before the call ends when the agent decides to end it.

Required range: 0 <= x <= 10
enable_amd
boolean | null
default:false

Enable answering-machine detection.

amd_voicemail_message
string | null

Played when answering-machine detection identifies a voicemail.

voicemail_detection_timeout_seconds
integer | null
default:90

Seconds to wait for voicemail detection before taking action. Used when enable_amd is true.

Required range: x >= 0
silence_reminder_enabled
boolean | null
default:false

Whether the agent reminds the caller to speak after a period of silence.

silence_reminder_duration_seconds
number | null
default:10

Seconds of silence, 10–30, before the agent reminds the caller to speak. Used when silence_reminder_enabled is true.

Required range: 10 <= x <= 30
max_number_of_silence_reminders
integer | null
default:3

Maximum number of silence reminders, 1–10. Used when silence_reminder_enabled is true.

Required range: 1 <= x <= 10
interval_between_silence_reminders_seconds
number | null
default:10

Seconds between two consecutive silence reminders, 3–30. Used when silence_reminder_enabled is true.

Required range: 3 <= x <= 30
dynamic_data_config
DynamicDataConfigItem · object[] | null

External HTTP sources the agent calls to fetch data during the conversation, for example a customer record. See Dynamic data.

post_call_analysis
PostCallAnalysisItem · object[] | null

Analysis items to extract from the call after it ends. The type of each item sets the shape of its result. You can also manage these items with the post-call analysis API.

Example:
pronunciations
Pronunciation · object[] | null

Pronunciation overrides: the agent speaks each term as its replacement. Applied to simple agents only. Entries are stored as sent, without validation.

stt
SttConfig · object

Speech-to-text configuration. Select the provider and model by id; see List STT providers. Required for simple agents; ignored for flow agents.

tts
TtsConfig · object

Text-to-speech configuration. Select the provider and voice by id; see List TTS providers. Required for simple agents; ignored for flow agents.

agent_status
enum<string> | null
default:ACTIVE

Lifecycle status of the new agent.

Available options:
ACTIVE,
INACTIVE
template_id
string | null

Template to seed the agent from.

Response

Agent created

Standard v3 envelope. error_details is present only on failures; null fields are omitted.

status
enum<string>

Outcome of the request: success or error, in lowercase.

Available options:
success,
error
message
string

Human-readable message about the result.

data
AIAgentV3Response · object

The agent. Omitted on errors.

error_details
Error Details · object | null

Field path to message, for validation failures. Omitted when there are none.