Create Agent Draft
curl --request POST \
--url https://api.threetone.in/v1/convai/agents/{agent_id}/drafts \
--header 'Content-Type: application/json' \
--data '
{
"conversation_config": {
"schema_version": 2,
"asr": {
"model_id": "<string>",
"recognition": {
"mode": "fixed"
},
"task": "transcribe",
"keyterms": [
"<string>"
],
"options": {
"adapter_contract": "livekit_inference_cartesia_ink_2_v1",
"turn_start_threshold": 0.7,
"turn_eager_end_threshold": 0.44999999999999996,
"turn_end_threshold": 0.275,
"turn_end_timeout_ms": 5920
}
},
"turn": {
"interruption_ignore_term_languages": [],
"interruption_ignore_terms": [],
"merge_with_default_ignore_terms": false,
"mode": "turn",
"retranscribe_on_turn_timeout": false,
"silence_end_call_timeout": -1,
"soft_timeout_config": {
"message": "Hhmmmm...yeah.",
"timeout_seconds": -1
},
"speculative_turn": false,
"spelling_patience": "auto",
"transcribe_on_disabled_interruptions": false,
"turn_eagerness": "normal",
"turn_model": "turn_v3",
"turn_timeout": 7
},
"tts": {
"model_id": "<string>",
"voice_id": "ME9RtCnWp5vX2LhJdF3k",
"performance": "latency",
"pronunciation_dictionary_locators": [
{
"pronunciation_dictionary_id": "<string>",
"version_id": "<string>"
}
],
"enable_phoneme_tags": true,
"options": {
"adapter_contract": "livekit_inference_cartesia_sonic_3_6_2026_08_27_v1",
"volume": 1.25,
"duration_seconds": 1,
"max_buffer_delay_ms": 1,
"add_timestamps": true,
"add_phoneme_timestamps": true,
"use_normalized_timestamps": true
}
},
"conversation": {
"client_events": [
"audio",
"interruption"
],
"max_duration_seconds": 600
},
"language_presets": {},
"vad": {
"background_voice_detection": false
},
"agent": {
"disable_first_message_interruptions": false,
"first_message": "Hello, how can I help you today?",
"language": "en"
}
},
"platform_settings": {},
"workflow": {
"edges": {
"start_to_support": {
"forward_condition": {
"type": "unconditional"
},
"source": "start_node",
"target": "support"
},
"support_to_end": {
"forward_condition": {
"condition": "The request is resolved",
"type": "llm"
},
"source": "support",
"target": "end"
}
},
"nodes": {
"end": {
"type": "end"
},
"start_node": {
"edge_order": [
"start_to_support"
],
"type": "start"
},
"support": {
"edge_order": [
"support_to_end"
],
"label": "Support",
"type": "override_agent"
}
}
},
"name": "<string>"
}
'import requests
url = "https://api.threetone.in/v1/convai/agents/{agent_id}/drafts"
payload = {
"conversation_config": {
"schema_version": 2,
"asr": {
"model_id": "<string>",
"recognition": { "mode": "fixed" },
"task": "transcribe",
"keyterms": ["<string>"],
"options": {
"adapter_contract": "livekit_inference_cartesia_ink_2_v1",
"turn_start_threshold": 0.7,
"turn_eager_end_threshold": 0.44999999999999996,
"turn_end_threshold": 0.275,
"turn_end_timeout_ms": 5920
}
},
"turn": {
"interruption_ignore_term_languages": [],
"interruption_ignore_terms": [],
"merge_with_default_ignore_terms": False,
"mode": "turn",
"retranscribe_on_turn_timeout": False,
"silence_end_call_timeout": -1,
"soft_timeout_config": {
"message": "Hhmmmm...yeah.",
"timeout_seconds": -1
},
"speculative_turn": False,
"spelling_patience": "auto",
"transcribe_on_disabled_interruptions": False,
"turn_eagerness": "normal",
"turn_model": "turn_v3",
"turn_timeout": 7
},
"tts": {
"model_id": "<string>",
"voice_id": "ME9RtCnWp5vX2LhJdF3k",
"performance": "latency",
"pronunciation_dictionary_locators": [
{
"pronunciation_dictionary_id": "<string>",
"version_id": "<string>"
}
],
"enable_phoneme_tags": True,
"options": {
"adapter_contract": "livekit_inference_cartesia_sonic_3_6_2026_08_27_v1",
"volume": 1.25,
"duration_seconds": 1,
"max_buffer_delay_ms": 1,
"add_timestamps": True,
"add_phoneme_timestamps": True,
"use_normalized_timestamps": True
}
},
"conversation": {
"client_events": ["audio", "interruption"],
"max_duration_seconds": 600
},
"language_presets": {},
"vad": { "background_voice_detection": False },
"agent": {
"disable_first_message_interruptions": False,
"first_message": "Hello, how can I help you today?",
"language": "en"
}
},
"platform_settings": {},
"workflow": {
"edges": {
"start_to_support": {
"forward_condition": { "type": "unconditional" },
"source": "start_node",
"target": "support"
},
"support_to_end": {
"forward_condition": {
"condition": "The request is resolved",
"type": "llm"
},
"source": "support",
"target": "end"
}
},
"nodes": {
"end": { "type": "end" },
"start_node": {
"edge_order": ["start_to_support"],
"type": "start"
},
"support": {
"edge_order": ["support_to_end"],
"label": "Support",
"type": "override_agent"
}
}
},
"name": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
conversation_config: {
schema_version: 2,
asr: {
model_id: '<string>',
recognition: {mode: 'fixed'},
task: 'transcribe',
keyterms: ['<string>'],
options: {
adapter_contract: 'livekit_inference_cartesia_ink_2_v1',
turn_start_threshold: 0.7,
turn_eager_end_threshold: 0.44999999999999996,
turn_end_threshold: 0.275,
turn_end_timeout_ms: 5920
}
},
turn: {
interruption_ignore_term_languages: [],
interruption_ignore_terms: [],
merge_with_default_ignore_terms: false,
mode: 'turn',
retranscribe_on_turn_timeout: false,
silence_end_call_timeout: -1,
soft_timeout_config: {message: 'Hhmmmm...yeah.', timeout_seconds: -1},
speculative_turn: false,
spelling_patience: 'auto',
transcribe_on_disabled_interruptions: false,
turn_eagerness: 'normal',
turn_model: 'turn_v3',
turn_timeout: 7
},
tts: {
model_id: '<string>',
voice_id: 'ME9RtCnWp5vX2LhJdF3k',
performance: 'latency',
pronunciation_dictionary_locators: [{pronunciation_dictionary_id: '<string>', version_id: '<string>'}],
enable_phoneme_tags: true,
options: {
adapter_contract: 'livekit_inference_cartesia_sonic_3_6_2026_08_27_v1',
volume: 1.25,
duration_seconds: 1,
max_buffer_delay_ms: 1,
add_timestamps: true,
add_phoneme_timestamps: true,
use_normalized_timestamps: true
}
},
conversation: {client_events: ['audio', 'interruption'], max_duration_seconds: 600},
language_presets: {},
vad: {background_voice_detection: false},
agent: {
disable_first_message_interruptions: false,
first_message: 'Hello, how can I help you today?',
language: 'en'
}
},
platform_settings: {},
workflow: {
edges: {
start_to_support: {
forward_condition: {type: 'unconditional'},
source: 'start_node',
target: 'support'
},
support_to_end: {
forward_condition: {condition: 'The request is resolved', type: 'llm'},
source: 'support',
target: 'end'
}
},
nodes: {
end: {type: 'end'},
start_node: {edge_order: ['start_to_support'], type: 'start'},
support: {edge_order: ['support_to_end'], label: 'Support', type: 'override_agent'}
}
},
name: '<string>'
})
};
fetch('https://api.threetone.in/v1/convai/agents/{agent_id}/drafts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Agents Platform
Create Agent Draft
Create a new draft for an agent
POST
/
v1
/
convai
/
agents
/
{agent_id}
/
drafts
Create Agent Draft
curl --request POST \
--url https://api.threetone.in/v1/convai/agents/{agent_id}/drafts \
--header 'Content-Type: application/json' \
--data '
{
"conversation_config": {
"schema_version": 2,
"asr": {
"model_id": "<string>",
"recognition": {
"mode": "fixed"
},
"task": "transcribe",
"keyterms": [
"<string>"
],
"options": {
"adapter_contract": "livekit_inference_cartesia_ink_2_v1",
"turn_start_threshold": 0.7,
"turn_eager_end_threshold": 0.44999999999999996,
"turn_end_threshold": 0.275,
"turn_end_timeout_ms": 5920
}
},
"turn": {
"interruption_ignore_term_languages": [],
"interruption_ignore_terms": [],
"merge_with_default_ignore_terms": false,
"mode": "turn",
"retranscribe_on_turn_timeout": false,
"silence_end_call_timeout": -1,
"soft_timeout_config": {
"message": "Hhmmmm...yeah.",
"timeout_seconds": -1
},
"speculative_turn": false,
"spelling_patience": "auto",
"transcribe_on_disabled_interruptions": false,
"turn_eagerness": "normal",
"turn_model": "turn_v3",
"turn_timeout": 7
},
"tts": {
"model_id": "<string>",
"voice_id": "ME9RtCnWp5vX2LhJdF3k",
"performance": "latency",
"pronunciation_dictionary_locators": [
{
"pronunciation_dictionary_id": "<string>",
"version_id": "<string>"
}
],
"enable_phoneme_tags": true,
"options": {
"adapter_contract": "livekit_inference_cartesia_sonic_3_6_2026_08_27_v1",
"volume": 1.25,
"duration_seconds": 1,
"max_buffer_delay_ms": 1,
"add_timestamps": true,
"add_phoneme_timestamps": true,
"use_normalized_timestamps": true
}
},
"conversation": {
"client_events": [
"audio",
"interruption"
],
"max_duration_seconds": 600
},
"language_presets": {},
"vad": {
"background_voice_detection": false
},
"agent": {
"disable_first_message_interruptions": false,
"first_message": "Hello, how can I help you today?",
"language": "en"
}
},
"platform_settings": {},
"workflow": {
"edges": {
"start_to_support": {
"forward_condition": {
"type": "unconditional"
},
"source": "start_node",
"target": "support"
},
"support_to_end": {
"forward_condition": {
"condition": "The request is resolved",
"type": "llm"
},
"source": "support",
"target": "end"
}
},
"nodes": {
"end": {
"type": "end"
},
"start_node": {
"edge_order": [
"start_to_support"
],
"type": "start"
},
"support": {
"edge_order": [
"support_to_end"
],
"label": "Support",
"type": "override_agent"
}
}
},
"name": "<string>"
}
'import requests
url = "https://api.threetone.in/v1/convai/agents/{agent_id}/drafts"
payload = {
"conversation_config": {
"schema_version": 2,
"asr": {
"model_id": "<string>",
"recognition": { "mode": "fixed" },
"task": "transcribe",
"keyterms": ["<string>"],
"options": {
"adapter_contract": "livekit_inference_cartesia_ink_2_v1",
"turn_start_threshold": 0.7,
"turn_eager_end_threshold": 0.44999999999999996,
"turn_end_threshold": 0.275,
"turn_end_timeout_ms": 5920
}
},
"turn": {
"interruption_ignore_term_languages": [],
"interruption_ignore_terms": [],
"merge_with_default_ignore_terms": False,
"mode": "turn",
"retranscribe_on_turn_timeout": False,
"silence_end_call_timeout": -1,
"soft_timeout_config": {
"message": "Hhmmmm...yeah.",
"timeout_seconds": -1
},
"speculative_turn": False,
"spelling_patience": "auto",
"transcribe_on_disabled_interruptions": False,
"turn_eagerness": "normal",
"turn_model": "turn_v3",
"turn_timeout": 7
},
"tts": {
"model_id": "<string>",
"voice_id": "ME9RtCnWp5vX2LhJdF3k",
"performance": "latency",
"pronunciation_dictionary_locators": [
{
"pronunciation_dictionary_id": "<string>",
"version_id": "<string>"
}
],
"enable_phoneme_tags": True,
"options": {
"adapter_contract": "livekit_inference_cartesia_sonic_3_6_2026_08_27_v1",
"volume": 1.25,
"duration_seconds": 1,
"max_buffer_delay_ms": 1,
"add_timestamps": True,
"add_phoneme_timestamps": True,
"use_normalized_timestamps": True
}
},
"conversation": {
"client_events": ["audio", "interruption"],
"max_duration_seconds": 600
},
"language_presets": {},
"vad": { "background_voice_detection": False },
"agent": {
"disable_first_message_interruptions": False,
"first_message": "Hello, how can I help you today?",
"language": "en"
}
},
"platform_settings": {},
"workflow": {
"edges": {
"start_to_support": {
"forward_condition": { "type": "unconditional" },
"source": "start_node",
"target": "support"
},
"support_to_end": {
"forward_condition": {
"condition": "The request is resolved",
"type": "llm"
},
"source": "support",
"target": "end"
}
},
"nodes": {
"end": { "type": "end" },
"start_node": {
"edge_order": ["start_to_support"],
"type": "start"
},
"support": {
"edge_order": ["support_to_end"],
"label": "Support",
"type": "override_agent"
}
}
},
"name": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
conversation_config: {
schema_version: 2,
asr: {
model_id: '<string>',
recognition: {mode: 'fixed'},
task: 'transcribe',
keyterms: ['<string>'],
options: {
adapter_contract: 'livekit_inference_cartesia_ink_2_v1',
turn_start_threshold: 0.7,
turn_eager_end_threshold: 0.44999999999999996,
turn_end_threshold: 0.275,
turn_end_timeout_ms: 5920
}
},
turn: {
interruption_ignore_term_languages: [],
interruption_ignore_terms: [],
merge_with_default_ignore_terms: false,
mode: 'turn',
retranscribe_on_turn_timeout: false,
silence_end_call_timeout: -1,
soft_timeout_config: {message: 'Hhmmmm...yeah.', timeout_seconds: -1},
speculative_turn: false,
spelling_patience: 'auto',
transcribe_on_disabled_interruptions: false,
turn_eagerness: 'normal',
turn_model: 'turn_v3',
turn_timeout: 7
},
tts: {
model_id: '<string>',
voice_id: 'ME9RtCnWp5vX2LhJdF3k',
performance: 'latency',
pronunciation_dictionary_locators: [{pronunciation_dictionary_id: '<string>', version_id: '<string>'}],
enable_phoneme_tags: true,
options: {
adapter_contract: 'livekit_inference_cartesia_sonic_3_6_2026_08_27_v1',
volume: 1.25,
duration_seconds: 1,
max_buffer_delay_ms: 1,
add_timestamps: true,
add_phoneme_timestamps: true,
use_normalized_timestamps: true
}
},
conversation: {client_events: ['audio', 'interruption'], max_duration_seconds: 600},
language_presets: {},
vad: {background_voice_detection: false},
agent: {
disable_first_message_interruptions: false,
first_message: 'Hello, how can I help you today?',
language: 'en'
}
},
platform_settings: {},
workflow: {
edges: {
start_to_support: {
forward_condition: {type: 'unconditional'},
source: 'start_node',
target: 'support'
},
support_to_end: {
forward_condition: {condition: 'The request is resolved', type: 'llm'},
source: 'support',
target: 'end'
}
},
nodes: {
end: {type: 'end'},
start_node: {edge_order: ['start_to_support'], type: 'start'},
support: {edge_order: ['support_to_end'], label: 'Support', type: 'override_agent'}
}
},
name: '<string>'
})
};
fetch('https://api.threetone.in/v1/convai/agents/{agent_id}/drafts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Headers
Your API key for programmatic access. Send it in the x-api-key header; you can create and manage keys from the Developers page.
Path Parameters
The id of an agent. This is returned on agent creation.
Example:
"agent_3701k3ttaq12ewp8b7qv5rfyszkz"
Query Parameters
The ID of the agent branch to use
Example:
"agtbrch_8901k4t9z5defmb8vh3e9361y7nj"
Body
application/json
Complete version 2 conversation config for the draft
Show child attributes
Show child attributes
Platform settings for the draft
Workflow for the draft
Show child attributes
Show child attributes
Example:
{ "edges": { "start_to_support": { "forward_condition": { "type": "unconditional" }, "source": "start_node", "target": "support" }, "support_to_end": { "forward_condition": { "condition": "The request is resolved", "type": "llm" }, "source": "support", "target": "end" } }, "nodes": { "end": { "type": "end" }, "start_node": { "edge_order": ["start_to_support"], "type": "start" }, "support": { "edge_order": ["support_to_end"], "label": "Support", "type": "override_agent" } } }
Name for the draft
Tags to help classify and filter the agent
Example:
[ "Customer Support", "Technical Help", "Three" ]
Response
Successful Response