GET Find Contract
Resolves one Tradovate futures contract by its exact symbol.
This route is specific to linked Tradovate accounts.
GET /v1/api/tv/contracts/find?name=Runs server-side for a linked Tradovate account, so NinjaTrader can be closed. Tradovate does not currently use the CrossTrade WebSocket API. See the Tradovate API guide.
Find a contract by symbol
GET /v1/api/tv/contracts/find?name=ESU6
Resolves one contract by its exact Tradovate symbol (for example ESU6). If you only know the root (like ES) and need the active front month, use /v1/api/tv/contracts/suggest instead.
Auth is the same bearer token as the rest of the CrossTrade API, on a plan with API access (Pro), plus a linked Tradovate account. Unlinked users receive 403 tradovate_not_linked.
Headers
| Name | Value |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Required | Exact Tradovate contract symbol, e.g. ESU6 |
Code Examples
- Python
- JavaScript
- cURL
import requests
token = 'my-secret-token'
url = "https://app.crosstrade.io/v1/api/tv/contracts/find"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers, params={"name": "ESU6"})
print(f"Response Code: {response.status_code}, Response Text: {response.text}")
const token = 'my-secret-token';
const url = "https://app.crosstrade.io/v1/api/tv/contracts/find?name=ESU6";
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/tv/contracts/find?name=ESU6" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json"
Response
- 200
- 400
{
"success": true,
"data": {
"id": 3543031,
"name": "ESU6",
"contractMaturityId": 46127
}
}
data is the raw Tradovate contract record; {} when no contract matches the symbol.
{
"success": false,
"error": "name_required"
}
Returned when the name query parameter is missing. Unlinked users receive 403 with "error": "tradovate_not_linked".