Created in the dashboard
Scopes: calls:write, calls:read, campaigns:read. Restrict by campaign, IP/CIDR and expiry date.
Integration
OperatorAI connects to the systems you already use: your CRM sends a call request and the result comes back on its own. Calls go through your SIP line or corporate PBX.
REST API
Your CRM or accounting system sends the customers to call every day on its own. Each call has a unique ID: you can check its status at any time, but you don’t need to — the result arrives by webhook.
| Request | What it does |
|---|---|
POST/api/v1/calls | One call request |
POST/api/v1/calls/batch | Up to 1,000 calls in one request |
GET/api/v1/calls/{id} | Call status, result and transcript |
GET/api/v1/calls/external/{externalId} | Look up by the ID from your system |
GET/api/v1/calls | Changes: cursor-based sync |
DELETE/api/v1/calls/{id} | Cancel a request |
GET/api/v1/calls/{id}/recording | Call recording |
GET/api/v1/campaigns | Campaigns and their IDs |
GET/api/v1/openapi.json | OpenAPI document (imports into Postman) |
X-Api-Key: oai_••••••••••••
Content-Type: application/json
{
"campaignId": "7f3c2a90-…",
"phone": "+994501234567",
"name": "Elvin Mammadov",
"externalId": "loan-48213-2026-10",
"data": {
"Debt amount": "320 AZN",
"Due date": "28.10.2026"
}
}{
"id": "c9a1e5d2-…",
"object": "call",
"status": "queued",
"externalId": "loan-48213-2026-10"
}When a call ends, a call.completed or call.failed event is sent to your URL: status, outcome (for example, promised_to_pay), analysis answers, transcript and a recording link.
Documentation and a test console live in the dashboard, with curl, C#, PHP, Python and 1C examples. A simple integration usually takes your developer 1–3 days.
It works without the API too: upload lists from Excel or CSV and download results to Excel.
The API comes with the monthly “Support with API” plan: training your developers and reviewing integration errors is on us.
X-OperatorAI-Event: call.completed
X-OperatorAI-Signature: v1=4be1…
{
"id": "evt_5f0c…",
"type": "call.completed",
"data": {
"id": "c9a1e5d2-…",
"externalId": "loan-48213-2026-10",
"status": "completed",
"outcome": "promised_to_pay",
"result": {
"durationSeconds": 74,
"answers": [
{
"tool": "Promise to pay",
"answer": "Yes",
"status": "done"
},
{
"tool": "Payment date",
"answer": "October 30",
"status": "done"
}
],
"recordingUrl": "https://…/calls/c9a1e5d2-…/recording"
}
}
}Keys
Scopes: calls:write, calls:read, campaigns:read. Restrict by campaign, IP/CIDR and expiry date.
The key itself is never stored, only its SHA-256 hash. Keys can be revoked at any time.
externalId: if the same request arrives twice, no new call is created.
600 requests per minute per key; above that, 429 with Retry-After.
Telephony
Calls go out on your SIP line: customers see a familiar number, and you pay your carrier for minutes directly.
Any SIP provider or telecom operator line. G.711 audio codec.
A step-by-step guide for connecting to Cisco CUCM as a Third-Party SIP Device.
Your line’s channel count sets how many calls run in parallel; campaigns never open more.
If SIP registration drops, the primary and fallback addresses are tried in turn, then dialing resumes.
AI providers. Google Gemini, xAI Grok, ElevenLabs and Azure Speech are supported. The accounts and keys are yours and you pay the provider directly. When you switch models, call costs follow the price table in the dashboard.
A simple integration (sending a list and receiving results) usually takes your developer 1–3 days. We can also do the integration work for you.
Yes, the documentation includes a 1C example. Any system that can send HTTP requests can connect.
Yes. Upload lists from Excel or CSV and download results to Excel.
From your SIP line’s number. You get the line from a telecom operator or SIP provider; we help connect it.
Send us your scenario or current script. Within 3 business days we make a demo call with your scenario and send a written proposal.
Contact us directly
Sahib Babaliyev+994 50 788 77 90
Tural Hamzayev+994 55 552 54 41
Email[email protected]