Get Monitor
Read the monitor for one account. Field details are in Monitor fields.
Elite
The Management API requires an Elite subscription. See Authentication.
- NT8
- Tradovate
Endpoint
GET https://app.crosstrade.io/v1/api/manage/nt8/monitors/{account}
Headers
| Name | Required | Value |
|---|---|---|
| Authorization | Yes | Bearer <your API token> |
| If-None-Match | No | ETag from a previous read. Returns 304 with no body if nothing changed |
Path parameters
| Name | Type | Description |
|---|---|---|
account | string | Account name, URL-encoded (exact match, including case; no leading or trailing spaces) |
Code examples
- Python
- cURL
import requests
resp = requests.get(
"https://app.crosstrade.io/v1/api/manage/nt8/monitors/Sim101",
headers={"Authorization": "Bearer YOUR_TOKEN"},
)
print(resp.status_code, resp.json())
curl "https://app.crosstrade.io/v1/api/manage/nt8/monitors/Sim101" \
-H "Authorization: Bearer YOUR_TOKEN"
Responses
- 200
- Other errors
{
"success": true,
"data": {
"account": "Sim101",
"nickname": null,
"active": true,
"state": "active",
"stoppedReason": null,
"pnlMode": "standard",
"includeUnrealized": true,
"dailyProfitTarget": 1000,
"dailyLossLimit": 500,
"onProfitTarget": {
"flatten": true,
"signals": "block"
},
"onLossLimit": {
"flatten": true,
"signals": "block"
},
"minimumProfit": {
"enabled": false,
"trigger": 0,
"threshold": 0,
"flatten": true,
"signals": "block"
},
"trailingDrawdown": {
"enabled": false,
"basis": "pnl",
"amount": 0,
"unit": "percent",
"trigger": 0,
"flatten": true,
"signals": "block"
},
"accountFloor": null,
"autoFlattenTime": "15:55",
"tradingWindows": [
{
"enabled": true,
"start": "09:30",
"end": "15:45",
"flattenAtEnd": false
}
],
"newsLockout": {
"blockSignals": true,
"flatten": false
},
"blockSignals": false,
"closingOnly": false,
"switchesLocked": false,
"positionProfitTarget": 0,
"positionLossLimit": 0,
"includeCommissions": true,
"cleanSessionProtection": true,
"outlierProtection": {
"enabled": true,
"sensitivity": "low"
},
"created": "2026-09-01T13:02:11Z",
"updated": "2026-10-02T14:31:07Z"
},
"meta": {
"requestId": "req_9f2c1a0b7d3e4f51",
"etag": "\"c2:Tm90UmVhbEV0YWcwMg\""
}
}
| Status | error | When |
|---|---|---|
| 304 | If-None-Match matched; no body | |
| 400 | unexpected_body, unknown_parameter | A body or a query parameter was sent |
| 400 | invalid_path | The account name in the path is not valid |
| 401 | unauthorized | Missing or invalid token |
| 403 | elite_required, not_available | See Authentication |
| 404 | not_found | No monitor for this account on your login |
| 429 | rate_limited, too_many_concurrent_requests | See Rate limits |
| 503 | management_unavailable, family_unavailable, management_busy, storage_unavailable | See Errors |
Endpoint
GET https://app.crosstrade.io/v1/api/manage/tradovate/monitors/{account}
Headers
| Name | Required | Value |
|---|---|---|
| Authorization | Yes | Bearer <your API token> |
| If-None-Match | No | ETag from a previous read. Returns 304 with no body if nothing changed |
Path parameters
| Name | Type | Description |
|---|---|---|
account | string | Account name, URL-encoded (matched in any case; no leading or trailing spaces) |
Code examples
- Python
- cURL
import requests
resp = requests.get(
"https://app.crosstrade.io/v1/api/manage/tradovate/monitors/DEMO12345678",
headers={"Authorization": "Bearer YOUR_TOKEN"},
)
print(resp.status_code, resp.json())
curl "https://app.crosstrade.io/v1/api/manage/tradovate/monitors/DEMO12345678" \
-H "Authorization: Bearer YOUR_TOKEN"
Responses
- 200
- Other errors
{
"success": true,
"data": {
"account": "DEMO12345678",
"environment": "demo",
"nickname": null,
"active": true,
"state": "active",
"stoppedReason": null,
"pnlMode": "standard",
"includeUnrealized": true,
"dailyProfitTarget": 1000,
"dailyLossLimit": 500,
"onProfitTarget": {
"flatten": true,
"signals": "block"
},
"onLossLimit": {
"flatten": true,
"signals": "block"
},
"minimumProfit": {
"enabled": false,
"trigger": 0,
"threshold": 0,
"flatten": true,
"signals": "block"
},
"trailingDrawdown": {
"enabled": false,
"basis": "pnl",
"amount": 0,
"unit": "dollars",
"trigger": 0,
"flatten": true,
"signals": "block"
},
"accountFloor": null,
"autoFlattenTime": "15:55",
"tradingWindows": [
{
"enabled": true,
"start": "09:30",
"end": "15:45",
"flattenAtEnd": false
}
],
"newsLockout": {
"blockSignals": true,
"flatten": false
},
"blockSignals": false,
"closingOnly": false,
"switchesLocked": false,
"created": "2026-09-01T13:02:11Z",
"updated": "2026-10-02T14:31:07Z"
},
"meta": {
"requestId": "req_9f2c1a0b7d3e4f51",
"etag": "\"c2:Tm90UmVhbEV0YWcwMg\""
}
}
| Status | error | When |
|---|---|---|
| 304 | If-None-Match matched; no body | |
| 400 | unexpected_body, unknown_parameter | A body or a query parameter was sent |
| 400 | invalid_path | The account name in the path is not valid |
| 401 | unauthorized | Missing or invalid token |
| 403 | elite_required, not_available | See Authentication |
| 404 | not_found | No monitor for this account on your login |
| 429 | rate_limited, too_many_concurrent_requests | See Rate limits |
| 503 | management_unavailable, management_busy, storage_unavailable | See Errors |
Notes
- A read can include
warnings(for examplelegacy_value_normalized) when a saved value was stored in an older form.