Stream Order Books
Order book snapshots and absolute level updates for each subscribed ticker.
/wsAuthorization
UDX-Access-KeyAPI key · headerrequiredOpaque API key ID.
UDX-Access-TimestampAPI key · headerrequiredUnix time in milliseconds, within 30 seconds of server time.
UDX-Access-SignatureAPI key · headerrequiredStandard-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.
orderbook_snapshotEstablish current book state for one market.
typestringrequiredIdentifies a complete order book snapshot.
sidSubscriptionIdrequiredExchange-assigned subscription ID whose lifetime is this WebSocket connection.
seqSequenceNumberrequiredGap-detection sequence local to one subscription. It starts at 1 and increments once per frame on that subscription.
msgOrderbookSnapshotPayloadrequiredComplete visible L1, L2, or L3 order book state for one market.
Show propertiesHide properties
tickerTickerrequiredA human-meaningful natural key naming a single-leg or multi-leg market.
bidsPriceLevel[]requiredBid levels in best-first order as [price, quantity] pairs.
asksPriceLevel[]requiredAsk levels in best-first order as [price, quantity] pairs.
tickerTickerrequiredA human-meaningful natural key naming a single-leg or multi-leg market.
bidsL3OrderbookEntry[]requiredAnonymous bid orders in best-price, FIFO order across the requested price-level depth.
Show propertiesHide properties
L3OrderbookEntryentry_idstringrequiredStable market-data entry handle. It is deliberately not the exchange order ID returned to the order owner.
priceFixedPointPricerequiredYES-side price in dollars as an exact fixed-point decimal string with at most six decimal places.
quantityFixedPointQuantityrequiredA quantity in contracts as a fixed-point decimal string.
asksL3OrderbookEntry[]requiredAnonymous ask orders in best-price, FIFO order across the requested price-level depth.
Show propertiesHide properties
L3OrderbookEntryentry_idstringrequiredStable market-data entry handle. It is deliberately not the exchange order ID returned to the order owner.
priceFixedPointPricerequiredYES-side price in dollars as an exact fixed-point decimal string with at most six decimal places.
quantityFixedPointQuantityrequiredA quantity in contracts as a fixed-point decimal string.
orderbook_updateReplace one or more visible price-level quantities for one market.
typestringrequiredIdentifies an incremental order book update.
sidSubscriptionIdrequiredExchange-assigned subscription ID whose lifetime is this WebSocket connection.
seqSequenceNumberrequiredGap-detection sequence local to one subscription. It starts at 1 and increments once per frame on that subscription.
msgOrderbookUpdatePayloadrequiredOne market's complete visible transition between book states.
Show propertiesHide properties
tickerTickerrequiredA human-meaningful natural key naming a single-leg or multi-leg market.
changesOrderbookChange[]requiredAbsolute price-level replacements. Array order has no meaning; a zero quantity removes the level.
Show propertiesHide properties
OrderbookChangesideOrderSiderequiredOrder side.
buysellpriceFixedPointPricerequiredYES-side price in dollars as an exact fixed-point decimal string with at most six decimal places.
quantityFixedPointQuantityrequiredA quantity in contracts as a fixed-point decimal string.
tickerTickerrequiredA human-meaningful natural key naming a single-leg or multi-leg market.
changesL3OrderbookChange[]requiredOrdered absolute entry mutations. Apply them in array order.
Show propertiesHide properties
L3OrderbookChangeactionstringrequiredadd inserts at the back of its price level, update replaces quantity in place, and delete removes the entry.
addupdatedeletesideOrderSiderequiredOrder side.
buysellentry_idstringrequiredStable market-data entry handle. A priority reset retains this ID and is encoded as delete then add.
priceFixedPointPricerequiredYES-side price in dollars as an exact fixed-point decimal string with at most six decimal places.
quantityFixedPointQuantityrequiredA quantity in contracts as a fixed-point decimal string.
permission_deniedThe caller lacks required access.
codestringrequiredStable machine-readable error code.
detailErrorDetailrequiredHuman-readable occurrence detail that clients must not parse.
instanceErrorInstancerequiredRequest identifier for troubleshooting with exchange support.
channel_unavailableThe channel's upstream source cannot serve the operation right now. Retry with backoff; the connection stays usable.
codestringrequiredStable machine-readable error code.
detailErrorDetailrequiredHuman-readable occurrence detail that clients must not parse.
instanceErrorInstancerequiredRequest identifier for troubleshooting with exchange support.
internal_errorAn unexpected failure left connection state safe to continue.
codestringrequiredStable machine-readable error code.
detailErrorDetailrequiredHuman-readable occurrence detail that clients must not parse.
instanceErrorInstancerequiredRequest identifier for troubleshooting with exchange support.
Channel Bindings
wsmethodGETheadersUDX-Access-KeystringrequiredOpaque API key ID.
UDX-Access-TimestampstringrequiredUnix time in milliseconds, within 30 seconds of server time.
UDX-Access-SignaturestringrequiredStandard-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.
Sec-WebSocket-ProtocolstringrequiredNegotiated dated WebSocket API version.
orderbook_snapshot
{
"type": "orderbook_snapshot",
"sid": 7,
"seq": 1,
"msg": {
"ticker": "UDX-EXAMPLE-MARKET-A",
"bids": [
[
"0.45",
"100"
]
],
"asks": [
[
"0.47",
"80"
]
]
}
}orderbook_update
{
"type": "orderbook_update",
"sid": 7,
"seq": 2,
"msg": {
"ticker": "UDX-EXAMPLE-MARKET-A",
"changes": [
{
"side": "buy",
"price": "0.45",
"quantity": "125"
},
{
"side": "sell",
"price": "0.47",
"quantity": "0"
}
]
}
}permission_denied
{
"type": "error",
"sid": 7,
"msg": {
"code": "permission_denied",
"detail": "the market is no longer visible to this member",
"instance": "urn:request-id:4ecbe594-50fa-4b7a-950f-5ed74bb8372d"
}
}channel_unavailable
{
"type": "error",
"sid": 7,
"msg": {
"code": "channel_unavailable",
"detail": "current market data is unavailable for this subscription",
"instance": "urn:request-id:4ecbe594-50fa-4b7a-950f-5ed74bb8372d"
}
}internal_error
{
"type": "error",
"sid": 7,
"msg": {
"code": "internal_error",
"detail": "the subscription could not be continued",
"instance": "urn:request-id:4ecbe594-50fa-4b7a-950f-5ed74bb8372d"
}
}