TradeStation and Alpaca are both REST broker APIs a retail AI trader can build on, but they gate access in opposite ways: Alpaca issues an API key instantly with a free paper-trading tier and a flat 200 requests/minute, while TradeStation requires a funded account plus an email to [email protected] to obtain a WebAPI key and publishes granular per-category limits (30 quote-snapshot requests/minute, 90 per option endpoint/minute, 250 requests/5 minutes on account endpoints), both verified 2026-05-25. Alpaca wins on instant, free onboarding and US-equities simplicity; TradeStation wins on native stocks-options-futures multi-asset coverage under one API. Compare the broader field in the Broker API Comparator.
TL;DR
| Dimension | TradeStation WebAPI | Alpaca |
|---|---|---|
| Access | funded account + email request for key | instant API key, free paper tier |
| Rate limits | per category (30/min snapshots, 90/min options, 250/5min accounts) | flat 200 requests/minute |
| API fee | not publicly documented | $0 |
| Free tier | no documented free tier | yes (free paper, same API surface) |
| Assets | stocks, options, futures | stocks, options, crypto |
| Streaming | HTTP Streaming | WebSocket |
| Auth | WebAPI key (funded-account gate) | API Key + Secret |
TradeStation and Alpaca figures verified 2026-05-25 against each vendor's official documentation. The comparator-fit block at the foot is computed live from the shipped engine bundle.
Onboarding: instant key vs funded-account gate
This is the starkest difference. Alpaca issues an API key on signup with a free paper-trading environment that mirrors the live API surface, so you can build and test before funding anything (verified 2026-05-25). TradeStation's official FAQ is explicit: to get a WebAPI key you must hold a TradeStation account, and a funded account holder emails [email protected] to obtain a key (verified 2026-05-25). There is no instant self-serve key and no documented free tier.
For prototyping or a low-commitment build, Alpaca's instant free path is a clear advantage. TradeStation expects you to be a funded customer first.
Rate limits: flat vs per-category
Alpaca uses a single flat ceiling: 200 requests/minute per account on the trading API, HTTP 429 on exceed (verified 2026-05-25). One number to budget against.
TradeStation publishes granular per-resource-category limits (verified 2026-05-25), with HTTP 429 on exceed: account, order-details, balances, and positions endpoints at 250 requests/5 minutes; quote-change/barchart/tickbar streams at 500/5 minutes; each option endpoint at 90/minute; quote snapshots at 30/minute; MarketDepth streams at 30/minute. Concurrent-connection caps also apply per stream type. The 30/minute quote-snapshot cap and 90/minute option-endpoint cap are the ones most likely to bite a polling agent; TradeStation steers high-throughput consumers toward its streaming endpoints.
Alpaca's single 200/minute is simpler to reason about; TradeStation's per-category model gives finer control but more to track.
Cost and what is not documented
Alpaca charges no API fee and is commission-free on US equities via PFOF (verified 2026-05-25). TradeStation's WebAPI is not separately priced on its public docs: the documentation describes how to obtain a key (funded account + email) but does not state a separate API subscription fee, so whether the API is free with a funded account is not publicly documented (verified 2026-05-25). Do not assume either way without confirming directly with TradeStation.
Asset coverage
TradeStation's WebAPI (v3) covers stocks, options, and futures with HTTP Streaming for live data, putting it in the multi-asset tier alongside Schwab and IBKR (verified 2026-05-25). Alpaca covers US stocks, options, and crypto, but not futures (verified 2026-05-25). So for an agent that specifically needs futures under the same broker API, TradeStation has the coverage Alpaca lacks; for US equities, options, and crypto, Alpaca's simpler onboarding wins.
How to choose
- Prototyping, want a free instant key: Alpaca (free paper tier, same API surface as live).
- Need stocks-options-futures under one broker API: TradeStation (multi-asset WebAPI v3).
- Want a single flat rate limit: Alpaca (200/min).
- Already a funded TradeStation customer: TradeStation, accepting the email-request key gate.
- US-equities/options/crypto only: Alpaca; it covers the common ground with the lightest onboarding.
The decision reduces to "do I need TradeStation's futures coverage and accept the funded-account-plus-email gate, or is Alpaca's instant free key and US-equities simplicity enough."
Connects to
- TradeStation API Pricing 2026: the TradeStation spec page.
- Alpaca API Rate Limits 2026: the Alpaca spec page.
- Alpaca vs Tradier API 2026: Alpaca against the options-first alternative.
- Broker API Comparator: the full broker field on auth, options, futures, and free tier.
References
- TradeStation. "API documentation / FAQ; funded-account + email key request, per-category rate limits (250/5min accounts, 90/min options, 30/min quote snapshots), HTTP Streaming, stocks/options/futures." verified 2026-05-25. https://api.tradestation.com/docs/
- Alpaca. "Usage limit for API calls" and "About Market Data API; 200 req/min trading, free paper tier, $0 API fee, stocks/options/crypto." verified 2026-05-25. https://alpaca.markets/support/usage-limit-api-calls
Verified engine output
Show the recompute-verified inputs and outputs
| require_options | false |
|---|---|
| require_futures | false |
| require_crypto | false |
| require_mcp | false |
| require_free_tier | true |
| max_auth_complexity | 1 |
| filters › require options | false |
|---|---|
| filters › require futures | false |
| filters › require crypto | false |
| filters › require mcp | false |
| filters › require free tier | true |
| filters › max auth complexity | 1 |
| results › row 1 › broker › id | alpaca |
| results › row 1 › broker › name | Alpaca |
| results › row 1 › broker › url | https://alpaca.markets/ |
| results › row 1 › broker › docs url | https://alpaca.markets/docs/ |
| results › row 1 › broker › auth | API Key + Secret |
| results › row 1 › broker › auth complexity | 1 |
| results › row 1 › broker › order types (10 items) | [...] |
| results › row 1 › broker › rate limits | 200 req/min (free), higher on paid tiers |
| results › row 1 › broker › market data › row 1 | IEX real-time (free) |
| results › row 1 › broker › market data › row 2 | Full SIP on Algo Trader Plus ($99/mo) |
| results › row 1 › broker › market data › row 3 | Historical bars + trades + quotes |
| results › row 1 › broker › mcp | official |
| results › row 1 › broker › mcp note | Official MCP V2, 61 actions, idempotent order submission |
| results › row 1 › broker › assets › stocks | true |
| results › row 1 › broker › assets › options | true |
| results › row 1 › broker › assets › futures | false |
| results › row 1 › broker › assets › crypto | true |
| results › row 1 › broker › assets › forex | false |
| results › row 1 › broker › assets › bonds | false |
| results › row 1 › broker › account minimum | 0 |
| results › row 1 › broker › commission | $0 (PFOF on equities) |
| results › row 1 › broker › good for | Solo AI operator, paper-to-live parity |
| results › row 1 › broker › has free tier | true |
| results › row 1 › broker › notes › row 1 | Free paper trading with same API surface as live |
| results › row 1 › broker › notes › row 2 | Options require Algo Trader Plus tier |
| results › row 1 › broker › notes › row 3 | Python/Go SDKs mature; rate-limit backoff documented |
| results › row 1 › score | 2 |
| results › row 1 › max score | 2 |
| results › row 1 › fits | true |
| results › row 2 › broker › id | tradier |
| results › row 2 › broker › name | Tradier |
| results › row 2 › broker › url | https://tradier.com/ |
| results › row 2 › broker › docs url | https://developer.tradier.com/ |
| results › row 2 › broker › auth | OAuth 2.0 |
| results › row 2 › broker › auth complexity | 3 |
| results › row 2 › broker › order types (8 items) | [...] |
| results › row 2 › broker › rate limits | 120 req/min market data, 60 req/min trading |
| results › row 2 › broker › market data › row 1 | Real-time equities + options (streaming) |
| results › row 2 › broker › market data › row 2 | Historical OHLC back ~5 years |
| results › row 2 › broker › market data › row 3 | No Level-2 depth |
| results › row 2 › broker › mcp | community |
| results › row 2 › broker › mcp note | Community MCP; idempotency is a manual patch |
| results › row 2 › broker › assets › stocks | true |
| results › row 2 › broker › assets › options | true |
| results › row 2 › broker › assets › futures | false |
| results › row 2 › broker › assets › crypto | false |
| results › row 2 › broker › assets › forex | false |
| results › row 2 › broker › assets › bonds | false |
| results › row 2 › broker › account minimum | 0 |
| results › row 2 › broker › commission | $0 equities (PFOF), $0.35/contract options Pro |
| results › row 2 › broker › good for | Options-first retail, multi-leg strategies |
| results › row 2 › broker › has free tier | true |
| results › row 2 › broker › notes › row 1 | Free sandbox with delayed data |
| results › row 2 › broker › notes › row 2 | Strong options chain + multi-leg order API |
| results › row 2 › broker › notes › row 3 | US-only account eligibility |
| results › row 2 › score | 1 |
| results › row 2 › max score | 2 |
| results › row 2 › fits | false |
| results › row 2 › fail reasons › row 1 | Auth ≤ 1 |
| results › row 3 › broker › id | schwab |
| results › row 3 › broker › name | Schwab |
| results › row 3 › broker › url | https://www.schwab.com/ |
| results › row 3 › broker › docs url | https://developer.schwab.com/ |
| results › row 3 › broker › auth | OAuth 2.0 (3-legged) |
| results › row 3 › broker › auth complexity | 4 |
| results › row 3 › broker › order types (9 items) | [...] |
| results › row 3 › broker › rate limits | 120 req/min per endpoint (published tier) |
| results › row 3 › broker › market data › row 1 | Real-time equities + options quotes |
| results › row 3 › broker › market data › row 2 | Historical bars (1m to daily) |
| results › row 3 › broker › market data › row 3 | No exchange depth via API |
| results › row 3 › broker › mcp | none |
| results › row 3 › broker › mcp note | No official or listed community MCP server |
| results › row 3 › broker › assets › stocks | true |
| results › row 3 › broker › assets › options | true |
| results › row 3 › broker › assets › futures | true |
| results › row 3 › broker › assets › crypto | false |
| results › row 3 › broker › assets › forex | true |
| results › row 3 › broker › assets › bonds | true |
| results › row 3 › broker › account minimum | 0 |
| results › row 3 › broker › commission | $0 equities, $0.65/contract options |
| results › row 3 › broker › good for | Established retail, post-TDA API migration |
| results › row 3 › broker › has free tier | true |
| results › row 3 › broker › notes › row 1 | API rebuilt after TD Ameritrade integration; still maturing |
| results › row 3 › broker › notes › row 2 | Requires individual developer registration and app review |
| results › row 3 › broker › notes › row 3 | Token refresh flow is finicky vs Alpaca/Tradier |
| results › row 3 › score | 1 |
| results › row 3 › max score | 2 |
| results › row 3 › fits | false |
| results › row 3 › fail reasons › row 1 | Auth ≤ 1 |
| results › row 4 › broker › id | robinhood |
| results › row 4 › broker › name | Robinhood |
| results › row 4 › broker › url | https://robinhood.com/ |
| results › row 4 › broker › docs url | https://docs.robinhood.com/ |
| results › row 4 › broker › auth | OAuth 2.0 (unofficial endpoints) |
| results › row 4 › broker › auth complexity | 4 |
| results › row 4 › broker › order types › row 1 | market |
| results › row 4 › broker › order types › row 2 | limit |
| results › row 4 › broker › order types › row 3 | stop |
| results › row 4 › broker › order types › row 4 | stop-limit |
| results › row 4 › broker › order types › row 5 | gtc |
| results › row 4 › broker › order types › row 6 | ioc |
| results › row 4 › broker › rate limits | Not publicly documented; low throughput |
| results › row 4 › broker › market data › row 1 | Delayed quotes in public tier |
| results › row 4 › broker › market data › row 2 | Limited historical depth |
| results › row 4 › broker › market data › row 3 | No public Level-2 |
| results › row 4 › broker › mcp | none |
| results › row 4 › broker › mcp note | No MCP; unofficial SDKs only |
| 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 | true |
| 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 (PFOF), $5/mo Gold for margin + extras |
| results › row 4 › broker › good for | Casual retail; not recommended for agents |
| results › row 4 › broker › has free tier | true |
| results › row 4 › broker › notes › row 1 | No officially supported public API in 2026 |
| results › row 4 › broker › notes › row 2 | Community SDKs break on auth changes without notice |
| results › row 4 › broker › notes › row 3 | Paper trading unavailable |
| results › row 4 › score | 1 |
| results › row 4 › max score | 2 |
| results › row 4 › fits | false |
| results › row 4 › fail reasons › row 1 | Auth ≤ 1 |
| results › row 5 › broker › id | ibkr |
| results › row 5 › broker › name | Interactive Brokers |
| results › row 5 › broker › url | https://www.interactivebrokers.com/ |
| results › row 5 › broker › docs url | https://www.interactivebrokers.com/en/trading/ib-api.php |
| results › row 5 › broker › auth | OAuth + TWS/IB Gateway |
| results › row 5 › broker › auth complexity | 5 |
| results › row 5 › broker › order types (10 items) | [...] |
| results › row 5 › broker › rate limits | ~50 msg/sec per connection; 50 orders/sec burst |
| results › row 5 › broker › market data › row 1 | Global equities via subscription bundles |
| results › row 5 › broker › market data › row 2 | Level-2 depth on most exchanges |
| results › row 5 › broker › market data › row 3 | Historical depth across asset classes |
| results › row 5 › broker › mcp | community |
| results › row 5 › broker › mcp note | Community CLI MCP; audit before production |
| results › row 5 › broker › assets › stocks | true |
| results › row 5 › broker › assets › options | true |
| results › row 5 › broker › assets › futures | true |
| results › row 5 › broker › assets › crypto | true |
| results › row 5 › broker › assets › forex | true |
| results › row 5 › broker › assets › bonds | true |
| results › row 5 › broker › account minimum | 0 |
| results › row 5 › broker › commission | Tiered per-share or fixed; ~$0.0035/sh tiered |
| results › row 5 › broker › good for | Multi-asset-class, international, scale |
| results › row 5 › broker › has free tier | false |
| results › row 5 › broker › notes › row 1 | Requires TWS or IB Gateway running locally |
| results › row 5 › broker › notes › row 2 | Idempotency via client-supplied orderId |
| results › row 5 › broker › notes › row 3 | Fully headless gateway is possible but under-documented |
| results › row 5 › score | 0 |
| results › row 5 › max score | 2 |
| results › row 5 › fits | false |
| results › row 5 › fail reasons › row 1 | Free tier |
| results › row 5 › fail reasons › row 2 | Auth ≤ 1 |
| fitting brokers › row 1 › broker › id | alpaca |
| fitting brokers › row 1 › broker › name | Alpaca |
| fitting brokers › row 1 › broker › url | https://alpaca.markets/ |
| fitting brokers › row 1 › broker › docs url | https://alpaca.markets/docs/ |
| fitting brokers › row 1 › broker › auth | API Key + Secret |
| fitting brokers › row 1 › broker › auth complexity | 1 |
| fitting brokers › row 1 › broker › order types (10 items) | [...] |
| fitting brokers › row 1 › broker › rate limits | 200 req/min (free), higher on paid tiers |
| fitting brokers › row 1 › broker › market data › row 1 | IEX real-time (free) |
| fitting brokers › row 1 › broker › market data › row 2 | Full SIP on Algo Trader Plus ($99/mo) |
| fitting brokers › row 1 › broker › market data › row 3 | Historical bars + trades + quotes |
| fitting brokers › row 1 › broker › mcp | official |
| fitting brokers › row 1 › broker › mcp note | Official MCP V2, 61 actions, idempotent order submission |
| fitting brokers › row 1 › broker › assets › stocks | true |
| fitting brokers › row 1 › broker › assets › options | true |
| fitting brokers › row 1 › broker › assets › futures | false |
| fitting brokers › row 1 › broker › assets › crypto | true |
| fitting brokers › row 1 › broker › assets › forex | false |
| fitting brokers › row 1 › broker › assets › bonds | false |
| fitting brokers › row 1 › broker › account minimum | 0 |
| fitting brokers › row 1 › broker › commission | $0 (PFOF on equities) |
| fitting brokers › row 1 › broker › good for | Solo AI operator, paper-to-live parity |
| fitting brokers › row 1 › broker › has free tier | true |
| fitting brokers › row 1 › broker › notes › row 1 | Free paper trading with same API surface as live |
| fitting brokers › row 1 › broker › notes › row 2 | Options require Algo Trader Plus tier |
| fitting brokers › row 1 › broker › notes › row 3 | Python/Go SDKs mature; rate-limit backoff documented |
| fitting brokers › row 1 › score | 2 |
| fitting brokers › row 1 › max score | 2 |
| fitting brokers › row 1 › fits | true |
Computed live at build time.
Frequently asked questions
- TradeStation vs Alpaca: which is easier to onboard?
- Alpaca. It issues an API key instantly with a free paper-trading tier that mirrors the live API. TradeStation requires a funded account and an email to [email protected] to obtain a WebAPI key, with no documented free tier (verified 2026-05-25).
- What are the TradeStation and Alpaca rate limits?
- Alpaca uses a flat 200 requests/minute per account. TradeStation publishes per-category limits: 30 quote-snapshot requests/minute, 90 per option endpoint/minute, 250 requests/5 minutes on account endpoints, with HTTP 429 on exceed (verified 2026-05-25).
- Is the TradeStation API free?
- Not publicly documented. The docs describe obtaining a key (funded account + email) but do not state a separate API fee, so whether it is free with a funded account is not stated. Alpaca's API is free (verified 2026-05-25).
- Which covers futures, TradeStation or Alpaca?
- TradeStation. Its WebAPI v3 covers stocks, options, and futures. Alpaca covers stocks, options, and crypto, but not futures (verified 2026-05-25).