PRO FEATURE

A REST API for NinjaTrader 8
and Tradovate.

Everything you need to run a trading operation from code, for $49 a month. Place orders, query positions, stream market data, and manage every account from Python, JavaScript, Go, or anything that can make an HTTP request. Plus real-time WebSocket streaming. Two surfaces: /v1/api drives NinjaTrader 8 through the add-on, and /v1/api/tv drives a linked Tradovate account server-side, with nothing running on your machine.

70+
Endpoints
<50ms
Avg Response
REST + WS
Protocols

FOR BUSINESSES Β· PARTNER PROGRAM Β· INVITE-ONLY

Your following. Our infrastructure.

Build your own Tradovate app or website on CrossTrade. Member onboarding, trading and supported automation APIs, with your product in front.

Tradovate only. No NT8 support. Custom pricing: monthly base + member seat-day usage.

Why the CrossTrade API

Run an entire trading operation from your own code.

Doing it yourself

  • NinjaTrader 8 has no REST API, so it is C# inside a desktop app
  • A separate integration for every broker
  • Your own bridge, auth, retries and rate limiting to build and babysit
  • Market data and account state locked inside the desktop app

CrossTrade

  • 70+ endpoints, both brokers, one tokenNinjaTrader 8 through the NT8 Add-On, Tradovate server-side. Same auth, same conventions.
  • Any language, from anywherePython, JavaScript, Go, Rust, or anything that speaks HTTP. Run from a server, a notebook or your phone.
  • Real-time WebSocket streamingQuotes, live P/L, and order, execution and position events pushed to you as they happen.
  • Every account in one callFlatten everything, pull every account summary, or audit an order's full lifecycle.
  • Tradovate with your computer offTradovate calls run in our cloud, and still pass through your Account Manager rules and copier fan-out.
  • $49 a month on ProAnd the Trade Copier and Account Manager come with it.

The whole operation

Everything a trading desk needs, as an API.

Execution, account state, streaming and strategy control across every account you run, from one bearer token.

01Execute
  • Market, limit, stop and bracket orders
  • Change, replace, cancel, and cancel-and-bracket
  • Flatten, then place, in a single call
  • Close, reverse or flatten any position
  • Flatten everything across all accounts
02Know
  • Account summaries, balances and margin
  • Positions, orders and executions
  • Full order lifecycle audit trail
  • High and low watermarks per account
  • Cash, margin and fill history Tradovate
03Stream
  • Live P/L and account events over WebSocket
  • Order, execution and position events, pushed
  • Streaming quotes from your data feed NT8
  • Events with NinjaTrader closed Tradovate
04Automate
  • Start, enable, disable and close NinjaScript strategies NT8
  • Historical bars and live quotes NT8
  • ATM templates NT8
  • OpenAPI spec, ready for Postman
  • 180 requests a minute per user

Items without a tag work on both NinjaTrader 8 and Tradovate.

Stop wrestling with NinjaScript

We're not C# programmers and we bet you aren't either. The CrossTrade API lets you interact with NinjaTrader from the languages and frameworks you actually use. Your existing infrastructure becomes your trading infrastructure.

Python # Place a market order from anywhere in the world
import requests

requests.post(
  "https://app.crosstrade.io/v1/api/accounts/sim101/orders",
  headers={"Authorization": f"Bearer {secret_key}"},
  json={
    "instrument": "ES 12-26",
    "action": "BUY",
    "quantity": 2,
    "order_type": "MARKET",
    "tif": "DAY"
  }
)

What you can do

The same underlying infrastructure CrossTrade uses to execute hundreds of thousands of webhook orders daily β€” now accessible via your own code.

language

Code in Any Language

Python, JavaScript, Go, Java, Rust β€” anything that can make an HTTP request. Use the ML frameworks, backtesting libraries, and deployment pipelines you've already built.

CORE
cell_tower

WebSocket Streaming

Real-time streaming endpoint for market data, positions, and account state. Subscribe to the channels you need and receive updates as they happen β€” no polling required.

SPEED
public

Trade from Anywhere

Your NinjaTrader desktop becomes a remote execution engine. Run strategies from AWS, deploy algos from your phone, or manage trades from another continent. NT8 is no longer a desktop limitation.

CORE
candlestick_chart

Real-Time Market Data

Get live bid/ask, last price, and volume for any instrument your NinjaTrader can access. Turn your existing NT8 data subscription into a personal market data server queryable from anywhere.

