Paper first. Not financial advice.

Can an AI agent trade through the Tradier API?

preview=true on the place-order call validates the order without submitting it. A script sends that call with a bearer token to the production host or the sandbox host. Tradier also publishes an MCP server that includes order tools. Use the sandbox host before a live token. Checked 2026-10-20.

Checked on 2026-10-20. No business relationship with Tradier.

Paper first. Not financial advice.

How should an agent preview, place, and confirm a Tradier order?

Send the same order with preview=true, and send it again with preview=false only after the preview returns result true. A 200 on the place call means the order was received, not filled. Read the order back with the order-status call and confirm it is open, partially filled, or filled rather than rejected or canceled.

The trading guide says each trading request sends Authorization: Bearer <YOUR_TOKEN>, Accept: application/json, and Content-Type: application/x-www-form-urlencoded. The production base URL on that page is https://api.tradier.com/v1. The sandbox base URL is https://sandbox.tradier.com/v1. The account id comes from the user profile endpoint. The FAQ says a personal token from https://web.tradier.com/user/api does not expire. It says partner OAuth tokens expire in 24 hours, and that OAuth is not enabled for a brokerage user's personal API access.

Order class on the trading guide: equity, option, multileg, combo, oto, oco, otoco. Equity type: market, limit, stop, stop_limit. Duration: day, gtc, pre, post. Multileg type on that page: market, debit, credit, even. Equity side: buy, sell, sell_short, buy_to_cover. Option side: buy_to_open, sell_to_open, buy_to_close, sell_to_close. The FAQ says Tradier supports US-based equities and options data only, including US-based ETFs.

The place-order schema says preview true "validates the order without submitting it", and it lists preview as required. The trading guide place examples omit preview. Its workflow is: preview with preview=true; if result is true, submit the same payload with preview=false; then poll GET /v1/accounts/{account_id}/orders/{order_id}. A 200 on submit means the API call was correct and the order was received. The order can still be rejected. Status values on that page: pending, open, partially_filled, filled, expired, canceled, rejected, pending_cancel. The same page says a cancel that returns 200 should be followed by a status check for canceled, and that only an open or pending order can be changed.

This is the preview request printed on the trading guide. The account id is the sample on that page.

curl -X POST "https://api.tradier.com/v1/accounts/6YA00001/orders" \
  -H "Authorization: Bearer <YOUR_TOKEN>" \
  -H "Accept: application/json" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "class=equity&symbol=AAPL&side=buy&quantity=10&type=market&duration=day&preview=true"

The sample response on that page includes "status": "ok" and "result": true. Use it as the sample shape. Do not reuse the sample prices.

Tradier also documents streaming. HTTP streaming uses https://stream.tradier.com and says you have up to 5 minutes to connect after the session id is issued. The streaming overview says a stream of very inactive symbols closes after 15 minutes with no data, and that the client should implement reconnection logic. Account streaming returns an order event when an order is received and when the status changes. The FAQ says there is no delayed streaming endpoint for paper trading.

The MCP docs list order tools: place_equity_order, place_option_order, place_multileg_option_order, place_oco_order, place_oto_order, place_otoco_order, and cancel_order. Paper on that page is the paper token with PAPER_TRADING true. Live is the production token with PAPER_TRADING false. The server URL written there is https://mcp.tradier.com/mcp. The ChatGPT and Claude web steps put the API key in the query string. The Claude Code, Gemini CLI, and Cursor steps send API_KEY and PAPER_TRADING as headers. The develop page is Tradier's page for that same server. Do not paste a token into the chat.

Does Tradier have a paper trading sandbox?

Yes. Tradier says brokerage account holders can create a paper account from the web UI, or call any endpoint on the sandbox host. Sandbox market data is delayed 15 minutes. There is no delayed streaming endpoint for paper trading. In production, index data is also delayed 15 minutes.

The FAQ says all brokerage account holders can create a paper trading account from the web UI account drop-down, or by calling any endpoint with the sandbox.tradier.com/v1 prefix. It says sandbox market data is delayed the industry-standard 15 minutes. It says production index data is also delayed 15 minutes. It says Tradier does not offer a delayed streaming endpoint for paper trading. The trading guide says the sandbox supports the full trading API with paper money and delayed market data, and to test order logic there before live.

What are Tradier API rate limits?

Each limit is per access token, aggregated over one minute from the first request. Production allows 120 a minute for standard and market-data calls, and 60 for trading calls. Sandbox allows 60 a minute in each group. Standard calls exclude placing an order. Tradier says it most likely will not raise a limit.

The rate-limit page says each limit is enforced by the minute, per access token. It says the window aggregates over 1-minute intervals starting with the first request and resets "1 minute late".

BucketWhat it countsProductionSandbox
Standard/accounts, /watchlists, /users, and /orders. This does not include placing orders.120 requests per minute60 requests per minute
Market data/markets120 requests per minute60 requests per minute
TradingResources in the trade scope.60 requests per minute60 requests per minute

