Test your voice agents using text instead of phone calls. 10x faster and 90% cheaper - ideal for workflow validation, regression testing, and CI/CD pipelines.Use voice testing for ASR/TTS validation and final production checks.
Update your OpenAI API key in main.py before starting the server.
Authentication:When Cekura connects to your WebSocket server, it includes the following headers in the handshake request:
Header
Description
X-VOCERA-SECRET
Your Cekura API key. Use this to verify the connection is from Cekura.
X-VOCERA-SCENARIO-ID
The ID of the scenario being tested.
X-VOCERA-RESULT-ID
The result ID for this test run.
X-VOCERA-RUN-ID
The run ID for this test execution.
Any custom headers configured in your agent’s WebSocket header settings are also included.To authenticate incoming connections, validate the X-VOCERA-SECRET header against your API key:
When your server receives a message with "type": "end_call", the conversation is ending. Your server can handle cleanup and connection closure gracefully.
When test profile is attached on your Evaluator and run it as WebSocket Chat, any fields in the test profile starting with X- are automatically sent as HTTP headers to your WebSocket server during connection establishment. This allows your server to receive user context before the conversation begins.Example Test Profile:
async def handle_connection(websocket, path): headers = websocket.request_headers customer_id = headers.get('X-Customer-ID') account_tier = headers.get('X-Account-Tier') # Pre-load customer data before conversation starts customer_data = await fetch_customer(customer_id) # Customize behavior based on tier if account_tier == 'premium': enable_priority_support() # Now handle the conversation...
Only fields starting with X- are sent as headers. Other fields remain available for use in evaluator instructions via template variables like {{test_profile.name}}.
Use Cases:
Pre-load customer/user data before conversation starts
Route to specific handlers based on account tier or customer type
Initialize session context with user preferences
Run chat tests programmatically via API.For complete API documentation including authentication, request parameters, response format, and code examples in multiple languages, see:Run Evaluator Text API Reference