Skip to main content

List Orders

List trade orders with filtering options.

Endpoint

GET /api/v3/tradeOrder/list

Description

Retrieves a paginated list of trade orders. Supports filtering by trading account, instrument, status, and time range.

Authentication

Requires Bearer token authentication.

Authorization: Bearer {access_token}

Request Parameters

ParameterTypeRequiredDescription
tradeOrderIdstringNoFilter by specific order ID
tradingAccountIdstringNoFilter by trading account
instrumentIdstringNoFilter by instrument
statusstringNoFilter by order status
startTimeintegerNoStart time (milliseconds)
endTimeintegerNoEnd time (milliseconds)
limitintegerNoMaximum results (default: 10, max: 100)
offsetintegerNoNumber of results to skip
cursorstringNoCursor for pagination
ascendingbooleanNoSort order (default: false, newest first)

Order Status Values

StatusDescription
PENDINGOrder submitted, awaiting exchange confirmation
OPENOrder active on exchange
PARTIALLY_FILLEDOrder partially executed
FILLEDOrder fully executed
CANCELLEDOrder cancelled
REJECTEDOrder rejected by exchange
EXPIREDOrder expired

Response

Returns an array of trade order objects with pagination.

FieldTypeDescription
tradeOrderIdstringUnique order identifier
tradingAccountIdstringTrading account ID
venuestringExchange venue
instrumentIdstringInstrument identifier
orderSidestringOrder side (BUY, SELL)
orderTypestringOrder type
statusstringOrder status
quantitystringOrder quantity
limitPricestringLimit price (if applicable)
executedQuantitystringQuantity filled
executedCoststringTotal execution cost
averagePricestringAverage execution price
createdAtintegerCreation timestamp (milliseconds)
updatedAtintegerLast update timestamp (milliseconds)

Usage

import requests

headers = {"Authorization": f"Bearer {access_token}"}

# List all orders for a trading account
response = requests.get(
"https://cadenza-api-uat.algo724.com/api/v3/tradeOrder/list",
headers=headers,
params={
"tradingAccountId": "550e8400-e29b-41d4-a716-446655440000",
"limit": 20
}
)

orders = response.json()["data"]
for order in orders:
print(f"{order['tradeOrderId']}: {order['status']}")

# List open orders only
response = requests.get(
"https://cadenza-api-uat.algo724.com/api/v3/tradeOrder/list",
headers=headers,
params={
"tradingAccountId": "550e8400-e29b-41d4-a716-446655440000",
"status": "OPEN"
}
)

# List orders for specific instrument
response = requests.get(
"https://cadenza-api-uat.algo724.com/api/v3/tradeOrder/list",
headers=headers,
params={
"instrumentId": "BINANCE:BTC/USDT",
"startTime": 1703000000000,
"endTime": 1703100000000
}
)
curl "https://cadenza-api-uat.algo724.com/api/v3/tradeOrder/list?tradingAccountId=550e8400-e29b-41d4-a716-446655440000&status=OPEN" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Example Response

{
"data": [
{
"tradeOrderId": "770e8400-e29b-41d4-a716-446655440002",
"tradingAccountId": "550e8400-e29b-41d4-a716-446655440000",
"venue": "BINANCE",
"instrumentId": "BINANCE:BTC/USDT",
"baseAsset": "BTC",
"quoteAsset": "USDT",
"orderSide": "BUY",
"orderType": "LIMIT",
"timeInForce": "GTC",
"status": "OPEN",
"limitPrice": "50000.00",
"quantity": "0.001",
"executedQuantity": "0",
"executedCost": "0",
"averagePrice": "0",
"createdAt": 1703052635110,
"updatedAt": 1703052635110
},
{
"tradeOrderId": "770e8400-e29b-41d4-a716-446655440001",
"tradingAccountId": "550e8400-e29b-41d4-a716-446655440000",
"venue": "BINANCE",
"instrumentId": "BINANCE:ETH/USDT",
"baseAsset": "ETH",
"quoteAsset": "USDT",
"orderSide": "SELL",
"orderType": "MARKET",
"status": "FILLED",
"quantity": "0.5",
"executedQuantity": "0.5",
"executedCost": "1250.00",
"averagePrice": "2500.00",
"createdAt": 1703052600000,
"updatedAt": 1703052600500
}
],
"success": true,
"errno": 0,
"error": null,
"pagination": {
"offset": 0,
"limit": 10,
"total": 25
}
}

Error Responses

HTTP CodeErrorDescription
400Invalid requestInvalid parameter values
401UnauthorizedInvalid or expired access token

Notes

  • Orders are returned in descending order by creation time (newest first) by default
  • Use ascending=true to get oldest orders first
  • Use time range filters for historical order queries
  • For real-time order updates, use the WebSocket API
  • The averagePrice is calculated as executedCost / executedQuantity for filled orders