1. Honeypot
CallerAPI Documentation
  • Quickstart
  • Use cases
    • For carriers (MNOs/MVNOs)
    • CPaaS platforms
    • Cloud communications providers
    • SIP trunking providers
    • PBX/Cloud PBX
    • UCaaS vendors
  • Account
    • Balance and email
      GET
  • Spam protection
    • Voice firewall
      • Get started
      • Quickstart
        • What you get
        • Before you start
        • Test with a recording
        • Connect your switch
        • Switch notes
        • Twilio and Telnyx
        • Send text instead of audio
      • Verdicts
        • Read a verdict
        • What to do with a verdict
        • Block a caller
        • Events and webhooks
      • Honeypot
        • Hand a call over
        • Audio, events, and limits
      • Reference
        • Endpoints
        • Errors
        • Limits and thresholds
        • Production checklist
      • REST
        • What this deployment can do
        • List the verdict categories
        • List the honeypot personas
        • Score a transcript or a recording
        • List your recent sessions
        • Get one session with verdict and intel
        • Twilio voice URL for a screened number
        • Preview the Twilio TwiML
        • Telnyx voice URL for a screened number
        • Twilio voice URL for a honeypot number
        • Telnyx voice URL for a honeypot number
      • WebSocket
        • Live scam filter stream
        • Honeypot stream
    • Daily spam reports
      • Webhook
        • Subscribe to daily reports
        • Unsubscribe from daily reports
        • List webhook subscriptions
        • Manual dispatch of reports
        • Test webhook
      • REST
        • Fetch daily spam reports
    • 15 days spam CSV snapshot
      GET
    • Spam score + HLR
      GET
  • Mobile SDK
    • Get started
    • Quickstart
      • What you get
      • Get your keys
      • Android
      • iOS
      • Flutter
      • React Native
      • Check it works
    • Call screening
      • What each platform can do
      • Android call screening
      • iOS prerequisites
      • iOS add the extension
      • iOS test on device
    • Reference
      • Methods
      • Errors
      • Limits and billing
      • Troubleshooting
  • Data partners
    • Partner tems & docs
    • Upload spam reports
    • Upload contacts
  • Fraud prevention
    • Ported date
    • Porting history
    • Online presence
    • KYC user identity
  • Schemas
    • Spam protection
      • Spam score request
      • Business info
      • Carrier info
      • Complaint (without number)
      • Daily spam reports request
      • Complaint (with phone)
  1. Honeypot

Audio, events, and limits

What comes back from a honeypot call, and where it stops.

Over the plain WebSocket#

Open wss://api.callerapi.com/api/voice/honeypot/stream?key=YOUR_KEY and send the start message as on Connect your switch. Then:
Send the caller's audio as binary frames.
Receive the persona's audio as binary frames in your encoding and sample rate. Play it to the caller.
On {"type":"clear"}, drop any queued playback. The caller interrupted the persona.
{"type":"mark","name":"..."} is advisory. Ignore it if you do not need it.
Do not send the persona's own voice back. Send the caller only.
Events arrive as JSON text frames, the same as the filter, plus session.error when speech synthesis fails. See Events and webhooks.

What you get back#

session.started carries the persona object.
session.ended carries the verdict, the intel, and the transcript with the persona's name as one speaker and caller as the other. reported_numbers counts the caller plus every callback number filed.
Read a session later with Get one session. Honeypot sessions have kind: "honeypot" and a persona_id.

Personas#

Every call gets a different persona, chosen at random from the cast. Pass persona=<id> to use one character on every call.
{
  "id": "grandma_edna",
  "name": "Edna Whitaker",
  "age": 78,
  "gender": "female",
  "archetype": "grandmother",
  "language": "en",
  "greeting": "Hello? Whitaker residence."
}
List the honeypot personas returns the cast.

Limits#

LimitValue
Call length15 minutes, then the persona hangs up.
SilenceThe persona prompts after 8 seconds. After three unanswered prompts it hangs up.
Cost8 credits per started minute. 4 more per minute on a number CallerAPI provides.
Filingreport defaults to true. The threshold is a score of 0.8. The same never-filed categories apply as for the filter. See Block a caller.
Modified at 2026-09-18 16:57:06
Previous
Hand a call over
Next
Endpoints
Built with