Skip to main content

GET Fills

Current-session fills across all identities Tradovate

Returns the current trading session's fills across every linked Tradovate identity. The outer data array contains one {environment, userId, name, data} envelope per identity; each envelope's inner data array contains raw Tradovate fill rows (id, orderId, contractId, qty, price, action, timestamp) plus an instrument field carrying the contract symbol resolved from contractId. For fills scoped to one order, use /v1/api/tv/fills/order/{orderId}; for fills scoped to one account, use /v1/api/tv/accounts/{account}/fills.

Session-scoped data

Tradovate's API only tracks fills for the current trading session. The list resets at the daily session close (around 5:00 PM ET) and stays empty until the next open, including all weekend. Fills from earlier sessions never reappear here, even if the trades are visible in the Tradovate platform's history views. For a durable record that survives the daily reset, use GET Fill History.

Endpoint

GET /v1/api/tv/fills

Headers

NameValue
Content-Typeapplication/json
AuthorizationBearer <token>

Code examples

import requests

token = 'my-secret-token'

url = "https://app.crosstrade.io/v1/api/tv/fills"
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": 987654321,
"orderId": 123456789,
"contractId": 3543031,
"instrument": "ESU6",
"qty": 1,
"price": 5001.25,
"action": "Buy",
"timestamp": "2026-07-15T14:32:05.184Z"
}
]
}
]
}

Each outer row identifies the linked identity queried. The inner data rows are raw Tradovate fill records, plus the CrossTrade-resolved instrument symbol, 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.

The rows mirror Tradovate's own fill list for each identity, so they include manual trades and trades placed through other platforms, not just orders routed through CrossTrade. The session scope above applies to all of them equally.

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