API Rate Limiting
Also known as: rate limit, request throttling, API quota, 429 Too Many Requests
What is it?
API rate limiting is the cap a broker or exchange puts on how many requests your program may send in a given window, and what happens when you exceed it - typically an HTTP 429 response instead of the data or the fill you asked for. The limits are usually stated per second and per minute, often with a separate and tighter budget for placing orders than for reading prices. A broker might allow 120 requests a minute overall but only ten order submissions a second.
- 1Inside the budget The bot sends around 80 requests a minute against a documented ceiling of 120. Every call returns data and the strategy acts on current prices.
- 2Volatility pushes it over A news release adds order attempts and position checks inside the same few seconds. The rolling count passes 120 and the broker begins refusing calls.
- 3HTTP 429 Too Many Requests Refused calls return no data and place no orders. The prices held in the bot's memory go stale while it keeps deciding as though they were live. Nothing crashes and no alert fires.
- 4Back off, then resume The bot waits one second, then two, then four, each with a small random offset, moves price updates onto the streaming endpoint, and settles back inside the budget.
What makes this dangerous for a bot is that the ceiling is reached exactly when the market is busiest: a volatile release makes the strategy poll harder, check more symbols and attempt more orders, all inside the same few seconds. The failure is quiet. A throttled bot does not crash; it receives 429s, its price data goes stale, and it keeps trading on numbers that are seconds old while believing they are current.
The fix is architectural rather than defensive - stay inside the documented budget, take prices from the streaming endpoint instead of polling for them, and back off exponentially with a random offset when a 429 arrives, rather than retrying immediately and deepening the throttle.
Why it matters: Brokers cap how many API requests a bot may send, and hitting that cap during volatility leaves the strategy trading on stale prices with no visible error.
A rate-limited bot keeps acting on stale data, so the failure shows up as bad fills and missed exits rather than as an error message you would notice.
Real-world example
A bot polling 20 symbols every 15 seconds sat at 80 requests a minute until a news release added order and status calls, pushing it past a 120-request budget and returning 429 on roughly one call in four.
How SignalBots handles it
SignalBots pushes signals to you rather than making your bot poll for them, which keeps your broker's request budget free for the order and position calls that genuinely need it. See /risk-warning.
Pro tip
Read the response headers, not just the status code. Most brokers return the remaining budget and a Retry-After value, which lets a bot slow down before it is throttled rather than after.
Common pitfalls
Retrying a 429 immediately in a tight loop, which holds the request count at the ceiling and extends the throttle instead of clearing it.
Frequently asked questions
What does HTTP 429 mean?
Too Many Requests. The broker accepted your connection but refused the call because you exceeded the allowed rate. The order was not placed and the data was not returned.
How do I find a broker's rate limits?
They are documented in the API reference, usually per endpoint group. Treat undocumented or vague limits as a warning sign, because you cannot design around a ceiling you are not allowed to see.
What is exponential backoff?
Waiting longer after each successive failure - one second, then two, then four - with a small random offset so that many retrying clients do not all return at the same instant. It clears a throttle instead of sustaining it.
Does streaming avoid rate limits?
For prices, largely yes. A WebSocket stream pushes updates over one connection instead of one request per quote, which removes most of the polling load. Order placement still counts against the order budget.
Can rate limiting actually cost me money?
Indirectly but really. A throttled bot acts on stale prices, misses exits, and can place duplicate orders after a timeout it was unable to confirm. Your capital is at risk.
Trading involves substantial risk of loss. Historical and backtested results do not guarantee future performance. Read the full risk warning.