Endpoint
ws:// is not accepted. Send your key in the apikey header on the
upgrade request. It is checked once, at connection time. After the socket is open no
further authentication happens.
Lifecycle
- The gateway authenticates the request and checks that the key is granted the stream.
- The server checks that your watchlist is not empty. An empty watchlist is rejected
with
400before the upgrade. - The request upgrades with the standard
101 Switching Protocolshandshake. - The server pushes JSON text frames. Anything you send over the socket is read and discarded; there is no client-to-server protocol. WebSocket pings are answered with pongs.
1011: reconnect. A server restart drops the connection without a close frame. Treat
any unexpected close as “reconnect with backoff”. The server restarts every few hours,
so expect routine disconnects.
Delivery is at-most-once. Each connection gets its own queue, created when it opens and
deleted when it closes, so nothing is kept for you while you are disconnected and nothing
is replayed when you reconnect.
Errors
These are HTTP responses returned before the upgrade completes.
After the upgrade, a message that fails to parse on your side should be logged and
skipped; the server keeps streaming.
Reconnection strategy
Use exponential backoff starting at one second, capped at 30 seconds, reset on a successful open. The stream is not rate limited, but a tight reconnect loop hammers the service while it recovers and reconnects no sooner.Best practices
- One connection per account. A single socket covers your whole watchlist. Do not open one per event; extra sockets are for failover only, see Multiple connections.
- Reconnect with backoff. See above.
- Filter client-side for everything except the event,
task_activeandchange_type. - Treat
event_infosas optional. It is omitted entirely when the platform does not expose metadata. - Do not block in your message handler. Process notifications asynchronously so back-pressure never stalls the socket.
- Track time since the last message and reconnect after about five minutes of silence.