OutboundCalls API v1

Programmatically dispatch calls, manage agents and contacts, read call results, and check your account balance. Base URL: https://outboundcalls.ai/api/v1

Authentication

All endpoints require an API key. Generate one in Settings → API Keys. Pass it in the Authorization header:

Authorization: Bearer oc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Keys are hashed at rest and shown only once at creation time. Revoke any compromised key from the same Settings page.

Quick start

curl -s https://outboundcalls.ai/api/v1/me \
  -H "Authorization: Bearer oc_live_..."

Endpoints

Account

GET/me

Returns your user info, credit balance, and active subscription.

Agents

GET/agents

Query: status, limit (max 200).

GET/agents/{id}

Contacts

GET/contacts

Query: contactListId, limit (max 500).

POST/contacts

Body: { contactListId, phone, name?, email?, company?, tags?, customFields? }

curl -s https://outboundcalls.ai/api/v1/contacts \
  -H "Authorization: Bearer oc_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "contactListId": "clx...",
    "phone": "+14155551212",
    "name": "Jane Doe",
    "tags": ["lead","website"]
  }'

Calls

GET/calls

Query: status, agentId, campaignId, limit (max 200).

GET/calls/{id}

Returns full call detail: transcript, summary, recording URL, sentiment, extracted data, credits charged.

POST/calls

Trigger an outbound call via your deployed agent. Body:

{
  "agentId": "clx...",          // your agent id (must be deployed to ElevenLabs)
  "toNumber": "+14155551212",   // E.164 destination
  "phoneNumberId": "clx...",    // optional — defaults to first active number
  "contactId": "clx..."         // optional — link to a contact
}
curl -s https://outboundcalls.ai/api/v1/calls \
  -H "Authorization: Bearer oc_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "agentId":"clxXXX", "toNumber":"+14155551212" }'

Pricing: charged on call completion based on destination country (sell price = Twilio mobile + ElevenLabs $0.10 + 75% margin). Minimum balance to dispatch: 25 credits.

Campaigns

GET/campaigns
GET/campaigns/{id}

Returns campaign progress (calls completed/successful/failed, credits used, success rate).

Errors

StatusMeaning
400Bad request — missing/invalid fields
401Missing, invalid, or revoked API key
402Insufficient credits to dispatch a call
404Resource not found (or not owned by your account)
502Upstream telephony provider error

Webhooks

Configure post-call webhooks per agent in the Agents page; OutboundCalls will POST a JSON payload with full call data once a call ends.

Need help? Open a ticket in Help & Support.