WebSocket Reference
user:orders
User order status updates and fills
The user:orders channel delivers real-time order status updates to the authenticated user. Every state transition -- from submission to fill, cancellation, or failure -- is broadcast on this channel.
Subscribe
{ "event": "subscribe", "data": { "channel": "user:orders" } }Unsubscribe
{ "event": "unsubscribe", "data": { "channel": "user:orders" } }Server Broadcast
{
"channel": "user:orders",
"data": {
"orderId": "d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f9a",
"marketId": "c5a2e7f1-3b4d-4e6a-8f9c-1d2e3f4a5b6c",
"marketSlug": "will-bitcoin-hit-100k-by-june-2026",
"exchange": "polymarket",
"side": "yes",
"type": "market",
"action": "buy",
"status": "FILLED",
"previousStatus": "OPEN",
"price": "0.670000",
"quantity": "100.000000",
"filledQuantity": "100.000000",
"avgFillPrice": "0.672300",
"total": "67.230000",
"fee": "0.672300",
"source": "manual",
"updatedAt": "2026-03-27T14:30:05.000Z"
}
}Payload Schema
| Field | Type | Description |
|---|---|---|
orderId | string | Unique order identifier (UUID) |
marketId | string | Market the order belongs to |
marketSlug | string | URL-safe market slug for navigation |
exchange | string | polymarket or kalshi |
side | string | yes or no |
type | string | market or limit |
action | string | buy or sell |
status | string | Current status: CREATED, SUBMITTING, OPEN, PARTIALLY_FILLED, FILLED, CANCELLING, CANCELLED, REJECTED, FAILED |
previousStatus | string | Status before this transition |
price | string | Order price (Decimal, 6 decimal places) |
quantity | string | Requested quantity |
filledQuantity | string | Quantity filled so far |
avgFillPrice | string? | Average execution price (present when partially or fully filled) |
total | string | Total order value in USD |
fee | string | Trading fee charged |
source | string | Order origin: manual, copy-trade, sniper, counter-trade |
updatedAt | string | ISO 8601 timestamp of the status change |
Notes
- This channel requires authentication. Only the authenticated user's orders are delivered.
- Updates are sent for every state transition in the order lifecycle
- Terminal states are
FILLED,CANCELLED, andFAILED-- no further updates after reaching these - The
sourcefield indicates how the order was created: manually by the user, via copy trading, by a sniper trigger, or by counter-trade automation - The
previousStatusfield helps the client animate transitions (e.g., flash green on fill)