Overview
Test your ElevenLabs agents using multiple methods: phone numbers, websockets, or chat interfaces. Choose the testing method that best fits your use case.- Phone Number
- Websocket
- Chat
- Code
Test your agents using phone numbers directly from the frontend.
Configure phone number
Go to your agent settings and configure the phone number for testing:

Enter the phone number associated with your ElevenLabs agent. No additional credentials required for phone-based testing.
Run tests from frontend
Select scenarios and run tests using the UI. This will open the Configure Run dialog.In the Configure Run dialog, select Telephony under Voice connections and click Run.
Cekura automatically:

- Initiates phone calls to your agent
- Executes test scenarios
- Captures audio and transcript data
You can override the phone number directly in this dialog before running.
Connection options that appear greyed out have not been configured in Agent Settings yet — set them up there to enable them.
Connection options that appear greyed out have not been configured in Agent Settings yet — set them up there to enable them.
Run tests directly from the frontend without writing code.
Configure ElevenLabs credentials
Go to your agent settings and configure ElevenLabs integration:
Required fields:

- Assistant ID: Your ElevenLabs agent ID
- ElevenLabs API Key: Your ElevenLabs API key with access to Agents
To find your Assistant ID, go to your ElevenLabs dashboard and navigate to the Agents section. Go to your particular agent you want to test, open that agent and assistant id (11labs agent id) will be visible just below the header.
Run tests from frontend
Select scenarios and run tests using the UI. This will open the Configure Run dialog.In the Configure Run dialog, select Websocket under Voice connections and click Run.
Cekura automatically:

- Connects to your ElevenLabs agent via websocket
- Executes test scenarios
- Captures audio and transcript data
You can override the Base URL (websocket endpoint) directly in this dialog before running.
Connection options that appear greyed out have not been configured in Agent Settings yet — set them up there to enable them.
Connection options that appear greyed out have not been configured in Agent Settings yet — set them up there to enable them.
Test your agents using chat interface directly from the frontend.
Configure chat provider and assistant id
- Navigate to the Agents section and open the agent you want to configure.
- In the Provider panel on the right, select ElevenLabs.
- Enter the Assistant ID of your ElevenLabs agent in the External Assistant ID field.
- Enter your ElevenLabs API Key in the ElevenLabs API Key field.
- Click Save Changes to configure the agent.

Select ElevenLabs chat provider from the available options in the agent settings.
To find your Assistant ID, go to your ElevenLabs dashboard and navigate to the Agents section. Open your agent and the assistant ID will be visible just below the header.
Run tests from frontend
Select scenarios and run tests using the UI. This will open the Configure Run dialog.In the Configure Run dialog, select ElevenLabs under chat connections, and click Run.
Cekura automatically:

