Skip to main content

Overview

The combos channel on the /ws/v1/user endpoint streams live state changes for your own combos: placement, games starting, the cashout window closing, settlement, cashout, and payout.

Authentication

Every message you send to /ws/v1/user must include an auth field, the same as the orders channel. Use the same public API key you use for authenticated HTTP requests.

Subscribe

The combos channel takes no other fields. You receive updates for all of your own combos and nobody else’s.
The server does not send a confirmation for the subscribe message. Your first combo_placed or combo_updated event confirms the subscription is live.
Room name: combos:<userId>

Events received

combo_placed — Sent once when you place a combo. combo_updated — Sent on every later state change of a combo, including:
  • A leg’s game starting (uiStatus becomes ACTIVE).
  • The cashout window closing (cashoutAvailable becomes false).
  • Settlement (status becomes WON, LOST, or VOIDED).
  • Cashout (status becomes CASHED_OUT).
  • The payout landing in your wallet (payoutStatus becomes PAID).
Each event carries the full current state of the combo. Replace your local copy with it instead of applying it as a diff. Legs are not included — call Get combo when you need the selections.

Combo fields

updatedAt is always UTC with six fractional digits, so comparing two values as strings orders them correctly. The outer timestamp field is Unix seconds.
Several updates can arrive close together during one settlement pass — for example, a status change followed by payoutStatus: PAID. Events are not guaranteed to arrive in order. Keep the latest event per comboId by updatedAt, and skip any event older than the one you hold.

Unsubscribe

The server confirms with an unsubscribed message for the combos:<userId> room.

Full example