PUT
/
test_framework
/
v1
/
aiagents
/
{id}
/
cURL
curl --request PUT \
  --url https://api.cekura.ai/test_framework/v1/aiagents/{id}/ \
  --header 'Content-Type: application/json' \
  --header 'X-CEKURA-API-KEY: <api-key>' \
  --data '{
  "project": 123,
  "agent_name": "<string>",
  "contact_number": "<string>",
  "inbound": true,
  "description": "<string>",
  "assistant_id": "<string>",
  "language": "ar",
  "websocket_url": "<string>",
  "websocket_headers": {},
  "predefined_metrics": [
    "<string>"
  ]
}'
{
  "id": 123,
  "project": 123,
  "agent_name": "<string>",
  "contact_number": "<string>",
  "inbound": true,
  "description": "<string>",
  "language": "ar",
  "assistant_id": "<string>",
  "chat_assistant_id": "<string>",
  "websocket_url": "<string>",
  "websocket_headers": {},
  "llm_system_prompt": "<string>",
  "llm_model": "gpt-4o",
  "llm_temperature": 0,
  "llm_max_tokens": 4096,
  "knowledge_base_files": "<string>",
  "transcript_provider": "vapi",
  "assistant_provider": "vapi",
  "vapi_api_key": "<string>",
  "retell_api_key": "<string>",
  "elevenlabs_api_key": "<string>",
  "bland_api_key": "<string>",
  "custom_provider_api_key": "<string>",
  "custom_provider_data": "<string>",
  "synthflow_api_key": "<string>",
  "enabled_personalities": [
    123
  ],
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z"
}

Authorizations

X-CEKURA-API-KEY
string
header
required

API Key Authentication. It should be included in the header of each request.

Path Parameters

id
integer
required

A unique integer value identifying this ai agent.

Body

Mixin for parsing restql query from request.

NOTE: We are using request.GET instead of request.query_params because this might be called before DRF request is created(i.e from dispatch). This means request.query_params might not be available when this mixin is used.

project
integer
required

Project ID

agent_name
string
required

Name of the AI agent

contact_number
string
required

Phone number associated with the AI agent

inbound
boolean
required

Whether the agent handles inbound calls

description
string
required

Detailed description of the AI agent's purpose and capabilities

assistant_id
string
required

External identifier for the assistant

language
enum<string>
required

Language of the agent

  • ar - Arabic
  • bg - Bulgarian
  • zh - Chinese Simplified
  • cs - Czech
  • da - Danish
  • nl - Dutch
  • en - English
  • fi - Finnish
  • fr - French
  • de - German
  • el - Greek
  • hi - Hindi
  • hu - Hungarian
  • id - Indonesian
  • it - Italian
  • ja - Japanese
  • ko - Korean
  • ms - Malay
  • multi - Multilingual
  • no - Norwegian
  • pl - Polish
  • pt - Portuguese
  • ro - Romanian
  • ru - Russian
  • sk - Slovak
  • es - Spanish
  • sv - Swedish
  • tr - Turkish
  • uk - Ukrainian
  • vi - Vietnamese
Available options:
ar,
bg,
zh,
cs,
da,
nl,
en,
fi,
fr,
de,
el,
hi,
hu,
id,
it,
ja,
ko,
ms,
multi,
no,
pl,
pt,
ro,
ru,
sk,
es,
sv,
tr,
uk,
vi
websocket_url
string

WebSocket URL for real-time communication with the agent

websocket_headers
object

Headers to be sent to the websocket server

predefined_metrics
string[]

List of predefined metrics to evaluate the agent's

Response

Mixin for parsing restql query from request.

NOTE: We are using request.GET instead of request.query_params because this might be called before DRF request is created(i.e from dispatch). This means request.query_params might not be available when this mixin is used.

agent_name
string
required

A descriptive name for your agent

Maximum length: 255
contact_number
string
required

Phone number assigned to this agent for calls (must start with + followed by digits, min 8 chars)

