Skip to main content

GET Margin Snapshots

Margin snapshots Tradovate​

Returns one {environment, userId, name, data} envelope for every linked identity. Each envelope's inner data array contains raw Tradovate /marginSnapshot/list rows: initial and maintenance margin, total used margin, and liquidation thresholds as Tradovate reports them.

Endpoint​

GET /v1/api/tv/marginsnapshots

Headers​

NameValue
Content-Typeapplication/json
AuthorizationBearer <token>

Code examples​

import requests

token = 'my-secret-token'

url = "https://app.crosstrade.io/v1/api/tv/marginsnapshots"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}

response = requests.get(url, headers=headers)
print(f"Response Code: {response.status_code}, Response Text: {response.text}")

Response​

{
"success": true,
"data": [
{
"environment": "demo",
"userId": "12345",
"name": "Demo Trader",
"data": [
{
"id": 123456,
"timestamp": "2026-07-15T14:32:05.184Z",
"riskTimePeriodId": 9,
"initialMargin": 1760.00,
"maintenanceMargin": 1600.00,
"totalUsedMargin": 1600.00,
"fullInitialMargin": 1760.00
}
]
}
]
}

Each outer row identifies the linked identity queried. The inner data rows are raw Tradovate margin-snapshot records and may carry additional fields. A per-identity upstream failure appears inside that envelope's data as an error object without dropping successful identities.

Platform nuances​

Authentication uses the same bearer token as the rest of the CrossTrade API and requires a plan with API access (Pro) plus a linked Tradovate account. Unlinked users receive 403 tradovate_not_linked.

This endpoint is REST-only and has no WebSocket equivalent.