Built for developers.

A powerful REST API, SDKs in every language, and webhooks that let you build an entire voice AI backend in minutes.

API-first architecture.

Trigger outbound calls, update prompts dynamically, and fetch call logs with our powerful REST API. You can literally build an entire call center backend in 5 lines of code.

make-call.ts
import { CallCenter } from '@callcenter/sdk';

const client = new CallCenter(process.env.API_KEY);

// Trigger an outbound call instantly
await client.calls.create({
  agentId: 'ag_2f93ndk10',
  to: '+15550192834',
  variables: {
    customerName: 'John Doe',
    appointmentTime: '3:00 PM'
  }
});

// Agent handles the rest using RAG.

API Endpoints

Core endpoints to manage agents and calls programmatically.

POST/v1/agents
POST/v1/calls
GET/v1/calls
GET/v1/calls/:id/transcript
PATCH/v1/agents/:id
DELETE/v1/agents/:id

SDK Examples

Get started in your language of choice.

JavaScript
import { CallCenter } from '@callcenter/sdk';

const client = new CallCenter(process.env.API_KEY);

// Create an agent
const agent = await client.agents.create({
  name: 'Support Agent',
  prompt: 'You are a helpful support agent...',
  voice: 'alloy',
  language: 'en-US',
});

// Make a call
const call = await client.calls.create({
  agentId: agent.id,
  to: '+15550192834',
  variables: { customerName: 'Jane Doe' },
});

console.log(`Call initiated: ${call.id}`);
Python
from callcenter import CallCenter

client = CallCenter(api_key=os.environ["API_KEY"])

# Create an agent
agent = client.agents.create(
    name="Support Agent",
    prompt="You are a helpful support agent...",
    voice="alloy",
    language="en-US",
)

# Make a call
call = client.calls.create(
    agent_id=agent.id,
    to="+15550192834",
    variables={"customer_name": "Jane Doe"},
)

print(f"Call initiated: {call.id}")
cURL
# Create an agent
curl -X POST https://api.callcenter.ai/v1/agents \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Support Agent",
    "prompt": "You are a helpful support agent...",
    "voice": "alloy",
    "language": "en-US"
  }'

# Make a call
curl -X POST https://api.callcenter.ai/v1/calls \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agentId": "ag_2f93ndk10",
    "to": "+15550192834",
    "variables": { "customerName": "Jane Doe" }
  }'

Webhook Events

Subscribe to real-time events and build reactive integrations.

call.started

Fired when a call is connected and the agent begins speaking

call.ended

Fired when a call ends, includes duration, cost, and summary

call.transferred

Fired when the agent transfers a call to a human or external number

transcript.ready

Fired when the full call transcript is processed and available

agent.error

Fired when an agent encounters an unrecoverable error during a call

call.recording.ready

Fired when the call recording has been processed and stored

Rate Limits

Generous limits that scale with your plan.

Free

100 req/min50 calls/day

Pro

1,000 req/minUnlimited calls

Enterprise

10,000 req/minUnlimited calls

All responses include X-RateLimit-Remaining and X-RateLimit-Reset headers. Rate limited requests return 429 with a Retry-After header.

View the full documentation

Comprehensive guides, API references, and examples for every endpoint.

View Full Docs