×

Voicebot API

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.

POST

https://voicebot.in.exotel.com/voicebot/api/v2

1. Build Bot via Text (Async)

Generate a voicebot using natural language input.

This is an asynchronous API—use the GET endpoint to poll for status.

Create Bot Generation Job

POST

/accounts/{accountId}/bot-generation

Request Headers

Header

Value

Content-Type

multipart/form-data

Request Parameters

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
    }
}

Get Bot Generation Status

GET

/accounts/{accountId}/bot-generation/{generation_id}

Status Values

  1. pending
  2. in_progress
  3. completed
  4. failed
{
    "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"
        }
    }
}

2. Update Voicebot (Create New Version)

Creates a new version of an existing voicebot.

Create Bot Version

POST

/accounts/{accountId}/voicebots/{botId}/versions

Request Body

Field

Mandatory

Description

source_version

Yes

Base version (e.g. v1)

version_description

No

Human-readable description

data

Yes

Partial or full bot configuration

 

{
    "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"
        }
    }
}

3. Get Voicebots

GET

/accounts/{accountId}/voicebots

Query Parameters

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
    }
}

Get Voicebot by ID

GET

/accounts/{accountId}/voicebots/{botId}

4. Bot Conversations & Analytics

Retrieve call-level bot interactions, transcripts, and AI insights.

List Bot Conversations

GET

/accounts/{accountId}/voicebot-conversations

Query Parameters

Param

Description

fields

transcript, insights (comma-separated)

Transcript and insights are returned only if explicitly requested.

?fields=transcript,insights

Get Conversation by ID

GET

/accounts/{accountId}/voicebot-conversations/{conversation_id}

Response Highlights

  1. Call metadata
  2. Transcript (speaker-segmented)
  3. AI insights (sentiment, intent)
  4. Recording URL
  5. Outcome

5. Assistant Versioning API

Create new versions of AI assistants used by voicebots.

POST

/api/v2/accounts/{tenant_id}/assistants/{assistant_id}/versions

Key Capabilities

  1. Instruction updates
  2. LLM configuration
  3. Multi-agent definitions
  4. Persona association
  5. Mark the version as stable

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"
        }
    }
}

Error Handling

HTTP Code

Meaning

200

Success

201

Accepted / Created

400

Invalid request

401

Unauthorized

404

Resource not found

429

Rate limit exceeded

500

Internal error