Two minutes. Three checks.Step 1: get your key#
Open the dashboard and copy your API key. It is the same key as the rest of the CallerAPI API.Send it in the X-Auth header. Every endpoint under /api/voice also accepts ?key=YOUR_KEY in the URL, because telephony vendors cannot set headers on a media socket.Every JSON response has "status": "success" or "status": "error" with a message.Step 2: check the deployment#
{
"status": "success",
"capabilities": {
"scan": true,
"live_filter": true,
"honeypot": true,
"personas": 8,
"prices": {
"credit_usd": 0.0039,
"filter_per_minute": 3,
"honeypot_per_minute": 8,
"scan": 2,
"scan_audio_minute": 1,
"managed_telephony_per_minute": 4
}
}
}
| Field | Meaning |
|---|
scan | Always true. |
live_filter | Must be true before you open the filter socket. When false, the socket answers 503. |
honeypot | Must be true before you hand a call to a persona. |
prices | The credit prices in force. |
Step 3: check the credits#
The filter charges at the start of the call and once per started minute. When the account runs out of credits, the session ends. The final session.ended event is still sent.Check the balance with GET /api/me.What you need on your side#
A component that can open a WebSocket to wss://api.callerapi.com and stream the caller's audio into it. FreeSWITCH has mod_audio_fork. Asterisk, Kamailio, and most SBCs need a small bridge. See Switch notes. The caller's audio on its own channel.
16-bit PCM or G.711 mu-law. 8000 Hz is normal. Up to 48000 Hz is accepted.
If the call arrives on a Twilio or Telnyx number, you need none of this. See Twilio and Telnyx. Modified at 2026-09-18 16:56:40