Update Agent
curl --request PUT \
--url https://dev.voice.ai/api/v1/agent/{agent_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"config": {
"prompt": "<string>",
"greeting": "<string>",
"llm_temperature": 0.7,
"llm_model": "gemini-2.5-flash-lite",
"tts_min_sentence_len": 20,
"tts_params": {
"voice_id": "<string>",
"language": "en",
"temperature": 1,
"top_p": 0.8,
"dictionary_id": "<string>"
},
"min_silence_duration": 0.55,
"min_speech_duration": 0.1,
"user_silence_timeout": 10,
"max_call_duration_seconds": 900,
"allow_interruptions": true,
"allow_interruptions_on_greeting": false,
"min_interruption_words": 1,
"auto_noise_reduction": true,
"allow_agent_to_end_call": false,
"allow_agent_to_skip_turn": false,
"min_endpointing_delay": 0.5,
"max_endpointing_delay": 3,
"vad_activation_threshold": 0.6,
"phone_number": "<string>",
"phone_provider": "twilio",
"recording_enabled": true,
"webhooks": {
"events": [
{
"url": "<string>",
"secret": "<string>",
"events": [
"<string>"
],
"timeout": 5,
"enabled": true
}
],
"tools": [
{
"name": "<string>",
"description": "<string>",
"url": "<string>",
"parameters": {},
"auth_token": "<string>",
"headers": {},
"response": {},
"timeout": 10
}
]
},
"mcp_servers": [
{
"name": "<string>",
"url": "<string>",
"description": "<string>",
"auth_type": "none",
"auth_token": "<string>",
"headers": {}
}
]
},
"kb_id": 123
}
'import requests
url = "https://dev.voice.ai/api/v1/agent/{agent_id}"
payload = {
"name": "<string>",
"config": {
"prompt": "<string>",
"greeting": "<string>",
"llm_temperature": 0.7,
"llm_model": "gemini-2.5-flash-lite",
"tts_min_sentence_len": 20,
"tts_params": {
"voice_id": "<string>",
"language": "en",
"temperature": 1,
"top_p": 0.8,
"dictionary_id": "<string>"
},
"min_silence_duration": 0.55,
"min_speech_duration": 0.1,
"user_silence_timeout": 10,
"max_call_duration_seconds": 900,
"allow_interruptions": True,
"allow_interruptions_on_greeting": False,
"min_interruption_words": 1,
"auto_noise_reduction": True,
"allow_agent_to_end_call": False,
"allow_agent_to_skip_turn": False,
"min_endpointing_delay": 0.5,
"max_endpointing_delay": 3,
"vad_activation_threshold": 0.6,
"phone_number": "<string>",
"phone_provider": "twilio",
"recording_enabled": True,
"webhooks": {
"events": [
{
"url": "<string>",
"secret": "<string>",
"events": ["<string>"],
"timeout": 5,
"enabled": True
}
],
"tools": [
{
"name": "<string>",
"description": "<string>",
"url": "<string>",
"parameters": {},
"auth_token": "<string>",
"headers": {},
"response": {},
"timeout": 10
}
]
},
"mcp_servers": [
{
"name": "<string>",
"url": "<string>",
"description": "<string>",
"auth_type": "none",
"auth_token": "<string>",
"headers": {}
}
]
},
"kb_id": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
config: {
prompt: '<string>',
greeting: '<string>',
llm_temperature: 0.7,
llm_model: 'gemini-2.5-flash-lite',
tts_min_sentence_len: 20,
tts_params: {
voice_id: '<string>',
language: 'en',
temperature: 1,
top_p: 0.8,
dictionary_id: '<string>'
},
min_silence_duration: 0.55,
min_speech_duration: 0.1,
user_silence_timeout: 10,
max_call_duration_seconds: 900,
allow_interruptions: true,
allow_interruptions_on_greeting: false,
min_interruption_words: 1,
auto_noise_reduction: true,
allow_agent_to_end_call: false,
allow_agent_to_skip_turn: false,
min_endpointing_delay: 0.5,
max_endpointing_delay: 3,
vad_activation_threshold: 0.6,
phone_number: '<string>',
phone_provider: 'twilio',
recording_enabled: true,
webhooks: {
events: [
{
url: '<string>',
secret: '<string>',
events: ['<string>'],
timeout: 5,
enabled: true
}
],
tools: [
{
name: '<string>',
description: '<string>',
url: '<string>',
parameters: {},
auth_token: '<string>',
headers: {},
response: {},
timeout: 10
}
]
},
mcp_servers: [
{
name: '<string>',
url: '<string>',
description: '<string>',
auth_type: 'none',
auth_token: '<string>',
headers: {}
}
]
},
kb_id: 123
})
};
fetch('https://dev.voice.ai/api/v1/agent/{agent_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://dev.voice.ai/api/v1/agent/{agent_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'config' => [
'prompt' => '<string>',
'greeting' => '<string>',
'llm_temperature' => 0.7,
'llm_model' => 'gemini-2.5-flash-lite',
'tts_min_sentence_len' => 20,
'tts_params' => [
'voice_id' => '<string>',
'language' => 'en',
'temperature' => 1,
'top_p' => 0.8,
'dictionary_id' => '<string>'
],
'min_silence_duration' => 0.55,
'min_speech_duration' => 0.1,
'user_silence_timeout' => 10,
'max_call_duration_seconds' => 900,
'allow_interruptions' => true,
'allow_interruptions_on_greeting' => false,
'min_interruption_words' => 1,
'auto_noise_reduction' => true,
'allow_agent_to_end_call' => false,
'allow_agent_to_skip_turn' => false,
'min_endpointing_delay' => 0.5,
'max_endpointing_delay' => 3,
'vad_activation_threshold' => 0.6,
'phone_number' => '<string>',
'phone_provider' => 'twilio',
'recording_enabled' => true,
'webhooks' => [
'events' => [
[
'url' => '<string>',
'secret' => '<string>',
'events' => [
'<string>'
],
'timeout' => 5,
'enabled' => true
]
],
'tools' => [
[
'name' => '<string>',
'description' => '<string>',
'url' => '<string>',
'parameters' => [
],
'auth_token' => '<string>',
'headers' => [
],
'response' => [
],
'timeout' => 10
]
]
],
'mcp_servers' => [
[
'name' => '<string>',
'url' => '<string>',
'description' => '<string>',
'auth_type' => 'none',
'auth_token' => '<string>',
'headers' => [
]
]
]
],
'kb_id' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://dev.voice.ai/api/v1/agent/{agent_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"config\": {\n \"prompt\": \"<string>\",\n \"greeting\": \"<string>\",\n \"llm_temperature\": 0.7,\n \"llm_model\": \"gemini-2.5-flash-lite\",\n \"tts_min_sentence_len\": 20,\n \"tts_params\": {\n \"voice_id\": \"<string>\",\n \"language\": \"en\",\n \"temperature\": 1,\n \"top_p\": 0.8,\n \"dictionary_id\": \"<string>\"\n },\n \"min_silence_duration\": 0.55,\n \"min_speech_duration\": 0.1,\n \"user_silence_timeout\": 10,\n \"max_call_duration_seconds\": 900,\n \"allow_interruptions\": true,\n \"allow_interruptions_on_greeting\": false,\n \"min_interruption_words\": 1,\n \"auto_noise_reduction\": true,\n \"allow_agent_to_end_call\": false,\n \"allow_agent_to_skip_turn\": false,\n \"min_endpointing_delay\": 0.5,\n \"max_endpointing_delay\": 3,\n \"vad_activation_threshold\": 0.6,\n \"phone_number\": \"<string>\",\n \"phone_provider\": \"twilio\",\n \"recording_enabled\": true,\n \"webhooks\": {\n \"events\": [\n {\n \"url\": \"<string>\",\n \"secret\": \"<string>\",\n \"events\": [\n \"<string>\"\n ],\n \"timeout\": 5,\n \"enabled\": true\n }\n ],\n \"tools\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"url\": \"<string>\",\n \"parameters\": {},\n \"auth_token\": \"<string>\",\n \"headers\": {},\n \"response\": {},\n \"timeout\": 10\n }\n ]\n },\n \"mcp_servers\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"description\": \"<string>\",\n \"auth_type\": \"none\",\n \"auth_token\": \"<string>\",\n \"headers\": {}\n }\n ]\n },\n \"kb_id\": 123\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://dev.voice.ai/api/v1/agent/{agent_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"config\": {\n \"prompt\": \"<string>\",\n \"greeting\": \"<string>\",\n \"llm_temperature\": 0.7,\n \"llm_model\": \"gemini-2.5-flash-lite\",\n \"tts_min_sentence_len\": 20,\n \"tts_params\": {\n \"voice_id\": \"<string>\",\n \"language\": \"en\",\n \"temperature\": 1,\n \"top_p\": 0.8,\n \"dictionary_id\": \"<string>\"\n },\n \"min_silence_duration\": 0.55,\n \"min_speech_duration\": 0.1,\n \"user_silence_timeout\": 10,\n \"max_call_duration_seconds\": 900,\n \"allow_interruptions\": true,\n \"allow_interruptions_on_greeting\": false,\n \"min_interruption_words\": 1,\n \"auto_noise_reduction\": true,\n \"allow_agent_to_end_call\": false,\n \"allow_agent_to_skip_turn\": false,\n \"min_endpointing_delay\": 0.5,\n \"max_endpointing_delay\": 3,\n \"vad_activation_threshold\": 0.6,\n \"phone_number\": \"<string>\",\n \"phone_provider\": \"twilio\",\n \"recording_enabled\": true,\n \"webhooks\": {\n \"events\": [\n {\n \"url\": \"<string>\",\n \"secret\": \"<string>\",\n \"events\": [\n \"<string>\"\n ],\n \"timeout\": 5,\n \"enabled\": true\n }\n ],\n \"tools\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"url\": \"<string>\",\n \"parameters\": {},\n \"auth_token\": \"<string>\",\n \"headers\": {},\n \"response\": {},\n \"timeout\": 10\n }\n ]\n },\n \"mcp_servers\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"description\": \"<string>\",\n \"auth_type\": \"none\",\n \"auth_token\": \"<string>\",\n \"headers\": {}\n }\n ]\n },\n \"kb_id\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.voice.ai/api/v1/agent/{agent_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"config\": {\n \"prompt\": \"<string>\",\n \"greeting\": \"<string>\",\n \"llm_temperature\": 0.7,\n \"llm_model\": \"gemini-2.5-flash-lite\",\n \"tts_min_sentence_len\": 20,\n \"tts_params\": {\n \"voice_id\": \"<string>\",\n \"language\": \"en\",\n \"temperature\": 1,\n \"top_p\": 0.8,\n \"dictionary_id\": \"<string>\"\n },\n \"min_silence_duration\": 0.55,\n \"min_speech_duration\": 0.1,\n \"user_silence_timeout\": 10,\n \"max_call_duration_seconds\": 900,\n \"allow_interruptions\": true,\n \"allow_interruptions_on_greeting\": false,\n \"min_interruption_words\": 1,\n \"auto_noise_reduction\": true,\n \"allow_agent_to_end_call\": false,\n \"allow_agent_to_skip_turn\": false,\n \"min_endpointing_delay\": 0.5,\n \"max_endpointing_delay\": 3,\n \"vad_activation_threshold\": 0.6,\n \"phone_number\": \"<string>\",\n \"phone_provider\": \"twilio\",\n \"recording_enabled\": true,\n \"webhooks\": {\n \"events\": [\n {\n \"url\": \"<string>\",\n \"secret\": \"<string>\",\n \"events\": [\n \"<string>\"\n ],\n \"timeout\": 5,\n \"enabled\": true\n }\n ],\n \"tools\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"url\": \"<string>\",\n \"parameters\": {},\n \"auth_token\": \"<string>\",\n \"headers\": {},\n \"response\": {},\n \"timeout\": 10\n }\n ]\n },\n \"mcp_servers\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"description\": \"<string>\",\n \"auth_type\": \"none\",\n \"auth_token\": \"<string>\",\n \"headers\": {}\n }\n ]\n },\n \"kb_id\": 123\n}"
response = http.request(request)
puts response.read_body{
"agent_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"name": "Customer Support Agent",
"config": {
"prompt": "You are a helpful customer support agent.",
"greeting": "Hello! How can I help you today?"
},
"status": "paused",
"status_code": 1,
"kb_id": 42,
"created_at": "2026-03-06T18:00:00Z",
"updated_at": "2026-03-06T18:10:00Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Agent Management
Update Agent
Update an existing agent. Returns the updated agent snapshot as a bare Agent object.
PUT
/
api
/
v1
/
agent
/
{agent_id}
Update Agent
curl --request PUT \
--url https://dev.voice.ai/api/v1/agent/{agent_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"config": {
"prompt": "<string>",
"greeting": "<string>",
"llm_temperature": 0.7,
"llm_model": "gemini-2.5-flash-lite",
"tts_min_sentence_len": 20,
"tts_params": {
"voice_id": "<string>",
"language": "en",
"temperature": 1,
"top_p": 0.8,
"dictionary_id": "<string>"
},
"min_silence_duration": 0.55,
"min_speech_duration": 0.1,
"user_silence_timeout": 10,
"max_call_duration_seconds": 900,
"allow_interruptions": true,
"allow_interruptions_on_greeting": false,
"min_interruption_words": 1,
"auto_noise_reduction": true,
"allow_agent_to_end_call": false,
"allow_agent_to_skip_turn": false,
"min_endpointing_delay": 0.5,
"max_endpointing_delay": 3,
"vad_activation_threshold": 0.6,
"phone_number": "<string>",
"phone_provider": "twilio",
"recording_enabled": true,
"webhooks": {
"events": [
{
"url": "<string>",
"secret": "<string>",
"events": [
"<string>"
],
"timeout": 5,
"enabled": true
}
],
"tools": [
{
"name": "<string>",
"description": "<string>",
"url": "<string>",
"parameters": {},
"auth_token": "<string>",
"headers": {},
"response": {},
"timeout": 10
}
]
},
"mcp_servers": [
{
"name": "<string>",
"url": "<string>",
"description": "<string>",
"auth_type": "none",
"auth_token": "<string>",
"headers": {}
}
]
},
"kb_id": 123
}
'import requests
url = "https://dev.voice.ai/api/v1/agent/{agent_id}"
payload = {
"name": "<string>",
"config": {
"prompt": "<string>",
"greeting": "<string>",
"llm_temperature": 0.7,
"llm_model": "gemini-2.5-flash-lite",
"tts_min_sentence_len": 20,
"tts_params": {
"voice_id": "<string>",
"language": "en",
"temperature": 1,
"top_p": 0.8,
"dictionary_id": "<string>"
},
"min_silence_duration": 0.55,
"min_speech_duration": 0.1,
"user_silence_timeout": 10,
"max_call_duration_seconds": 900,
"allow_interruptions": True,
"allow_interruptions_on_greeting": False,
"min_interruption_words": 1,
"auto_noise_reduction": True,
"allow_agent_to_end_call": False,
"allow_agent_to_skip_turn": False,
"min_endpointing_delay": 0.5,
"max_endpointing_delay": 3,
"vad_activation_threshold": 0.6,
"phone_number": "<string>",
"phone_provider": "twilio",
"recording_enabled": True,
"webhooks": {
"events": [
{
"url": "<string>",
"secret": "<string>",
"events": ["<string>"],
"timeout": 5,
"enabled": True
}
],
"tools": [
{
"name": "<string>",
"description": "<string>",
"url": "<string>",
"parameters": {},
"auth_token": "<string>",
"headers": {},
"response": {},
"timeout": 10
}
]
},
"mcp_servers": [
{
"name": "<string>",
"url": "<string>",
"description": "<string>",
"auth_type": "none",
"auth_token": "<string>",
"headers": {}
}
]
},
"kb_id": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
config: {
prompt: '<string>',
greeting: '<string>',
llm_temperature: 0.7,
llm_model: 'gemini-2.5-flash-lite',
tts_min_sentence_len: 20,
tts_params: {
voice_id: '<string>',
language: 'en',
temperature: 1,
top_p: 0.8,
dictionary_id: '<string>'
},
min_silence_duration: 0.55,
min_speech_duration: 0.1,
user_silence_timeout: 10,
max_call_duration_seconds: 900,
allow_interruptions: true,
allow_interruptions_on_greeting: false,
min_interruption_words: 1,
auto_noise_reduction: true,
allow_agent_to_end_call: false,
allow_agent_to_skip_turn: false,
min_endpointing_delay: 0.5,
max_endpointing_delay: 3,
vad_activation_threshold: 0.6,
phone_number: '<string>',
phone_provider: 'twilio',
recording_enabled: true,
webhooks: {
events: [
{
url: '<string>',
secret: '<string>',
events: ['<string>'],
timeout: 5,
enabled: true
}
],
tools: [
{
name: '<string>',
description: '<string>',
url: '<string>',
parameters: {},
auth_token: '<string>',
headers: {},
response: {},
timeout: 10
}
]
},
mcp_servers: [
{
name: '<string>',
url: '<string>',
description: '<string>',
auth_type: 'none',
auth_token: '<string>',
headers: {}
}
]
},
kb_id: 123
})
};
fetch('https://dev.voice.ai/api/v1/agent/{agent_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://dev.voice.ai/api/v1/agent/{agent_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'config' => [
'prompt' => '<string>',
'greeting' => '<string>',
'llm_temperature' => 0.7,
'llm_model' => 'gemini-2.5-flash-lite',
'tts_min_sentence_len' => 20,
'tts_params' => [
'voice_id' => '<string>',
'language' => 'en',
'temperature' => 1,
'top_p' => 0.8,
'dictionary_id' => '<string>'
],
'min_silence_duration' => 0.55,
'min_speech_duration' => 0.1,
'user_silence_timeout' => 10,
'max_call_duration_seconds' => 900,
'allow_interruptions' => true,
'allow_interruptions_on_greeting' => false,
'min_interruption_words' => 1,
'auto_noise_reduction' => true,
'allow_agent_to_end_call' => false,
'allow_agent_to_skip_turn' => false,
'min_endpointing_delay' => 0.5,
'max_endpointing_delay' => 3,
'vad_activation_threshold' => 0.6,
'phone_number' => '<string>',
'phone_provider' => 'twilio',
'recording_enabled' => true,
'webhooks' => [
'events' => [
[
'url' => '<string>',
'secret' => '<string>',
'events' => [
'<string>'
],
'timeout' => 5,
'enabled' => true
]
],
'tools' => [
[
'name' => '<string>',
'description' => '<string>',
'url' => '<string>',
'parameters' => [
],
'auth_token' => '<string>',
'headers' => [
],
'response' => [
],
'timeout' => 10
]
]
],
'mcp_servers' => [
[
'name' => '<string>',
'url' => '<string>',
'description' => '<string>',
'auth_type' => 'none',
'auth_token' => '<string>',
'headers' => [
]
]
]
],
'kb_id' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://dev.voice.ai/api/v1/agent/{agent_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"config\": {\n \"prompt\": \"<string>\",\n \"greeting\": \"<string>\",\n \"llm_temperature\": 0.7,\n \"llm_model\": \"gemini-2.5-flash-lite\",\n \"tts_min_sentence_len\": 20,\n \"tts_params\": {\n \"voice_id\": \"<string>\",\n \"language\": \"en\",\n \"temperature\": 1,\n \"top_p\": 0.8,\n \"dictionary_id\": \"<string>\"\n },\n \"min_silence_duration\": 0.55,\n \"min_speech_duration\": 0.1,\n \"user_silence_timeout\": 10,\n \"max_call_duration_seconds\": 900,\n \"allow_interruptions\": true,\n \"allow_interruptions_on_greeting\": false,\n \"min_interruption_words\": 1,\n \"auto_noise_reduction\": true,\n \"allow_agent_to_end_call\": false,\n \"allow_agent_to_skip_turn\": false,\n \"min_endpointing_delay\": 0.5,\n \"max_endpointing_delay\": 3,\n \"vad_activation_threshold\": 0.6,\n \"phone_number\": \"<string>\",\n \"phone_provider\": \"twilio\",\n \"recording_enabled\": true,\n \"webhooks\": {\n \"events\": [\n {\n \"url\": \"<string>\",\n \"secret\": \"<string>\",\n \"events\": [\n \"<string>\"\n ],\n \"timeout\": 5,\n \"enabled\": true\n }\n ],\n \"tools\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"url\": \"<string>\",\n \"parameters\": {},\n \"auth_token\": \"<string>\",\n \"headers\": {},\n \"response\": {},\n \"timeout\": 10\n }\n ]\n },\n \"mcp_servers\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"description\": \"<string>\",\n \"auth_type\": \"none\",\n \"auth_token\": \"<string>\",\n \"headers\": {}\n }\n ]\n },\n \"kb_id\": 123\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://dev.voice.ai/api/v1/agent/{agent_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"config\": {\n \"prompt\": \"<string>\",\n \"greeting\": \"<string>\",\n \"llm_temperature\": 0.7,\n \"llm_model\": \"gemini-2.5-flash-lite\",\n \"tts_min_sentence_len\": 20,\n \"tts_params\": {\n \"voice_id\": \"<string>\",\n \"language\": \"en\",\n \"temperature\": 1,\n \"top_p\": 0.8,\n \"dictionary_id\": \"<string>\"\n },\n \"min_silence_duration\": 0.55,\n \"min_speech_duration\": 0.1,\n \"user_silence_timeout\": 10,\n \"max_call_duration_seconds\": 900,\n \"allow_interruptions\": true,\n \"allow_interruptions_on_greeting\": false,\n \"min_interruption_words\": 1,\n \"auto_noise_reduction\": true,\n \"allow_agent_to_end_call\": false,\n \"allow_agent_to_skip_turn\": false,\n \"min_endpointing_delay\": 0.5,\n \"max_endpointing_delay\": 3,\n \"vad_activation_threshold\": 0.6,\n \"phone_number\": \"<string>\",\n \"phone_provider\": \"twilio\",\n \"recording_enabled\": true,\n \"webhooks\": {\n \"events\": [\n {\n \"url\": \"<string>\",\n \"secret\": \"<string>\",\n \"events\": [\n \"<string>\"\n ],\n \"timeout\": 5,\n \"enabled\": true\n }\n ],\n \"tools\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"url\": \"<string>\",\n \"parameters\": {},\n \"auth_token\": \"<string>\",\n \"headers\": {},\n \"response\": {},\n \"timeout\": 10\n }\n ]\n },\n \"mcp_servers\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"description\": \"<string>\",\n \"auth_type\": \"none\",\n \"auth_token\": \"<string>\",\n \"headers\": {}\n }\n ]\n },\n \"kb_id\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.voice.ai/api/v1/agent/{agent_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"config\": {\n \"prompt\": \"<string>\",\n \"greeting\": \"<string>\",\n \"llm_temperature\": 0.7,\n \"llm_model\": \"gemini-2.5-flash-lite\",\n \"tts_min_sentence_len\": 20,\n \"tts_params\": {\n \"voice_id\": \"<string>\",\n \"language\": \"en\",\n \"temperature\": 1,\n \"top_p\": 0.8,\n \"dictionary_id\": \"<string>\"\n },\n \"min_silence_duration\": 0.55,\n \"min_speech_duration\": 0.1,\n \"user_silence_timeout\": 10,\n \"max_call_duration_seconds\": 900,\n \"allow_interruptions\": true,\n \"allow_interruptions_on_greeting\": false,\n \"min_interruption_words\": 1,\n \"auto_noise_reduction\": true,\n \"allow_agent_to_end_call\": false,\n \"allow_agent_to_skip_turn\": false,\n \"min_endpointing_delay\": 0.5,\n \"max_endpointing_delay\": 3,\n \"vad_activation_threshold\": 0.6,\n \"phone_number\": \"<string>\",\n \"phone_provider\": \"twilio\",\n \"recording_enabled\": true,\n \"webhooks\": {\n \"events\": [\n {\n \"url\": \"<string>\",\n \"secret\": \"<string>\",\n \"events\": [\n \"<string>\"\n ],\n \"timeout\": 5,\n \"enabled\": true\n }\n ],\n \"tools\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"url\": \"<string>\",\n \"parameters\": {},\n \"auth_token\": \"<string>\",\n \"headers\": {},\n \"response\": {},\n \"timeout\": 10\n }\n ]\n },\n \"mcp_servers\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"description\": \"<string>\",\n \"auth_type\": \"none\",\n \"auth_token\": \"<string>\",\n \"headers\": {}\n }\n ]\n },\n \"kb_id\": 123\n}"
response = http.request(request)
puts response.read_body{
"agent_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"name": "Customer Support Agent",
"config": {
"prompt": "You are a helpful customer support agent.",
"greeting": "Hello! How can I help you today?"
},
"status": "paused",
"status_code": 1,
"kb_id": 42,
"created_at": "2026-03-06T18:00:00Z",
"updated_at": "2026-03-06T18:10:00Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Bearer token authentication. Use your API key as the bearer token. Format: Authorization: Bearer
Path Parameters
Body
application/json
⌘I