Platform · API & developer tools
Plug Vocily AI into your stack like any modern API.
A clean REST API, HMAC-signed webhooks, Fern-powered SDKs in Python and TypeScript, runtime variables for per-call context, API tools the agent can invoke mid-conversation, and an MCP server to drop Vocily AI into Claude Desktop / Cursor / ChatGPT.
Problem · Solution
The problem today
A voice agent that can talk but can't act is a glorified IVR. Customers ask for their order details, the agent says 'let me check' — and now there's a human on a copy-paste loop between two windows. Real business conversations need real backend access: pull the order, confirm the address, write the outcome, trigger the workflow. Most teams hesitate to give an LLM credentialed API calls because it sounds dangerous. The fix isn't to avoid it — it's to make it structured, audited, and scoped.
How Vocily AI handles it
REST API + Python and TypeScript SDKs
Place calls, retrieve transcripts, manage agents — all via REST. SDKs auto-generated from our OpenAPI spec by Fern, so they never go out of sync with the docs.
HMAC-signed webhooks
Push call.started, call.ended, transcript.ready, recording.ready, and post_call_analysis.ready events to your backend. Signed with HMAC-SHA256, with retry, exponential backoff, and delivery history per endpoint.
API tools — pre, on, and post call
Define HTTP tools the LLM can call before, during, or after a call. Three execution phases. Each tool declares a typed input schema; the model fills it from the conversation, validation runs before the call leaves Vocily AI.
Runtime variables per call
Inject dynamic context per call via API — {{caller_name}}, {{order_id}}, anything. Available as template variables in prompts and tool configs.
MCP server
Expose Vocily AI's agent invocation, KB search, and tool registry via the Model Context Protocol. Drop your agents into Claude Desktop, Cursor, ChatGPT, or any MCP client.
What's in it
The developer platform in detail.
Everything you'd want from a voice API surfaced as clean, documented primitives. Same OpenAPI spec drives the docs site and the SDK packages.
REST API
Core endpoints for the things you'll do most.
- Calls
- POST /v1/calls · GET /v1/calls/{id} · GET /v1/calls/{id}/transcript
- Chat
- POST /v1/agents/{id}/chat — chat against the agent without a phone call.
- Webhooks
- Endpoint CRUD + delivery history.
- API keys
- Workspace-scoped key CRUD with rotation.
Webhooks
Push call-lifecycle events into your backend.
- Events
- call.started · call.ended · call.failed · transcript.ready · recording.ready · post_call_analysis.ready
- Signing
- HMAC-SHA256 per event so your backend can verify origin.
- Reliability
- Retry with exponential backoff + per-endpoint delivery history.
- Configuration
- Per-workspace endpoint list; mix-and-match which events fire to which URL.
SDKs & docs
One spec, three artefacts.
- Engine
- Fern — OpenAPI-driven SDK + docs generation.
- Python SDK
- Fully typed; covers every REST endpoint.
- TypeScript SDK
- Same coverage, idiomatic Node / browser-safe usage.
- Reference site
- Auto-generated from the same OpenAPI — never out of sync with the SDK.
API tools (in-call)
How the LLM calls your backend mid-conversation.
- Phases
- Pre-call (set context before pickup), on-call (in-conversation), post-call (after hangup).
- Method + URL
- HTTP verb + endpoint + headers (workspace-scoped API keys supported).
- Input schema
- Typed fields the model fills from the conversation; validated before the call leaves.
- Response mapping
- Map JSON response into named values the agent can quote back to the caller.
- Audit trail
- Every invocation logged on the execution record with input, output, latency, status.
Runtime variables
Per-call context that flows into the prompt and tools.
- Shape
- Key/value pairs sent at call placement.
- Usage
- Reference as {{variable_name}} inside the agent prompt, greeting, or tool configs.
- Built-in
- {{caller_no}} auto-populates for inbound calls.
- Examples
- {{caller_name}} for the greeting, {{order_id}} for an OMS tool lookup, {{due_amount}} for a reminder script.
Cal.com + MCP
Two notable integrations.
- Cal.com
- Native calendar integration — check availability and book inside the call. Supports reschedule and cancel.
- MCP server
- Expose Vocily AI as MCP tools — agent invocation, KB search, tool registry.
- MCP clients
- Claude Desktop, Cursor, ChatGPT, or any client that speaks Model Context Protocol.
- Use case
- Build voice into AI workflows you already run — let your IDE assistant trigger a Vocily AI call as part of a longer task.
A safe call to your backend
The model picks the tool, Vocily AI handles the call.
Tools are declared once on a workspace. Agents that need them get scoped access. The execution record stores every invocation, input, and result.
Tool call
crm.lookup_policy
Looks up a policy in the connected CRM.
Result
Common questions
What teams ask before they switch.
Each tool declares a typed input schema. The model fills the inputs from the conversation, the platform validates them against the schema, then makes the call. Misshaped calls are rejected before they leave Vocily AI.