Tradovate API

Tradovate API 429 Too Many Requests Rate Limit

A wall of 429s stops every new order, modification, and cancellation at once. Here's what triggers Tradovate's rate limit, how to read the p-ticket recovery fields, and how to throttle traffic so it never fires.

Reviewed by the PickMyTrade Trading Systems Team Last updated
· 7 min read
Tradovate API 429 Too Many Requests error shown in a browser network console

When you're automating fast movers like ES or NQ through the Tradovate API, nothing kills a strategy quicker than a wall of 429: Too Many Requests responses. The moment your bot, copier, or TradingView-to-Tradovate bridge crosses Tradovate's request ceiling, everything stops at once, new orders, modifications, cancellations. Worse, a follow-on p-ticket time penalty or a p-captcha lockout can keep you sidelined far longer than the trade window you were chasing. It bites hardest on a volatile open, when one alert fans out across several accounts and each leg counts as its own request. Here's what the 429 actually means in 2026, why it fires, and how to throttle, queue, and recover, plus how PickMyTrade paces API traffic so your orders don't bounce in the first place.

Quick Checklist for the Tradovate 429 Rate Limit

  • Stop retrying immediately. Hammering the API during a lockout can extend the block instead of clearing it.
  • Read the p-time value. It tells you the exact number of seconds to wait before your next call.
  • Resend with the p-ticket. Include the returned token in your retry body so the request is accepted.
  • Throttle under the caps. Design against roughly 80 requests per minute and 5,000 per hour on a rolling window, and confirm the current numbers in Tradovate's API docs.
  • Queue order flow server-side. Space out modifications and multi-account fan-out instead of bursting.
  • Request a manual reset. If you're locked out, contact Tradovate Support with your username rather than retrying.

What “429: Too Many Requests” Means

The HTTP 429 Too Many Requests status is Tradovate telling you your application has sent more requests than its API will accept inside a given window. Tradovate throttles on a per-second, per-minute, and per-hour basis. The instant any one of those ceilings is reached, the server stops handling new commands and answers with a 429 until the window rolls forward.

There's an important wrinkle here: Tradovate's own developer FAQ states there is no fixed “hard cap.” The thresholds are deliberately variable and can tighten under load or for security reasons. A safe working ceiling to design against is roughly 80 requests per minute and 5,000 requests per hour on a rolling 60-minute window, but treat that as a moving target, not a promise. Because the exact limits change over time, always confirm against the current Tradovate API documentation.

The key thing to internalize: the limit is about request volume, not order volume. Logins, order placement, modifications, cancellations, and position-sync polling all count. Copy one TradingView alert to five accounts and that's five requests, so a strategy that looks modest on paper can burn through the ceiling fast when it's mirrored across accounts or leaning heavily on trailing stops.

Top Causes of the Tradovate 429 Rate Limit in 2026

1. Bursting past the per-minute or hourly ceiling

Firing a rapid cluster of calls, a batch of entries, targets, and stops back-to-back, is the classic trigger. And because the hourly cap runs on a rolling 60-minute window, one heavy burst can keep you throttled long after the activity itself has stopped.

2. Fan-out across multiple accounts (copy trading)

Copy trading multiplies every action. One alert copied to five accounts equals five requests, and a stop-and-target bracket on each account multiplies that again. High account counts are the single most common reason automated traders trip the limit.

3. Excessive order modifications and trailing stops

Trailing stops and frequent price tweaks generate a steady stream of modify requests per account. Run several of those in parallel and the per-minute ceiling shows up quickly.

4. Aggressive reconnection or polling loops

Bots that reconnect over and over, or poll for fills and positions on a tight timer, quietly eat your quota even when no orders are going out. Reconnecting in a loop after a failure is especially expensive.

5. Repeated failed logins triggering p-captcha

Too many failed authentication attempts can return a p-captcha flag, which means a third-party (non-browser) application can't complete the request. In practice that usually means waiting about an hour before trying again.

How to Fix the Tradovate 429 Rate Limit: Step-by-Step

Reading the p-ticket, p-time, and p-captcha response

When Tradovate throttles you, the response body carries the recovery instructions. Handle it in this order:

1

Check for p-time

Check for p-time, the time in seconds before you can make a request again. Wait that many seconds; don't retry sooner.

2

Resend with p-ticket

Resend the original request with p-ticket added as an extra field in the request body. The ticket is what tells Tradovate this retry is the sanctioned one.

3

Stop on p-captcha

