Skip to main content
The VoiceInfra REST API gives you programmatic control over your AI voice agents. Use it to trigger outbound calls from any external system — whether that’s a CRM, an automation platform, or your own application — and receive structured call data back via webhooks when each call completes. Every request authenticates with an API key, and every response returns JSON.

Base URL

All API requests target the following base URL:
https://api.voiceinfra.ai/v1

Available endpoints

EndpointMethodDescription
/calls/outboundPOSTInitiate an outbound call from an AI agent

Authentication

Every request to the VoiceInfra API must include your API key in the X-API-Key request header. Requests without a valid key return 401 Unauthorized.
X-API-Key: YOUR_API_KEY
See the Authentication guide for full details on generating keys, managing multiple keys, and security best practices.

Request format

All requests must set the Content-Type header to application/json and send a JSON body where applicable.
Content-Type: application/json

Response format

All responses return JSON. Successful requests return a 2xx status code with a JSON body. Failed requests return a 4xx or 5xx status code with an error object that describes what went wrong.
Error response
{
  "error": {
    "code": "invalid_agent",
    "message": "The specified agent_id does not exist or is not active."
  }
}

Common error codes

StatusCodeDescription
400validation_errorMissing or invalid request parameters
401unauthorizedInvalid or missing API key
404not_foundAgent or resource not found
422invalid_phonePhone number not in valid E.164 format
429rate_limitedToo many requests
500server_errorInternal server error

Rate limits

Standard rate limits apply to all API endpoints. If your integration requires a higher throughput limit, contact VoiceInfra support to discuss your needs.
When you hit a rate limit, the API returns 429 rate_limited. Build exponential backoff into your integration to handle this gracefully.

Idempotency

Each call to POST /calls/outbound creates a new, unique call_id in the response. Use this identifier to correlate the webhook event you receive when the call completes — every call.completed webhook payload includes the matching call_id.
Store the call_id in your system immediately after initiating a call so you can reliably match incoming webhook events to the original request.

Explore the API

Authentication

Generate API keys, secure your credentials, and understand authentication errors.

Outbound Calls

Trigger AI-powered outbound calls with dynamic per-call configuration.