GET All Orders
- NT8
- Tradovate
Get all orders across all accounts NT8
Retrieve orders across all accounts in a single request. By default, only active (working) orders are returned. Pass ?activeOnly=false to include historical orders.
This is a convenience endpoint that eliminates the need to iterate through accounts individually when you need a cross-account view of order state.
Endpoint
GET /v1/api/orders
Headers
| Name | Value |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
activeOnly | boolean | Optional | Filter to only active (non-terminal) orders. Default: true |
lookbackTime | int | Optional | When activeOnly=false, limits historical orders to this many seconds in the past. Example: 86400 for the last 24 hours |
Code examples
- Python
- JavaScript
- cURL
import requests
token = 'my-secret-token'
url = "https://app.crosstrade.io/v1/api/orders"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
# Get all active orders across all accounts
params = {"activeOnly": "true"}
try:
response = requests.get(url, headers=headers, params=params)
print(f"Response Code: {response.status_code}, Response Text: {response.text}")
except Exception as e:
print(f"An error occurred: {e}")
const token = 'my-secret-token';
// Get all active orders across all accounts
const params = new URLSearchParams({ activeOnly: "true" });
const url = `https://app.crosstrade.io/v1/api/orders?${params}`;
fetch(url, {
method: "GET",
headers: {
"Authorization": `Bearer ${token}`,
"Content-Type": "application/json"
}
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
TOKEN="my-secret-token"
# Get all active orders across all accounts
curl -X GET "https://app.crosstrade.io/v1/api/orders?activeOnly=true" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json"
Response
- 200
- 400
{
"orders": [
{
"id": "ecf2746031ca44dca70f8ac81227b52f",
"type": "NinjaTrader.Cbi.Order",
"time": "2026-03-18T13:58:43.9037681",
"epoch": 1773867523903,
"name": "",
"ocoId": "",
"onBehalfOf": "",
"clientId": -1,
"account": "Sim101",
"instrument": "NQ 09-26",
"instrumentType": "Future",
"orderType": "Limit",
"orderState": "Working",
"orderAction": "Buy",
"quantity": 1,
"quantityChanged": 1,
"limitPrice": 24603.25,
"limitPriceChanged": 24603.25,
"stopPrice": 0.0,
"stopPriceChanged": 0.0,
"averageFillPrice": 0.0,
"filled": 0,
"timeInForce": "Day",
"gtd": "2099-12-01T00:00:00.0000000",
"fromEntrySignal": null,
"hasOverfill": false,
"isBacktestOrder": false,
"isLimit": true,
"isLiveUntilCancelled": false,
"isLong": true,
"isMarket": false,
"isMarketIfTouched": false,
"isShort": false,
"isSimulatedStop": false,
"isStopLimit": false,
"isStopMarket": false,
"isTrackingConfigured": false,
"isTrackingEnabled": false,
"userData": "<NinjaTrader />",
"ownerStrategy": {
"id": null,
"name": null,
"displayName": null
}
}
],
"count": 1,
"success": true
}
{
"error": "Invalid request"
}
Platform nuances
Order objects include NT8's current order ID as id. When an order was placed with a custom orderId, that custom ID is stored separately in the order's userData XML under AutomatedTradingOrderId. Use the custom ID as your stable reconciliation key, and use GET /v1/api/accounts/{account}/orders/{orderId} if you need to resolve it to the current NT8 order record.
WebSocket API
This request can also be made over the WebSocket API. Query parameters are passed inside args.
{
"action": "rpc",
"id": "my-request-id",
"api": "GetAllOrders",
"args": {
"activeOnly": true
}
}
To include historical orders with a time filter:
{
"action": "rpc",
"id": "my-request-id",
"api": "GetAllOrders",
"args": {
"activeOnly": false,
"lookbackTime": 86400
}
}
Get all orders across all accounts Tradovate
Returns every order from the current trading session across all linked Tradovate identities. No NinjaTrader add-on is involved: the read executes server-side against the Tradovate Web API, so it works even while NinjaTrader is closed.
Tradovate's API only tracks orders for the current trading session. The list resets at the daily session close (around 5:00 PM ET) and stays empty until the next open, including all weekend. Orders from earlier sessions never reappear here, even if the trades are visible in the Tradovate platform's history views. For a durable record of executions, use GET Fill History.
Endpoint
GET /v1/api/tv/orders
Headers
| Name | Value |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Code examples
- Python
- JavaScript
- cURL
import requests
token = 'my-secret-token'
url = "https://app.crosstrade.io/v1/api/tv/orders"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
try:
response = requests.get(url, headers=headers)
print(f"Response Code: {response.status_code}, Response Text: {response.text}")
except Exception as e:
print(f"An error occurred: {e}")
const token = 'my-secret-token';
const url = "https://app.crosstrade.io/v1/api/tv/orders";
fetch(url, {
method: "GET",
headers: {
"Authorization": `Bearer ${token}`,
"Content-Type": "application/json"
}
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
TOKEN="my-secret-token"
curl -X GET "https://app.crosstrade.io/v1/api/tv/orders" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json"
Response
The response uses the Tradovate read envelope. Its top-level data is a list of identity envelopes shaped as {"environment", "userId", "name", "data"}. Each identity envelope's nested data contains that identity's raw Tradovate /order/list rows, or an error object if that identity could not be read.
{
"success": true,
"data": [
{
"environment": "demo",
"userId": "123456",
"name": "Demo identity",
"data": [
{
"id": 123456789,
"ordStatus": "Working"
}
]
}
]
}
Platform nuances
- Unlike the NT8 endpoint, this route does not accept
activeOnlyorlookbackTime. - The result spans all linked Tradovate identities, including demo and live identities, without flattening their order rows into one array.
- Each identity's nested order list includes filled and cancelled orders from the current trading session, not only working orders. Orders from earlier sessions are not returned (see the session-scope note above).
- Use
GET /v1/api/tv/accounts/{account}/orderswhen you need working orders for one account. - For filled orders older than the current session, use
GET /v1/api/tv/fills/history.
See the Tradovate API overview for the full route list and error table.