Those three rows are the rate-limit page. On each limited response that page returns X-Ratelimit-Allowed, X-Ratelimit-Used, X-Ratelimit-Available, and X-Ratelimit-Expiry. Those headers show remaining requests and when the window ends. The same page names the streaming API as the alternative to polling quotes. The FAQ answers "Will you increase the rate-limits for my application?" with "Most likely not."

Which extended-hours orders will Tradier reject?

The getting-started page sets pre at 7:00 a.m. to 9:24 a.m. ET and post at 4:00 p.m. to 7:55 p.m. ET. Only equity limit orders are allowed. They expire when that session ends, and you cannot place them outside the window. An OTO first leg cannot be a market order.

Three Tradier pages name the pre and post windows, and they do not use the same post-close string.

The getting-started page and the reference page both list the same four limits: only equity orders are permitted; the order type must be limit; orders placed in the session expire at the end of the session; you cannot place a pre or post order outside the session window.

The trading guide says an OTO first leg must be limit, stop, or stop_limit, not market. It says the second leg can be market, limit, stop, or stop_limit. The place-order schema lists OTO and OTOCO type[0] as limit, stop, or stop_limit. It lists OCO type[0] and type[1] as limit, stop, or stop_limit. The trading guide says the two OCO legs must use different type values. The OTOCO schema enum for type[1] includes market, while that field's description lists limit, stop, and stop_limit.

What should the agent stop and ask?

Stop if preview was skipped, if pre or post is not an equity limit, or if that order sits outside the session window. Stop if an OTO first leg is market, if a token would be pasted into chat, or if a 200 is treated as a fill. Then paste the order into the order check.

  1. Do not paste a bearer token, a paper token, or an API key into the chat.
  2. Do not send a production token to the sandbox host, or a sandbox token to the production host. The trading guide lists 401 as "Missing or invalid token, or toke/url mismatch."
  3. Do not skip preview=true unless the operator accepts a skip the trading guide already names. That page says preview is recommended and not required, and that algorithmic trading is a case where previewing first is unreasonable.
  4. Do not treat HTTP 200 on place or cancel as a fill or a finished cancel. Read the order status.
  5. Do not send duration pre or post unless the class is equity and the type is limit (getting started).
  6. Do not send a pre or post order outside the session window on those pages.
  7. Do not expect a pre or post order to remain working after that session ends.
  8. Do not set an OTO first leg to market (trading guide). The place-order schema lists the same limit, stop, or stop_limit set for OTO and OTOCO type[0].
  9. Do not treat sandbox quotes as live. The FAQ says they are delayed 15 minutes, and that paper trading has no delayed streaming endpoint.
  10. Do not apply the production 120-per-minute standard bucket to order placement or to the sandbox. That bucket does not include placing an order. The trading limit is 60 per minute (rate limits).
  11. Paste the order into the order check before a live send. The reject list is the guardrails guide. The kill switch sits outside the agent. The paper trading guide is the ladder before a live token.

Next step

The weekly broker note is the newsletter.

Free packs are on skills. The paid pack is the Desk Kit.

Questions people ask

Can an AI agent trade through the Tradier API?

preview=true on the place-order call validates the order without submitting it. A script sends that call with a bearer token to the production host or the sandbox host. Tradier also publishes an MCP server that includes order tools. Use the sandbox host before a live token. Checked 2026-10-20.

How should an agent preview, place, and confirm a Tradier order?

Send the same order with preview=true, and send it again with preview=false only after the preview returns result true. A 200 on the place call means the order was received, not filled. Read the order back with the order-status call and confirm it is open, partially filled, or filled rather than rejected or canceled.

Does Tradier have a paper trading sandbox?

Yes. Tradier says brokerage account holders can create a paper account from the web UI, or call any endpoint on the sandbox host. Sandbox market data is delayed 15 minutes. There is no delayed streaming endpoint for paper trading. In production, index data is also delayed 15 minutes.

What are Tradier API rate limits?

Each limit is per access token, aggregated over one minute from the first request. Production allows 120 a minute for standard and market-data calls, and 60 for trading calls. Sandbox allows 60 a minute in each group. Standard calls exclude placing an order. Tradier says it most likely will not raise a limit.

Which extended-hours orders will Tradier reject?

The getting-started page sets pre at 7:00 a.m. to 9:24 a.m. ET and post at 4:00 p.m. to 7:55 p.m. ET. Only equity limit orders are allowed. They expire when that session ends, and you cannot place them outside the window. An OTO first leg cannot be a market order.

What should the agent stop and ask?

Stop if preview was skipped, if pre or post is not an equity limit, or if that order sits outside the session window. Stop if an OTO first leg is market, if a token would be pasted into chat, or if a 200 is treated as a fill. Then paste the order into the order check.

Sources checked

Checked on 2026-10-20.

Educational only. Not financial advice.

All guides · How to stop a bad order · Kill switch · Paper trading · Agent Order Check · Free packs · Desk Kit · Newsletter · Broker connectors · This page as markdown

The paid set is the Grok Bot Desk Kit.