Agents
Duplicate an agent
https://voxa.abhinavyadav.in/api/v1/agents/{agent_id}/duplicateCreates a copy named <name> (copy) with the same configuration, without the phone number.
Authorization
An API key (X-API-Key or Authorization: Bearer), or a signed-in member with the agents.edit permission.
Path parameters
agent_idstringrequiredThe agent's id.
Query parameters
timezonestringdefault: "Asia/Kolkata"IANA time zone for every timestamp in the response (at, date, timestamp and *_at fields), as ISO 8601 with the offset. The X-Timezone header works too; the zone used comes back in the X-Timezone response header. An unknown zone is a 400.
Response
201Success.
namestring1 to 120 characters
welcome_messagestringsystem_promptstringllmobjectShow child attributes
providerstringdefault: "gemini"modelstringdefault: "gemini-3.5-flash-lite"An id from Get the catalog (llm_models).
temperaturenumberdefault: 0.4Higher is more varied, lower is more predictable.
0 to 2
max_tokensintegerdefault: 300The longest reply, in tokens.
16 to 4096
voiceobjectText to speech.
Show child attributes
providerstringdefault: "cartesia"modelstringdefault: "sonic-3.6"A text-to-speech model from the catalog (tts_models).
voice_idstringA voice from List voices.
voice_namestringThe voice's name, for display.
languagestringdefault: "hi"The language the agent speaks.
speednumberdefault: 1Speaking rate; 1 is normal.
0.6 to 1.5
transcriberobjectSpeech to text.
Show child attributes
providerenum<string>default: "cartesia"cartesia (ink-2, detects language and end of turn) or deepgram (nova-3).
One of:cartesiadeepgram
modelstringdefault: "ink-2"Set to match the provider automatically.
turn_detectionenum<string>default: "balanced"Cartesia: how quickly the agent answers once the caller pauses.
One of:responsivebalancedpatient
languagestringdefault: "hi"Deepgram only: the caller's language.
endpointing_msintegerdefault: 300Deepgram only: silence that ends a turn.
10 to 3000
keytermsstring[]Words the recogniser should expect, such as doctor or product names.
at most 100 items
callobjectShow child attributes
max_duration_secondsintegerdefault: 600The call ends after this long.
30 to 3600
hangup_after_silence_secondsintegerdefault: 15The call ends after this much silence from the caller.
5 to 120
allow_interruptionsbooleandefault: trueThe caller can talk over the agent, which stops speaking.
interruption_min_wordsintegerdefault: 2Words the caller must say to interrupt.
1 to 10
call_start_hourintegerdefault: 9Outbound calls start no earlier than this hour (in timezone).
0 to 23
call_end_hourintegerdefault: 21Outbound calls start before this hour (in timezone).
1 to 24
timezonestringdefault: "Asia/Kolkata"IANA time zone for the calling hours.
recordbooleandefault: trueKeep a stereo recording of the call.
hangup_messagestringSaid before the agent hangs up when the conversation is over.
hangup_on_promptbooleandefault: falseAfter each reply, ask the model (with hangup_prompt) whether the conversation is over.
hangup_promptstringThe question for hangup_on_prompt; it must answer Yes or No.
at most 4000 characters
hangup_interruptiblebooleandefault: falsecheck_user_onlinebooleandefault: falseWhen the caller goes quiet, ask once whether they're still there.
user_online_messagestringdefault: "Are you still there?"What to ask.
user_online_after_secondsintegerdefault: 9Silence before asking.
3 to 60
analyticsobjectRun once the call ends; the results are saved on the call and sent in call.completed.
Show child attributes
summarizebooleandefault: falseWrite a short summary of the call.
extractionsobject[]at most 50 items
Show item attributes
keystringthe JSON key, e.g. lead_status
matches ^[a-z][a-z0-9_]{0,39}$
labelstringat most 80 characters
typeenum<string>default: "text"One of:textnumberbooleanchoicedatelist
descriptionstringwhat to extract and how
at most 600 characters
choicesobject[]at most 20 items
Show item attributes
valuestring1 to 60 characters
whenstringat most 300 characters
extraction_promptstringWhat to pull out of the transcript, in plain words; saved as JSON in extracted.
at most 4000 characters
toolsobject[]Show item attributes
namestringThe function name the model calls: letters, digits and _.
matches ^[a-zA-Z_][a-zA-Z0-9_]{0,63}$
descriptionstringWhen the model should use the tool.
3 to 1000 characters
parametersobjectJSON Schema of the arguments the model fills in.
methodenum<string>default: "POST"GET sends the arguments as query parameters, POST as a JSON body.
One of:GETPOST
urlstringWhere the request goes.
headersobjectExtra request headers, such as an authorization header.
pre_call_messagestringSaid while the request runs.
timeout_secondsnumberdefault: 8The request is abandoned after this long.
1 to 30
knowledge_base_idsstring[]at most 10 items
webhook_urlstringphone_numberstringstatusenum<string>default: "active"One of:activepaused
idstringThe agent's id.
versionintegerdefault: 1Increases with every saved change.
updated_bystringWho made the last change.
created_atstringdate-time
updated_atstringdate-time
variablesstring[]Every {variable} the welcome message and prompt use, in order.
401No credentials, or they are invalid or revoked.
detailstringWhat went wrong, in plain words.
403Your role (or an API key) lacks the permission.
detailstringWhat went wrong, in plain words.
422Validation Error
detailobject[]Show item attributes
locstring | integer[]msgstringtypestring429Over the per-key rate limit; wait for Retry-After.
detailstringWhat went wrong, in plain words.