Skip to main content

Overview

Choose Your Platform​

A bearer token on an HTTPS request, checked against the account it belongs to and the plan gate that governs REST access. The same token works on both the NinjaTrader and Tradovate surfaces, because the surface is chosen by the route prefix rather than by the credential. The webhook route uses a different credential entirely, which is why rotating one does not affect the other.

One bearer token, two route prefixes, two very different execution paths.

CrossTrade exposes two REST surfaces. They use the same Bearer token, but they reach different execution platforms and are not interchangeable.

PlatformREST route prefixHow it executesWebSocket support
NinjaTrader 8/v1/apiRequests pass through the CrossTrade NT8 Add-On in your running NT8 desktop instance.Yes. Use the WebSocket API for RPC calls and live streams.
Tradovate/v1/api/tvRequests execute server-side against a linked Tradovate identity. NT8 does not need to be open.Yes, with "origin": "tradovate": order, fill and position events, account P&L, and Tv_* RPC. No market data. See Tradovate over the WebSocket.

Each endpoint page has an NT8 tab and a Tradovate tab. When one platform has no equivalent, its tab says so and points to the closest alternative.

What You Can Do​

Shared REST resources cover accounts, positions, orders, executions or fills, and Account Manager watermarks. You can place and modify orders, flatten positions, and inspect account state on either platform.

NinjaScript strategies, NinjaTrader ATM templates, historical bars, session information, and NT8 data-feed quotes are NT8-only. The WebSocket API serves both platforms on one connection: persistent RPC calls, order and position events, and P&L streaming for each, plus live quotes for NT8.

Tradovate adds server-side identity status, cash balances, margin snapshots, contract lookup, and exchange reference endpoints. See the Tradovate API for its complete route catalog.

NinjaTrader 8 Setup​

Every NT8 API request is forwarded to the CrossTrade NT8 add-on running inside your NinjaTrader instance. This means NT8 must be open and the add-on must be connected for NT8 API calls to reach your broker. The add-on executes the request on your local machine and returns the result.

To get started:

  1. Install and connect the CrossTrade NT8 add-on inside NinjaTrader
  2. Grab your Bearer token from the My Account page
  3. Include it as an Authorization: Bearer <token> header on every request
  4. Start making NT8 calls to https://app.crosstrade.io/v1/api/

For Tradovate, link an identity under My Account, Brokers, then use routes beginning with https://app.crosstrade.io/v1/api/tv/. NinjaTrader and the CrossTrade NT8 Add-On are not required for those requests.

For authentication details, see Authentication. For rate limit specifics, see Rate Limiting.

NinjaTrader 8 Instrument Name Formats​

For NT8 REST requests, WebSocket RPCs and subscriptions, and direct API/tool calls, supply the correct native NinjaTrader instrument name. For futures, include the intended contract month and year, for example "MNQ 12-26" or "ES 12-26". URL-encode spaces when placing the name in a URL.

Your integration is responsible for selecting the correct instrument and updating contract names for new trades as contracts roll. Keep existing positions, orders, and exits tied to their actual dated contract. Do not rely on bare futures roots such as "MNQ", continuous symbols such as "MNQ1!", or automatic format conversion in direct NT8 API calls. A bare symbol can also identify another asset, not the future you intended.

NT8 continuous-symbol translation is supported through webhook ingestion, not as part of the direct NT8 API contract. Tradovate has separate symbol handling, documented in the Tradovate API guide.

The warning Field in Responses​

Some endpoints return a warning field alongside success: true. The request was processed, but an edge case was encountered: a position that went flat during a cancel window, say, or a flatten call with no open positions to close. Check for warning in addition to success if your integration needs to detect these cases.

Specs and Tooling for Developers​

Machine-readable specs and AI-friendly resources, all served live from the API:

ResourceURLFormat
OpenAPI 3.1 spec/v1/api/openapi.jsonJSON
OpenAPI 3.1 spec/v1/api/openapi.yaml / downloadYAML
Endpoint catalog/v1/api/_endpointsJSON
LLM index/v1/api/llms.txtMarkdown
Full LLM reference/v1/api/llms-full.txtMarkdown

Drop the OpenAPI spec into Postman, Insomnia, or any OpenAPI-aware tool to get schema-aware request building and a request explorer for free. If you're using AI coding assistants such as Claude, Cursor or Continue, the AI-Assisted Development guide walks through the hosted MCP server (Elite tier), AI-readable references, and drop-in rules templates.

If you run into issues or have questions, reach out on Discord.