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.