create_agent
Changes dataAdd a voice agent from a template. Required body: name, isActive, templateId (business, medical, questionnaire, support or blank).
POST /agents
33 tools
Actions an AI client can request. Some cost money or remove data, so check each tool's label before you allow it.
Add a voice agent from a template. Required body: name, isActive, templateId (business, medical, questionnaire, support or blank).
POST /agents
Start a test session so a person can talk to the agent in a browser. An AI client can't join it. Required param: agentId. Optional body.dynamicVariables. Uses real models, so usage is billed.
POST /agents/:agentId/preview-session
Change an agent's name, active state or template.
PATCH /agents/:id
Permanently remove an agent. Ask the user to confirm first.
DELETE /agents/:agentId
Save an agent's whole setup: language, first message, instructions, speech, language and voice models, knowledge base use, webhooks, variables, time zone and outbound calling hours. Each agent runs in one language.
POST /agents/:agentId/config
Hang up a call in progress by the room name from list_live_calls, only when the user explicitly requests it. An error means the call may still be running.
POST /calls/live/end
Remove a call record from your logs. It's a soft delete. Ask the user to confirm first.
DELETE /calls/:callId
Add URLs or uploaded files to an agent's knowledge base. Files need an upload URL first, from get_kb_upload_url.
POST /kb
Get a temporary upload link for a knowledge base file. Upload the file, then add it with create_knowledge_sources.
GET /kb/upload-url
Change a knowledge source. Saving the change processes it again.
PATCH /kb/:kbId
Remove a source from the knowledge base.
DELETE /kb/:kbId
Call one number with an agent. This costs money, so ask the user first. Required: agentId, phoneNumber. The call is refused for do-not-call numbers and outside calling hours. In the India region, +91 numbers need recorded consent: only set consentAttested if the person really agreed.
POST /outbound-calls/quick
Get a temporary upload link for a campaign's CSV or XLSX contact file.
GET /outbound-calls/batch-upload-url
Start a campaign from an uploaded contact file. This calls many people and costs money, so ask the user first. In the India region, consentSource must say where these contacts agreed to be called.
POST /outbound-calls/batches
Stop an outbound campaign. Ask the user to confirm first.
POST /outbound-calls/batches/:campaignId/cancel
Cancel an outbound call. This only works while it's still scheduled.
POST /outbound-calls/:outboundId/cancel
Call again after a failed or unanswered outbound call. This costs money, and the do-not-call and consent checks apply again.
POST /outbound-calls/:outboundId/retry
Add an HTTP tool an agent can call during a conversation. Attach it to an agent with attach_tool_to_agent. Keep credentials in secrets.
POST /tools
Change an HTTP tool's settings. This affects each agent it's attached to.
PATCH /tools/:toolId
Remove an HTTP tool. Agents using it lose access to it.
DELETE /tools/:toolId
Let an agent use an HTTP tool on its calls.
POST /tools/:toolId/attach/:agentId
Stop an agent from using an HTTP tool. The tool itself stays.
DELETE /tools/:toolId/detach/:agentId
Store a credential for use in tools and webhooks.
POST /secrets
Remove a stored secret. Tools and webhooks using it will stop working, so check first.
DELETE /secrets/:secretId
Create a website voice widget for an agent. Visitors can use it on allowed origins, and their calls are billed to you.
POST /agents/:agentId/widgets
Change a widget's theme, allowed origins, consent notice or enabled state.
PATCH /widgets/:widgetId
Remove a website widget. Sites embedding it will stop working.
DELETE /widgets/:widgetId
Add a Composio connection. Agents using these connections can't run on the voice engine, and are refused when it's enabled.
POST /mcp/connections
Update a Composio connection's status and list of tools.
POST /mcp/connections/:mcpConnectionId/refresh
Remove a Composio connection. Ask the user to confirm first.
DELETE /mcp/connections/:mcpConnectionId
Attach a Composio connection to an agent. The voice engine refuses agents with these connections, so check before using this on a live agent.
POST /mcp/connections/:mcpConnectionId/attach/:agentId
Remove a Composio connection from an agent. The connection itself stays.
DELETE /mcp/connections/:mcpConnectionId/detach/:agentId
Run a tool on a Composio connection. API keys can't use this, so MCP clients will get a permission error.
POST /mcp/connections/:mcpConnectionId/tools/:toolName/execute