Skip to main content
The VoiceInfra REST API gives you programmatic control over your AI voice agents. Use it to trigger outbound calls from a CRM, an automation platform, or your own application, and to check what is happening on your lines right now. Every request authenticates with an API key and returns JSON.
Looking for the AI-client integration instead? To use VoiceInfra from Claude, ChatGPT, or another MCP client, see the MCP Server — that uses OAuth, not API keys.

Base URL

Your API lives at the same host you use to sign in to the portal, followed by /api/v1:
The host is region-specific, because each region is a separate deployment. Take it from the URL you are signed in at rather than from a guide, and keep it in configuration rather than hard-coding it.

Authentication

Every request includes your API key in the X-API-Key header:
Keys start with vk_ and are created on the API Keys page in your portal. See API Keys for creating, rotating, and revoking them.

Available endpoints

Outbound Calls

Place a call, with per-call context and variables.

Active Calls

Check what is live right now — useful as a webhook fallback.
More of the platform is reachable through the MCP Server, which exposes agents, workflows, numbers, knowledge, call logs, analytics and billing to AI clients. This REST API covers the call-placing and call-monitoring endpoints.

Request and response format

Send Content-Type: application/json with a JSON body where the endpoint takes one. Responses are JSON, with a 2xx status on success. A failed request returns the matching 4xx or 5xx status with a body describing what went wrong.

Status codes

Build exponential backoff into your integration for 429 and 5xx responses rather than retrying immediately.

Correlating calls with webhooks

When you place a call through POST /outbound_call, the response identifies the call. Use that identifier to match the call_completed webhook you receive when the call finishes.
Store the identifier immediately after placing the call. If a webhook is missed — a client-side disconnect, for example — GET /agents/active-calls tells you whether the call is still running, so you can decide whether to wait or move on.

Webhooks Reference

Payload schema, signature verification, and delivery behaviour.

Rate limits

Rate limits apply per API key, and outbound call placement is limited more tightly than read endpoints because it spends credit. If you need higher throughput for a specific integration, contact VoiceInfra support.

Building an app for other people to use

This page covers calling the API with your own key. If you are building an application that other VoiceInfra customers will connect to their accounts, that is a different flow — see Connected Apps.