Execution algo records
The desk-scoped API supports bounded parent instructions, child-order history and lifecycle controls. Each parent carries its target, strategy, limits and account identity. Child execution uses the configured execution path and remains subject to account, instrument, risk and lifecycle controls.
Operational scope
POST /api/v1/algos validates the request, creates a parent record and returns its identity with the initial lifecycle state.
Sending { "action": "resume" } to PATCH /api/v1/algos/{id} resumes a paused parent after its account, instrument and execution limits are checked.
Price ladders
The desk-scoped Price Ladder controls a bounded set of price levels used by
ladder-driven strategies. POST /api/v1/price-brackets creates the aggregate
and all levels atomically; GET /api/v1/price-brackets and
GET /api/v1/price-brackets/{id} read the selected desk's ladders; and
PATCH /api/v1/price-brackets/{id} accepts activate or deactivate.
Creation requires an Idempotency-Key header (1–128 bytes, no control
characters), an Active desk, an instrument, BUY or SELL, one through 64
unique tick-aligned levels, positive token sizes compatible with the instrument
lot, a positive max_open_tokens, and an optional positive budget_usd. A
one-sided ladder omits spread_bps; a two-sided ladder requires it from 1
through 10,000. Reusing the same account-scoped key and unchanged intent
returns the existing aggregate; changing the intent returns an idempotency
conflict.
The ladder response reports open and filled token quantities, USD spend and each level's filled quantity, active state and resting child order. These counters are reconciled from venue fills and are read-only to the caller. Deactivation is risk-reducing, but waits for live child orders to be gone; activation rechecks instrument and desk authority.
Existing records
GET /api/v1/algos pages the desk's existing parent records. It accepts optional state and instrument_symbol filters.
GET /api/v1/algos/{id}/children pages the child orders already associated with one parent, oldest first. The records expose requested target, released progress, filled progress, state, price limit, strategy, and strategy parameters for review.
Both reads require the browser session and x-mm-account-id. A parent outside that desk's account scope returns 404.
Record controls
PATCH /api/v1/algos/{id} accepts one action:
<span><span style="color: var(--shiki-color-text)">{ </span><span style="color: var(--shiki-token-keyword)">"action"</span><span style="color: var(--shiki-token-punctuation)">:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string-expression)">"pause"</span><span style="color: var(--shiki-color-text)"> }</span></span>
<span></span>
pause applies to PENDING or RUNNING records. cancel applies to PENDING, RUNNING, or PAUSED records. Other state/action combinations return 400 with the documented problem type.
These controls change only the lifecycle state. The strategy, target, price limit, and parameters remain the identity of the existing parent.