v14.21.0 — 2026-06-09
- The market data WebSocket (
/md/ws)subscribemessage now supports streaming only what you need. A newlevel: "TRADES"subscribes to trade prints only (t = "t"), with no ticker or order book events. For book-level subscriptions (LEVEL_1/LEVEL_2/LEVEL_3), the optionaltradesandtickerfields (both defaulttrue) independently suppress trade (t = "t") or ticker (t = "s") delivery — set both tofalsefor a book-only feed.
v14.18.0 — 2026-06-06
- Cancel-order and replace-order requests now accept an optional
account_id(aid) selecting which account’s client-order-id namespace the order reference resolves against; omit it to use your default account.
v14.17.0 — 2026-06-05
- The order-entry websocket (
/ws/orders) now accepts an optionalaccount_idquery parameter to scope the stream to a single account; omitting it defaults to your own account. Anaccount_idyou are not authorized to read returns403, and a malformed value returns400.
v14.13.0 — 2026-06-03
GET /fills,GET /liquidations,GET /transactions, andGET /funding-transactionsnow require an explicit time range no wider than 7 days (bothstart_timestamp_nsandend_timestamp_ns); requests that omit the range or exceed 7 days return 400.
v14.12.0 — 2026-06-03
GET /orders(order history) now requires an explicit time range no wider than 7 days (bothstart_timestamp_nsandend_timestamp_ns); requests that omit the range or exceed 7 days return 400.
v14.11.0 — 2026-06-02
- New
GET /estimated-funding-rateendpoint returns the live intraday estimated funding rate for a perpetual symbol. - The live estimated funding rate is also available over the WebSocket API via a
GetEstimatedFundingRaterequest (t="ef") on/ws/orders. - Order gateway WebSocket sessions accept an optional
client_heartbeat_timeout(seconds, up to 300). Send a heartbeat ({"t":"h"}) more often than this; if none arrives in the window, the exchange closes the session and cancels your orders (when cancel-on-disconnect is on), so you recover from a network drop in seconds rather than waiting on the TCP timeout. Only heartbeats reset the deadline.
v14.10.0 — 2026-06-01
- Orders rejected for breaching the exchange price-limit bands now return a clear “order price is above/below the exchange’s maximum/minimum price limit” message.
v14.8.0 — 2026-05-27
- The
account_idfield is now included on everyFillDetailsevent and everyBalanceentry returned by the balances endpoints. - Cancel-reject events on the order gateway websocket now include the full order details (symbol, side, quantity, etc.) under the
ofield, matching the shape of other order events.
v14.5.0 — 2026-05-25
- The order-gateway WebSocket login response now includes a
codfield indicating whether cancel-on-disconnect is active for the session.
v14.4.0 — 2026-05-20
- Available balances are now returned as an aggregate USD value.
- Latencies between matching engine timestamps and time of sending to the client are significantly improved.
- Fixed an order-gateway race that could send an
OrderReplacedOrAmendedWebSocket event whosereplacement_orderreportedFILLEDwithfilled_quantity = 0when the new order matched immediately on cancel-replace. The replacement’s filled/remaining quantities now match its order state. GET /funding-transactionsnow supports cursor-based pagination viastart_timestamp_ns,end_timestamp_ns,sort_ts,limit, andcursorquery parameters; responses includenext_cursor,limit, andtotal_count. The endpoint also accepts an optionalsymbolfilter.
v14.1.0 — 2026-05-12
- Added request type
t="s"to/ws/ordersto get order status byoidorcid; matchesGET /order-statusREST equivalent. - Cancel requests sent before the exchange has acknowledged the original order now return error code
409 order not yet acknowledged by exchange; retry shortlyinstead of500 internal server error.
v14.0.1 — 2026-05-07
GET /order-statusnow accepts only query parametersoidandcid, matchingPOST /cancel-orderandPOST /replace-order. The previous parameter namesorder_id/client_order_idare no longer accepted and will result in HTTP400response code.
v13.53.0 — 2026-05-05
- You can now cancel, replace, and query order status using your client order ID.
- Order placement and replacement now return actionable HTTP status codes (400/404/429/503/504) with human-readable error messages when the exchange rejects an order, instead of an opaque 500.
- Order rejections from the exchange now surface the actual reject reason instead of a generic 500 error.
- Cancel/replace requests with an invalid order id now return 400 with a clear message instead of 500.
- Fixed rare case where rejected orders could remain in Pending state until the next gateway restart.
v13.48.0 — 2026-04-23
- Order requests now accept a self-trade prevention behavior flag: cancel-resting, cancel-incoming, or cancel-both; defaults to cancel-incoming, which matches the previous behavior.
- Order status responses now include reject_reason and reject_message if applicable.
v13.47.0 — 2026-04-21
- Throttled marketdata WebSocket ticker events
{ "t": "s", ... }to at most 1/s.