TradeStation's WebAPI has one hard gate in 2026: you must hold a funded TradeStation account and email [email protected] to obtain a key. The API itself is not separately priced on the public docs; whether it is free with a funded account is not publicly documented. Rate limits are published per resource category (250 requests / 5 minutes on account endpoints, 30 requests / 1 minute on quote snapshots, with 429 on exceed), and the API covers stocks, options, and futures with HTTP streaming. See the Broker API Comparator for the multi-asset field.
TL;DR
| Dimension | TradeStation WebAPI |
|---|---|
| Access requirement | Funded TradeStation account + email request for a key |
| API fee | Not publicly documented (no public self-serve price) |
| Account minimum / activity gate | Not publicly documented |
| Rate limits | Per resource category (see below); HTTP 429 on exceed |
| Asset coverage | Stocks, options, futures |
| Streaming | HTTP Streaming supported |
All facts verified 2026-05-25 against the official TradeStation API documentation (api.tradestation.com/docs). Where the docs are silent (API fee, account minimum), this page says so rather than guessing.
Access requirements: the funded-account gate
The official FAQ is explicit: "To get a TradeStation WebAPI Key, you must have a TradeStation account. If you already have a funded TradeStation account, please send an e-mail to [email protected] to obtain a key." So the path is: open and fund a TradeStation account, then request a key by email. Unlike Alpaca (instant API key) or even Schwab (self-serve developer-portal registration), TradeStation routes key issuance through a client-experience email request.
The docs do not state a minimum balance or a trading-activity gate for API access. That does not mean none exists, it means it is not publicly documented (as of May 2026); confirm with Client Experience before assuming.
API cost
There is no public self-serve price for the WebAPI. The documentation describes how to obtain a key (funded account + email) but does not state a separate API subscription fee. Whether the API is free with a funded account is therefore not publicly documented; do not assume either way without confirming directly.
Rate limits, by resource category
TradeStation publishes granular, per-category limits (verified 2026-05-25). Exceeding any returns HTTP 429, and quotas reset on the interval timed from the first request. The documented standard limits:
| Resource | Limit | Window |
|---|---|---|
| Accounts | 250 requests | 5 minutes |
| Order details | 250 requests | 5 minutes |
| Balances | 250 requests | 5 minutes |
| Positions | 250 requests | 5 minutes |
| Quote change / Barchart / TickBar streams | 500 requests | 5 minutes |
| Each option endpoint | 90 requests | 1 minute |
| Quote snapshot | 30 requests | 1 minute |
| MarketDepth stream | 30 requests | 1 minute |
Concurrent-connection caps also apply: MarketDepth, Option Quote, and Option Chain streams allow 10 concurrent connections each; Order, Order-by-id, and Positions streams allow 40 each. High-frequency applications can request custom quotas from Client Experience.
The practical read: the 30-requests-per-minute quote-snapshot cap and 90-per-minute option-endpoint cap are the limits most likely to bite a polling agent; the streaming endpoints (500 / 5 min) are where TradeStation expects high-throughput consumers to live.
Asset coverage and streaming
The TradeStation WebAPI (v3) covers stocks, options, and futures, with HTTP Streaming available for live data. For an agent that needs equities, options, and futures under one broker API, that coverage puts TradeStation in the multi-asset tier alongside Schwab and Interactive Brokers, rather than the US-equities-and-options tier of Alpaca and Tradier.
The comparator's view
TradeStation is not in the Broker API Comparator catalogue (which tracks Alpaca, IBKR, Tradier, Schwab, and Robinhood), so the scenario below frames the field TradeStation competes in: a multi-asset profile requiring both options and futures. The comparator returns Schwab and Interactive Brokers as the fits; TradeStation would sit in that same multi-asset bracket, gated by the funded-account requirement rather than a free tier. The verified output block at the foot of the page is computed live from the shipped engine bundle.
Decision guidance
- You already have a funded TradeStation account: request a WebAPI key by email; you get stocks, options, and futures under one API.
- You want instant, free API access without funding first: Alpaca's API-key model is faster to start; TradeStation requires a funded account.
- You need multi-asset (options + futures): TradeStation, Schwab, and IBKR are the bracket; pick on existing account, commissions, and auth complexity.
- High-throughput data consumer: use TradeStation's streaming endpoints (500 / 5 min) rather than polling the 30/min snapshot endpoint.
Related in this series
- Choosing a Broker API 2026: the broker decision framework.
- Interactive Brokers API Pricing and Rate Limits 2026: the other multi-asset option.
- Charles Schwab Trader API Status 2026: the third multi-asset broker.
- Broker APIs Compared 2026: the AI-agent lens across brokers.
Connects to
- Broker API Comparator: the engine behind this page's comparison.
- Finance MCP Directory: MCP-server availability per broker.
- Trading System Blueprinter: where a broker API slots into a full stack.
References
- TradeStation. "API FAQ." api.tradestation.com/docs/faq, verified 2026-05-25 (funded-account requirement, stocks/options/futures, HTTP streaming).
- TradeStation. "Rate Limiting Overview." api.tradestation.com/docs/fundamentals/rate-limiting, verified 2026-05-25 (per-category quotas, 429 on exceed).
Verified engine output
Show the recompute-verified inputs and outputs
| require_options | true |
|---|---|
| require_futures | true |
| require_crypto | false |
| require_mcp | false |
| require_free_tier | false |
| max_auth_complexity | 5 |
| filters › require options | true |
|---|---|
| filters › require futures | true |
| filters › require crypto | false |
| filters › require mcp | false |
| filters › require free tier | false |
| filters › max auth complexity | 5 |
| results › row 1 › broker › id | schwab |
| results › row 1 › broker › name | Schwab |
| results › row 1 › broker › url | https://www.schwab.com/ |
| results › row 1 › broker › docs url | https://developer.schwab.com/ |
| results › row 1 › broker › auth | OAuth 2.0 (3-legged) |
| results › row 1 › broker › auth complexity | 4 |
| results › row 1 › broker › order types (9 items) | [...] |
| results › row 1 › broker › rate limits | 120 req/min per endpoint (published tier) |
| results › row 1 › broker › market data › row 1 | Real-time equities + options quotes |
| results › row 1 › broker › market data › row 2 | Historical bars (1m to daily) |
| results › row 1 › broker › market data › row 3 | No exchange depth via API |
| results › row 1 › broker › mcp | none |
| results › row 1 › broker › mcp note | No official or listed community MCP server |
| results › row 1 › broker › assets › stocks | true |
| results › row 1 › broker › assets › options | true |
| results › row 1 › broker › assets › futures | true |
| results › row 1 › broker › assets › crypto | false |
| results › row 1 › broker › assets › forex | true |
| results › row 1 › broker › assets › bonds | true |
| results › row 1 › broker › account minimum | 0 |
| results › row 1 › broker › commission | $0 equities, $0.65/contract options |
| results › row 1 › broker › good for | Established retail, post-TDA API migration |
| results › row 1 › broker › has free tier | true |
| results › row 1 › broker › notes › row 1 | API rebuilt after TD Ameritrade integration; still maturing |
| results › row 1 › broker › notes › row 2 | Requires individual developer registration and app review |
| results › row 1 › broker › notes › row 3 | Token refresh flow is finicky vs Alpaca/Tradier |
| results › row 1 › score | 3 |
| results › row 1 › max score | 3 |
| results › row 1 › fits | true |
| results › row 2 › broker › id | ibkr |
| results › row 2 › broker › name | Interactive Brokers |
| results › row 2 › broker › url | https://www.interactivebrokers.com/ |
| results › row 2 › broker › docs url | https://www.interactivebrokers.com/en/trading/ib-api.php |
| results › row 2 › broker › auth | OAuth + TWS/IB Gateway |
| results › row 2 › broker › auth complexity | 5 |
| results › row 2 › broker › order types (10 items) | [...] |
| results › row 2 › broker › rate limits | ~50 msg/sec per connection; 50 orders/sec burst |
| results › row 2 › broker › market data › row 1 | Global equities via subscription bundles |
| results › row 2 › broker › market data › row 2 | Level-2 depth on most exchanges |
| results › row 2 › broker › market data › row 3 | Historical depth across asset classes |
| results › row 2 › broker › mcp | community |
| results › row 2 › broker › mcp note | Community CLI MCP; audit before production |
| results › row 2 › broker › assets › stocks | true |
| results › row 2 › broker › assets › options | true |
| results › row 2 › broker › assets › futures | true |
| results › row 2 › broker › assets › crypto | true |
| results › row 2 › broker › assets › forex | true |
| results › row 2 › broker › assets › bonds | true |
| results › row 2 › broker › account minimum | 0 |
| results › row 2 › broker › commission | Tiered per-share or fixed; ~$0.0035/sh tiered |
| results › row 2 › broker › good for | Multi-asset-class, international, scale |
| results › row 2 › broker › has free tier | false |
| results › row 2 › broker › notes › row 1 | Requires TWS or IB Gateway running locally |
| results › row 2 › broker › notes › row 2 | Idempotency via client-supplied orderId |
| results › row 2 › broker › notes › row 3 | Fully headless gateway is possible but under-documented |
| results › row 2 › score | 3 |
| results › row 2 › max score | 3 |
| results › row 2 › fits | true |
| results › row 3 › broker › id | alpaca |
| results › row 3 › broker › name | Alpaca |
| results › row 3 › broker › url | https://alpaca.markets/ |
| results › row 3 › broker › docs url | https://alpaca.markets/docs/ |
| results › row 3 › broker › auth | API Key + Secret |
| results › row 3 › broker › auth complexity | 1 |
| results › row 3 › broker › order types (10 items) | [...] |
| results › row 3 › broker › rate limits | 200 req/min (free), higher on paid tiers |
| results › row 3 › broker › market data › row 1 | IEX real-time (free) |
| results › row 3 › broker › market data › row 2 | Full SIP on Algo Trader Plus ($99/mo) |
| results › row 3 › broker › market data › row 3 | Historical bars + trades + quotes |
| results › row 3 › broker › mcp | official |
| results › row 3 › broker › mcp note | Official MCP V2, 61 actions, idempotent order submission |
| results › row 3 › broker › assets › stocks | true |
| results › row 3 › broker › assets › options | true |
| results › row 3 › broker › assets › futures | false |
| results › row 3 › broker › assets › crypto | true |
| results › row 3 › broker › assets › forex | false |
| results › row 3 › broker › assets › bonds | false |
| results › row 3 › broker › account minimum | 0 |
| results › row 3 › broker › commission | $0 (PFOF on equities) |
| results › row 3 › broker › good for | Solo AI operator, paper-to-live parity |
| results › row 3 › broker › has free tier | true |
| results › row 3 › broker › notes › row 1 | Free paper trading with same API surface as live |
| results › row 3 › broker › notes › row 2 | Options require Algo Trader Plus tier |
| results › row 3 › broker › notes › row 3 | Python/Go SDKs mature; rate-limit backoff documented |
| results › row 3 › score | 2 |
| results › row 3 › max score | 3 |
| results › row 3 › fits | false |
| results › row 3 › fail reasons › row 1 | Futures |
| results › row 4 › broker › id | tradier |
| results › row 4 › broker › name | Tradier |
| results › row 4 › broker › url | https://tradier.com/ |
| results › row 4 › broker › docs url | https://developer.tradier.com/ |
| results › row 4 › broker › auth | OAuth 2.0 |
| results › row 4 › broker › auth complexity | 3 |
| results › row 4 › broker › order types (8 items) | [...] |
| results › row 4 › broker › rate limits | 120 req/min market data, 60 req/min trading |
| results › row 4 › broker › market data › row 1 | Real-time equities + options (streaming) |
| results › row 4 › broker › market data › row 2 | Historical OHLC back ~5 years |
| results › row 4 › broker › market data › row 3 | No Level-2 depth |
| results › row 4 › broker › mcp | community |
| results › row 4 › broker › mcp note | Community MCP; idempotency is a manual patch |
| results › row 4 › broker › assets › stocks | true |
| results › row 4 › broker › assets › options | true |
| results › row 4 › broker › assets › futures | false |
| results › row 4 › broker › assets › crypto | false |
| results › row 4 › broker › assets › forex | false |
| results › row 4 › broker › assets › bonds | false |
| results › row 4 › broker › account minimum | 0 |
| results › row 4 › broker › commission | $0 equities (PFOF), $0.35/contract options Pro |
| results › row 4 › broker › good for | Options-first retail, multi-leg strategies |
| results › row 4 › broker › has free tier | true |
| results › row 4 › broker › notes › row 1 | Free sandbox with delayed data |
| results › row 4 › broker › notes › row 2 | Strong options chain + multi-leg order API |
| results › row 4 › broker › notes › row 3 | US-only account eligibility |
| results › row 4 › score | 2 |
| results › row 4 › max score | 3 |
| results › row 4 › fits | false |
| results › row 4 › fail reasons › row 1 | Futures |
| results › row 5 › broker › id | robinhood |
| results › row 5 › broker › name | Robinhood |
| results › row 5 › broker › url | https://robinhood.com/ |
| results › row 5 › broker › docs url | https://docs.robinhood.com/ |
| results › row 5 › broker › auth | OAuth 2.0 (unofficial endpoints) |
| results › row 5 › broker › auth complexity | 4 |
| results › row 5 › broker › order types › row 1 | market |
| results › row 5 › broker › order types › row 2 | limit |
| results › row 5 › broker › order types › row 3 | stop |
| results › row 5 › broker › order types › row 4 | stop-limit |
| results › row 5 › broker › order types › row 5 | gtc |
| results › row 5 › broker › order types › row 6 | ioc |
| results › row 5 › broker › rate limits | Not publicly documented; low throughput |
| results › row 5 › broker › market data › row 1 | Delayed quotes in public tier |
| results › row 5 › broker › market data › row 2 | Limited historical depth |
| results › row 5 › broker › market data › row 3 | No public Level-2 |
| results › row 5 › broker › mcp | none |
| results › row 5 › broker › mcp note | No MCP; unofficial SDKs only |
| results › row 5 › broker › assets › stocks | true |
| results › row 5 › broker › assets › options | true |
| results › row 5 › broker › assets › futures | false |
| results › row 5 › broker › assets › crypto | true |
| results › row 5 › broker › assets › forex | false |
| results › row 5 › broker › assets › bonds | false |
| results › row 5 › broker › account minimum | 0 |
| results › row 5 › broker › commission | $0 (PFOF), $5/mo Gold for margin + extras |
| results › row 5 › broker › good for | Casual retail; not recommended for agents |
| results › row 5 › broker › has free tier | true |
| results › row 5 › broker › notes › row 1 | No officially supported public API in 2026 |
| results › row 5 › broker › notes › row 2 | Community SDKs break on auth changes without notice |
| results › row 5 › broker › notes › row 3 | Paper trading unavailable |
| results › row 5 › score | 2 |
| results › row 5 › max score | 3 |
| results › row 5 › fits | false |
| results › row 5 › fail reasons › row 1 | Futures |
| fitting brokers › row 1 › broker › id | schwab |
| fitting brokers › row 1 › broker › name | Schwab |
| fitting brokers › row 1 › broker › url | https://www.schwab.com/ |
| fitting brokers › row 1 › broker › docs url | https://developer.schwab.com/ |
| fitting brokers › row 1 › broker › auth | OAuth 2.0 (3-legged) |
| fitting brokers › row 1 › broker › auth complexity | 4 |
| fitting brokers › row 1 › broker › order types (9 items) | [...] |
| fitting brokers › row 1 › broker › rate limits | 120 req/min per endpoint (published tier) |
| fitting brokers › row 1 › broker › market data › row 1 | Real-time equities + options quotes |
| fitting brokers › row 1 › broker › market data › row 2 | Historical bars (1m to daily) |
| fitting brokers › row 1 › broker › market data › row 3 | No exchange depth via API |
| fitting brokers › row 1 › broker › mcp | none |
| fitting brokers › row 1 › broker › mcp note | No official or listed community MCP server |
| fitting brokers › row 1 › broker › assets › stocks | true |
| fitting brokers › row 1 › broker › assets › options | true |
| fitting brokers › row 1 › broker › assets › futures | true |
| fitting brokers › row 1 › broker › assets › crypto | false |
| fitting brokers › row 1 › broker › assets › forex | true |
| fitting brokers › row 1 › broker › assets › bonds | true |
| fitting brokers › row 1 › broker › account minimum | 0 |
| fitting brokers › row 1 › broker › commission | $0 equities, $0.65/contract options |
| fitting brokers › row 1 › broker › good for | Established retail, post-TDA API migration |
| fitting brokers › row 1 › broker › has free tier | true |
| fitting brokers › row 1 › broker › notes › row 1 | API rebuilt after TD Ameritrade integration; still maturing |
| fitting brokers › row 1 › broker › notes › row 2 | Requires individual developer registration and app review |
| fitting brokers › row 1 › broker › notes › row 3 | Token refresh flow is finicky vs Alpaca/Tradier |
| fitting brokers › row 1 › score | 3 |
| fitting brokers › row 1 › max score | 3 |
| fitting brokers › row 1 › fits | true |
| fitting brokers › row 2 › broker › id | ibkr |
| fitting brokers › row 2 › broker › name | Interactive Brokers |
| fitting brokers › row 2 › broker › url | https://www.interactivebrokers.com/ |
| fitting brokers › row 2 › broker › docs url | https://www.interactivebrokers.com/en/trading/ib-api.php |
| fitting brokers › row 2 › broker › auth | OAuth + TWS/IB Gateway |
| fitting brokers › row 2 › broker › auth complexity | 5 |
| fitting brokers › row 2 › broker › order types (10 items) | [...] |
| fitting brokers › row 2 › broker › rate limits | ~50 msg/sec per connection; 50 orders/sec burst |
| fitting brokers › row 2 › broker › market data › row 1 | Global equities via subscription bundles |
| fitting brokers › row 2 › broker › market data › row 2 | Level-2 depth on most exchanges |
| fitting brokers › row 2 › broker › market data › row 3 | Historical depth across asset classes |
| fitting brokers › row 2 › broker › mcp | community |
| fitting brokers › row 2 › broker › mcp note | Community CLI MCP; audit before production |
| fitting brokers › row 2 › broker › assets › stocks | true |
| fitting brokers › row 2 › broker › assets › options | true |
| fitting brokers › row 2 › broker › assets › futures | true |
| fitting brokers › row 2 › broker › assets › crypto | true |
| fitting brokers › row 2 › broker › assets › forex | true |
| fitting brokers › row 2 › broker › assets › bonds | true |
| fitting brokers › row 2 › broker › account minimum | 0 |
| fitting brokers › row 2 › broker › commission | Tiered per-share or fixed; ~$0.0035/sh tiered |
| fitting brokers › row 2 › broker › good for | Multi-asset-class, international, scale |
| fitting brokers › row 2 › broker › has free tier | false |
| fitting brokers › row 2 › broker › notes › row 1 | Requires TWS or IB Gateway running locally |
| fitting brokers › row 2 › broker › notes › row 2 | Idempotency via client-supplied orderId |
| fitting brokers › row 2 › broker › notes › row 3 | Fully headless gateway is possible but under-documented |
| fitting brokers › row 2 › score | 3 |
| fitting brokers › row 2 › max score | 3 |
| fitting brokers › row 2 › fits | true |
Computed live at build time.
Frequently asked questions
- What are the requirements to use the TradeStation API?
- A funded TradeStation account, then an email to [email protected] to obtain a WebAPI key. There is no instant self-serve key issuance (verified 2026-05-25).
- Is the TradeStation API free?
- Not publicly documented. The docs describe how to get a key (funded account plus email) but do not state a separate API fee or confirm it is free with a funded account.
- What are the TradeStation API rate limits?
- Per resource category: 250 requests / 5 minutes on account endpoints, 90 / minute per option endpoint, 30 / minute on quote snapshots, 500 / 5 minutes on streams. Exceeding any returns HTTP 429.
- Does TradeStation support options and futures via API?
- Yes. The WebAPI (v3) covers stocks, options, and futures, with HTTP Streaming for live data.