GET Accounts Summary
- NT8
- Tradovate
Get list of all accounts NT8
Returns a consolidated snapshot of NT8 account balances, P&L, and positions.
Endpoint
GET /v1/api/accounts/snapshot
Headers
| Name | Value |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Code examples
- Python
- JavaScript
- cURL
import requests
url = "https://app.crosstrade.io/v1/api/accounts/snapshot"
headers = {
"Authorization": "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 url = "https://app.crosstrade.io/v1/api/accounts/snapshot";
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));
curl -X GET "https://app.crosstrade.io/v1/api/accounts/snapshot" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json"
Response
- 200
- 400
{
"type": "snapshot",
"timestamp": "2025-03-10T07:53:13.0908809-07:00",
"epoch": 1741618393090,
"accounts": [
{
"account": {
"id": 15,
"name": "Sim110",
"type": "NinjaTrader.Cbi.Account",
"displayName": "Sim110",
"primaryUser": null,
"provider": "Simulator",
"denomination": "UsDollar",
"status": "Enabled",
"isAccountFlat": false,
"dailyLossLimit": 0.0,
"minCashValue": 0.0,
"maxOrderSize": 0,
"maxPositionSize": 0,
"connection": "NinjaTrader.Cbi.Connection",
"connectionStatus": "Connected",
"lastTransactionSum": 0.0,
"item": {
"buyingPower": 0.0,
"cashValue": 153772.375,
"commission": 0.0,
"dailyLossLimit": 0.0,
"dailyProfitTrigger": 0.0,
"excessInitialMargin": 0.0,
"excessIntradayMargin": 0.0,
"excessMaintenanceMargin": 0.0,
"excessPositionMargin": 0.0,
"fee": 0.0,
"grossRealizedProfitLoss": 0.0,
"initialMargin": 0.0,
"intradayMargin": 0.0,
"longOptionValue": 0.0,
"longStockValue": 0.0,
"lookAheadMaintenanceMargin": 0.0,
"maintenanceMargin": 0.0,
"netLiquidation": 154185.375,
"netLiquidationByCurrency": 0.0,
"positionMargin": 0.0,
"realizedProfitLoss": 0.0,
"shortOptionValue": 0.0,
"shortStockValue": 0.0,
"sodCashValue": 0.0,
"sodLiquidatingValue": 0.0,
"totalCashBalance": 0.0,
"trailingMaxDrawdown": 0.0,
"unrealizedProfitLoss": 412.99999999999727,
"weeklyLossLimit": 0.0,
"weeklyProfitLoss": 0.0,
"weeklyProfitTrigger": 0.0
}
},
"positions": [
{
"type": "NinjaTrader.Cbi.Position",
"account": "Sim110",
"instrument": "MGC 12-25",
"instrumentType": "Future",
"marketPosition": "Long",
"quantity": 1,
"averagePrice": 2916.8,
"marketPrice": 2958.1,
"unrealizedProfitLoss": 412.99999999999727
}
]
}
],
"success": true
}
{
"error": "Invalid request"
}
Platform nuances
The NT8 snapshot includes top-level type, timestamp, and epoch fields. Account details and
positions are grouped under accounts.
WebSocket API
This request can also be made over the WebSocket API.
{
"action": "rpc",
"id": "my-request-id",
"api": "GetAccountSummary",
"args": {}
}
Get list of all accounts Tradovate
Returns a consolidated snapshot of net liquidation, P&L, positions, and working orders for every linked Tradovate account. The request executes server-side against the Tradovate Web API and works while NinjaTrader is closed.
Endpoint
GET /v1/api/tv/accounts/snapshot
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/accounts/snapshot"
headers = {
"Authorization": f"Bearer {token}"
}
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/accounts/snapshot";
fetch(url, {
method: "GET",
headers: {
"Authorization": `Bearer ${token}`
}
})
.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/accounts/snapshot" \
-H "Authorization: Bearer $TOKEN"
Response
Unlike other Tradovate reads, this endpoint does not wrap its result in data. It returns the
raw snapshot object. Each account card includes name, accountId, environment, broker,
netLiq, openPnl, realizedPnl, weekRealizedPnl, positions, workingOrders, and
error. The top-level counts object summarizes accounts, positions, and working orders.
{
"success": true,
"accounts": [
{
"name": "DEMO12345678",
"accountId": "...",
"environment": "demo",
"broker": "tradovate",
"netLiq": null,
"openPnl": null,
"realizedPnl": null,
"weekRealizedPnl": null,
"positions": [],
"workingOrders": [],
"error": null
}
],
"asOf": "...",
"counts": {
"accounts": 1,
"positions": 0,
"workingOrders": 0
}
}
Platform nuances
- This is the exception to the normal Tradovate
{"success": true, "data": ...}read shape. - The snapshot covers all linked Tradovate accounts in one request.
- Per-position unrealized P&L is calculated by CrossTrade server-side from live market data. Tradovate market-data entitlement and broker
openPnLare not pricing fallbacks. openPnlis the sum of CrossTrade's own live-priced positions.netLiqis cash value plus that sum. If any open position lacks fresh pricing, both account-level fields arenullrather than presenting a partial or Tradovate-marked valuation.- The endpoint works while NinjaTrader is closed.
See the Tradovate API overview for the full field grammar, mutation safety guarantees, and error table.