Create agent
Creates a new agent; optional fields override server defaults.
curl --request POST \
--url https://api.vatel.ai/v1/agents \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"phone_number_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"llm": "<string>",
"fallback_llm": "<string>",
"prompt": "<string>",
"first_message": "<string>",
"first_message_interruption_time": 123,
"default_language": "<string>",
"summarize_calls": true,
"noise_cancel_settings": {
"enabled": true,
"level": 123
},
"vad_settings": {
"start_secs": 123,
"stop_secs": 123,
"silence_timeout_secs": 123
},
"enable_first_message_outbound": true,
"timeout_settings": {
"default_timeout": 123,
"transfer_number": "<string>",
"transfer_message": "<string>",
"silence_counter": 123,
"silence_transfer_number": "<string>"
},
"keyterms": [
"<string>"
],
"voice_settings": {
"id": "<string>",
"speed": 123,
"stability": 123,
"similarity_boost": 123,
"volume": 123
}
}
'import requests
url = "https://api.vatel.ai/v1/agents"
payload = {
"name": "<string>",
"phone_number_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"llm": "<string>",
"fallback_llm": "<string>",
"prompt": "<string>",
"first_message": "<string>",
"first_message_interruption_time": 123,
"default_language": "<string>",
"summarize_calls": True,
"noise_cancel_settings": {
"enabled": True,
"level": 123
},
"vad_settings": {
"start_secs": 123,
"stop_secs": 123,
"silence_timeout_secs": 123
},
"enable_first_message_outbound": True,
"timeout_settings": {
"default_timeout": 123,
"transfer_number": "<string>",
"transfer_message": "<string>",
"silence_counter": 123,
"silence_transfer_number": "<string>"
},
"keyterms": ["<string>"],
"voice_settings": {
"id": "<string>",
"speed": 123,
"stability": 123,
"similarity_boost": 123,
"volume": 123
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
phone_number_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
llm: '<string>',
fallback_llm: '<string>',
prompt: '<string>',
first_message: '<string>',
first_message_interruption_time: 123,
default_language: '<string>',
summarize_calls: true,
noise_cancel_settings: {enabled: true, level: 123},
vad_settings: {start_secs: 123, stop_secs: 123, silence_timeout_secs: 123},
enable_first_message_outbound: true,
timeout_settings: {
default_timeout: 123,
transfer_number: '<string>',
transfer_message: '<string>',
silence_counter: 123,
silence_transfer_number: '<string>'
},
keyterms: ['<string>'],
voice_settings: {id: '<string>', speed: 123, stability: 123, similarity_boost: 123, volume: 123}
})
};
fetch('https://api.vatel.ai/v1/agents', 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://api.vatel.ai/v1/agents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'phone_number_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'llm' => '<string>',
'fallback_llm' => '<string>',
'prompt' => '<string>',
'first_message' => '<string>',
'first_message_interruption_time' => 123,
'default_language' => '<string>',
'summarize_calls' => true,
'noise_cancel_settings' => [
'enabled' => true,
'level' => 123
],
'vad_settings' => [
'start_secs' => 123,
'stop_secs' => 123,
'silence_timeout_secs' => 123
],
'enable_first_message_outbound' => true,
'timeout_settings' => [
'default_timeout' => 123,
'transfer_number' => '<string>',
'transfer_message' => '<string>',
'silence_counter' => 123,
'silence_transfer_number' => '<string>'
],
'keyterms' => [
'<string>'
],
'voice_settings' => [
'id' => '<string>',
'speed' => 123,
'stability' => 123,
'similarity_boost' => 123,
'volume' => 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://api.vatel.ai/v1/agents"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"phone_number_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"llm\": \"<string>\",\n \"fallback_llm\": \"<string>\",\n \"prompt\": \"<string>\",\n \"first_message\": \"<string>\",\n \"first_message_interruption_time\": 123,\n \"default_language\": \"<string>\",\n \"summarize_calls\": true,\n \"noise_cancel_settings\": {\n \"enabled\": true,\n \"level\": 123\n },\n \"vad_settings\": {\n \"start_secs\": 123,\n \"stop_secs\": 123,\n \"silence_timeout_secs\": 123\n },\n \"enable_first_message_outbound\": true,\n \"timeout_settings\": {\n \"default_timeout\": 123,\n \"transfer_number\": \"<string>\",\n \"transfer_message\": \"<string>\",\n \"silence_counter\": 123,\n \"silence_transfer_number\": \"<string>\"\n },\n \"keyterms\": [\n \"<string>\"\n ],\n \"voice_settings\": {\n \"id\": \"<string>\",\n \"speed\": 123,\n \"stability\": 123,\n \"similarity_boost\": 123,\n \"volume\": 123\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.vatel.ai/v1/agents")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"phone_number_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"llm\": \"<string>\",\n \"fallback_llm\": \"<string>\",\n \"prompt\": \"<string>\",\n \"first_message\": \"<string>\",\n \"first_message_interruption_time\": 123,\n \"default_language\": \"<string>\",\n \"summarize_calls\": true,\n \"noise_cancel_settings\": {\n \"enabled\": true,\n \"level\": 123\n },\n \"vad_settings\": {\n \"start_secs\": 123,\n \"stop_secs\": 123,\n \"silence_timeout_secs\": 123\n },\n \"enable_first_message_outbound\": true,\n \"timeout_settings\": {\n \"default_timeout\": 123,\n \"transfer_number\": \"<string>\",\n \"transfer_message\": \"<string>\",\n \"silence_counter\": 123,\n \"silence_transfer_number\": \"<string>\"\n },\n \"keyterms\": [\n \"<string>\"\n ],\n \"voice_settings\": {\n \"id\": \"<string>\",\n \"speed\": 123,\n \"stability\": 123,\n \"similarity_boost\": 123,\n \"volume\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vatel.ai/v1/agents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"phone_number_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"llm\": \"<string>\",\n \"fallback_llm\": \"<string>\",\n \"prompt\": \"<string>\",\n \"first_message\": \"<string>\",\n \"first_message_interruption_time\": 123,\n \"default_language\": \"<string>\",\n \"summarize_calls\": true,\n \"noise_cancel_settings\": {\n \"enabled\": true,\n \"level\": 123\n },\n \"vad_settings\": {\n \"start_secs\": 123,\n \"stop_secs\": 123,\n \"silence_timeout_secs\": 123\n },\n \"enable_first_message_outbound\": true,\n \"timeout_settings\": {\n \"default_timeout\": 123,\n \"transfer_number\": \"<string>\",\n \"transfer_message\": \"<string>\",\n \"silence_counter\": 123,\n \"silence_transfer_number\": \"<string>\"\n },\n \"keyterms\": [\n \"<string>\"\n ],\n \"voice_settings\": {\n \"id\": \"<string>\",\n \"speed\": 123,\n \"stability\": 123,\n \"similarity_boost\": 123,\n \"volume\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"phone_number_id": "<string>",
"name": "<string>",
"llm": "<string>",
"fallback_llm": "<string>",
"status": "active",
"prompt": "<string>",
"first_message": "<string>",
"first_message_interruption_time": 123,
"default_language": "<string>",
"summarize_calls": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"noise_cancel_settings": {
"enabled": true,
"level": 123
},
"vad_settings": {
"start_secs": 123,
"stop_secs": 123,
"silence_timeout_secs": 123
},
"enable_first_message_outbound": true,
"voice_settings": {
"id": "<string>",
"provider": "elevenlabs",
"speed": 123,
"stability": 123,
"similarity_boost": 123,
"volume": 123
},
"timeout_settings": {
"default_timeout": 123,
"timeout_action": "end_call",
"transfer_number": "<string>",
"transfer_message": "<string>",
"silence_counter": 123,
"silence_timeout_action": "end_call",
"silence_transfer_number": "<string>"
},
"keyterms": [
"<string>"
]
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Send your organization API key as Authorization: Bearer <key>.
Body
Fields accepted when creating an agent; server defaults apply to omitted values.
Display name (required).
Twilio number id belonging to this org, or null to leave unassigned.
Language model id in provider/model form. Use GET /v1/llms for values accepted on create and update.
Language model id in provider/model form. Use GET /v1/llms for values accepted on create and update.
Whether the agent accepts traffic.
active, inactive One of: multi, en, es, fr, de, it, pt, ru, zh, ja, ko, ar, hi (see Agent.default_language).
Inbound noise suppression profile.
Show child attributes
Show child attributes
Voice-activity detection timing for turn-taking. On PATCH, send only the fields to change; omitted properties keep their stored values.
Show child attributes
Show child attributes
Limits and escalation rules for user silence and overall call duration.
Show child attributes
Show child attributes
Optional list; empty omitted uses server default.
Voice and TTS provider for the agent. On create or update, include id and provider; optional tuning fields (when sent and non-zero) must be between 0 and 2.
Show child attributes
Show child attributes
Response
Created agent
Voice agent configuration for your organization. llm is the primary model; fallback_llm is used when the primary cannot serve.
Stable agent id.
Assigned Twilio number id for this agent, if any. Empty when unassigned.
Display name.
Language model id in provider/model form. Use GET /v1/llms for values accepted on create and update.
Language model id in provider/model form. Use GET /v1/llms for values accepted on create and update.
Whether the agent accepts traffic.
active, inactive System or base instructions for the model.
Opening line the agent speaks when a call starts.
Window (seconds) where the first message can be interrupted.
Primary speech language: multi, en, es, fr, de, it, pt, ru, zh, ja, ko, ar, or hi (same set as the builder UI). multi is only appropriate for multilingual STT (e.g. Deepgram Nova).
Whether to generate summaries after calls.
Inbound noise suppression profile.
Show child attributes
Show child attributes
Voice-activity detection timing for turn-taking. On PATCH, send only the fields to change; omitted properties keep their stored values.
Show child attributes
Show child attributes
Play first_message on outbound calls when true.
Voice and TTS provider for the agent. On create or update, include id and provider; optional tuning fields (when sent and non-zero) must be between 0 and 2.
Show child attributes
Show child attributes
Limits and escalation rules for user silence and overall call duration.
Show child attributes
Show child attributes
Hints for transcription or keyword boosting, up to server limits.
curl --request POST \
--url https://api.vatel.ai/v1/agents \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"phone_number_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"llm": "<string>",
"fallback_llm": "<string>",
"prompt": "<string>",
"first_message": "<string>",
"first_message_interruption_time": 123,
"default_language": "<string>",
"summarize_calls": true,
"noise_cancel_settings": {
"enabled": true,
"level": 123
},
"vad_settings": {
"start_secs": 123,
"stop_secs": 123,
"silence_timeout_secs": 123
},
"enable_first_message_outbound": true,
"timeout_settings": {
"default_timeout": 123,
"transfer_number": "<string>",
"transfer_message": "<string>",
"silence_counter": 123,
"silence_transfer_number": "<string>"
},
"keyterms": [
"<string>"
],
"voice_settings": {
"id": "<string>",
"speed": 123,
"stability": 123,
"similarity_boost": 123,
"volume": 123
}
}
'import requests
url = "https://api.vatel.ai/v1/agents"
payload = {
"name": "<string>",
"phone_number_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"llm": "<string>",
"fallback_llm": "<string>",
"prompt": "<string>",
"first_message": "<string>",
"first_message_interruption_time": 123,
"default_language": "<string>",
"summarize_calls": True,
"noise_cancel_settings": {
"enabled": True,
"level": 123
},
"vad_settings": {
"start_secs": 123,
"stop_secs": 123,
"silence_timeout_secs": 123
},
"enable_first_message_outbound": True,
"timeout_settings": {
"default_timeout": 123,
"transfer_number": "<string>",
"transfer_message": "<string>",
"silence_counter": 123,
"silence_transfer_number": "<string>"
},
"keyterms": ["<string>"],
"voice_settings": {
"id": "<string>",
"speed": 123,
"stability": 123,
"similarity_boost": 123,
"volume": 123
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
phone_number_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
llm: '<string>',
fallback_llm: '<string>',
prompt: '<string>',
first_message: '<string>',
first_message_interruption_time: 123,
default_language: '<string>',
summarize_calls: true,
noise_cancel_settings: {enabled: true, level: 123},
vad_settings: {start_secs: 123, stop_secs: 123, silence_timeout_secs: 123},
enable_first_message_outbound: true,
timeout_settings: {
default_timeout: 123,
transfer_number: '<string>',
transfer_message: '<string>',
silence_counter: 123,
silence_transfer_number: '<string>'
},
keyterms: ['<string>'],
voice_settings: {id: '<string>', speed: 123, stability: 123, similarity_boost: 123, volume: 123}
})
};
fetch('https://api.vatel.ai/v1/agents', 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://api.vatel.ai/v1/agents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'phone_number_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'llm' => '<string>',
'fallback_llm' => '<string>',
'prompt' => '<string>',
'first_message' => '<string>',
'first_message_interruption_time' => 123,
'default_language' => '<string>',
'summarize_calls' => true,
'noise_cancel_settings' => [
'enabled' => true,
'level' => 123
],
'vad_settings' => [
'start_secs' => 123,
'stop_secs' => 123,
'silence_timeout_secs' => 123
],
'enable_first_message_outbound' => true,
'timeout_settings' => [
'default_timeout' => 123,
'transfer_number' => '<string>',
'transfer_message' => '<string>',
'silence_counter' => 123,
'silence_transfer_number' => '<string>'
],
'keyterms' => [
'<string>'
],
'voice_settings' => [
'id' => '<string>',
'speed' => 123,
'stability' => 123,
'similarity_boost' => 123,
'volume' => 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://api.vatel.ai/v1/agents"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"phone_number_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"llm\": \"<string>\",\n \"fallback_llm\": \"<string>\",\n \"prompt\": \"<string>\",\n \"first_message\": \"<string>\",\n \"first_message_interruption_time\": 123,\n \"default_language\": \"<string>\",\n \"summarize_calls\": true,\n \"noise_cancel_settings\": {\n \"enabled\": true,\n \"level\": 123\n },\n \"vad_settings\": {\n \"start_secs\": 123,\n \"stop_secs\": 123,\n \"silence_timeout_secs\": 123\n },\n \"enable_first_message_outbound\": true,\n \"timeout_settings\": {\n \"default_timeout\": 123,\n \"transfer_number\": \"<string>\",\n \"transfer_message\": \"<string>\",\n \"silence_counter\": 123,\n \"silence_transfer_number\": \"<string>\"\n },\n \"keyterms\": [\n \"<string>\"\n ],\n \"voice_settings\": {\n \"id\": \"<string>\",\n \"speed\": 123,\n \"stability\": 123,\n \"similarity_boost\": 123,\n \"volume\": 123\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.vatel.ai/v1/agents")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"phone_number_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"llm\": \"<string>\",\n \"fallback_llm\": \"<string>\",\n \"prompt\": \"<string>\",\n \"first_message\": \"<string>\",\n \"first_message_interruption_time\": 123,\n \"default_language\": \"<string>\",\n \"summarize_calls\": true,\n \"noise_cancel_settings\": {\n \"enabled\": true,\n \"level\": 123\n },\n \"vad_settings\": {\n \"start_secs\": 123,\n \"stop_secs\": 123,\n \"silence_timeout_secs\": 123\n },\n \"enable_first_message_outbound\": true,\n \"timeout_settings\": {\n \"default_timeout\": 123,\n \"transfer_number\": \"<string>\",\n \"transfer_message\": \"<string>\",\n \"silence_counter\": 123,\n \"silence_transfer_number\": \"<string>\"\n },\n \"keyterms\": [\n \"<string>\"\n ],\n \"voice_settings\": {\n \"id\": \"<string>\",\n \"speed\": 123,\n \"stability\": 123,\n \"similarity_boost\": 123,\n \"volume\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vatel.ai/v1/agents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"phone_number_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"llm\": \"<string>\",\n \"fallback_llm\": \"<string>\",\n \"prompt\": \"<string>\",\n \"first_message\": \"<string>\",\n \"first_message_interruption_time\": 123,\n \"default_language\": \"<string>\",\n \"summarize_calls\": true,\n \"noise_cancel_settings\": {\n \"enabled\": true,\n \"level\": 123\n },\n \"vad_settings\": {\n \"start_secs\": 123,\n \"stop_secs\": 123,\n \"silence_timeout_secs\": 123\n },\n \"enable_first_message_outbound\": true,\n \"timeout_settings\": {\n \"default_timeout\": 123,\n \"transfer_number\": \"<string>\",\n \"transfer_message\": \"<string>\",\n \"silence_counter\": 123,\n \"silence_transfer_number\": \"<string>\"\n },\n \"keyterms\": [\n \"<string>\"\n ],\n \"voice_settings\": {\n \"id\": \"<string>\",\n \"speed\": 123,\n \"stability\": 123,\n \"similarity_boost\": 123,\n \"volume\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"phone_number_id": "<string>",
"name": "<string>",
"llm": "<string>",
"fallback_llm": "<string>",
"status": "active",
"prompt": "<string>",
"first_message": "<string>",
"first_message_interruption_time": 123,
"default_language": "<string>",
"summarize_calls": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"noise_cancel_settings": {
"enabled": true,
"level": 123
},
"vad_settings": {
"start_secs": 123,
"stop_secs": 123,
"silence_timeout_secs": 123
},
"enable_first_message_outbound": true,
"voice_settings": {
"id": "<string>",
"provider": "elevenlabs",
"speed": 123,
"stability": 123,
"similarity_boost": 123,
"volume": 123
},
"timeout_settings": {
"default_timeout": 123,
"timeout_action": "end_call",
"transfer_number": "<string>",
"transfer_message": "<string>",
"silence_counter": 123,
"silence_timeout_action": "end_call",
"silence_transfer_number": "<string>"
},
"keyterms": [
"<string>"
]
}{
"error": "<string>"
}{
"error": "<string>"
}