If you instead see p-captcha, stop, a headless or third-party app can't solve it. Wait about an hour, then confirm your credentials are correct before authenticating again.

Tradovate API penalty response showing p-ticket and p-time fields in JSON

Throttling and queueing your requests

The durable fix is to stop bursting and pace the traffic:

1

Cap your outbound rate

Cap your outbound rate below the observed ceiling and add a small delay between calls so a spike never lands them all in the same second.

2

Queue and stagger multi-account fan-out

Queue order flow server-side and stagger multi-account fan-out so accounts are served in sequence rather than all at once.

3

Cut avoidable calls

Cut avoidable calls: reduce order modifications, trim trailing-stop churn, and consider an execution mode that converts working orders to market orders where it makes sense, fewer modify calls means fewer requests.

4

Replace polling with WebSocket updates

Replace tight polling loops with event-driven WebSocket updates so you're not spending quota just to watch for fills.

Tradovate copy-trading account list and order-routing settings used to stagger requests

Requesting a manual reset from Tradovate

If the block hangs on or a p-ticket penalty just won't clear, don't keep retrying, that can drag it out. Wait out the cooldown (often up to about 60 minutes for the rolling window to clear), then, if you're still locked out, contact Tradovate Support at 312-283-3100 or [email protected] with your username and ask for a manual API-limit reset. Support can lift the penalty when a cooldown alone won't.

Tradovate Support contact details for requesting an API rate-limit reset

Troubleshooting Table

Error / signal What it means Fix
429 Too Many RequestsYou exceeded the per-second, per-minute, or hourly request ceilingStop sending, wait for the rolling window, then throttle future traffic
p-ticket in responseA penalty token you must echo back on retryResend the original request with p-ticket in the body
p-time in responseSeconds to wait before the next request is allowedSleep for p-time seconds, then retry with the ticket
p-captcha in responseA third-party app can't complete the request (often after bad logins)Wait about an hour, verify credentials, then re-authenticate
Locked out for many minutesRepeated violations escalated into an extended penaltyWait out the cooldown; if still blocked, ask Tradovate Support for a manual reset
Limit tripped with few ordersCopy fan-out or modifications multiplied your request countStagger accounts, cut modifications, and queue order flow

Prevent This with PickMyTrade

PickMyTrade sits between your TradingView alerts and Tradovate, and it's built to respect the API's limits instead of fighting them:

  • Rate-Limit-Safe Routing, spaces out order flow so calls stay under the per-minute and hourly ceilings and never arrive in a single burst.
  • Server-Side Queueing, batches and staggers multi-account fan-out rather than firing every leg at once.
  • Smart Retry & Backoff, honors the p-time window and resends with the p-ticket automatically, so a throttle recovers without you touching anything.
  • Multi-Account Sync, mirrors the corrected order across accounts while keeping the total request count inside the limit.

Trade Rejection-Free

PickMyTrade paces and queues your order flow so it stays under Tradovate's rate limits, and handles the p-ticket retry automatically when a throttle does hit.

Start Your Free 5-Day Trial

Frequently Asked Questions

Sending more requests than Tradovate accepts in a given second, minute, or hour. Logins, order placement, modifications, cancellations, and polling all count toward the ceiling.

Tradovate documents its limits as variable with no fixed hard cap. A safe working target is about 80 requests per minute and 5,000 per hour on a rolling 60-minute window. Treat those as design targets and confirm against the current API docs.

It is a penalty token returned when you are throttled. Wait the p-time seconds provided, then resend your original request with the p-ticket value added to the request body.

It signals that a third-party (non-browser) application cannot complete the request, often after repeated failed logins. Stop retrying, wait roughly an hour, and re-check your credentials before trying again.

A first breach can block new requests for roughly 20 to 30 seconds, while an hourly-limit hit clears only as the rolling 60-minute window advances. Repeated violations can escalate into a longer penalty that needs a manual reset.

No. The limits are enforced by Tradovate and cannot be bypassed by PickMyTrade or any third party. A bridge can only pace and queue requests to stay under them, which is exactly what good routing does.

Copy trading and modifications multiply requests. One alert copied to five accounts is five requests, and each stop or target modification adds more, so a small strategy can exceed the cap when mirrored across accounts.

Wait out the cooldown first. If you are still blocked, contact Tradovate Support at 312-283-3100 or [email protected] with your username and request an API-limit reset, and stop retrying in the meantime, since that can prolong the block.

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. or Bookmap. 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 platform documentation before acting.