Maximum length: 15
inbound
boolean
required

Specifies if this agent handles inbound calls. Set to true for inbound, false for outbound calls

description
string
required

A detailed description of what this agent does and how it should interact

knowledge_base_files
string
required

List of knowledge base files attached to the agent

created_at
string<date-time>
required

Timestamp when the agent was created

updated_at
string<date-time>
required

Timestamp when the agent was last updated

id
integer

Unique identifier for the AI agent

project
integer

The project this agent belongs to

language
enum<string>
default:en

The primary language this agent uses for communication (e.g. 'en' for English)

  • ar - Arabic
  • bg - Bulgarian
  • zh - Chinese Simplified
  • cs - Czech
  • da - Danish
  • nl - Dutch
  • en - English
  • fi - Finnish
  • fr - French
  • de - German
  • el - Greek
  • hi - Hindi
  • hu - Hungarian
  • id - Indonesian
  • it - Italian
  • ja - Japanese
  • ko - Korean
  • ms - Malay
  • multi - Multilingual
  • no - Norwegian
  • pl - Polish
  • pt - Portuguese
  • ro - Romanian
  • ru - Russian
  • sk - Slovak
  • es - Spanish
  • sv - Swedish
  • tr - Turkish
  • uk - Ukrainian
  • vi - Vietnamese
Available options:
ar,
bg,
zh,
cs,
da,
nl,
en,
fi,
fr,
de,
el,
hi,
hu,
id,
it,
ja,
ko,
ms,
multi,
no,
pl,
pt,
ro,
ru,
sk,
es,
sv,
tr,
uk,
vi
assistant_id
string | null

External assistant service identifier (minimum 10 characters)

Maximum length: 255
chat_assistant_id
string

Chat-specific assistant service identifier (minimum 10 characters)

Maximum length: 255
websocket_url
string

WebSocket endpoint URL for real-time communication (must use ws:// or wss://)

websocket_headers
object

Headers to be sent to the websocket server

llm_system_prompt
string

System prompt that defines the agent's behavior and personality

llm_model
enum<string>
default:gpt-4o

The LLM model to use for simulating user responses

  • gpt-4o - gpt-4o
  • gpt-4o-mini - gpt-4o-mini
  • gpt-4.1 - gpt-4.1
  • gpt-4.1-mini - gpt-4.1-mini
  • claude-3-5-sonnet-20240620 - claude-3-5-sonnet-20240620
Available options:
gpt-4o,
gpt-4o-mini,
gpt-4.1,
gpt-4.1-mini,
claude-3-5-sonnet-20240620
llm_temperature
number
default:0

Controls randomness in responses (0.0-2.0, lower = more focused)

llm_max_tokens
integer
default:4096

Maximum length of simulated responses in tokens

transcript_provider
enum<string>
default:vocera

Service provider for speech-to-text transcription

  • vapi - Vapi
  • retell - Retell
  • vocera - Vocera
  • synthflow - Synthflow
  • elevenlabs - Elevenlabs
  • bland - Bland
  • custom - Custom
Available options:
vapi,
retell,
vocera,
synthflow,
elevenlabs,
bland,
custom
assistant_provider
enum<string>
default:self_hosted

Service provider for the AI assistant functionality

  • vapi - Vapi
  • retell - Retell
  • elevenlabs - Elevenlabs
  • vocera - Vocera
  • self_hosted - Self Hosted
Available options:
vapi,
retell,
elevenlabs,
vocera,
self_hosted
vapi_api_key
string

API key for VAPI service provider

retell_api_key
string

API key for Retell service provider

elevenlabs_api_key
string

API key for ElevenLabs voice synthesis service

bland_api_key
string

API key for Bland service provider

custom_provider_api_key
string

API key for custom service provider

custom_provider_data
string

Additional configuration data for custom service provider

synthflow_api_key
string

API key for Synthflow service provider

enabled_personalities
integer[]

Personality profiles enabled for this agent