Skip to main content

Get Order

TL;DR

GET /orders/{order_id} returns the current state of one order: its status, filled quantity, and remaining size. For live updates without polling, subscribe to the Orders Channel instead.

GET /orders/{order_id}

Auth: Authorization: Bearer <token>.

Path parameters

ParameterTypeDescription
order_idstringThe 16-byte order id (hex).

Example

curl -s "$GATEWAY/orders/$ORDER_ID" \
-H "Authorization: Bearer $TOKEN" | jq .

Response

{
"order_id": "aa00000000000000000000000000000001",
"side": "bid",
"order_type": "limit",
"status": "pending",
"amount": 10000000,
"filled_quantity": 0,
"price_limit": 150000000,
"expiry_slot": 309490000,
"arrival_slot": 309482113
}

Field reference

FieldTypeDescription
order_idstringThe order id.
sidestring"bid" or "ask".
order_typestring"limit", "ioc", or "fok".
statusstringpending, matched, expired, or cancelled.
amountintegerThe order's original size, in base units.
filled_quantityintegerHow much has filled so far.
price_limitintegerThe worst acceptable price (quote units per base).
expiry_slotintegerThe slot the order auto-expires at.
arrival_slotintegerThe slot the engine stamped on arrival.

Streaming alternative

Polling GET /orders/{order_id} is fine for a one-off check or to reconcile after a missed event. For a trading client that needs to react to fills, subscribe to the Orders Channel: the engine pushes a lifecycle event (partial fill, full fill, expiry) the moment an order's state changes, without a request per check.

Errors

ConditionStatus
Malformed order_id hex400
Missing or invalid bearer token401
No order with that id is currently tracked404
Terminal orders age out

The book tracks resting and recently-terminal orders. A long-since-filled, expired, or cancelled order may no longer be queryable here; recover fill details from your durable fill history (see Fills Channel) and on-chain settlement status.