Référence API
Live — v1 available now

REST API

Trigger AI voice calls, sync contacts, and read call results from any backend, CRM, or no-code tool.

Base URL:https://outboundcalls.ai/api/v1

Authentication

Generate an API key from Dashboard → Settings → API Keys. Pass it as a Bearer token on every request.

Authorization: Bearer oc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

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 + HTTP

Trigger calls when a new lead is added to your CRM, spreadsheet, or form.

Make (Integromat)

HTTP module

Build visual workflows: Form → OutboundCalls → Slack/Email/CRM update.

n8n

HTTP Request node

Self-hosted automation. Connect your database, scheduler, or messaging stack.

HubSpot / Salesforce / Pipedrive

CRM

Push new contacts into a campaign automatically; pull call summaries back as activity records.

Custom backend (Node, Python, PHP, Go, Ruby)

Any language

Standard REST + Bearer token. Works with anything that can make an HTTPS call.

No-code platforms (Bubble, Retool, Airtable Automations)

No-code

Plug the endpoint into a workflow action — no SDK needed.

Real workflows you can build

A new lead fills your Typeform → call them within 30 seconds
Booking confirmation in Calendly → AI agent calls 24h before to confirm
Failed Stripe payment → reminder call instead of just an email
Daily CSV upload from your CRM → AI agent calls each contact during business hours
WhatsApp inbound message → callback from voice agent if requested
Long-running campaign progress synced into your data warehouse every 15 min

Endpoints

Account

GET/me

Agents

GET/agents
GET/agents/:id

Contacts

GET/contacts
POST/contacts

Calls

POST/calls
GET/calls
GET/calls/:id

Campaigns

GET/campaigns
GET/campaigns/:id

More endpoints (create/update/delete agents, CSV import, campaign control) are on the roadmap. Need one urgently? Tell us.

Code examples

cURL
# 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"
}
JavaScript / Node.js
// 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.