GET Account
- NT8
- Tradovate
Get a specific account by name NT8
Returns current details and balance information for one named NinjaTrader account.
Endpoint
GET /v1/api/accounts/{account}
Headers
| Name | Value |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
account | string | Required | Name of account in NT8 |
Code examples
- Python
- JavaScript
- cURL
import requests
token = 'my-secret-token'
url = "https://app.crosstrade.io/v1/api/accounts/Sim101"
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/accounts/Sim101";
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/accounts/Sim101" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json"
Response
- 200
- 400
{
"id": 2,
"name": "Sim101",
"displayName": "Sim101",
"primaryUser": null,
"provider": "Simulator",
"denomination": "UsDollar",
"status": "Enabled",
"dailyLossLimit": 0.0,
"minCashValue": 0.0,
"maxOrderSize": 0,
"maxPositionSize": 0,
"connection": "NinjaTrader.Cbi.Connection",
"connectionStatus": "Connected",
"lastTransactionSum": 0.0,
"item": {
"buyingPower": 0.0,
"cashValue": 100565.00000000285,
"commission": 0.0,
"dailyLossLimit": 0.0,
"dailyProfitTrigger": 0.0,
"excessInitialMargin": 103502.50000000285,
"excessIntradayMargin": 103502.50000000285,
"excessMaintenanceMargin": 100000.0,
"excessPositionMargin": 100000.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": 103502.50000000285,
"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": 2937.5,
"weeklyLossLimit": 0.0,
"weeklyProfitLoss": 0.0,
"weeklyProfitTrigger": 0.0
},
"success": true
}
{
"error": "Invalid request"
}
Platform nuances
NT8 account fields are returned at the top level. Current balance and margin values are nested
under item.
WebSocket API
This request can also be made over the WebSocket API. The account path parameter is passed inside args.
{
"action": "rpc",
"id": "my-request-id",
"api": "GetAccount",
"args": {
"account": "Sim101"
}
}
Get a specific account by name Tradovate
Returns the linked account record and current cash-balance snapshot for one named Tradovate account. The request executes server-side against the Tradovate Web API and works while NinjaTrader is closed.
Endpoint
GET /v1/api/tv/accounts/{account}
Headers
| Name | Value |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
account | string | Required | Tradovate account name, for example DEMO12345678 |
Code examples
- Python
- JavaScript
- cURL
import requests
token = 'my-secret-token'
url = "https://app.crosstrade.io/v1/api/tv/accounts/DEMO12345678"
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/DEMO12345678";
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/DEMO12345678" \
-H "Authorization: Bearer $TOKEN"
Response
Successful reads return {"success": true, "data": ...}. Here, data is the linked
Tradovate account record with an added balance object containing the current cash-balance
snapshot.
{
"success": true,
"data": {
"name": "DEMO12345678",
"balance": {}
}
}
Platform nuances
{account}identifies a Tradovate account rather than an NT8 account.- The response is wrapped in
data; the NT8 endpoint returns account fields at the top level. balanceis Tradovate's cash-balance snapshot (net liquidation, total cash value, open and realized P&L, initial and maintenance margin), cached server-side for about four seconds per account. Polling faster than that returns the same snapshot.- If another balance refresh is still in progress after a brief wait, the read returns HTTP 429 with
error: "snapshot_refresh_pending",retryAfter: 1, and the headerRetry-After: 1. Retry after that delay. This is refresh contention, not a broker outage,broker_rate_limited, or CrossTrade's inboundrate_limitedbudget. - The endpoint works while NinjaTrader is closed.
See the Tradovate API overview for the full field grammar, mutation safety guarantees, and error table.