GET Suggest Contracts
- NT8
- Tradovate
NinjaTrader 8
NT8 does not expose a contract-autocomplete route, but it does support front-month root resolution. GET Quote accepts a supported instrument root, resolves the current NT8 front-month contract, and returns its quote and contract metadata. You can also pass a full NT8 instrument name when you already know the contract.
The Tradovate endpoint on this page is REST-only. The WebSocket API applies to supported NT8 add-on routes, not this Tradovate route.
Contract search suggestions Tradovate
Provides contract autocomplete against Tradovate's contract database. Pass a root like ES to resolve the active front month, or a partial symbol to list matching contracts. For an exact-symbol lookup, use /v1/api/tv/contracts/find.
Endpoint
GET /v1/api/tv/contracts/suggest?text=ES
Headers
| Name | Value |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
text | string | Required | Root or partial symbol to search, e.g. ES |
Code examples
- Python
- JavaScript
- cURL
import requests
token = 'my-secret-token'
url = "https://app.crosstrade.io/v1/api/tv/contracts/suggest"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers, params={"text": "ES"})
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/suggest?text=ES";
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/suggest?text=ES" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json"
Response
- 200
- 400
{
"success": true,
"data": [
{ "id": 3543031, "name": "ESU6", "contractMaturityId": 46127 },
{ "id": 3543032, "name": "ESZ6", "contractMaturityId": 46128 }
]
}
Rows are raw Tradovate contract records, ordered by Tradovate's suggestion ranking; the first row for a root is normally the active front month.
{
"success": false,
"error": "text_required"
}
Returned when the text query parameter is missing. Unlinked users receive 403 with "error": "tradovate_not_linked".
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.