API changelog#
Every backend release that changes the public REST or WebSocket API adds an entry here, generated from the OpenAPI and AsyncAPI specs. Changes that need action on your side also get a numbered change notice.
v3.23063 — 2026-10-21#
REST API#
New endpoints
GET /api/v2/strategies/campaigns— List the team's PAPER-farm campaignsGET /api/v2/strategies/campaigns/byId— Get one campaignPOST /api/v2/strategies/campaigns/create— Start a PAPER-farm campaignPOST /api/v2/strategies/campaigns/kill— Hard-kill a campaignPOST /api/v2/strategies/campaigns/pause— Pause a campaignPOST /api/v2/strategies/campaigns/resume— Resume a paused or errored campaignPOST /api/v2/strategies/campaigns/stop— Stop a campaign gracefully
Objects
CreateStrategyCampaignRequest: new object. Used byPOST /api/v2/strategies/campaigns/create.PnlDateRange: new object. Used byGET /api/v2/portfolio/pnl.StrategyCampaign: new object. Used byGET /api/v2/strategies/campaigns,GET /api/v2/strategies/campaigns/byId,POST /api/v2/strategies/campaigns/create,POST /api/v2/strategies/campaigns/kill,POST /api/v2/strategies/campaigns/pause,POST /api/v2/strategies/campaigns/resumeand 1 more.StrategyCampaignActionRequest: new object. Used byPOST /api/v2/strategies/campaigns/kill,POST /api/v2/strategies/campaigns/pause,POST /api/v2/strategies/campaigns/resume,POST /api/v2/strategies/campaigns/stop.StrategyCampaignCycle: new object. Used byGET /api/v2/strategies/campaigns,GET /api/v2/strategies/campaigns/byId,POST /api/v2/strategies/campaigns/create,POST /api/v2/strategies/campaigns/kill,POST /api/v2/strategies/campaigns/pause,POST /api/v2/strategies/campaigns/resumeand 1 more.StrategyCampaignLeg: new object. Used byGET /api/v2/strategies/campaigns,GET /api/v2/strategies/campaigns/byId,POST /api/v2/strategies/campaigns/create,POST /api/v2/strategies/campaigns/kill,POST /api/v2/strategies/campaigns/pause,POST /api/v2/strategies/campaigns/resumeand 1 more.StrategyCampaignList: new object. Used byGET /api/v2/strategies/campaigns.StrategyStopRules: new object. Used byGET /api/v2/strategies/campaigns,GET /api/v2/strategies/campaigns/byId,POST /api/v2/strategies/campaigns/create,POST /api/v2/strategies/campaigns/kill,POST /api/v2/strategies/campaigns/pause,POST /api/v2/strategies/campaigns/resumeand 1 more.ExchangeCode: new valuesPAPERTRADE. Used byGET /api/v2/data/instruments.OrderLegParams: addedtimer_iceberg_delay_max(number),timer_iceberg_delay_min(number). Used byPOST /api/v2/trading/order/createMany/multilegs,POST /api/v2/trading/order/create_multiLegs.OrderParams: addedtimer_iceberg_delay_max(number),timer_iceberg_delay_min(number). Used byGET /api/v2/trading/order/byId,GET /api/v2/trading/order/cancelAll,GET /api/v2/trading/order/find,GET /api/v2/trading/order/open,POST /api/v2/trading/order/create,POST /api/v2/trading/order/createMany.PnlGroup: addedreconstructed_range(PnlDateRange); now required:reconstructed_range. Used byGET /api/v2/portfolio/pnl.PnlPoint: addedreconstructed(boolean); now required:reconstructed. Used byGET /api/v2/portfolio/pnl.PnlSummary: addedreconstructed_range(PnlDateRange); now required:reconstructed_range. Used byGET /api/v2/portfolio/pnl.TradingExchange: new valuesPAPERTRADE. Used byGET /api/v2/trading/balance,GET /api/v2/trading/margin,GET /api/v2/trading/order/byId,GET /api/v2/trading/order/cancelAll,GET /api/v2/trading/order/find,GET /api/v2/trading/order/openand 6 more.
v3.22928 — 2026-10-16#
Covers releases v3.22713 to v3.22928. New Portfolio endpoints report daily PnL, realized PnL/funding/fees by symbol, and deposits, withdrawals and transfers. New order parameters: timer_iceberg_delay and randomize_iceberg_timer (Iceberg and Scale), extend_duration (TWAP, VWAP, IS), and placement_infos.depth_mode for placement in basis points from the midpoint (see Request examples). Get account margin adds the venue's own ratio as raw_margin_ratio / raw_margin_field. Two behavior changes that the specs do not show: since v3.22713, Cancel all open orders needs a key with trade permission and answers 403 to a read-only key, like the other endpoints that create or cancel orders; since v3.22864, a 429 carries a JSON body with reason and retry_after_ms plus a Retry-After header, and the WebSocket connection limit is set per account (see Rate limits).
REST API#
New endpoints
GET /api/v2/portfolio/flows— Returns deposits, withdrawals and internal transfersGET /api/v2/portfolio/pnl— Returns the daily PnL of the team (NAV based)GET /api/v2/portfolio/pnl/ledger— Returns realized PnL, funding and fees by day and symbol
Objects
DepthMode: new object. Used byGET /api/v2/trading/order/byId,GET /api/v2/trading/order/cancelAll,GET /api/v2/trading/order/find,GET /api/v2/trading/order/open,POST /api/v2/trading/order/create,POST /api/v2/trading/order/createManyand 2 more.FlowRecord: new object. Used byGET /api/v2/portfolio/flows.FlowTotals: new object. Used byGET /api/v2/portfolio/flows.LedgerCoverage: new object. Used byGET /api/v2/portfolio/pnl/ledger.LedgerRow: new object. Used byGET /api/v2/portfolio/pnl/ledger.LedgerTotals: new object. Used byGET /api/v2/portfolio/pnl/ledger.PnlGroup: new object. Used byGET /api/v2/portfolio/pnl.PnlGroupKey: new object. Used byGET /api/v2/portfolio/pnl.PnlPoint: new object. Used byGET /api/v2/portfolio/pnl.PnlSummary: new object. Used byGET /api/v2/portfolio/pnl.PortfolioAccountRef: new object. Used byGET /api/v2/portfolio/pnl.PortfolioFlowsResponse: new object. Used byGET /api/v2/portfolio/flows.PortfolioLedgerResponse: new object. Used byGET /api/v2/portfolio/pnl/ledger.PortfolioPnlResponse: new object. Used byGET /api/v2/portfolio/pnl.AccountMarginResponse: addedraw_margin_field(string),raw_margin_ratio(number/double). Used byGET /api/v2/trading/margin.OrderLegParams: addedextend_duration(boolean),randomize_iceberg_timer(boolean),timer_iceberg_delay(number). Used byPOST /api/v2/trading/order/createMany/multilegs,POST /api/v2/trading/order/create_multiLegs.OrderParams: addedextend_duration(boolean),randomize_iceberg_timer(boolean),timer_iceberg_delay(number). Used byGET /api/v2/trading/order/byId,GET /api/v2/trading/order/cancelAll,GET /api/v2/trading/order/find,GET /api/v2/trading/order/open,POST /api/v2/trading/order/create,POST /api/v2/trading/order/createMany.PlacementInfo: addeddepth_mode(DepthMode). Used byGET /api/v2/trading/order/byId,GET /api/v2/trading/order/cancelAll,GET /api/v2/trading/order/find,GET /api/v2/trading/order/open,POST /api/v2/trading/order/create,POST /api/v2/trading/order/createManyand 2 more.
v3.22639 — 2026-10-08#
New pre-trade analysis endpoint: estimated cost, market impact and a suggested duration for an order before you send it. POV orders can be placed through the API: params.pov_ratio (percent of market volume, 0.01 to 33) is required and params.pov_risk is optional; a POV order without a valid pov_ratio is rejected with INVALID_PARAM (see the POV example). Get account margin adds a cross-venue margin meter: remaining_cushion, liq_distance, vol_cover with vol_sigma_window, and margin_estimated.
REST API#
New endpoints
GET /api/v2/data/preTradeAnalysis— Pre-trade analysis of an order
Objects
PovRisk: new object. Used byGET /api/v2/trading/order/byId,GET /api/v2/trading/order/cancelAll,GET /api/v2/trading/order/find,GET /api/v2/trading/order/open,POST /api/v2/trading/order/create,POST /api/v2/trading/order/createMany.PreTradeAdvice: new object. Used byGET /api/v2/data/preTradeAnalysis.PreTradeAnalysis: new object. Used byGET /api/v2/data/preTradeAnalysis.PreTradeCostEstimate: new object. Used byGET /api/v2/data/preTradeAnalysis.PreTradeExecution: new object. Used byGET /api/v2/data/preTradeAnalysis.PreTradeImpact: new object. Used byGET /api/v2/data/preTradeAnalysis.PreTradeImpactModel: new object. Used byGET /api/v2/data/preTradeAnalysis.PreTradeMarket: new object. Used byGET /api/v2/data/preTradeAnalysis.PreTradePov: new object. Used byGET /api/v2/data/preTradeAnalysis.PreTradeThresholds: new object. Used byGET /api/v2/data/preTradeAnalysis.AccountMarginResponse: addedliq_distance(number/double),margin_estimated(boolean),remaining_cushion(number/double),vol_cover(number/double),vol_sigma_window(string). Used byGET /api/v2/trading/margin.OrderParams: addedpov_ratio(number),pov_risk(PovRisk). Used byGET /api/v2/trading/order/byId,GET /api/v2/trading/order/cancelAll,GET /api/v2/trading/order/find,GET /api/v2/trading/order/open,POST /api/v2/trading/order/create,POST /api/v2/trading/order/createMany.
v3.22428 — 2026-09-29#
First entry. Covers everything published since the documentation moved to this site on 2026-08-31: a new account margin endpoint, parent-order fields on order responses, fills on order endpoints, and documented subscribe/unsubscribe operations for every WebSocket topic. The TradeDetails renames and the trade_id type are documentation corrections: the API already returned these fields this way. See CH-003.
REST API#
New endpoints
GET /api/v2/trading/margin— Returns the margin and equity summary of a futures account on an exchange
Query parameters
GET /api/v2/trading/order/find: addedinclude_fees,include_tradesGET /api/v2/trading/order/open: addedinclude_fees,include_trades
Objects
AccountMarginResponse: new object. Used byGET /api/v2/trading/margin.ExchangeCode: new object. Used byGET /api/v2/data/instruments.CreateParentOrderRequest: addedlimit_is_arrival(boolean). Used byPOST /api/v2/trading/order/create,POST /api/v2/trading/order/createMany.Instrument:exchangeis now ExchangeCode (was Exchange_1). Used byGET /api/v2/data/instruments.OrderDetails: addedclip_size_type(ClipSizeType),clip_size_val(number),limit_price(number),params(OrderParams),progress(number),quantity(number),target_value(number). Used byGET /api/v2/trading/order/byId,GET /api/v2/trading/order/cancelAll,GET /api/v2/trading/order/find,GET /api/v2/trading/order/open.OrderParams: addedlimit_bps(string),limit_is_arrival(boolean); removedpost_only. Used byGET /api/v2/trading/order/byId,GET /api/v2/trading/order/cancelAll,GET /api/v2/trading/order/find,GET /api/v2/trading/order/open,POST /api/v2/trading/order/create,POST /api/v2/trading/order/createMany.TradeDetails: addedchild_order_id(integer/int64),parent_order_id(integer/int64); renamedclientOrderId→client_order_id,exchangeOrderId→exchange_order_id,execTime→exec_time,feeCurrency→fee_currency,makerOrTaker→maker_or_taker;direction: new valuesBUY,SELL;trade_idis now string (was integer/int64). Used byGET /api/v2/trading/order/byId,GET /api/v2/trading/order/cancelAll,GET /api/v2/trading/order/find,GET /api/v2/trading/order/open,GET /api/v2/trading/userTrades.TradingExchange: new valuesKRAKEN. Used byGET /api/v2/trading/balance,GET /api/v2/trading/margin,GET /api/v2/trading/order/byId,GET /api/v2/trading/order/cancelAll,GET /api/v2/trading/order/find,GET /api/v2/trading/order/openand 6 more.WouldInfo: addedwould_bps(string). Used byGET /api/v2/trading/order/byId,GET /api/v2/trading/order/cancelAll,GET /api/v2/trading/order/find,GET /api/v2/trading/order/open,POST /api/v2/trading/order/create,POST /api/v2/trading/order/createManyand 2 more.Exchange_1: removed.
WebSocket API#
- New messages:
subscribeChildOrder,subscribeOhlcv,subscribeOpenInterest,subscribePositionRisk,subscribeTicker,unsubscribeChildOrder,unsubscribeOhlcv,unsubscribeOpenInterest,unsubscribePositionRisk,unsubscribeTicker - 15 subscribe/unsubscribe operations now documented