Skip to content
UDX
2026-08-11

Unsubscribe from Channels

End one or more subscriptions on the current connection in a single command.

RECEIVE/ws
Authorization
Authorization
UDX-Access-KeyAPI key · headerrequired

Opaque API key ID.

UDX-Access-TimestampAPI key · headerrequired

Unix time in milliseconds, within 30 seconds of server time.

UDX-Access-SignatureAPI key · headerrequired

Standard-base64 RSA-PSS/SHA-256 signature with a 32-byte salt. Sign timestamp + "GET" + "/ws"; the upgrade request has no body hash and no idempotency key.

Commands
unsubscribeEnd one or more subscriptions on this connection.
idCommandIdrequired

Client-assigned command correlation identifier, unique among commands in flight on this connection.

min 1 · max 9007199254740991
cmdstringrequired

Selects the unsubscribe command.

paramsUnsubscribeCommandParamsrequired

Identifies the subscriptions to end as a canonical array.

Show properties
sidsSubscriptionIdListrequired

Canonical non-empty list of distinct subscription identifiers.

min items 1 · max items 250
Replies
unsubscribedConfirm that one or more subscriptions ended.
idCommandIdrequired

Client-assigned command correlation identifier, unique among commands in flight on this connection.

min 1 · max 9007199254740991
typestringrequired

Identifies a successful unsubscribe response.

msgUnsubscribedPayloadrequired

Subscriptions ended atomically in request order.

Show properties
subscriptionsSubscriptionRefListrequired

Canonical non-empty list of ended subscriptions in request order.

min items 1 · max items 250
Show properties
Array of SubscriptionRef
sidSubscriptionIdrequired

Exchange-assigned subscription ID whose lifetime is this WebSocket connection.

min 1 · max 9007199254740991
tickerTicker

A human-meaningful natural key naming a single-leg or multi-leg market.

min length 1 · max length 128
Errors
invalid_messageThe JSON or common command envelope is invalid.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
fieldstring

JSON path to the invalid field when one can be identified.

min length 1 · max length 255
invalid_paramsCommand params fail schema or semantic validation.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
fieldstring

JSON path to the invalid param when one can be identified.

min length 1 · max length 255
command_id_in_useAnother command with the supplied identifier is still in flight.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
subscription_not_foundThe subscription identifier is not active on this connection.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
sidSubscriptionIdrequired

Exchange-assigned subscription ID whose lifetime is this WebSocket connection.

min 1 · max 9007199254740991
capacity_exceededA standing-resource limit prevents command admission.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
scopestringrequired

Boundary at which the standing-resource limit applies.

Allowed:connectionmemberprocess
resourcestringrequired

Retained or concurrent resource that reached its limit.

Allowed:in_flight_commandsactive_subscriptionsmarket_data_streams
limitinteger<int64>required

Enforced maximum for the identified scope and resource.

min 1 · max 10000000
internal_errorAn unexpected failure left connection state safe to continue.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Channel Bindings
Channel Bindings
ws
methodGET
headers
UDX-Access-Keystringrequired

Opaque API key ID.

min length 1 · max length 255
UDX-Access-Timestampstringrequired

Unix time in milliseconds, within 30 seconds of server time.

max length 13 · matches ^[0-9]{13}$
UDX-Access-Signaturestringrequired

Standard-base64 RSA-PSS/SHA-256 signature with a 32-byte salt. Sign timestamp + "GET" + "/ws"; the upgrade request has no body hash and no idempotency key.

min length 1 · max length 1024
Sec-WebSocket-Protocolstringrequired

Negotiated dated WebSocket API version.

Examples
unsubscribe
{
  "id": 2,
  "cmd": "unsubscribe",
  "params": {
    "sids": [
      7,
      8
    ]
  }
}
unsubscribed
{
  "id": 2,
  "type": "unsubscribed",
  "msg": {
    "subscriptions": [
      {
        "sid": 7,
        "ticker": "UDX-EXAMPLE-MARKET-A"
      },
      {
        "sid": 8,
        "ticker": "UDX-EXAMPLE-MARKET-B"
      }
    ]
  }
}
invalid_message
{
  "type": "error",
  "msg": {
    "code": "invalid_message",
    "detail": "WebSocket command is not a valid JSON object",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
  }
}
invalid_params
{
  "id": 4,
  "type": "error",
  "msg": {
    "code": "invalid_params",
    "detail": "the orderbook channel requires tickers",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef",
    "field": "params.channels"
  }
}
command_id_in_use
{
  "id": 4,
  "type": "error",
  "msg": {
    "code": "command_id_in_use",
    "detail": "WebSocket command ID is already in flight",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
  }
}
subscription_not_found
{
  "id": 4,
  "type": "error",
  "msg": {
    "code": "subscription_not_found",
    "detail": "subscription is not active on this connection",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef",
    "sid": 9
  }
}
capacity_exceeded
{
  "id": 4,
  "type": "error",
  "msg": {
    "code": "capacity_exceeded",
    "detail": "WebSocket connection command capacity is exhausted",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef",
    "scope": "connection",
    "resource": "in_flight_commands",
    "limit": 32
  }
}
internal_error
{
  "id": 4,
  "type": "error",
  "msg": {
    "code": "internal_error",
    "detail": "WebSocket command failed",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
  }
}