The Voicebot Platform API enables programmatic creation, versioning, configuration, and analytics of AI-powered voicebots.
These APIs support asynchronous bot generation, versioned bot updates, assistant management, and conversation analytics.
This API is chargeable and is not accessible to all Exotel customers by default. Please get in touch with your account manager to enable this feature.
Base URL Below:
https://voicebot.in.exotel.com/voicebot/api/v2
Authentication
Internal service authentication (handled at gateway level)
Account context passed via {accountId}
Generate a voicebot using natural language input.
This is an asynchronous API—use the GET endpoint to poll for status.
/accounts/{accountId}/bot-generation
|
Header |
Value |
|---|---|
|
Content-Type |
multipart/form-data |
|
Parameter |
Mandatory |
Description |
|---|---|---|
|
text_content |
Yes |
Natural language description or script for bot creation |
curl -X POST \
'https://voicebot.in.exotel.com/voicebot/api/v2/accounts/Exotel/bot-generation' \
-H 'Content-Type: multipart/form-data' \
-F 'text_content=Test'
{
"http_code": 201,
"method": "POST",
"request_id": "b9bbd64c-962c-440b-83c2-ee259f8bb3df",
"response": {
"http_code": 201,
"data": {
"id": "eb878eb8-d580-4395-8ae4-b9201eb9174e",
"content": {
"text_content": "Test"
},
"status": "pending",
"account_id": "Exotel"
},
"error_data": null
}
}
/accounts/{accountId}/bot-generation/{generation_id}
{
"http_code": 200,
"method": "GET",
"request_id": "963a0e8f-c8c9-4ad5-af12-f61e7fff9922",
"response": {
"data": {
"id": "eb878eb8-d580-4395-8ae4-b9201eb9174e",
"status": "completed",
"reason": "Bot generated successfully",
"bot_id": "0a1ea7a5-0cc0-4d89-a94c-989f2995d80e",
"account_id": "Exotel"
}
}
}
Creates a new version of an existing voicebot.
/accounts/{accountId}/voicebots/{botId}/versions
|
Field |
Mandatory |
Description |
|---|---|---|
|
source_version |
Yes |
Base version (e.g. v1) |
|
version_description |
No |
Human-readable description |
|
data |
Yes |
Partial or full bot configuration |
Partial updates are supported — send only fields you want to change.
{
"source_version": "v1",
"version_description": "changing name",
"data": {
"name": "V2 Voicebot Create test",
"enable_greeting_interruption": true,
"supported_languages": ["en"]
}
}
{
"http_code": 200,
"response": {
"data": {
"bot_id": "7cbda138-1d60-42b1-9928-9556580132e3",
"version": "v2",
"date_created": "2026-01-06T13:52:00.818488Z",
"name": "V2 Voicebot Create - name update1"
}
}
}
/accounts/{accountId}/voicebots
Get list of voicebots
|
Param |
Default |
Description |
|---|---|---|
|
limit |
10 |
Max 100 |
|
offset |
0 |
Pagination offset |
|
startDate |
– |
ISO 8601 |
|
endDate |
– |
ISO 8601 |
{
"response": [ { "data": { "bot_id": "7cbda138..." } } ],
"metadata": {
"total": 123,
"count": 10,
"offset": 0,
"limit": 10
}
}
/accounts/{accountId}/voicebots/{botId}
Returns the latest active version of the bot.
Retrieve call-level bot interactions, transcripts, and AI insights.
/accounts/{accountId}/voicebot-conversations
|
Param |
Description |
|---|---|
|
fields |
transcript, insights (comma-separated) |
Transcript and insights are returned only if explicitly requested.
?fields=transcript,insights
/accounts/{accountId}/voicebot-conversations/{conversation_id}
Create new versions of AI assistants used by voicebots.
/api/v2/accounts/{tenant_id}/assistants/{assistant_id}/versions
Example Fields
|
Field |
Description |
|---|---|
|
source_version |
Base version |
|
mark_as_stable |
Boolean |
|
instruction |
System prompt |
|
llm_config |
Model & inference config |
|
agents |
Sub-agents with roles |
{
"data": {
"version": "v11",
"name": "Festive Voicebot copy 2",
"llm_config": {
"model_id": "3e53b2ea-47e5-4e0a-9726-cc2327c697e7"
}
}
}
|
HTTP Code |
Meaning |
|---|---|
|
200 |
Success |
|
201 |
Accepted / Created |
|
400 |
Invalid request |
|
401 |
Unauthorized |
|
404 |
Resource not found |
|
429 |
Rate limit exceeded |
|
500 |
Internal error |