Skip to main content
Spot reads are available on Mainnet and Testnet. Margin account fields, conditional-order fields, and Perpetual references on this page are Testnet-Only.
These endpoints read order state. Submitting orders is covered in Trading Orders.

List Orders

Always returns an array. An address with no matching orders returns [], never a 404.

Get One Order

An unknown id returns 404 NOT_FOUND.

Order Fields

status maps from the chain status like this: Conditional parent states map separately: pending/triggered to open, activated to closed, and cancelled/expired/closed to canceled. For a regular executable order, closed means filled. An activated conditional parent instead reports closed without filling; its child carries executions. Read info.chain_status and info.conditional.state to distinguish these cases. Cancelled and expired orders both report canceled. reduceOnly is always false in Spot responses. Conditional parents populate stopPrice and triggerPrice; their type is stop_limit or stop_market, while info.chain_type is conditional. A market-buy parent can report amount: "0" because its budget is quote sized. This does not mean it has no executable budget.

Strategies and derived accounts

Conditional parents do not fill; follow their activated child. state can be pending, triggered, activated, cancelled, expired or closed. A TWAP parent’s fills aggregate slices. For a buy, amount/filled reflect executed base quantity and remaining is zero; read total_deposit with deposit_asset: "quote" for the strategy budget. info.remaining_deposit on a parent is a computed unspent budget, not proof that the whole strategy is escrowed. See Orderbook. Prices are quote per base, regular quantities and strategy deposits are human units, and info.remaining_deposit is raw base units of the payment asset. Conditional timestamps and TWAP schedule times are milliseconds. Monetary nullable strategy fields remain null when absent. The list uses header cursor pagination, including conditional and TWAP parents. Query derived Margin accounts by their returned address. Use the separate Perp order reference for Perp owners and account routing.

Client Order IDs

A cloid must decode to exactly 8 bytes, that is 16 hex characters. Anything else returns 400 BAD_REQUEST. An absent or empty value applies no filter.
cloid uniqueness is enforced only among currently resting orders. A closed order that used the same cloid still matches the filter, so one cloid can return more than one order.
Spot info.links uses snake_case. Perp links describes the same relationships with camelCase keys. Preserve the product’s field names when parsing: Use these relationships to follow the executed child or replacement instead of assuming a parent or old order ID continues filling. They report indexed linkage, not a new order-submission route.