Changelog
All notable changes to the DLTM Derivatives API.
This changelog follows Keep a Changelog conventions.
2026-05-25 — v1.7.0
Added
cash_amounton order entry (POST /v1/customers/{customer_code}/orders) — place market and limit orders by notional value in the quote currency instead of contract size. Mutually exclusive withamount(exactly one is required for market and limit orders), must be a positive number, and requirestime_in_force: IOC(the default when omitted;FOKandGTCare rejected). Not supported for stop/take-profit order types. The notional is resolved into a contract quantity and filled immediately.cash_amountandfilled_quoteon order responses — both the REST order schema and the WebSocketorderschannel now echo the requested notional (cash_amount, present only for cash orders) and report the cumulative filled notional (filled_quote).PUT /v1/customers/{code}/fee-profile/{symbol}— set a customer's per-instrument fee schedule. Acceptsmaker_feeandtaker_feein the request body and returns the updatedFeeProfileItemfor the symbol.
Changed
amountis no longer required on order entry — supplycash_amountinstead for market/limit orders. It remains required for all other order types.FeeProfileItem.maker_feeandtaker_fee(returned byGET /v1/customers/{code}/fee-profile) are documented as basis points (e.g."2"= 0.02%). The previous "decimal fraction" wording and the"0.0002"/"0.0005"examples were inaccurate; the underlying values have always been bps. Behaviour is unchanged.
2026-05-11 — v1.6.0
Added
- WebSocket
orderbook-stream:{symbol}— multi-level orderbook snapshot followed by atomic update batches. Each update message carries one or morechanges({action: new|change|delete, type: bid|ask, price, amount}) that should be applied together.amountis"0"ondelete. Public channel, no authentication required. - WebSocket
market-trades:{symbol}— real-time anonymous trade tape. One envelope per trade. Field set mirrors the RESTPublicTradeschema returned byGET /v1/market-trades, so the same parser can be used for both. Public channel, no authentication required. - WebSocket error codes:
ORDERBOOK_STREAM_UPSTREAM_ERROR,ORDERBOOK_STREAM_UPSTREAM_REJECT,MARKET_TRADES_UPSTREAM_ERROR,MARKET_TRADES_UPSTREAM_REJECT. Channel-scoped — only the affected subscription is torn down, not the whole client connection. Clients should re-issuesubscribeto recover.
Changed
- WebSocket documentation reorganised into three sections in the sidebar: Connection, Public channels, and Private channels.
2026-05-05 — v1.5.0
Breaking changes
- Removed
GET /v1/instruments/{symbol}. UseGET /v1/instruments?symbol={symbol}instead — it returns the same instrument inside a single-record list (or an empty list / 400 for unknown symbols, mirroring the/v1/tickersfilter semantics). - Removed
GET /v1/instruments/{symbol}/leverage_brackets. The single-tier brackets it returned were derivable from theinit_margin_req,maint_margin_req, andmax_leveragefields already present on each instrument record fromGET /v1/instruments. Instrument.statusenum changed: removedsettled; addedpost_only(limit orders only, matching disabled) andtrade_halt(new orders rejected). The same enum applies to thestatusquery filter on/v1/instruments.
Added
symbolquery parameter on/v1/instruments. Supports the same pipe-separated literal and*wildcard syntax as/v1/tickers.
2026-05-04 — v1.4.0
Breaking changes
- Removed
GET /v1/customers/{code}/margin-requirements/{symbol}— subsumed by the extended margin-profile response (see Added below).
Added
- Optional
leveragefield onPOST /v1/customers/{code}/orders— positive integer (^[1-9][0-9]*$) in[1, 13]. The broker translates it to a per-instrument initial-margin override on the subaccount before placing the order. The override persists across subsequent orders on the same instrument until a different leverage is supplied. instrument_marginsarray on theMarginProfileresponse (GET /v1/customers/{code}/margin-profile) — one entry per instrument with a non-default initial margin, each carryingsymbol,leverage, andinitial_margin.
Changed
- Margin / IM string fields (
MarginProfile.initial_margin/maintenance_margin,MarginProfile.instrument_margins[].initial_margin,Instrument.init_margin_req/maint_margin_req,LeverageBracket.init_margin_req/maint_margin_req) are now formatted with 2-decimal precision (e.g."0.12") instead of 6-decimal ("0.120000"). Numerically equivalent — clients parsing as decimal are unaffected.
2026-04-29 — v1.3.0
Added
- Wildcard support in
symbol,underlying, andquote_currencyfilters on/v1/tickersand/v1/instruments— values may use*(matches any sequence of characters, including empty). Matching is case-insensitive and anchored to the full string. Existing exact and pipe-separated values continue to work.
2026-04-09 — v1.2.0
Breaking changes
- Removed
stop_pricefield from all order schemas — replaced bytrigger_price,stop_loss_price,take_profit_price, andtrigger_price_type - Removed
stop_pricefrom amend order request stop_lossandtake_profitorder types now usetrigger_priceinstead of the removedstop_price
Added
- New order types:
stop_loss_limit,take_profit_limit,take_profit_stop_loss trigger_pricefield — trigger price for stop_loss, stop_loss_limit, take_profit, take_profit_limit ordersstop_loss_pricefield — stop-loss price for take_profit_stop_loss combo orderstake_profit_pricefield — take-profit price for take_profit_stop_loss combo orderstrigger_price_typefield —trade_price(for stop/TP types) ormark_price(for combo type)- Mechanical types
stop_marketandstop_limitin order responses and WebSocket updates - Advanced orders now included in list open orders response
- Server-side validation of required fields and allowed trigger price types per order type
Fixed
- WebSocket
ordersandtradestopics no longer require a symbol suffix — aligned implementation with documented per-account behavior
2026-04-03 — v1.1.0
Breaking changes
- All enum values are now snake_case (e.g.
MarginCall→margin_call,StopLoss→stop_loss,Buy→buy) - Renamed
/customers/{code}/leverageto/customers/{code}/margin-profile - Removed
/customers/{code}/risk-limitsendpoint - Removed
realised_pnlfrom account summary response - Removed
expiryfield andFuture/Optionfrom instrument types - Removed
typequery parameter from/instruments - Transaction types changed: removed
funding_payment,realised_pnl,adjustment; addedsettlement,funding,auto_deleveraging
Added
typefield on customer trades (trade,liquidation,auto_deleveraging)initial_marginandmaintenance_marginfields on margin profilesettlementandfundingtransaction types from collateral adjustmentsbeforepagination parameter for historical trades
Fixed
- Historical trades now default to
sort=ascand validate requiredfrom/toparameters - Currency fields now correctly show
USDCinstead ofUSD - WebSocket
tradestopic is now per-account (no symbol suffix required)
2026-03-31 — v1.0.0
Added
- Initial public release