Tradovate API

Read Positions, Fills & Balance via Tradovate API

Need to pull your Tradovate accounts, open positions, fills, and cash balance straight from the REST endpoints? Here's every read call, one step at a time.

Vérifié par l'équipe Trading Systems de PickMyTrade Dernière mise à jour
· 5 min read
Tradovate API access token request and Bearer header shown in a REST client

Need to pull Tradovate API account data, your accounts, open positions, fills, and cash balance, straight from the REST endpoints? Whether you're building a dashboard, reconciling fills at tax time, or wiring up automation like PickMyTrade, this guide walks you through each read call, one step at a time.

What Is the Tradovate Account Data API?

Tradovate exposes a REST API where every account object, accounts, positions, fills, orders, and balances, has a matching read endpoint. Once you're holding a valid access token, a handful of GET and POST calls hand that data back as JSON. That means you can mirror exactly what you see in the Trader app inside your own tools.

Read Tradovate API Account Data: Step-by-Step

1

Authenticate and Set Your Base URL

Request an access token by POSTing your credentials to auth/accessTokenRequest, then send that token on every call as an Authorization: Bearer <accessToken> header. Use the demo host demo.tradovateapi.com/v1 for simulated accounts and live.tradovateapi.com/v1 for funded ones. Tokens expire, so renew yours before it lapses, otherwise the next call comes back as a 401 Unauthorized.

2

List Your Accounts

Call GET account/list to return every account tied to your login. Each item includes the numeric id, name, and userId. Grab that numeric id, most of the calls below key off it, and it's not the same as the account nickname you see in the app.

3

Read Your Open Positions

Call GET position/list to return current positions. The fields you care about are netPos (signed net contracts, a negative value means short), contractId (map it to a symbol with contract/item?id=), and netPrice, the average entry price. One gotcha: netPrice isn't always populated on a freshly opened position, so guard for it in code.

4

Pull Your Fills and Orders

Call GET fill/list for executions and GET order/list for order records. Both follow the same {entity}/list pattern and return arrays for your user. Keep in mind these list endpoints are built for recent activity, they won't always hand back your full trade history. For a complete historical load, pull from the Reporting API, then subscribe to a WebSocket user/syncrequest for real-time updates going forward.

5

Check Cash Balance and Margin

For balance, POST the numeric account id to cashBalance/getCashBalanceSnapshot. It returns the latest cash and margin figures, total cash value, open P&L, and margin used, which is the fastest way to read realized balance without walking the entire cash log. Send { "accountId": <id> } in the request body.

Tradovate account/list JSON response showing account id and nameTradovate position/list response showing netPos and contractId fieldsTradovate fill/list response showing execution price, quantity, and timestampTradovate getCashBalanceSnapshot response showing cash balance and margin

Why You'd Need This

  • Audit and reconciliation, match fills and P&L against your broker statements.
  • Tax records, export executions and realized balances for the year.
  • Custom dashboards, show live positions and balance outside the Trader app.
  • Feeding a strategy, let a bot read current exposure before it sizes the next order.

Automate This with PickMyTrade

If you'd rather not babysit token refresh, rate-limit handling, and endpoint plumbing yourself, PickMyTrade links your TradingView alerts straight to your Tradovate account. Orders fire and positions update automatically, no manual API calls.

Skip the Endpoint Plumbing

Let PickMyTrade link your TradingView alerts straight to your Tradovate account, orders fire and positions update automatically.

Start Your Free 5-Day Trial

Frequently Asked Questions

Not reliably. fill/list and order/list are best for recent activity. For a full historical export, use the Reporting API rather than paging the list endpoints.

netPrice isn't guaranteed on every position object, especially right after entry. Always null-check it and fall back to your own fill data if you need the average price immediately.

Use demo.tradovateapi.com for simulated accounts and live.tradovateapi.com for funded ones. Rate limits apply and vary, so throttle your polling and check Tradovate's current limits.

This guide is for educational and informational purposes only and is not financial, investment, or trading advice. Trading futures and other leveraged products carries a substantial risk of loss and is not suitable for every investor. PickMyTrade is an independent third-party automation platform and is not affiliated with, endorsed by, or sponsored by Tradovate, Inc. "Tradovate" and all related names, logos, and trademarks are the property of their respective owners. Platform features and steps change over time, so always confirm the current process in the official Tradovate platform and documentation before acting.