- Connects to your ElevenLabs agent via the selected chat interface
- Executes test scenarios
- Captures conversation transcripts
You can override the phone number for SMS/WhatsApp directly in this dialog before running.
Connection options that appear greyed out have not been configured in Agent Settings yet — set them up there to enable them.
Connection options that appear greyed out have not been configured in Agent Settings yet — set them up there to enable them.
Use the API to integrate ElevenLabs testing into your workflow.
Required fields:
Prerequisites
Configure ElevenLabs credentials in your agent settings:
- Assistant ID: Your ElevenLabs agent ID
- ElevenLabs API Key: Your ElevenLabs API key with access to Agents
To find your Assistant ID, go to your ElevenLabs dashboard and navigate to the Agents section. Go to your particular agent you want to test, open that agent and assistant id (11labs agent id) will be visible just below the header.
API Endpoint
POST https://api.cekura.ai/test_framework/v1/scenarios-external/run_scenarios_elevenlabs/
Authentication
Include your API key in the request header:X-CEKURA-API-KEY: <YOUR_API_KEY>
Request Parameters
scenarios (array | integer | string, required): Test scenarios to run- Array format: List of scenario IDs
[123, 456, 789] - Integer format: Run first N scenarios for the agent
5 - String format: Run all scenarios for the agent
"all"
Examples
Single Run (cURL)
curl -X POST \
'https://api.cekura.ai/test_framework/v1/scenarios-external/run_scenarios_elevenlabs/' \
-H 'X-CEKURA-API-KEY: <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"scenarios": [30]
}'
Multiple Runs (cURL)
curl -X POST \
'https://api.cekura.ai/test_framework/v1/scenarios-external/run_scenarios_elevenlabs/' \
-H 'X-CEKURA-API-KEY: <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"scenarios": [30, 31, 32],
"frequency": 2,
"name": "ElevenLabs Test Run"
}'
Run First N Scenarios (cURL)
curl -X POST \
'https://api.cekura.ai/test_framework/v1/scenarios-external/run_scenarios_elevenlabs/' \
-H 'X-CEKURA-API-KEY: <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"scenarios": 5,
"agent_id": 123,
"frequency": 1,
"name": "First 5 Scenarios"
}'
Run All Scenarios (cURL)
curl -X POST \
'https://api.cekura.ai/test_framework/v1/scenarios-external/run_scenarios_elevenlabs/' \
-H 'X-CEKURA-API-KEY: <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"scenarios": "all",
"agent_id": 123,
"frequency": 1,
"name": "All Scenarios Test"
}'
With Custom Configuration (cURL)
curl -X POST \
'https://api.cekura.ai/test_framework/v1/scenarios-external/run_scenarios_elevenlabs/' \
-H 'X-CEKURA-API-KEY: <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"scenarios": [30],
"conversation_config_override": {
"tts": {
"voice_id": "custom_voice_id"
}
},
"frequency": 1,
"name": "Custom Config Test"
}'
Python Example
import requests
API_KEY = "<YOUR_API_KEY>"
BASE_URL = "https://api.cekura.ai/test_framework"
headers = {
"X-CEKURA-API-KEY": API_KEY,
"Content-Type": "application/json",
}
payload = {
"scenarios": [30, 31, 32],
"frequency": 2,
"name": "ElevenLabs Test Run"
}
resp = requests.post(
f"{BASE_URL}/v1/scenarios-external/run_scenarios_elevenlabs/",
headers=headers,
json=payload,
)
result = resp.json()
print(result)
Python with Configuration Override
import requests
API_KEY = "<YOUR_API_KEY>"
BASE_URL = "https://api.cekura.ai/test_framework"
headers = {
"X-CEKURA-API-KEY": API_KEY,
"Content-Type": "application/json",
}
payload = {
"scenarios": [30],
"conversation_config_override": {
"tts": {
"voice_id": "custom_voice_id"
}
},
"frequency": 1,
"name": "Custom Config Test"
}
resp = requests.post(
f"{BASE_URL}/v1/scenarios-external/run_scenarios_elevenlabs/",
headers=headers,
json=payload,
)
result = resp.json()
print(result)
Python - Run All Scenarios
import requests
API_KEY = "<YOUR_API_KEY>"
BASE_URL = "https://api.cekura.ai/test_framework"
headers = {
"X-CEKURA-API-KEY": API_KEY,
"Content-Type": "application/json",
}
payload = {
"scenarios": "all",
"agent_id": 123,
"frequency": 1,
"name": "All Scenarios Test"
}
resp = requests.post(
f"{BASE_URL}/v1/scenarios-external/run_scenarios_elevenlabs/",
headers=headers,
json=payload,
)
result = resp.json()
print(result)
Response
{
"id": 16870,
"name": "ElevenLabs Test Run",
"agent": 5,
"status": "in_progress",
"success_rate": 0.0,
"run_as_text": false,
"is_cronjob": false,
"runs": [
{
"id": 34625,
"status": "running",
"scenario": 11547,
"scenario_name": "Customer Support Scenario",
"test_profile_data": {"key": "value"}
}
],
"created_at": "2025-10-16T09:32:59.484534Z",
"updated_at": "2025-10-16T09:32:59.484942Z"
}
Error Responses
Missing ElevenLabs Credentials
{
"elevenlabs_creds": ["Please add ElevenLabs credentials"]
}
Missing ElevenLabs Agent ID
{
"assistant_id": ["ElevenLabs agent ID (assistant_id) is required but not set on the agent."]
}
Invalid Scenarios
{
"scenarios": ["Invalid scenario IDs or scenarios not found"]
}
Insufficient Balance
{
"detail": "Insufficient balance for this operation"
}