Orders
This page covers low latency order-book orders:
- create, read, cancel, and replace
- subscribe to working orders
- search and download history within the retention window
For older order-book history and additional reporting (get order by id, search orders/trades/executions, streams) use the standard API.
For YLDS (stablecoin) orders, use Orders; those are not in the low-latency API.
Each order request here must include the account resource name (firms/{firmId}/accounts/{accountId}) from Account where the operation requires it.
The symbol (e.g. ETH-USD) is the market id — list markets and symbols via the Public API — Markets (GET /v1/markets); for order book and pricing, see Markets.
Rules:
- Location — Only markets in your market location are available for order entry by default (filter by
locationin the Public API; e.g. US, CAYMAN). Orders for other locations are rejected. - Step-up — Some markets (e.g. stock-based assets on Figure Securities ATS) require additional onboarding (e.g. Figure Securities onboarding on the web) before the user can trade them; until then, order entry for those symbols may be rejected.
- Self-trading — You cannot match against your own orders on the same instrument/market.
Insert order
POST /api/v1/insert_order
Send an order with type, side, quantity (or cash quantity), symbol (market id from the Public API markets list), price (for limit/stop-limit), time in force, and account (the firms/{firmId}/accounts/{accountId} name). The API returns the exchange-assigned order ID. Optional: client order ID (clordId), min quantity, stop price for stop/stop-limit, and other fields in the spec.
Example request body (limit order). Enum values follow the OpenAPI document (protobuf JSON names):
{
"account": "firms/{firmId}/accounts/{accountId}",
"type": "ORDER_TYPE_LIMIT",
"side": "SIDE_BUY",
"symbol": "ETH-USD",
"orderQty": "1000000",
"price": "3500000000",
"timeInForce": "TIME_IN_FORCE_DAY"
}
Quantities and prices use the spec’s fixed-point format; see the Trader API spec (low-latency) for enums and optional fields.
Qty / price / notional scaling — On the low-latency trading API, values are not in display (HFT) form: quantity is scaled by the market's fractional quantity scale, price by the market's tick size, and notional by both. The exact conventions per market are defined in the Trader API spec (low-latency) and instrument metadata.
Preview order
POST /api/v1/preview_order
Builds order attributes without inserting the order. Use to validate or inspect how an order would be represented. Request body matches insert order fields where applicable; see spec for PreviewOrder request/response.
Insert order list
POST /api/v1/insert_order_list — Send multiple orders in one request; returns their exchange-assigned IDs. Request: requests (array of insert-order bodies).
Key response: responses (list of per-order results, each with order_id).
Create order subscription
POST /api/v1/create_order_subscription — stream (application/x-ndjson)
Subscribe to working orders and updates; the stream returns your live orders and changes (fills, cancels, etc.). Use this to keep local state in sync without polling. Alternatively, use Get open orders or Search orders with filters. Optional snapshotOnly returns a snapshot without keeping the stream open.
Example request body (optional filters):
{
"accounts": ["firms/{firmId}/accounts/{accountId}"],
"symbols": ["ETH-USD"]
}
Get open orders
POST /api/v1/get_open_orders
Returns a snapshot of currently working orders. Optional filters: accounts, symbols.
Cancel order
POST /api/v1/cancel_order
Request cancellation of a working order by exchange order_id or clord_id, with required symbol.
Example request body (exchange-assigned order_id and symbol):
{
"order_id": "<exchange-assigned-order-id>",
"symbol": "ETH-USD"
}
Alternatively provide clordId and symbol if you track the order by client ID.
Cancel order list
POST /api/v1/cancel_order_list
Cancel multiple working orders in one request.
Cancel/replace order
POST /api/v1/cancel_replace_order and POST /api/v1/cancel_replace_order_list — Modify one or multiple working orders (cancel-replace).
Search and export history
Search and download order and trade history by account and time range. Use the account resource name (firms/{firmId}/accounts/{accountId}) from Account in filters where the operation supports accounts.
- Order — Your submitted instruction to buy or sell (working, partially filled, filled, or cancelled). Use Search orders / Download orders to list or export orders.
- Trade — The reported trade; use Search trades / Download trades and Get trade stats for trade history and aggregates (reporting, regulatory).
- Execution — A single fill event (one order can have many executions). Use Search executions / Download executions for fill-level detail.
Search orders
POST /api/v1/search_orders
Search exchange orders by filter (e.g. time range, account, symbol, pagination). Returns a list of orders.
Example request body:
{
"accounts": ["firms/{firmId}/accounts/{accountId}"],
"startTime": "2026-03-01T00:00:00Z",
"endTime": "2026-03-11T23:59:59Z"
}
Key response: order (list of orders); optional nextPageToken for pagination; optional lastExecutions when withLastExecution is true in the request. See the Trader API spec (low-latency) for full filters (pageSize, pageToken, orderId, clordId, orderStateFilter, etc.).
Search trades
POST /api/v1/search_trades
Search trades by filter.
Key response: trade (list of trades); optional nextPageToken.
Example request body:
{
"accounts": ["firms/{firmId}/accounts/{accountId}"],
"startTime": "2026-03-01T00:00:00Z",
"endTime": "2026-03-11T23:59:59Z"
}
Search executions
POST /api/v1/search_executions
Search executions (fills) by filter.
Key response: execution list and pagination fields per spec.
Get trade stats
POST /api/v1/get_trade_stats
Returns aggregated trade data for a time window (e.g. by symbol).
Key response: stats, optional bars, barStartTime, barEndTime per spec.
Example request body:
{
"symbol": "ETH-USD",
"startTime": "2026-03-01T00:00:00Z",
"endTime": "2026-03-11T23:59:59Z",
"bars": 24
}
Download orders
POST /api/v1/download_orders — stream (application/x-ndjson)
Search orders by criteria; returns a CSV payload streamed as NDJSON result messages (see spec for chunk fields such as filechunk). Same core filter pattern as search (e.g. accounts, startTime, endTime).
Example request body:
{
"accounts": ["firms/{firmId}/accounts/{accountId}"],
"startTime": "2026-03-01T00:00:00Z",
"endTime": "2026-03-11T23:59:59Z"
}
Download trades
POST /api/v1/download_trades — stream (application/x-ndjson)
Search trades by criteria; returns a CSV stream with the same transport pattern as download orders.
Example request body:
{
"accounts": ["firms/{firmId}/accounts/{accountId}"],
"startTime": "2026-03-01T00:00:00Z",
"endTime": "2026-03-11T23:59:59Z"
}
Download executions
POST /api/v1/download_executions — stream (application/x-ndjson)
Search executions by criteria; returns a CSV stream per spec.
Full request/response shapes: Trader API spec (low-latency).