Skip to main content
Callouts are switched on per instance on request. Contact us (contact@cabalspy.xyz) to enable them. Without them every endpoint answers 403 feature_not_enabled.
A WebSocket with every callout event of your instance as it happens: new callouts, each new price, milestones, the first-day score, the end of tracking and removals. Use it for a live callout feed, live multiples next to each callout, or new markers on a price chart. It is available on every plan once callouts are switched on, and only carries your own instance’s callouts.

Connecting

Pass your API key as the api_key or apiKey query parameter, or as an Authorization Bearer header. The connection starts streaming right away, there is nothing to subscribe to.
string
required
Your API key. apiKey works too, or an Authorization Bearer header.
string
Only events on this chain. One of solana, bnb, base, eth, rh. Empty means every chain. An unknown chain is refused.
string
Only events of this token. Needs chain. The address is normalized as in List callouts, so EVM addresses match in any letter case.
string
Your Instance ID. Only needed when your account has several instances.

Messages

Every message is a JSON object with an event field and, except for heartbeat, pong and error, a data field.
ready
callout.update
callout.milestone
callout.removed
heartbeat
error

Staying connected

Send the text ping at any time, the server answers with pong. When you send nothing for 30 seconds, the server sends a heartbeat and checks that your key is still valid. A revoked or disabled key ends the connection. Reconnect with a short backoff when the connection drops, and use List callouts with since to fill any gap.

Limits and errors

Each API key can hold at most 5 callouts stream connections at once, counted separately from the other streams.