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.
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. A tight reconnect loop exhausts the rate limit in seconds and then locks you out for the rest of the minute.Best practices
- One connection per process. A single socket covers your whole watchlist. Do not open one per event.
- Reconnect with backoff. See above.
- Filter client-side for everything except
event_idandchange_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.