Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ 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.