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 registry
Per-agent scoping
Execution audit trail

Tool call

crm.lookup_policy

Looks up a policy in the connected CRM.

Policy IDPOL-883120

Result

142 ms
HolderAnita Verma
Renewal due21 Jun 2026
Amount₹12,480

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.