
REST API
Trigger AI voice calls, sync contacts, and read call results from any backend, CRM, or no-code tool.
Authentication
Generate an API key from Dashboard → Settings → API Keys. Pass it as a Bearer token on every request.
Keys are hashed at rest and shown only once at creation. Rotate or revoke anytime from the same Settings page.
What you can connect
The API is plain REST + Bearer token, so it works with anything that speaks HTTPS — no SDK required.
Zapier
Webhooks + HTTPTrigger calls when a new lead is added to your CRM, spreadsheet, or form.
Make (Integromat)
HTTP moduleBuild visual workflows: Form → OutboundCalls → Slack/Email/CRM update.
n8n
HTTP Request nodeSelf-hosted automation. Connect your database, scheduler, or messaging stack.
HubSpot / Salesforce / Pipedrive
CRMPush new contacts into a campaign automatically; pull call summaries back as activity records.
Custom backend (Node, Python, PHP, Go, Ruby)
Any languageStandard REST + Bearer token. Works with anything that can make an HTTPS call.
No-code platforms (Bubble, Retool, Airtable Automations)
No-codePlug the endpoint into a workflow action — no SDK needed.
Real workflows you can build
Endpoints
Account
/meAgents
/agents/agents/:idContacts
/contacts/contactsCalls
/calls/calls/calls/:idCampaigns
/campaigns/campaigns/:idMore endpoints (create/update/delete agents, CSV import, campaign control) are on the roadmap. Need one urgently? Tell us.
Code examples
# Trigger an outbound call from your agent
curl -X POST https://outboundcalls.ai/api/v1/calls \
-H "Authorization: Bearer oc_live_..." \
-H "Content-Type: application/json" \
-d '{
"agentId": "clxAGENT123",
"toNumber": "+14155551212",
"contactId": "clxCONTACT456"
}'
# Response
{
"id": "clxCALL789",
"phoneFrom": "+12025550100",
"phoneTo": "+14155551212",
"status": "RINGING",
"elevenlabsConvId": "conv_abc...",
"createdAt": "2026-04-29T10:32:11.000Z"
}// Trigger a call from any Node.js / browser app
const r = await fetch('https://outboundcalls.ai/api/v1/calls', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.OC_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
agentId: 'clxAGENT123',
toNumber: '+14155551212',
}),
});
const call = await r.json();
console.log(call.id, call.status); // RINGING
// Later — fetch transcript & summary
const detail = await fetch(`https://outboundcalls.ai/api/v1/calls/${call.id}`, {
headers: { Authorization: `Bearer ${process.env.OC_API_KEY}` },
}).then(r => r.json());
console.log(detail.summary, detail.transcript);Post-call webhook
Configure a webhook URL on each agent. After every call, OutboundCalls POSTs a signed JSON payload to your endpoint with:
- Full transcript
- Recording URL
- AI-generated summary
- Sentiment score
- Goal achieved (true/false)
- Extracted data fields
- Duration + credits charged
- Voicemail flag
All payloads are signed with HMAC-SHA256. Verify the X-Signature header against your agent's webhook secret.
Ship in minutes, not weeks
Create an account, generate an API key, and trigger your first call in under 5 minutes.