Overview
Once your orders are on the book, you need to track fills, react to market changes, and cancel orders that are no longer valid. This page covers the three tools for that: real-time order monitoring, order cancellation, and the heartbeat safety mechanism.Monitor your orders
Subscribe to theactive_orders:{maker} WebSocket channel to receive real-time updates when your orders are posted, partially filled, fully filled, or cancelled. Updates are batched and delayed by at most 100ms.
GET /orders with the maker parameter — useful for reconciling state on startup before subscribing.
Full payload reference: Active Order Updates →
Cancel orders
All cancellation endpoints require an EIP-712 wallet signature. To update odds on a market, cancel the old order and post a new one — there is no in-place edit. Three cancellation scopes are available:| Endpoint | When to use |
|---|---|
POST /orders/cancel/v2 | Cancel specific orders by hash |
POST /orders/cancel/event | Cancel all orders tied to a specific event |
POST /orders/cancel/all | Cancel everything — useful on shutdown or repricing |
salt and timestamp, sign them with your wallet, and include the signature in the request. The domain name varies by endpoint — "CancelOrderV2SportX", "CancelOrderEventsSportX", or "CancelAllOrdersSportX". See the API reference pages above for full signing code.
Heartbeat
The heartbeat is a safety mechanism that automatically cancels all your open orders if your service loses connectivity. This prevents stale orders from sitting on the book when you can’t manage them. Register a heartbeat with an interval (in seconds). If SX Bet doesn’t receive a heartbeat ping within that window, all your orders are cancelled.POST /user/heartbeat/cancel.
Full reference: Heartbeat →
Exposure management
You can post as many orders as you wish across the exchange as long as your total exposure per market remains below your wallet balance. Total exposure can be calculated as the sum oftotalBetSize - fillAmount across all your open orders on that market hash. Each market hash is checked independently, so you can post up to your full balance on as many market hashes as you like simultaneously.
Example: posting across multiple markets
Your wallet balance is 100 USDC. You post orders across three different markets:
| Market | Side | totalBetSize | fillAmount | Exposure |
|---|---|---|---|---|
| Spread (hash A) | Outcome 1 | 50 USDC | 0 | 50 USDC |
| Spread (hash A) | Outcome 2 | 50 USDC | 0 | 50 USDC |
| Moneyline (hash B) | Outcome 1 | 100 USDC | 0 | 100 USDC |
| Totals (hash C) | Outcome 1 | 50 USDC | 0 | 50 USDC |
| Totals (hash C) | Outcome 2 | 50 USDC | 0 | 50 USDC |
- Track your open exposure in real-time using the
active_orders:{maker}WebSocket channel - Set
apiExpiryon orders to automatically cancel orders after a set amount of time - Use the heartbeat to auto-cancel if your service goes down
- Orders posted pre-match will be automatically cancelled when the match begins
Related
Market Making →
Overview of the maker role, spreads, and exposure management.
Posting Orders →
Constructing, signing, and submitting orders.
Real-time Data →
All WebSocket channels including orderbook and market signals.
Heartbeat API →
Full heartbeat endpoint reference.
Latency & Server Locations →
Expected response times and co-location recommendations.
