Skip to main content
Every channel on the Upside WebSocket follows the same subscribe/unsubscribe protocol. You send a JSON message with a method field set to "subscribe" or "unsubscribe", and a subscription object that specifies the channel type and any required parameters. The server acknowledges each request and begins (or stops) pushing messages on that channel.

Subscribing to a channel

Send the following JSON frame to start receiving messages on a channel:
The server responds with a subscriptionResponse acknowledgement:
The data field mirrors your original request so you can match acknowledgements to subscriptions in async code.

Unsubscribing from a channel

Send the same subscription object with "method": "unsubscribe" to stop receiving messages:
The server sends a matching subscriptionResponse with "method": "unsubscribe" to confirm.
The older {"msg": "Subscribe", "channels": [...]} array format was deprecated in v0.14 and is no longer accepted. All clients must use the method + subscription object format shown above.

Error messages

If a subscription request is invalid, the server responds on the error channel:

All subscription types and parameters

The table below lists every channel type, its required parameters, and whether authentication is needed. * Private channels accept the account address in the user field without requiring a prior Auth message today. Authenticating first is recommended for forward compatibility.
You can hold multiple active subscriptions on a single WebSocket connection. There is no hard limit on the number of simultaneous subscriptions, but subscribing to many high-frequency channels (e.g., l2Book for many assets) on one connection may increase message processing latency on the client side.

Quick examples by channel type