Create Orders
Place one order.
/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.
create_orderPlace one order.
idCommandIdrequiredClient-assigned command correlation identifier, unique among commands in flight on this connection.
cmdstringrequiredSelects the create order command.
paramsCreateOrderCommandParamsrequiredThe fields needed to place an order.
Show propertiesHide properties
tickerTickerrequiredA human-meaningful natural key naming a single-leg or multi-leg market.
client_order_idClientIdrequiredA client-supplied correlation identifier.
sideOrderSiderequiredOrder side.
buysellquantityFixedPointQuantityrequiredA quantity in contracts as a fixed-point decimal string.
priceFixedPointPricerequiredYES-side price in dollars as an exact fixed-point decimal string with at most six decimal places.
time_in_forceOrderEntryTimeInForcerequiredHow long the order stays active.
gtciocfokdaygttexpires_atstring<date-time>The instant a good-till-time order expires. Required when time_in_force is gtt and not accepted with any other time in force.
post_onlybooleanIf true, the order only ever rests (adds liquidity); an order that would cross the book on placement is rejected. Incompatible with ioc/fok.
account_idstringThe account the order is placed under. Required for an unrestricted API key; for a key bound to a single account it must match that account when provided.
self_trade_prevention_typeSelfTradePreventionTypeWhich order gives way when an incoming order would match one of the caller's own resting orders.
placedrestingidempotency_keyIdempotencyKeyOptional client-assigned key, reserved for future resend deduplication. UDX carries it then discards it; it is not deduplicated on yet, so a retry that reuses the key can repeat the write. Do not rely on it for retry safety.
order_create_submittedConfirm the exchange accepted a create_order submission.
idCommandIdrequiredClient-assigned command correlation identifier, unique among commands in flight on this connection.
typestringrequiredIdentifies a successful create_order response.
msgobjectrequiredShow propertiesHide properties
order_idEntityIdrequiredAn exchange-assigned identifier. Treat it as an opaque, stable key with no internal structure.
client_order_idClientIdrequiredA client-supplied correlation identifier.
rate_limitobjectQuota state after the charged command was admitted.
Show propertiesHide properties
bucketstringrequiredShared member bucket consulted for this command.
readwritecancelcapacityinteger<int64>requiredMaximum tokens held by the bucket.
refill_tokens_per_minuteinteger<int64>requiredTokens restored per minute.
remaininginteger<int64>requiredTokens remaining after th decision.
full_after_msinteger<int64>requiredMilliseconds until the bucket is full if no more work is admitted.
invalid_messageThe JSON or common command envelope is invalid.
codestringrequiredStable machine-readable error code.
detailErrorDetailrequiredHuman-readable occurrence detail that clients must not parse.
instanceErrorInstancerequiredRequest identifier for troubleshooting with exchange support.
fieldstringJSON path to the invalid field when one can be identified.
invalid_paramsCommand params fail schema or semantic validation.
codestringrequiredStable machine-readable error code.
detailErrorDetailrequiredHuman-readable occurrence detail that clients must not parse.
instanceErrorInstancerequiredRequest identifier for troubleshooting with exchange support.
fieldstringJSON path to the invalid param when one can be identified.
command_id_in_useAnother command with the supplied identifier is still in flight.
codestringrequiredStable machine-readable error code.
detailErrorDetailrequiredHuman-readable occurrence detail that clients must not parse.
instanceErrorInstancerequiredRequest identifier for troubleshooting with exchange support.
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.
capacity_exceededA standing-resource limit prevents command admission.
codestringrequiredStable machine-readable error code.
detailErrorDetailrequiredHuman-readable occurrence detail that clients must not parse.
instanceErrorInstancerequiredRequest identifier for troubleshooting with exchange support.
scopestringrequiredBoundary at which the standing-resource limit applies.
connectionmemberprocessresourcestringrequiredRetained or concurrent resource that reached its limit.
in_flight_commandsactive_subscriptionsmarket_data_streamslimitinteger<int64>requiredEnforced maximum for the identified scope and resource.
rate_limit_exceededA command rate limit was exceeded.
codestringrequiredStable machine-readable error code.
detailErrorDetailrequiredHuman-readable occurrence detail that clients must not parse.
instanceErrorInstancerequiredRequest identifier for troubleshooting with exchange support.
retry_after_msinteger<int64>requiredMinimum delay in milliseconds before another attempt.
admission_unavailableShared admission policy or state is temporarily unavailable.
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.
create_order
{
"id": 11,
"cmd": "create_order",
"params": {
"ticker": "UDX-EXAMPLE-MARKET",
"client_order_id": "my-order-1",
"side": "buy",
"quantity": "100",
"price": "0.55",
"time_in_force": "gtc"
}
}order_create_submitted
{
"id": 11,
"type": "order_create_submitted",
"msg": {
"order_id": "ORDER-EXAMPLE-1",
"client_order_id": "my-order-1"
},
"rate_limit": {
"bucket": "write",
"capacity": 30,
"refill_tokens_per_minute": 900,
"remaining": 28,
"full_after_ms": 130
}
}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"
}
}permission_denied
{
"id": 4,
"type": "error",
"msg": {
"code": "permission_denied",
"detail": "the trade scope is required to create a request for quote",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}
}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
}
}rate_limit_exceeded
{
"id": 4,
"type": "error",
"msg": {
"code": "rate_limit_exceeded",
"detail": "member read rate limit is exhausted",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef",
"retry_after_ms": 1200
},
"rate_limit": {
"bucket": "read",
"capacity": 30,
"refill_tokens_per_minute": 900,
"remaining": 0,
"full_after_ms": 2000
}
}admission_unavailable
{
"id": 4,
"type": "error",
"msg": {
"code": "admission_unavailable",
"detail": "shared WebSocket admission is temporarily unavailable",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}
}internal_error
{
"id": 4,
"type": "error",
"msg": {
"code": "internal_error",
"detail": "WebSocket command failed",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}
}