Create assistant
curl --request POST \
--url https://app.aiavoice.com/api/user/assistant \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"assistant_name": "<string>",
"voice_id": 123,
"language": "<string>",
"llm_model": "<string>",
"calls_direction": "<string>",
"engine_type": "<string>",
"timezone": "<string>",
"initial_message": "<string>",
"system_prompt": "<string>",
"phone_number_id": 123,
"endpoint_type": "<string>",
"endpoint_sensitivity": 123,
"interrupt_sensitivity": 123,
"ambient_sound_volume": 123,
"post_call_evaluation": true,
"send_webhook_only_on_completed": true,
"include_recording_in_webhook": true,
"is_webhook_active": true,
"webhook_url": "<string>",
"use_min_interrupt_words": true,
"min_interrupt_words": 123,
"variables": {},
"post_call_schema": [
{
"post_call_schema[].name": "<string>",
"post_call_schema[].type": "<string>",
"post_call_schema[].description": "<string>"
}
],
"end_call_tool.description": "<string>",
"llm_temperature": 123,
"voice_stability": 123,
"voice_similarity": 123,
"speech_speed": 123,
"allow_interruptions": true,
"filler_audios": true,
"re_engagement_interval": 123,
"max_call_duration": 123,
"max_silence_duration": 123,
"end_call_on_voicemail": true,
"noise_cancellation": true,
"record_call": true,
"who_speaks_first": "<string>"
}
'import requests
url = "https://app.aiavoice.com/api/user/assistant"
payload = {
"assistant_name": "<string>",
"voice_id": 123,
"language": "<string>",
"llm_model": "<string>",
"calls_direction": "<string>",
"engine_type": "<string>",
"timezone": "<string>",
"initial_message": "<string>",
"system_prompt": "<string>",
"phone_number_id": 123,
"endpoint_type": "<string>",
"endpoint_sensitivity": 123,
"interrupt_sensitivity": 123,
"ambient_sound_volume": 123,
"post_call_evaluation": True,
"send_webhook_only_on_completed": True,
"include_recording_in_webhook": True,
"is_webhook_active": True,
"webhook_url": "<string>",
"use_min_interrupt_words": True,
"min_interrupt_words": 123,
"variables": {},
"post_call_schema": [
{
"post_call_schema[].name": "<string>",
"post_call_schema[].type": "<string>",
"post_call_schema[].description": "<string>"
}
],
"end_call_tool.description": "<string>",
"llm_temperature": 123,
"voice_stability": 123,
"voice_similarity": 123,
"speech_speed": 123,
"allow_interruptions": True,
"filler_audios": True,
"re_engagement_interval": 123,
"max_call_duration": 123,
"max_silence_duration": 123,
"end_call_on_voicemail": True,
"noise_cancellation": True,
"record_call": True,
"who_speaks_first": "<string>"
}
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({
assistant_name: '<string>',
voice_id: 123,
language: '<string>',
llm_model: '<string>',
calls_direction: '<string>',
engine_type: '<string>',
timezone: '<string>',
initial_message: '<string>',
system_prompt: '<string>',
phone_number_id: 123,
endpoint_type: '<string>',
endpoint_sensitivity: 123,
interrupt_sensitivity: 123,
ambient_sound_volume: 123,
post_call_evaluation: true,
send_webhook_only_on_completed: true,
include_recording_in_webhook: true,
is_webhook_active: true,
webhook_url: '<string>',
use_min_interrupt_words: true,
min_interrupt_words: 123,
variables: {},
post_call_schema: [
{
'post_call_schema[].name': '<string>',
'post_call_schema[].type': '<string>',
'post_call_schema[].description': '<string>'
}
],
'end_call_tool.description': '<string>',
llm_temperature: 123,
voice_stability: 123,
voice_similarity: 123,
speech_speed: 123,
allow_interruptions: true,
filler_audios: true,
re_engagement_interval: 123,
max_call_duration: 123,
max_silence_duration: 123,
end_call_on_voicemail: true,
noise_cancellation: true,
record_call: true,
who_speaks_first: '<string>'
})
};
fetch('https://app.aiavoice.com/api/user/assistant', 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://app.aiavoice.com/api/user/assistant",
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([
'assistant_name' => '<string>',
'voice_id' => 123,
'language' => '<string>',
'llm_model' => '<string>',
'calls_direction' => '<string>',
'engine_type' => '<string>',
'timezone' => '<string>',
'initial_message' => '<string>',
'system_prompt' => '<string>',
'phone_number_id' => 123,
'endpoint_type' => '<string>',
'endpoint_sensitivity' => 123,
'interrupt_sensitivity' => 123,
'ambient_sound_volume' => 123,
'post_call_evaluation' => true,
'send_webhook_only_on_completed' => true,
'include_recording_in_webhook' => true,
'is_webhook_active' => true,
'webhook_url' => '<string>',
'use_min_interrupt_words' => true,
'min_interrupt_words' => 123,
'variables' => [
],
'post_call_schema' => [
[
'post_call_schema[].name' => '<string>',
'post_call_schema[].type' => '<string>',
'post_call_schema[].description' => '<string>'
]
],
'end_call_tool.description' => '<string>',
'llm_temperature' => 123,
'voice_stability' => 123,
'voice_similarity' => 123,
'speech_speed' => 123,
'allow_interruptions' => true,
'filler_audios' => true,
're_engagement_interval' => 123,
'max_call_duration' => 123,
'max_silence_duration' => 123,
'end_call_on_voicemail' => true,
'noise_cancellation' => true,
'record_call' => true,
'who_speaks_first' => '<string>'
]),
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://app.aiavoice.com/api/user/assistant"
payload := strings.NewReader("{\n \"assistant_name\": \"<string>\",\n \"voice_id\": 123,\n \"language\": \"<string>\",\n \"llm_model\": \"<string>\",\n \"calls_direction\": \"<string>\",\n \"engine_type\": \"<string>\",\n \"timezone\": \"<string>\",\n \"initial_message\": \"<string>\",\n \"system_prompt\": \"<string>\",\n \"phone_number_id\": 123,\n \"endpoint_type\": \"<string>\",\n \"endpoint_sensitivity\": 123,\n \"interrupt_sensitivity\": 123,\n \"ambient_sound_volume\": 123,\n \"post_call_evaluation\": true,\n \"send_webhook_only_on_completed\": true,\n \"include_recording_in_webhook\": true,\n \"is_webhook_active\": true,\n \"webhook_url\": \"<string>\",\n \"use_min_interrupt_words\": true,\n \"min_interrupt_words\": 123,\n \"variables\": {},\n \"post_call_schema\": [\n {\n \"post_call_schema[].name\": \"<string>\",\n \"post_call_schema[].type\": \"<string>\",\n \"post_call_schema[].description\": \"<string>\"\n }\n ],\n \"end_call_tool.description\": \"<string>\",\n \"llm_temperature\": 123,\n \"voice_stability\": 123,\n \"voice_similarity\": 123,\n \"speech_speed\": 123,\n \"allow_interruptions\": true,\n \"filler_audios\": true,\n \"re_engagement_interval\": 123,\n \"max_call_duration\": 123,\n \"max_silence_duration\": 123,\n \"end_call_on_voicemail\": true,\n \"noise_cancellation\": true,\n \"record_call\": true,\n \"who_speaks_first\": \"<string>\"\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://app.aiavoice.com/api/user/assistant")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"assistant_name\": \"<string>\",\n \"voice_id\": 123,\n \"language\": \"<string>\",\n \"llm_model\": \"<string>\",\n \"calls_direction\": \"<string>\",\n \"engine_type\": \"<string>\",\n \"timezone\": \"<string>\",\n \"initial_message\": \"<string>\",\n \"system_prompt\": \"<string>\",\n \"phone_number_id\": 123,\n \"endpoint_type\": \"<string>\",\n \"endpoint_sensitivity\": 123,\n \"interrupt_sensitivity\": 123,\n \"ambient_sound_volume\": 123,\n \"post_call_evaluation\": true,\n \"send_webhook_only_on_completed\": true,\n \"include_recording_in_webhook\": true,\n \"is_webhook_active\": true,\n \"webhook_url\": \"<string>\",\n \"use_min_interrupt_words\": true,\n \"min_interrupt_words\": 123,\n \"variables\": {},\n \"post_call_schema\": [\n {\n \"post_call_schema[].name\": \"<string>\",\n \"post_call_schema[].type\": \"<string>\",\n \"post_call_schema[].description\": \"<string>\"\n }\n ],\n \"end_call_tool.description\": \"<string>\",\n \"llm_temperature\": 123,\n \"voice_stability\": 123,\n \"voice_similarity\": 123,\n \"speech_speed\": 123,\n \"allow_interruptions\": true,\n \"filler_audios\": true,\n \"re_engagement_interval\": 123,\n \"max_call_duration\": 123,\n \"max_silence_duration\": 123,\n \"end_call_on_voicemail\": true,\n \"noise_cancellation\": true,\n \"record_call\": true,\n \"who_speaks_first\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.aiavoice.com/api/user/assistant")
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 \"assistant_name\": \"<string>\",\n \"voice_id\": 123,\n \"language\": \"<string>\",\n \"llm_model\": \"<string>\",\n \"calls_direction\": \"<string>\",\n \"engine_type\": \"<string>\",\n \"timezone\": \"<string>\",\n \"initial_message\": \"<string>\",\n \"system_prompt\": \"<string>\",\n \"phone_number_id\": 123,\n \"endpoint_type\": \"<string>\",\n \"endpoint_sensitivity\": 123,\n \"interrupt_sensitivity\": 123,\n \"ambient_sound_volume\": 123,\n \"post_call_evaluation\": true,\n \"send_webhook_only_on_completed\": true,\n \"include_recording_in_webhook\": true,\n \"is_webhook_active\": true,\n \"webhook_url\": \"<string>\",\n \"use_min_interrupt_words\": true,\n \"min_interrupt_words\": 123,\n \"variables\": {},\n \"post_call_schema\": [\n {\n \"post_call_schema[].name\": \"<string>\",\n \"post_call_schema[].type\": \"<string>\",\n \"post_call_schema[].description\": \"<string>\"\n }\n ],\n \"end_call_tool.description\": \"<string>\",\n \"llm_temperature\": 123,\n \"voice_stability\": 123,\n \"voice_similarity\": 123,\n \"speech_speed\": 123,\n \"allow_interruptions\": true,\n \"filler_audios\": true,\n \"re_engagement_interval\": 123,\n \"max_call_duration\": 123,\n \"max_silence_duration\": 123,\n \"end_call_on_voicemail\": true,\n \"noise_cancellation\": true,\n \"record_call\": true,\n \"who_speaks_first\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"message": "Assistant created successfully",
"data": {
"id": 789,
"name": "Sales Assistant",
"status": "active",
"type": "outbound",
"mode": "pipeline"
}
}
{
"message": "Validation failed",
"errors": {
"assistant_name": [
"The assistant name field is required."
],
"webhook_url": [
"The webhook url field is required when is webhook active is true."
]
}
}
{
"message": "Assistant creation failed"
}
Assistants
Create assistant
Create a new AI assistant with specified configuration
POST
/
user
/
assistant
Create assistant
curl --request POST \
--url https://app.aiavoice.com/api/user/assistant \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"assistant_name": "<string>",
"voice_id": 123,
"language": "<string>",
"llm_model": "<string>",
"calls_direction": "<string>",
"engine_type": "<string>",
"timezone": "<string>",
"initial_message": "<string>",
"system_prompt": "<string>",
"phone_number_id": 123,
"endpoint_type": "<string>",
"endpoint_sensitivity": 123,
"interrupt_sensitivity": 123,
"ambient_sound_volume": 123,
"post_call_evaluation": true,
"send_webhook_only_on_completed": true,
"include_recording_in_webhook": true,
"is_webhook_active": true,
"webhook_url": "<string>",
"use_min_interrupt_words": true,
"min_interrupt_words": 123,
"variables": {},
"post_call_schema": [
{
"post_call_schema[].name": "<string>",
"post_call_schema[].type": "<string>",
"post_call_schema[].description": "<string>"
}
],
"end_call_tool.description": "<string>",
"llm_temperature": 123,
"voice_stability": 123,
"voice_similarity": 123,
"speech_speed": 123,
"allow_interruptions": true,
"filler_audios": true,
"re_engagement_interval": 123,
"max_call_duration": 123,
"max_silence_duration": 123,
"end_call_on_voicemail": true,
"noise_cancellation": true,
"record_call": true,
"who_speaks_first": "<string>"
}
'import requests
url = "https://app.aiavoice.com/api/user/assistant"
payload = {
"assistant_name": "<string>",
"voice_id": 123,
"language": "<string>",
"llm_model": "<string>",
"calls_direction": "<string>",
"engine_type": "<string>",
"timezone": "<string>",
"initial_message": "<string>",
"system_prompt": "<string>",
"phone_number_id": 123,
"endpoint_type": "<string>",
"endpoint_sensitivity": 123,
"interrupt_sensitivity": 123,
"ambient_sound_volume": 123,
"post_call_evaluation": True,
"send_webhook_only_on_completed": True,
"include_recording_in_webhook": True,
"is_webhook_active": True,
"webhook_url": "<string>",
"use_min_interrupt_words": True,
"min_interrupt_words": 123,
"variables": {},
"post_call_schema": [
{
"post_call_schema[].name": "<string>",
"post_call_schema[].type": "<string>",
"post_call_schema[].description": "<string>"
}
],
"end_call_tool.description": "<string>",
"llm_temperature": 123,
"voice_stability": 123,
"voice_similarity": 123,
"speech_speed": 123,
"allow_interruptions": True,
"filler_audios": True,
"re_engagement_interval": 123,
"max_call_duration": 123,
"max_silence_duration": 123,
"end_call_on_voicemail": True,
"noise_cancellation": True,
"record_call": True,
"who_speaks_first": "<string>"
}
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({
assistant_name: '<string>',
voice_id: 123,
language: '<string>',
llm_model: '<string>',
calls_direction: '<string>',
engine_type: '<string>',
timezone: '<string>',
initial_message: '<string>',
system_prompt: '<string>',
phone_number_id: 123,
endpoint_type: '<string>',
endpoint_sensitivity: 123,
interrupt_sensitivity: 123,
ambient_sound_volume: 123,
post_call_evaluation: true,
send_webhook_only_on_completed: true,
include_recording_in_webhook: true,
is_webhook_active: true,
webhook_url: '<string>',
use_min_interrupt_words: true,
min_interrupt_words: 123,
variables: {},
post_call_schema: [
{
'post_call_schema[].name': '<string>',
'post_call_schema[].type': '<string>',
'post_call_schema[].description': '<string>'
}
],
'end_call_tool.description': '<string>',
llm_temperature: 123,
voice_stability: 123,
voice_similarity: 123,
speech_speed: 123,
allow_interruptions: true,
filler_audios: true,
re_engagement_interval: 123,
max_call_duration: 123,
max_silence_duration: 123,
end_call_on_voicemail: true,
noise_cancellation: true,
record_call: true,
who_speaks_first: '<string>'
})
};
fetch('https://app.aiavoice.com/api/user/assistant', 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://app.aiavoice.com/api/user/assistant",
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([
'assistant_name' => '<string>',
'voice_id' => 123,
'language' => '<string>',
'llm_model' => '<string>',
'calls_direction' => '<string>',
'engine_type' => '<string>',
'timezone' => '<string>',
'initial_message' => '<string>',
'system_prompt' => '<string>',
'phone_number_id' => 123,
'endpoint_type' => '<string>',
'endpoint_sensitivity' => 123,
'interrupt_sensitivity' => 123,
'ambient_sound_volume' => 123,
'post_call_evaluation' => true,
'send_webhook_only_on_completed' => true,
'include_recording_in_webhook' => true,
'is_webhook_active' => true,
'webhook_url' => '<string>',
'use_min_interrupt_words' => true,
'min_interrupt_words' => 123,
'variables' => [
],
'post_call_schema' => [
[
'post_call_schema[].name' => '<string>',
'post_call_schema[].type' => '<string>',
'post_call_schema[].description' => '<string>'
]
],
'end_call_tool.description' => '<string>',
'llm_temperature' => 123,
'voice_stability' => 123,
'voice_similarity' => 123,
'speech_speed' => 123,
'allow_interruptions' => true,
'filler_audios' => true,
're_engagement_interval' => 123,
'max_call_duration' => 123,
'max_silence_duration' => 123,
'end_call_on_voicemail' => true,
'noise_cancellation' => true,
'record_call' => true,
'who_speaks_first' => '<string>'
]),
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://app.aiavoice.com/api/user/assistant"
payload := strings.NewReader("{\n \"assistant_name\": \"<string>\",\n \"voice_id\": 123,\n \"language\": \"<string>\",\n \"llm_model\": \"<string>\",\n \"calls_direction\": \"<string>\",\n \"engine_type\": \"<string>\",\n \"timezone\": \"<string>\",\n \"initial_message\": \"<string>\",\n \"system_prompt\": \"<string>\",\n \"phone_number_id\": 123,\n \"endpoint_type\": \"<string>\",\n \"endpoint_sensitivity\": 123,\n \"interrupt_sensitivity\": 123,\n \"ambient_sound_volume\": 123,\n \"post_call_evaluation\": true,\n \"send_webhook_only_on_completed\": true,\n \"include_recording_in_webhook\": true,\n \"is_webhook_active\": true,\n \"webhook_url\": \"<string>\",\n \"use_min_interrupt_words\": true,\n \"min_interrupt_words\": 123,\n \"variables\": {},\n \"post_call_schema\": [\n {\n \"post_call_schema[].name\": \"<string>\",\n \"post_call_schema[].type\": \"<string>\",\n \"post_call_schema[].description\": \"<string>\"\n }\n ],\n \"end_call_tool.description\": \"<string>\",\n \"llm_temperature\": 123,\n \"voice_stability\": 123,\n \"voice_similarity\": 123,\n \"speech_speed\": 123,\n \"allow_interruptions\": true,\n \"filler_audios\": true,\n \"re_engagement_interval\": 123,\n \"max_call_duration\": 123,\n \"max_silence_duration\": 123,\n \"end_call_on_voicemail\": true,\n \"noise_cancellation\": true,\n \"record_call\": true,\n \"who_speaks_first\": \"<string>\"\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://app.aiavoice.com/api/user/assistant")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"assistant_name\": \"<string>\",\n \"voice_id\": 123,\n \"language\": \"<string>\",\n \"llm_model\": \"<string>\",\n \"calls_direction\": \"<string>\",\n \"engine_type\": \"<string>\",\n \"timezone\": \"<string>\",\n \"initial_message\": \"<string>\",\n \"system_prompt\": \"<string>\",\n \"phone_number_id\": 123,\n \"endpoint_type\": \"<string>\",\n \"endpoint_sensitivity\": 123,\n \"interrupt_sensitivity\": 123,\n \"ambient_sound_volume\": 123,\n \"post_call_evaluation\": true,\n \"send_webhook_only_on_completed\": true,\n \"include_recording_in_webhook\": true,\n \"is_webhook_active\": true,\n \"webhook_url\": \"<string>\",\n \"use_min_interrupt_words\": true,\n \"min_interrupt_words\": 123,\n \"variables\": {},\n \"post_call_schema\": [\n {\n \"post_call_schema[].name\": \"<string>\",\n \"post_call_schema[].type\": \"<string>\",\n \"post_call_schema[].description\": \"<string>\"\n }\n ],\n \"end_call_tool.description\": \"<string>\",\n \"llm_temperature\": 123,\n \"voice_stability\": 123,\n \"voice_similarity\": 123,\n \"speech_speed\": 123,\n \"allow_interruptions\": true,\n \"filler_audios\": true,\n \"re_engagement_interval\": 123,\n \"max_call_duration\": 123,\n \"max_silence_duration\": 123,\n \"end_call_on_voicemail\": true,\n \"noise_cancellation\": true,\n \"record_call\": true,\n \"who_speaks_first\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.aiavoice.com/api/user/assistant")
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 \"assistant_name\": \"<string>\",\n \"voice_id\": 123,\n \"language\": \"<string>\",\n \"llm_model\": \"<string>\",\n \"calls_direction\": \"<string>\",\n \"engine_type\": \"<string>\",\n \"timezone\": \"<string>\",\n \"initial_message\": \"<string>\",\n \"system_prompt\": \"<string>\",\n \"phone_number_id\": 123,\n \"endpoint_type\": \"<string>\",\n \"endpoint_sensitivity\": 123,\n \"interrupt_sensitivity\": 123,\n \"ambient_sound_volume\": 123,\n \"post_call_evaluation\": true,\n \"send_webhook_only_on_completed\": true,\n \"include_recording_in_webhook\": true,\n \"is_webhook_active\": true,\n \"webhook_url\": \"<string>\",\n \"use_min_interrupt_words\": true,\n \"min_interrupt_words\": 123,\n \"variables\": {},\n \"post_call_schema\": [\n {\n \"post_call_schema[].name\": \"<string>\",\n \"post_call_schema[].type\": \"<string>\",\n \"post_call_schema[].description\": \"<string>\"\n }\n ],\n \"end_call_tool.description\": \"<string>\",\n \"llm_temperature\": 123,\n \"voice_stability\": 123,\n \"voice_similarity\": 123,\n \"speech_speed\": 123,\n \"allow_interruptions\": true,\n \"filler_audios\": true,\n \"re_engagement_interval\": 123,\n \"max_call_duration\": 123,\n \"max_silence_duration\": 123,\n \"end_call_on_voicemail\": true,\n \"noise_cancellation\": true,\n \"record_call\": true,\n \"who_speaks_first\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"message": "Assistant created successfully",
"data": {
"id": 789,
"name": "Sales Assistant",
"status": "active",
"type": "outbound",
"mode": "pipeline"
}
}
{
"message": "Validation failed",
"errors": {
"assistant_name": [
"The assistant name field is required."
],
"webhook_url": [
"The webhook url field is required when is webhook active is true."
]
}
}
{
"message": "Assistant creation failed"
}
This endpoint allows you to create a new AI assistant with comprehensive configuration options.
Request Body
Core Required Fields
string
required
The name of the assistant (max 255 characters)
integer
required
The voice ID to use for the assistant (must exist in available voices)
string
required
The language name for the assistant (max 100 characters)
string
required
The LLM model name to use (max 100 characters)
string
required
The call direction type. Options:
receive, makestring
required
The engine type to use. Options:
pipeline, multimodalstring
required
The timezone for the assistant (e.g., “America/New_York”)
string
required
The initial message the assistant will speak when the call starts
string
required
The system prompt that defines the assistant’s behavior and personality
Optional Configuration
integer
The ID of a phone number to assign to the assistant (must exist in user’s phone numbers)
string
Voice activity detection type. Options:
vad, ainumber
Endpoint sensitivity level (0-5)
number
Interrupt sensitivity level (0-5)
number
Ambient sound volume level (0-1)
boolean
Whether to enable post-call evaluation
boolean
Whether to send webhooks only on completed calls
boolean
Whether to include recording URL in webhook payload
Webhook Configuration
boolean
Whether webhook notifications are enabled
string
The webhook URL for post-call notifications (required if is_webhook_active is true)
Interruption Settings
boolean
Whether to use minimum interrupt words setting
integer
Minimum number of words before interruption is allowed (0-10)
Variables and Schema
object
Key-value pairs of custom variables for the assistant
array
End Call Tool
string
Description for the end call tool functionality (max 500 characters)
Voice and Speech Settings
number
LLM temperature setting (0-1)
number
Voice stability setting (0-1)
number
Voice similarity setting (0-1)
number
Speech speed multiplier (0.7-1.2)
Call Behavior Settings
boolean
Whether to allow caller interruptions
boolean
Whether to use filler audio during processing
integer
Re-engagement interval in seconds (7-600)
integer
Maximum call duration in seconds (20-1200)
integer
Maximum silence duration in seconds (1-120)
boolean
Whether to end call when voicemail is detected
boolean
Whether to enable noise cancellation
boolean
Whether to record the call
string
Who speaks first in the call. Options:
AI assistant, CustomerResponse
string
Success message confirming assistant creation
object
Error Responses
{
"message": "Assistant created successfully",
"data": {
"id": 789,
"name": "Sales Assistant",
"status": "active",
"type": "outbound",
"mode": "pipeline"
}
}
{
"message": "Validation failed",
"errors": {
"assistant_name": [
"The assistant name field is required."
],
"webhook_url": [
"The webhook url field is required when is webhook active is true."
]
}
}
{
"message": "Assistant creation failed"
}
Notes
- All required fields must be provided for successful assistant creation
- The assistant will be created with default settings for any optional fields not specified
- Phone number assignment is optional but the phone number must belong to the authenticated user
- Webhook URL is required only when
is_webhook_activeis set to true - Voice and language identifiers must correspond to available options in the system
⌘I

