List order history
Paginated historical orders for an account from PostgreSQL within a date range (up to 90 days). Always reads from the database; filtering excludes superseded and failed rows. Optional exclude_today avoids overlap with the active-orders v2 endpoint.
Use Case: Fill gaps before today’s session or export fills for reporting without walking the live cache cursor.
Prerequisites
You must passfrom (RFC 3339 with timezone). If you omit to, the service uses the current time truncated to the minute (UTC) and caps the span at 90 days from from.
Pagination and sorting
Use the samecursor / nextCursor contract as List active orders (v2): start with cursor=0, then pass the last nextCursor until it returns 0. Sorting is by order_created_at; set order_by to asc or desc (default desc).
Response envelope
Same contract as List active orders (v2):orders (never null) and nextCursor are always present. Each order uses the v2 domain shape with the same required core fields (clOrdId, accountId, symbol, decimal quantity/price strings, timestamps). History excludes SUPERSEDED status and rows with failed_flag = true server-side.
Demo response
Each order matches the v2 domain shape so it aligns with WebSocket and cache-backed reads.Authorizations
OAuth2 Bearer token: obtain an access token from the token endpoint and send it in the Authorization header.
Path Parameters
Account ID whose historical orders you want to read.
Query Parameters
Start of the history window, inclusive. Enter an RFC 3339 timestamp with timezone, for example 2026-04-01T00:00:00Z.
End of the history window, inclusive. Omit it to use the current time. The total range from from cannot exceed 90 days.
Sort direction by order_created_at. Defaults to desc (newest first). Use asc for chronological exports.
asc, desc Set to true when you want historical orders only and do not want today's activity duplicated with the active-orders endpoint.
Maximum number of historical orders to return in this page. Default is 50; maximum is 500.
1 <= x <= 500Opaque pagination cursor for the database history walk. Send 0 (or omit) for the first page; pass the previous nextCursor until it returns 0.
Response
Page of historical orders
Paginated v2 orders response from GET /v2/accounts/{id}/orders and GET /v2/accounts/{id}/orders/history. Both fields are always present; orders may be an empty array when there are no matches.