curl --request GET \
--url https://staging.apimonaco.xyz/api/v1/orders \
--header 'X-Monaco-Signature: <api-key>'import requests
url = "https://staging.apimonaco.xyz/api/v1/orders"
headers = {"X-Monaco-Signature": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Monaco-Signature': '<api-key>'}};
fetch('https://staging.apimonaco.xyz/api/v1/orders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging.apimonaco.xyz/api/v1/orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Monaco-Signature: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://staging.apimonaco.xyz/api/v1/orders"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Monaco-Signature", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.apimonaco.xyz/api/v1/orders")
.header("X-Monaco-Signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Monaco-Signature"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"orders": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"tradingPairId": "456e7890-e12b-12d3-a456-426614174000",
"orderType": "LIMIT",
"side": "BUY",
"price": "35000.00",
"quantity": "0.5",
"filledQuantity": "0.2",
"averageFillPrice": "35050.00",
"status": "PARTIALLY_FILLED",
"tradingMode": "SPOT",
"timeInForce": "GTC",
"createdAt": "2023-11-13T10:30:00Z",
"updatedAt": "2023-11-13T10:35:00Z",
"expirationDate": "2023-11-13T10:35:00Z",
"applicationTakerFee": "5",
"monacoTakerFee": "10",
"monacoMakerRebate": "-2",
"totalTakerFees": "2.63",
"takerTotalPayment": "17502.63",
"makerTotalReceipt": "17496.50",
"marginAccountId": "123e4567-e89b-12d3-a456-426614174000",
"positionSide": "LONG",
"leverage": "5",
"reduceOnly": false,
"positionId": "123e4567-e89b-12d3-a456-426614174000",
"quantityRaw": "500000000",
"filledQuantityRaw": "200000000",
"remainingQuantity": "0.3",
"remainingQuantityRaw": "300000000",
"clientOrderId": "quote-btc-1130-a",
"cancelledAt": "2023-11-13T10:35:00Z",
"filledAt": "2023-11-13T10:35:00Z",
"expiredAt": "2023-11-13T10:35:00Z",
"submittedAt": "2023-11-13T10:35:00Z",
"acknowledgedAt": "2023-11-13T10:35:00Z",
"triggerPrice": "34000.00",
"quoteVolume": "17500.00",
"applicationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"parentOrderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"batchId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"terminalReason": "REDUCE_ONLY_EXHAUSTED",
"postOnly": false,
"version": 918342,
"selfTradePreventionMode": "CANCEL_TAKER",
"conditionalOrderId": "019aefab-f665-854c-99dc-ced6db9014aa"
}
],
"total": 150,
"pageSize": 20,
"totalPages": 8,
"nextPageToken": "<string>",
"totalCapped": false
}Get user orders
Get user orders.
Get orders for the authenticated user with pagination and optional filtering by status and trading pair.
curl --request GET \
--url https://staging.apimonaco.xyz/api/v1/orders \
--header 'X-Monaco-Signature: <api-key>'import requests
url = "https://staging.apimonaco.xyz/api/v1/orders"
headers = {"X-Monaco-Signature": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Monaco-Signature': '<api-key>'}};
fetch('https://staging.apimonaco.xyz/api/v1/orders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging.apimonaco.xyz/api/v1/orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Monaco-Signature: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://staging.apimonaco.xyz/api/v1/orders"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Monaco-Signature", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.apimonaco.xyz/api/v1/orders")
.header("X-Monaco-Signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Monaco-Signature"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"orders": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"tradingPairId": "456e7890-e12b-12d3-a456-426614174000",
"orderType": "LIMIT",
"side": "BUY",
"price": "35000.00",
"quantity": "0.5",
"filledQuantity": "0.2",
"averageFillPrice": "35050.00",
"status": "PARTIALLY_FILLED",
"tradingMode": "SPOT",
"timeInForce": "GTC",
"createdAt": "2023-11-13T10:30:00Z",
"updatedAt": "2023-11-13T10:35:00Z",
"expirationDate": "2023-11-13T10:35:00Z",
"applicationTakerFee": "5",
"monacoTakerFee": "10",
"monacoMakerRebate": "-2",
"totalTakerFees": "2.63",
"takerTotalPayment": "17502.63",
"makerTotalReceipt": "17496.50",
"marginAccountId": "123e4567-e89b-12d3-a456-426614174000",
"positionSide": "LONG",
"leverage": "5",
"reduceOnly": false,
"positionId": "123e4567-e89b-12d3-a456-426614174000",
"quantityRaw": "500000000",
"filledQuantityRaw": "200000000",
"remainingQuantity": "0.3",
"remainingQuantityRaw": "300000000",
"clientOrderId": "quote-btc-1130-a",
"cancelledAt": "2023-11-13T10:35:00Z",
"filledAt": "2023-11-13T10:35:00Z",
"expiredAt": "2023-11-13T10:35:00Z",
"submittedAt": "2023-11-13T10:35:00Z",
"acknowledgedAt": "2023-11-13T10:35:00Z",
"triggerPrice": "34000.00",
"quoteVolume": "17500.00",
"applicationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"parentOrderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"batchId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"terminalReason": "REDUCE_ONLY_EXHAUSTED",
"postOnly": false,
"version": 918342,
"selfTradePreventionMode": "CANCEL_TAKER",
"conditionalOrderId": "019aefab-f665-854c-99dc-ced6db9014aa"
}
],
"total": 150,
"pageSize": 20,
"totalPages": 8,
"nextPageToken": "<string>",
"totalCapped": false
}Authorizations
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
Items per page (max 100 in page-number mode; up to 1000 when pageToken is present)
1 <= x <= 1000Order status (single value or comma-separated list)
1Trading pair identifier (UUID)
1Trading mode
SPOT, MARGIN 1Sort direction for createdAt
ASC, DESC 1Pagination cursor with two states:
- Omitted or empty string (""): start a cursor walk with no prior
position, from the newest row (or the oldest, when
orderByis ASC). - Non-empty: an opaque cursor from a previous response's
next_page_token; results resume immediately after that position.
total and total_pages are populated — bounded by the server count
ceiling, see total_capped. Every walk covers full order history — hot
and archived rows merged. Filters and orderBy must match the
request that produced the token.
Response
OK
Show child attributes
Show child attributes
Total number of orders matching the filter, populated in both pagination modes; bounded by the server ceiling — a lower bound when totalCapped is true.
150
Items per page
20
Total number of pages at this pageSize, populated in both pagination modes; bounded by the server ceiling — a lower bound when totalCapped is true.
8
Cursor for the next page. Present whenever that page returned any rows (AIP-158 "maybe more" semantics), not only when the page is exactly full. Empty only when a 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.
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.
false
Was this page helpful?