DATA
photo_camera

Instant Account Snapshots

Pull all account and position data in a single API call. Cash balance, open positions, unrealized P/L, margin usage, pending orders β€” everything in one response. Critical for sub-second decision loops.

DATA
account_tree

Multi-Account Orchestration

Programmatic control over unlimited accounts. Coordinate strategy deployment, dynamically allocate trades based on equity or performance, and monitor health across your entire operation from one script.

SCALE

70+ battle-tested endpoints

The same API that powers CrossTrade's webhook processing. Battle-tested with hundreds of thousands of daily orders.

Accounts

Summaries, balances, cash value, net liquidation, unrealized P/L, margin usage, and real-time performance metrics across all connected accounts.

Positions

Query current positions, close specific instruments, flatten everything, or reverse positions with a single call.

Orders

Place market, limit, stop, and bracket orders. Cancel, modify, or replace existing orders. Track status and execution history.

Strategies

Access NinjaTrader strategy performance data. Close strategy positions programmatically. Monitor automated execution.

Executions

Detailed fill information, execution quality analysis, slippage tracking, and commission data.

Quotes & Market

Real-time quotes for any instrument on your connected feeds. Market state, instrument specs, and trading session data.

Two surfaces, one bearer token

The API covers both brokers. Same authentication, same conventions, different route prefix. Most Tradovate endpoints mirror their NinjaTrader equivalent, so moving code between them is largely a prefix change.

/v1/api Β· NinjaTrader 8

Calls travel to the CrossTrade NT8 Add-On inside your running NinjaTrader instance. That is what gives you NT8-native behavior: ATM strategies, strategy performance data, and real-time market quotes off your connected feeds. NinjaTrader has to be open and connected.

/v1/api/tv Β· Tradovate

Calls run server-side against your linked Tradovate identity. NinjaTrader can be closed, and so can your laptop. Place, cancel, change, close, flatten and reverse run through the same validation as a Tradovate webhook, including Account Manager kill checks, position gates and Trade Copier fan-out.

Tradovate-only endpoints

Link status, cash balances, margin snapshots, contract lookup and suggestions, current-session fills, durable fill history, and the exchange list. Fill History is served from CrossTrade's own continuous capture rather than Tradovate's session data, so it survives the daily session reset.

What differs, plainly

Tradovate's own order and fill lists cover the current session only and reset around 5:00 PM ET. The Tradovate WebSocket carries events, P&L and RPC, but no market data. REST access on either surface needs the Pro plan; the webhook route needs no plan gate at all.

Shared endpoints are documented once, with an NT8 tab and a Tradovate tab side by side. Tradovate API reference

Built for developers

menu_book

Clear Documentation

Examples in Python, JavaScript, and Go. Comprehensive error handling guides. Practical tutorials that get you trading in minutes, not hours.

error_outline

Actionable Error Messages

When something goes wrong, you get clear messages showing exactly what field caused the problem and how to fix it. No cryptic codes.

speed

Transparent Rate Limiting

60 requests per minute with clear headers. No surprise throttling, no hidden limits. Plenty of headroom for high-frequency operations.

tips_and_updates

Already using webhooks? You can send those via the API too.

The API includes a webhook trading endpoint β€” POST the same key=value format you use with TradingView, programmatically. Get rate limiting, Strategy Sync, multi-account placement, and all advanced webhook features from your own code. Learn more about webhook automation β†’

The CrossTrade API is included with every Pro subscription.
No additional fees, no usage limits. Install the Add-On, grab your secret key, and start building.

Developer quick start

Start with account data before your first order

Use CrossTrade to connect an external application to NinjaTrader 8 or Tradovate. REST access is included with Pro; MCP and saved-settings management have their own Elite requirements.

Pick the route prefix

Use /v1/api for the connected NT8 Add-On. Use /v1/api/tv for linked Tradovate accounts, where NinjaTrader can be closed. Do not change only the hostname of a broker’s native API example and expect its authentication or response format to match.

Make a read-only request

Create a CrossTrade Bearer token, keep it on your server and call the documented account-list endpoint. Confirm the accounts and environment before selecting an instrument or quantity. Your webhook secret is not the REST Bearer token.

Handle the complete lifecycle

Check the endpoint’s success, warning and order-status fields. An accepted order is not a fill. For NT8 futures requests, use a dated native contract; webhook continuous-symbol conversion is not the direct NT8 API contract.