Agents
List, create, update, and delete voice and chat agents
Live API testing
Paste a tq_live_… key from Settings → API Keys. Requests are sent through this docs server to /api/v1/… (no browser CORS). The key is kept in sessionStorage only.
Base URL: https://api.taliiq.com — set $TALIIQ_API_KEY to a key from Settings → API Keys in the dashboard.
Agents are published configurations (is_draft=false) with a system prompt and pipeline settings. Voice agents also need a voice_id from your organization's voice library.
To go live on the web, create an agent here, then add a web channel linked to that agent.
All responses use the v1 envelope. See Constraints for delete rules and setup order.
List agents
/api/v1/agents/agents.list · scope: agents:readCursor-paginated list. Omit cursor on the first page; use meta.cursor when meta.has_more is true.
curl -X GET 'https://api.taliiq.com/api/v1/agents/?limit=20&cursor=' \
-H 'Authorization: Bearer $TALIIQ_API_KEY'import requests
url = "https://api.taliiq.com/api/v1/agents/?limit=20&cursor="
headers = {
"Authorization": "Bearer $TALIIQ_API_KEY"
}
response = requests.get(url, headers=headers)
print(response.status_code)
print(response.json())const response = await fetch("https://api.taliiq.com/api/v1/agents/?limit=20&cursor=", {
method: "GET",
headers: {
"Authorization": "Bearer $TALIIQ_API_KEY"
},
});
console.log(await response.json());Try it live
/api/proxy/v1/agents/?limit=20&cursor=Create agent
Required for a runnable agent:
system_prompt— agent instructionscapabilities— includevoiceand/orchatvoice_id— required whenvoiceis enabled (pick from the dashboard Voice Library)first_message— recommended so the agent greets callers immediately
Pipeline settings default to your organization configuration when omitted.
/api/v1/agents/agents.create · scope: agents:writeCreates a published agent ready to attach to a channel.
curl -X POST 'https://api.taliiq.com/api/v1/agents/' \
-H 'Authorization: Bearer $TALIIQ_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"name":"Support Bot","description":"Arabic voice and chat support","capabilities":["voice","chat"],"language":"ar","dialect":"ar-EG","system_prompt":"You are a helpful Arabic customer support agent for Taliiq. Be concise and polite.","first_message":"مرحباً، أنا مساعدك الذكي. كيف يمكنني مساعدتك؟","first_message_mode":"agent_first","voice_id":"REPLACE_WITH_VOICE_LIBRARY_ID","stt_language":"ar-EG","tools":[]}'import requests
url = "https://api.taliiq.com/api/v1/agents/"
headers = {
"Authorization": "Bearer $TALIIQ_API_KEY",
"Content-Type": "application/json"
}
payload = {
"name": "Support Bot",
"description": "Arabic voice and chat support",
"capabilities": [
"voice",
"chat"
],
"language": "ar",
"dialect": "ar-EG",
"system_prompt": "You are a helpful Arabic customer support agent for Taliiq. Be concise and polite.",
"first_message": "مرحباً، أنا مساعدك الذكي. كيف يمكنني مساعدتك؟",
"first_message_mode": "agent_first",
"voice_id": "REPLACE_WITH_VOICE_LIBRARY_ID",
"stt_language": "ar-EG",
"tools": []
}
response = requests.post(url, headers=headers, json=payload)
print(response.status_code)
print(response.json())const response = await fetch("https://api.taliiq.com/api/v1/agents/", {
method: "POST",
headers: {
"Authorization": "Bearer $TALIIQ_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({"name":"Support Bot","description":"Arabic voice and chat support","capabilities":["voice","chat"],"language":"ar","dialect":"ar-EG","system_prompt":"You are a helpful Arabic customer support agent for Taliiq. Be concise and polite.","first_message":"مرحباً، أنا مساعدك الذكي. كيف يمكنني مساعدتك؟","first_message_mode":"agent_first","voice_id":"REPLACE_WITH_VOICE_LIBRARY_ID","stt_language":"ar-EG","tools":[]}),
});
console.log(await response.json());Try it live
/api/proxy/v1/agents/Get agent
/api/v1/agents/{agent_id}agents.get · scope: agents:readReplace {agent_id} with the UUID from list or create.
curl -X GET 'https://api.taliiq.com/api/v1/agents/{agent_id}/' \
-H 'Authorization: Bearer $TALIIQ_API_KEY'import requests
url = "https://api.taliiq.com/api/v1/agents/{agent_id}/"
headers = {
"Authorization": "Bearer $TALIIQ_API_KEY"
}
response = requests.get(url, headers=headers)
print(response.status_code)
print(response.json())const response = await fetch("https://api.taliiq.com/api/v1/agents/{agent_id}/", {
method: "GET",
headers: {
"Authorization": "Bearer $TALIIQ_API_KEY"
},
});
console.log(await response.json());Try it live
/api/proxy/v1/agents/{id}/Update agent
/api/v1/agents/{agent_id}agents.update · scope: agents:writecurl -X PATCH 'https://api.taliiq.com/api/v1/agents/{agent_id}/' \
-H 'Authorization: Bearer $TALIIQ_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"name":"Support Bot v2","is_active":true,"system_prompt":"Updated instructions."}'import requests
url = "https://api.taliiq.com/api/v1/agents/{agent_id}/"
headers = {
"Authorization": "Bearer $TALIIQ_API_KEY",
"Content-Type": "application/json"
}
payload = {
"name": "Support Bot v2",
"is_active": true,
"system_prompt": "Updated instructions."
}
response = requests.patch(url, headers=headers, json=payload)
print(response.status_code)
print(response.json())const response = await fetch("https://api.taliiq.com/api/v1/agents/{agent_id}/", {
method: "PATCH",
headers: {
"Authorization": "Bearer $TALIIQ_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({"name":"Support Bot v2","is_active":true,"system_prompt":"Updated instructions."}),
});
console.log(await response.json());Try it live
/api/proxy/v1/agents/{id}/Delete agent
/api/v1/agents/{agent_id}agents.delete · scope: agents:writeSet is_active to false and remove linked channels first. Returns 409 resource_in_use if blocked.
curl -X DELETE 'https://api.taliiq.com/api/v1/agents/{agent_id}/' \
-H 'Authorization: Bearer $TALIIQ_API_KEY'import requests
url = "https://api.taliiq.com/api/v1/agents/{agent_id}/"
headers = {
"Authorization": "Bearer $TALIIQ_API_KEY"
}
response = requests.delete(url, headers=headers)
print(response.status_code)
print(response.json())const response = await fetch("https://api.taliiq.com/api/v1/agents/{agent_id}/", {
method: "DELETE",
headers: {
"Authorization": "Bearer $TALIIQ_API_KEY"
},
});
console.log(await response.json());Try it live
/api/proxy/v1/agents/{id}/Stop an agent first:
/api/v1/agents/{agent_id}agents.deactivate · scope: agents:writecurl -X PATCH 'https://api.taliiq.com/api/v1/agents/{agent_id}/' \
-H 'Authorization: Bearer $TALIIQ_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"is_active":false}'import requests
url = "https://api.taliiq.com/api/v1/agents/{agent_id}/"
headers = {
"Authorization": "Bearer $TALIIQ_API_KEY",
"Content-Type": "application/json"
}
payload = {
"is_active": false
}
response = requests.patch(url, headers=headers, json=payload)
print(response.status_code)
print(response.json())const response = await fetch("https://api.taliiq.com/api/v1/agents/{agent_id}/", {
method: "PATCH",
headers: {
"Authorization": "Bearer $TALIIQ_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({"is_active":false}),
});
console.log(await response.json());Try it live
/api/proxy/v1/agents/{id}/
