Skip to main content
GET
Get user orders

Authorizations

X-Monaco-Signature
string
header
required

Ed25519 session-key request signing. Every authenticated request carries three headers: X-Monaco-PublicKey (64-char lowercase-hex session public key), X-Monaco-Timestamp (Unix milliseconds, within 30s of server time), and X-Monaco-Signature (hex ed25519 signature). The signature is over METHOD\npath?query\ntimestamp_ms\nSHA256_hex(body), where the body hash is the SHA-256 of the empty byte string when there is no body. Obtain the session keypair from POST /api/v1/auth/challenge followed by POST /api/v1/auth/verify.

Query Parameters

page
integer<uint32>

Deprecated: page number for legacy offset pagination (1-indexed). Use pageToken cursor pagination instead.

Required range: 1 <= x <= 10000
pageSize
integer<uint32>
default:20

Items per page (max 100 in page-number mode; up to 1000 when pageToken is present)

Required range: 1 <= x <= 1000
status
string

Order status (single value or comma-separated list)

Minimum string length: 1
tradingPairId
string<uuid>

Trading pair identifier (UUID)

Minimum string length: 1
tradingMode
enum<string>

Trading mode

Available options:
SPOT,
MARGIN
Minimum string length: 1
marginAccountId
string
orderBy
enum<string>
default:DESC

Sort direction for createdAt

Available options:
ASC,
DESC
Minimum string length: 1
pageToken
string

Pagination cursor with three distinct states:

  • Omitted: legacy page-number pagination via page, limited to recent history once the archive window is enabled.
  • Empty string (""): start a cursor walk with no prior position, from the newest row (or the oldest, when orderBy is ASC).
  • Non-empty: an opaque cursor from a previous response's next_page_token; results resume immediately after that position.

In either cursor-walk state (empty or non-empty), page is ignored (it comes back as 0), but total and total_pages ARE populated — bounded by the server count ceiling, see total_capped. Results cover full order history — hot and archived rows merged — unlike page-number mode, which only ever sees recent history. Clients that need complete order history must use the cursor form (start with an empty string, then follow next_page_token) rather than page. Filters and orderBy must match the request that produced the token.

Response

OK

orders
object[] | null
total
integer<uint32> | null

Total number of orders matching the filter, populated in both pagination modes; bounded by the server ceiling — a lower bound when totalCapped is true.

Example:

150

page
integer<uint32> | null
deprecated

Deprecated: current page number (legacy offset mode only; 0 in cursor mode)

Example:

1

pageSize
integer<uint32> | null

Items per page

Example:

20

totalPages
integer<uint32> | null

Total number of pages at this pageSize, populated in both pagination modes; bounded by the server ceiling — a lower bound when totalCapped is true.

Example:

8

nextPageToken
string | null

Cursor for the next page. Empty on every page-number (legacy) response — page-number mode never mints a token, full page or not, since resuming a client from a legacy-minted position could silently strand archived history newer than wherever that page happened to end. To walk full history, start a cursor-mode request with page_token present but empty (""); from then on the token is present whenever that page returned any rows (AIP-158 "maybe more" semantics), not only when the page is exactly full. Empty only when a cursor-mode page returned zero rows, which is the sole proof the walk is exhausted; a non-empty token does not guarantee further results, so keep following it until a response returns zero rows and an empty token. The two modes never bridge: a page-number response's empty token is not "done," it simply means page-number mode does not participate in cursor continuation.

totalCapped
boolean | null

True when more than the server ceiling of orders matched, so the count stopped at the ceiling and total/totalPages are a lower bound (more than total exist). False when total is the exact count, including exactly the ceiling.

Example:

false