curl --request POST \
--url https://api.itellico.ai/v1/accounts/{account_id}/agents \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"model": {
"max_tokens": 1024,
"model": "gpt-5-mini",
"provider": "azure_openai",
"temperature": 0.7
},
"name": "Customer Support Agent",
"transcriber": {
"languages": [],
"model": "stt-rt-v4",
"provider": "soniox"
},
"voice": {
"provider": "elevenlabs",
"settings": {
"similarity_boost": 0.7,
"stability": 0.7,
"use_speaker_boost": true
},
"voice_id": "pMsXgVXv3BLzUgSXRplE"
}
}
'import requests
url = "https://api.itellico.ai/v1/accounts/{account_id}/agents"
payload = {
"model": {
"max_tokens": 1024,
"model": "gpt-5-mini",
"provider": "azure_openai",
"temperature": 0.7
},
"name": "Customer Support Agent",
"transcriber": {
"languages": [],
"model": "stt-rt-v4",
"provider": "soniox"
},
"voice": {
"provider": "elevenlabs",
"settings": {
"similarity_boost": 0.7,
"stability": 0.7,
"use_speaker_boost": True
},
"voice_id": "pMsXgVXv3BLzUgSXRplE"
}
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: {
max_tokens: 1024,
model: 'gpt-5-mini',
provider: 'azure_openai',
temperature: 0.7
},
name: 'Customer Support Agent',
transcriber: {languages: [], model: 'stt-rt-v4', provider: 'soniox'},
voice: {
provider: 'elevenlabs',
settings: {similarity_boost: 0.7, stability: 0.7, use_speaker_boost: true},
voice_id: 'pMsXgVXv3BLzUgSXRplE'
}
})
};
fetch('https://api.itellico.ai/v1/accounts/{account_id}/agents', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.itellico.ai/v1/accounts/{account_id}/agents"
payload := strings.NewReader("{\n \"model\": {\n \"max_tokens\": 1024,\n \"model\": \"gpt-5-mini\",\n \"provider\": \"azure_openai\",\n \"temperature\": 0.7\n },\n \"name\": \"Customer Support Agent\",\n \"transcriber\": {\n \"languages\": [],\n \"model\": \"stt-rt-v4\",\n \"provider\": \"soniox\"\n },\n \"voice\": {\n \"provider\": \"elevenlabs\",\n \"settings\": {\n \"similarity_boost\": 0.7,\n \"stability\": 0.7,\n \"use_speaker_boost\": true\n },\n \"voice_id\": \"pMsXgVXv3BLzUgSXRplE\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.itellico.ai/v1/accounts/{account_id}/agents")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"model\": {\n \"max_tokens\": 1024,\n \"model\": \"gpt-5-mini\",\n \"provider\": \"azure_openai\",\n \"temperature\": 0.7\n },\n \"name\": \"Customer Support Agent\",\n \"transcriber\": {\n \"languages\": [],\n \"model\": \"stt-rt-v4\",\n \"provider\": \"soniox\"\n },\n \"voice\": {\n \"provider\": \"elevenlabs\",\n \"settings\": {\n \"similarity_boost\": 0.7,\n \"stability\": 0.7,\n \"use_speaker_boost\": true\n },\n \"voice_id\": \"pMsXgVXv3BLzUgSXRplE\"\n }\n}")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.itellico.ai/v1/accounts/{account_id}/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([
'model' => [
'max_tokens' => 1024,
'model' => 'gpt-5-mini',
'provider' => 'azure_openai',
'temperature' => 0.7
],
'name' => 'Customer Support Agent',
'transcriber' => [
'languages' => [
],
'model' => 'stt-rt-v4',
'provider' => 'soniox'
],
'voice' => [
'provider' => 'elevenlabs',
'settings' => [
'similarity_boost' => 0.7,
'stability' => 0.7,
'use_speaker_boost' => true
],
'voice_id' => 'pMsXgVXv3BLzUgSXRplE'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.itellico.ai/v1/accounts/{account_id}/agents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": {\n \"max_tokens\": 1024,\n \"model\": \"gpt-5-mini\",\n \"provider\": \"azure_openai\",\n \"temperature\": 0.7\n },\n \"name\": \"Customer Support Agent\",\n \"transcriber\": {\n \"languages\": [],\n \"model\": \"stt-rt-v4\",\n \"provider\": \"soniox\"\n },\n \"voice\": {\n \"provider\": \"elevenlabs\",\n \"settings\": {\n \"similarity_boost\": 0.7,\n \"stability\": 0.7,\n \"use_speaker_boost\": true\n },\n \"voice_id\": \"pMsXgVXv3BLzUgSXRplE\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"account_id": "<string>",
"name": "<string>",
"initial_message": {
"message": "",
"mode": "fixed_message",
"delay_ms": 0,
"interruptible": false
},
"ambient_sound": {
"source": "open_plan_office",
"volume": 0.5
},
"inactivity_settings": {
"reminder_timeout_ms": 10000,
"reminder_max_count": 2,
"end_call_timeout_ms": 305000,
"reset_on_activity": true
},
"response_timing": {
"min_endpointing_delay_seconds": 0.1
},
"allow_auto_hangup": true,
"allow_caller_recording_opt_out": true,
"max_duration_seconds": 123,
"note": "<string>",
"tags": [
"<string>"
],
"interrupt_settings": {
"enabled": true,
"min_words": 0,
"min_speech_seconds": 0.2
},
"model": {},
"transcriber": {},
"voice": {},
"metadata": {},
"capture_settings": {
"recording_enabled": true
},
"volume": {
"web": 0.5,
"telephony": 0.5,
"allow_adjustment": true
},
"denoising": {
"web": true,
"telephony": true
},
"created": "2023-11-07T05:31:56Z",
"modified": "2023-11-07T05:31:56Z"
}{
"code": "not_found",
"detail": "Agent with UUID 123e4567-e89b-12d3-a456-426614174000 does not exist",
"message": "Resource not found"
}{
"code": "not_found",
"detail": "Agent with UUID 123e4567-e89b-12d3-a456-426614174000 does not exist",
"message": "Resource not found"
}{
"code": "not_found",
"detail": "Agent with UUID 123e4567-e89b-12d3-a456-426614174000 does not exist",
"message": "Resource not found"
}{
"code": "not_found",
"detail": "Agent with UUID 123e4567-e89b-12d3-a456-426614174000 does not exist",
"message": "Resource not found"
}{
"code": "not_found",
"detail": "Agent with UUID 123e4567-e89b-12d3-a456-426614174000 does not exist",
"message": "Resource not found"
}{
"code": "not_found",
"detail": "Agent with UUID 123e4567-e89b-12d3-a456-426614174000 does not exist",
"message": "Resource not found"
}Create an agent
Create a new AI agent with specified configuration for voice conversations.
curl --request POST \
--url https://api.itellico.ai/v1/accounts/{account_id}/agents \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"model": {
"max_tokens": 1024,
"model": "gpt-5-mini",
"provider": "azure_openai",
"temperature": 0.7
},
"name": "Customer Support Agent",
"transcriber": {
"languages": [],
"model": "stt-rt-v4",
"provider": "soniox"
},
"voice": {
"provider": "elevenlabs",
"settings": {
"similarity_boost": 0.7,
"stability": 0.7,
"use_speaker_boost": true
},
"voice_id": "pMsXgVXv3BLzUgSXRplE"
}
}
'import requests
url = "https://api.itellico.ai/v1/accounts/{account_id}/agents"
payload = {
"model": {
"max_tokens": 1024,
"model": "gpt-5-mini",
"provider": "azure_openai",
"temperature": 0.7
},
"name": "Customer Support Agent",
"transcriber": {
"languages": [],
"model": "stt-rt-v4",
"provider": "soniox"
},
"voice": {
"provider": "elevenlabs",
"settings": {
"similarity_boost": 0.7,
"stability": 0.7,
"use_speaker_boost": True
},
"voice_id": "pMsXgVXv3BLzUgSXRplE"
}
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: {
max_tokens: 1024,
model: 'gpt-5-mini',
provider: 'azure_openai',
temperature: 0.7
},
name: 'Customer Support Agent',
transcriber: {languages: [], model: 'stt-rt-v4', provider: 'soniox'},
voice: {
provider: 'elevenlabs',
settings: {similarity_boost: 0.7, stability: 0.7, use_speaker_boost: true},
voice_id: 'pMsXgVXv3BLzUgSXRplE'
}
})
};
fetch('https://api.itellico.ai/v1/accounts/{account_id}/agents', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.itellico.ai/v1/accounts/{account_id}/agents"
payload := strings.NewReader("{\n \"model\": {\n \"max_tokens\": 1024,\n \"model\": \"gpt-5-mini\",\n \"provider\": \"azure_openai\",\n \"temperature\": 0.7\n },\n \"name\": \"Customer Support Agent\",\n \"transcriber\": {\n \"languages\": [],\n \"model\": \"stt-rt-v4\",\n \"provider\": \"soniox\"\n },\n \"voice\": {\n \"provider\": \"elevenlabs\",\n \"settings\": {\n \"similarity_boost\": 0.7,\n \"stability\": 0.7,\n \"use_speaker_boost\": true\n },\n \"voice_id\": \"pMsXgVXv3BLzUgSXRplE\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.itellico.ai/v1/accounts/{account_id}/agents")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"model\": {\n \"max_tokens\": 1024,\n \"model\": \"gpt-5-mini\",\n \"provider\": \"azure_openai\",\n \"temperature\": 0.7\n },\n \"name\": \"Customer Support Agent\",\n \"transcriber\": {\n \"languages\": [],\n \"model\": \"stt-rt-v4\",\n \"provider\": \"soniox\"\n },\n \"voice\": {\n \"provider\": \"elevenlabs\",\n \"settings\": {\n \"similarity_boost\": 0.7,\n \"stability\": 0.7,\n \"use_speaker_boost\": true\n },\n \"voice_id\": \"pMsXgVXv3BLzUgSXRplE\"\n }\n}")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.itellico.ai/v1/accounts/{account_id}/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([
'model' => [
'max_tokens' => 1024,
'model' => 'gpt-5-mini',
'provider' => 'azure_openai',
'temperature' => 0.7
],
'name' => 'Customer Support Agent',
'transcriber' => [
'languages' => [
],
'model' => 'stt-rt-v4',
'provider' => 'soniox'
],
'voice' => [
'provider' => 'elevenlabs',
'settings' => [
'similarity_boost' => 0.7,
'stability' => 0.7,
'use_speaker_boost' => true
],
'voice_id' => 'pMsXgVXv3BLzUgSXRplE'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.itellico.ai/v1/accounts/{account_id}/agents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": {\n \"max_tokens\": 1024,\n \"model\": \"gpt-5-mini\",\n \"provider\": \"azure_openai\",\n \"temperature\": 0.7\n },\n \"name\": \"Customer Support Agent\",\n \"transcriber\": {\n \"languages\": [],\n \"model\": \"stt-rt-v4\",\n \"provider\": \"soniox\"\n },\n \"voice\": {\n \"provider\": \"elevenlabs\",\n \"settings\": {\n \"similarity_boost\": 0.7,\n \"stability\": 0.7,\n \"use_speaker_boost\": true\n },\n \"voice_id\": \"pMsXgVXv3BLzUgSXRplE\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"account_id": "<string>",
"name": "<string>",
"initial_message": {
"message": "",
"mode": "fixed_message",
"delay_ms": 0,
"interruptible": false
},
"ambient_sound": {
"source": "open_plan_office",
"volume": 0.5
},
"inactivity_settings": {
"reminder_timeout_ms": 10000,
"reminder_max_count": 2,
"end_call_timeout_ms": 305000,
"reset_on_activity": true
},
"response_timing": {
"min_endpointing_delay_seconds": 0.1
},
"allow_auto_hangup": true,
"allow_caller_recording_opt_out": true,
"max_duration_seconds": 123,
"note": "<string>",
"tags": [
"<string>"
],
"interrupt_settings": {
"enabled": true,
"min_words": 0,
"min_speech_seconds": 0.2
},
"model": {},
"transcriber": {},
"voice": {},
"metadata": {},
"capture_settings": {
"recording_enabled": true
},
"volume": {
"web": 0.5,
"telephony": 0.5,
"allow_adjustment": true
},
"denoising": {
"web": true,
"telephony": true
},
"created": "2023-11-07T05:31:56Z",
"modified": "2023-11-07T05:31:56Z"
}{
"code": "not_found",
"detail": "Agent with UUID 123e4567-e89b-12d3-a456-426614174000 does not exist",
"message": "Resource not found"
}{
"code": "not_found",
"detail": "Agent with UUID 123e4567-e89b-12d3-a456-426614174000 does not exist",
"message": "Resource not found"
}{
"code": "not_found",
"detail": "Agent with UUID 123e4567-e89b-12d3-a456-426614174000 does not exist",
"message": "Resource not found"
}{
"code": "not_found",
"detail": "Agent with UUID 123e4567-e89b-12d3-a456-426614174000 does not exist",
"message": "Resource not found"
}{
"code": "not_found",
"detail": "Agent with UUID 123e4567-e89b-12d3-a456-426614174000 does not exist",
"message": "Resource not found"
}{
"code": "not_found",
"detail": "Agent with UUID 123e4567-e89b-12d3-a456-426614174000 does not exist",
"message": "Resource not found"
}Authorizations
Path Parameters
Body
Create a new AI agent for handling voice conversations
OpenAI-specific model configuration.
- OpenAIModelSchema
- AzureOpenAIModelSchema
- AnthropicModelSchema
Show child attributes
Show child attributes
Azure-specific transcriber configuration.
- AzureTranscriberSchema
- DeepgramTranscriberSchema
- CartesiaTranscriberSchema
- ElevenLabsTranscriberSchema
- SonioxTranscriberSchema
Show child attributes
Show child attributes
Azure-specific voice configuration.
- AzureVoiceSchema
- CartesiaVoiceSchema
- ElevenLabsVoiceSchema
Show child attributes
Show child attributes
The name of the agent. Only used for your own reference to identify and manage agents. Not visible to end users during conversations.
50Configuration for the agent's initial message when starting a conversation.
Show child attributes
Show child attributes
Configuration for ambient background sounds during the conversation.
Show child attributes
Show child attributes
Maximum allowed length for the conversation in seconds. Default is 1200 seconds (20 minutes) if not specified.
10 <= x <= 43200Configuration for handling user inactivity and silence during conversations.
Show child attributes
Show child attributes
Internal notes about the agent. These notes are for your team's reference only and are not visible to end users. Use this to document agent configuration, purpose, or any special instructions.
5000List of tags to categorize and organize your agents. Tags help you filter and find agents quickly. Examples: 'sales', 'support', 'lead-qualification', 'appointment-booking'.
Configuration for how the agent handles user interruptions during conversation. If not provided, defaults to allowing interruptions with minimal filtering.
Show child attributes
Show child attributes
Configuration for agent response timing and conversation flow control.
Show child attributes
Show child attributes
Custom metadata for the agent. Store any additional key-value pairs that your application needs. This data is not used by the agent itself but can be useful for integrations, tracking, or custom business logic.
Recording configuration for conversation capture. Controls whether conversations are recorded for quality assurance, training, or compliance purposes.
Show child attributes
Show child attributes
Volume settings for agent audio output. Controls the volume level for different call types and whether users can adjust volume via voice commands.
Show child attributes
Show child attributes
Denoising/noise cancellation settings for enhanced audio quality powered by Krisp. Controls advanced noise suppression for different call types.
Show child attributes
Show child attributes
Whether the AI may automatically end the call when the conversation has concluded.
Whether callers may request that recording stop and captured audio be deleted.
Response
Created
Response returned after agent operations (create, get, update)
Unique identifier for the agent. Use this ID to reference the agent in API calls for updates, deletion, or starting conversations.
Unique identifier for the account that owns this agent.
The display name of the agent as configured. This is for your reference and internal organization.
Configuration for the agent's initial message when starting a conversation.
Show child attributes
Show child attributes
Configuration for ambient background sounds during the conversation.
Show child attributes
Show child attributes
Configuration for handling user inactivity and silence during conversations.
Show child attributes
Show child attributes
Configuration for agent response timing and conversation flow control.
Show child attributes
Show child attributes
Whether the AI may automatically end the call when the conversation has concluded.
Whether callers may request that recording stop and captured audio be deleted.
The maximum conversation duration configured for this agent in seconds. Maximum allowed is 7200 seconds (2 hours).
Internal notes about the agent for your team's reference.
List of tags assigned to this agent for categorization and filtering.
Configuration for how the agent handles user interruptions during conversation.
Show child attributes
Show child attributes
Language model configuration for the agent.
Speech-to-text configuration for the agent.
Text-to-speech configuration for the agent.
Custom metadata associated with the agent.
Capture settings configuration for recording and artifact settings.
Show child attributes
Show child attributes
Volume settings for different call types and voice adjustment control.
Show child attributes
Show child attributes
Denoising/noise cancellation settings for enhanced audio quality powered by Krisp.
Show child attributes
Show child attributes
Date-time of when the agent was created (ISO 8601 on output).
Date-time of when the agent was last updated (ISO 8601 on output).
Was this page helpful?