Start agent conversation
curl --request POST \
--url https://api.zeptar.com/v1/agents/{agentId}/conversations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"overrides": {
"system_prompt": "You are a helpful onboarding assistant.",
"first_message": "Hello! How can I help you today?",
"first_message_wait_time_seconds": 7,
"language": {
"default": "en",
"additional": [
"de"
]
},
"llm": {
"provider": "openai",
"model": "gpt-5.2-chat-latest",
"temperature": 0.7
},
"tts": {
"provider": "cartesia",
"voice_id": "9626c31c-bec5-4cca-baa8-f8ba9e84c8bc",
"model": "sonic-3",
"settings": {},
"voice_name": "Jacqueline"
},
"interruptible": true,
"language_voice_overrides": {},
"prompt_timezone": "Europe/Paris"
},
"branch_id": "<string>",
"version_id": "<string>"
}
'import requests
url = "https://api.zeptar.com/v1/agents/{agentId}/conversations"
payload = {
"overrides": {
"system_prompt": "You are a helpful onboarding assistant.",
"first_message": "Hello! How can I help you today?",
"first_message_wait_time_seconds": 7,
"language": {
"default": "en",
"additional": ["de"]
},
"llm": {
"provider": "openai",
"model": "gpt-5.2-chat-latest",
"temperature": 0.7
},
"tts": {
"provider": "cartesia",
"voice_id": "9626c31c-bec5-4cca-baa8-f8ba9e84c8bc",
"model": "sonic-3",
"settings": {},
"voice_name": "Jacqueline"
},
"interruptible": True,
"language_voice_overrides": {},
"prompt_timezone": "Europe/Paris"
},
"branch_id": "<string>",
"version_id": "<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({
overrides: {
system_prompt: 'You are a helpful onboarding assistant.',
first_message: 'Hello! How can I help you today?',
first_message_wait_time_seconds: 7,
language: {default: 'en', additional: ['de']},
llm: {provider: 'openai', model: 'gpt-5.2-chat-latest', temperature: 0.7},
tts: {
provider: 'cartesia',
voice_id: '9626c31c-bec5-4cca-baa8-f8ba9e84c8bc',
model: 'sonic-3',
settings: {},
voice_name: 'Jacqueline'
},
interruptible: true,
language_voice_overrides: {},
prompt_timezone: 'Europe/Paris'
},
branch_id: '<string>',
version_id: '<string>'
})
};
fetch('https://api.zeptar.com/v1/agents/{agentId}/conversations', 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.zeptar.com/v1/agents/{agentId}/conversations",
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([
'overrides' => [
'system_prompt' => 'You are a helpful onboarding assistant.',
'first_message' => 'Hello! How can I help you today?',
'first_message_wait_time_seconds' => 7,
'language' => [
'default' => 'en',
'additional' => [
'de'
]
],
'llm' => [
'provider' => 'openai',
'model' => 'gpt-5.2-chat-latest',
'temperature' => 0.7
],
'tts' => [
'provider' => 'cartesia',
'voice_id' => '9626c31c-bec5-4cca-baa8-f8ba9e84c8bc',
'model' => 'sonic-3',
'settings' => [
],
'voice_name' => 'Jacqueline'
],
'interruptible' => true,
'language_voice_overrides' => [
],
'prompt_timezone' => 'Europe/Paris'
],
'branch_id' => '<string>',
'version_id' => '<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://api.zeptar.com/v1/agents/{agentId}/conversations"
payload := strings.NewReader("{\n \"overrides\": {\n \"system_prompt\": \"You are a helpful onboarding assistant.\",\n \"first_message\": \"Hello! How can I help you today?\",\n \"first_message_wait_time_seconds\": 7,\n \"language\": {\n \"default\": \"en\",\n \"additional\": [\n \"de\"\n ]\n },\n \"llm\": {\n \"provider\": \"openai\",\n \"model\": \"gpt-5.2-chat-latest\",\n \"temperature\": 0.7\n },\n \"tts\": {\n \"provider\": \"cartesia\",\n \"voice_id\": \"9626c31c-bec5-4cca-baa8-f8ba9e84c8bc\",\n \"model\": \"sonic-3\",\n \"settings\": {},\n \"voice_name\": \"Jacqueline\"\n },\n \"interruptible\": true,\n \"language_voice_overrides\": {},\n \"prompt_timezone\": \"Europe/Paris\"\n },\n \"branch_id\": \"<string>\",\n \"version_id\": \"<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://api.zeptar.com/v1/agents/{agentId}/conversations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"overrides\": {\n \"system_prompt\": \"You are a helpful onboarding assistant.\",\n \"first_message\": \"Hello! How can I help you today?\",\n \"first_message_wait_time_seconds\": 7,\n \"language\": {\n \"default\": \"en\",\n \"additional\": [\n \"de\"\n ]\n },\n \"llm\": {\n \"provider\": \"openai\",\n \"model\": \"gpt-5.2-chat-latest\",\n \"temperature\": 0.7\n },\n \"tts\": {\n \"provider\": \"cartesia\",\n \"voice_id\": \"9626c31c-bec5-4cca-baa8-f8ba9e84c8bc\",\n \"model\": \"sonic-3\",\n \"settings\": {},\n \"voice_name\": \"Jacqueline\"\n },\n \"interruptible\": true,\n \"language_voice_overrides\": {},\n \"prompt_timezone\": \"Europe/Paris\"\n },\n \"branch_id\": \"<string>\",\n \"version_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeptar.com/v1/agents/{agentId}/conversations")
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 \"overrides\": {\n \"system_prompt\": \"You are a helpful onboarding assistant.\",\n \"first_message\": \"Hello! How can I help you today?\",\n \"first_message_wait_time_seconds\": 7,\n \"language\": {\n \"default\": \"en\",\n \"additional\": [\n \"de\"\n ]\n },\n \"llm\": {\n \"provider\": \"openai\",\n \"model\": \"gpt-5.2-chat-latest\",\n \"temperature\": 0.7\n },\n \"tts\": {\n \"provider\": \"cartesia\",\n \"voice_id\": \"9626c31c-bec5-4cca-baa8-f8ba9e84c8bc\",\n \"model\": \"sonic-3\",\n \"settings\": {},\n \"voice_name\": \"Jacqueline\"\n },\n \"interruptible\": true,\n \"language_voice_overrides\": {},\n \"prompt_timezone\": \"Europe/Paris\"\n },\n \"branch_id\": \"<string>\",\n \"version_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyConversations
Start agent conversation
POST
/
v1
/
agents
/
{agentId}
/
conversations
Start agent conversation
curl --request POST \
--url https://api.zeptar.com/v1/agents/{agentId}/conversations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"overrides": {
"system_prompt": "You are a helpful onboarding assistant.",
"first_message": "Hello! How can I help you today?",
"first_message_wait_time_seconds": 7,
"language": {
"default": "en",
"additional": [
"de"
]
},
"llm": {
"provider": "openai",
"model": "gpt-5.2-chat-latest",
"temperature": 0.7
},
"tts": {
"provider": "cartesia",
"voice_id": "9626c31c-bec5-4cca-baa8-f8ba9e84c8bc",
"model": "sonic-3",
"settings": {},
"voice_name": "Jacqueline"
},
"interruptible": true,
"language_voice_overrides": {},
"prompt_timezone": "Europe/Paris"
},
"branch_id": "<string>",
"version_id": "<string>"
}
'import requests
url = "https://api.zeptar.com/v1/agents/{agentId}/conversations"
payload = {
"overrides": {
"system_prompt": "You are a helpful onboarding assistant.",
"first_message": "Hello! How can I help you today?",
"first_message_wait_time_seconds": 7,
"language": {
"default": "en",
"additional": ["de"]
},
"llm": {
"provider": "openai",
"model": "gpt-5.2-chat-latest",
"temperature": 0.7
},
"tts": {
"provider": "cartesia",
"voice_id": "9626c31c-bec5-4cca-baa8-f8ba9e84c8bc",
"model": "sonic-3",
"settings": {},
"voice_name": "Jacqueline"
},
"interruptible": True,
"language_voice_overrides": {},
"prompt_timezone": "Europe/Paris"
},
"branch_id": "<string>",
"version_id": "<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({
overrides: {
system_prompt: 'You are a helpful onboarding assistant.',
first_message: 'Hello! How can I help you today?',
first_message_wait_time_seconds: 7,
language: {default: 'en', additional: ['de']},
llm: {provider: 'openai', model: 'gpt-5.2-chat-latest', temperature: 0.7},
tts: {
provider: 'cartesia',
voice_id: '9626c31c-bec5-4cca-baa8-f8ba9e84c8bc',
model: 'sonic-3',
settings: {},
voice_name: 'Jacqueline'
},
interruptible: true,
language_voice_overrides: {},
prompt_timezone: 'Europe/Paris'
},
branch_id: '<string>',
version_id: '<string>'
})
};
fetch('https://api.zeptar.com/v1/agents/{agentId}/conversations', 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.zeptar.com/v1/agents/{agentId}/conversations",
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([
'overrides' => [
'system_prompt' => 'You are a helpful onboarding assistant.',
'first_message' => 'Hello! How can I help you today?',
'first_message_wait_time_seconds' => 7,
'language' => [
'default' => 'en',
'additional' => [
'de'
]
],
'llm' => [
'provider' => 'openai',
'model' => 'gpt-5.2-chat-latest',
'temperature' => 0.7
],
'tts' => [
'provider' => 'cartesia',
'voice_id' => '9626c31c-bec5-4cca-baa8-f8ba9e84c8bc',
'model' => 'sonic-3',
'settings' => [
],
'voice_name' => 'Jacqueline'
],
'interruptible' => true,
'language_voice_overrides' => [
],
'prompt_timezone' => 'Europe/Paris'
],
'branch_id' => '<string>',
'version_id' => '<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://api.zeptar.com/v1/agents/{agentId}/conversations"
payload := strings.NewReader("{\n \"overrides\": {\n \"system_prompt\": \"You are a helpful onboarding assistant.\",\n \"first_message\": \"Hello! How can I help you today?\",\n \"first_message_wait_time_seconds\": 7,\n \"language\": {\n \"default\": \"en\",\n \"additional\": [\n \"de\"\n ]\n },\n \"llm\": {\n \"provider\": \"openai\",\n \"model\": \"gpt-5.2-chat-latest\",\n \"temperature\": 0.7\n },\n \"tts\": {\n \"provider\": \"cartesia\",\n \"voice_id\": \"9626c31c-bec5-4cca-baa8-f8ba9e84c8bc\",\n \"model\": \"sonic-3\",\n \"settings\": {},\n \"voice_name\": \"Jacqueline\"\n },\n \"interruptible\": true,\n \"language_voice_overrides\": {},\n \"prompt_timezone\": \"Europe/Paris\"\n },\n \"branch_id\": \"<string>\",\n \"version_id\": \"<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://api.zeptar.com/v1/agents/{agentId}/conversations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"overrides\": {\n \"system_prompt\": \"You are a helpful onboarding assistant.\",\n \"first_message\": \"Hello! How can I help you today?\",\n \"first_message_wait_time_seconds\": 7,\n \"language\": {\n \"default\": \"en\",\n \"additional\": [\n \"de\"\n ]\n },\n \"llm\": {\n \"provider\": \"openai\",\n \"model\": \"gpt-5.2-chat-latest\",\n \"temperature\": 0.7\n },\n \"tts\": {\n \"provider\": \"cartesia\",\n \"voice_id\": \"9626c31c-bec5-4cca-baa8-f8ba9e84c8bc\",\n \"model\": \"sonic-3\",\n \"settings\": {},\n \"voice_name\": \"Jacqueline\"\n },\n \"interruptible\": true,\n \"language_voice_overrides\": {},\n \"prompt_timezone\": \"Europe/Paris\"\n },\n \"branch_id\": \"<string>\",\n \"version_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeptar.com/v1/agents/{agentId}/conversations")
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 \"overrides\": {\n \"system_prompt\": \"You are a helpful onboarding assistant.\",\n \"first_message\": \"Hello! How can I help you today?\",\n \"first_message_wait_time_seconds\": 7,\n \"language\": {\n \"default\": \"en\",\n \"additional\": [\n \"de\"\n ]\n },\n \"llm\": {\n \"provider\": \"openai\",\n \"model\": \"gpt-5.2-chat-latest\",\n \"temperature\": 0.7\n },\n \"tts\": {\n \"provider\": \"cartesia\",\n \"voice_id\": \"9626c31c-bec5-4cca-baa8-f8ba9e84c8bc\",\n \"model\": \"sonic-3\",\n \"settings\": {},\n \"voice_name\": \"Jacqueline\"\n },\n \"interruptible\": true,\n \"language_voice_overrides\": {},\n \"prompt_timezone\": \"Europe/Paris\"\n },\n \"branch_id\": \"<string>\",\n \"version_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
apiKeycookie
API key issued via POST /v1/api-keys. Prefix is zsk_. Pass as Authorization: Bearer zsk_…. Scopes are enforced per key.
Path Parameters
Body
application/json
Per-conversation overrides for the agent configuration. Useful for previewing unsaved draft changes without persisting them. Every field is optional and additive — an absent field falls back to the pinned version.
Show child attributes
Show child attributes
Pin the conversation to a specific branch (uses its head_version).
Pin the conversation to a specific version.
Conversation modality. 'text' persists the row as text and signs a token that cannot publish a microphone (typed chat only). Defaults to 'voice'.
Available options:
voice, text Response
201 - undefined
⌘I