Broker API rate limits have a measurable operating cost

Network cables connected to servers representing broker API rate limits and trading infrastructure
Photo by Brett Sayles on Pexels

Nearly every broker API setup has a polling loop that keeps running after it starts receiving HTTP 429 responses. The loop may be a market-data collector, account synchronisation job or order-status check. It often began as a harmless integration detail. Under load, it becomes a second source of traffic competing with orders and risk controls.

Rate limits set a ceiling on calls over a time window. Throttling is the mechanism that slows or rejects traffic once that ceiling is reached. Backoff governs what a client does next. These controls affect latency, capacity planning and support workload, so their cost belongs in the operating model, not just the API wrapper.

Where the operating cost comes from

A rejected request usually costs little on its own. The bill accumulates when clients retry without coordination, queues grow, or an order-related call waits behind polling. Repeated retries also consume client CPU, network capacity and broker-side processing, even when they return no useful data.

Teams commonly pay for rate-limit handling in four places:

  • Engineering: initial implementation, integration testing and maintenance as endpoint behaviour changes.
  • Infrastructure: queue workers, logs, metrics and extra capacity for bursts or recovery after an outage.
  • Operations: alert triage and manual recovery when a client is blocked or data falls behind.
  • Trading impact: delayed order amendments, stale positions or risk checks that compete with lower-priority calls.

These costs are coupled. Adding workers can clear a backlog faster, but it can also send requests in a larger burst and trigger another throttle. A client that retries every failed call immediately may multiply its request rate several times over. A sensible design caps retries, spreads them over time and gives critical operations their own capacity.

Typical limits and their cost profile

Benchmarks by workload

The figures below are typical market ranges for broker and trading APIs, not contractual standards. Actual quotas vary by broker, endpoint, account, authentication key and market session. Some providers apply separate limits to order entry, market data and account queries; others enforce a shared quota.

WorkloadTypical market rangeCommon throttle signalOperational cost to watch
Order entry and amendments2 to 20 requests per second per account or keyHTTP 429 or a provider error codeOrder queue delay, duplicate submission risk
Account and position queries1 to 10 requests per second, often with a larger minute quotaHTTP 429, sometimes a slower response firstStale balances and repeated polling
Market-data snapshots5 to 50 requests per second, subject to product and entitlementHTTP 429 or connection-level throttlingDelayed refreshes and unnecessary snapshot volume
Historical data1 to 10 requests per second, commonly with daily or minute capsHTTP 429 or quota-exceeded responseBackfill jobs taking longer and holding worker capacity

These ranges are starting points for capacity tests, not a substitute for reading provider documentation or confirming limits in a certification environment. A quoted limit may apply per IP, per user, per token or across an entire firm. That distinction changes how services should share a limiter.

Reading the response, not just the status code

Capture response headers such as Retry-After and any provider-specific quota or reset fields. Log the endpoint, account, request class, status, remaining quota where available, and time spent waiting in the client queue. Without those fields, a 429 looks like a general failure and teams tend to add retries rather than fix the traffic pattern.

For a view of how API and platform choices affect broker operations, see Trading Technology's infrastructure coverage. The same operational question applies across providers: which traffic consumes quota, and which business function must retain capacity during a burst?

Designing backoff and throttling controls

Separate priority before requests reach the broker

Put a limiter in the client or shared gateway, rather than relying on the broker to reject excess traffic. A token bucket is useful when a provider permits short bursts above a sustained rate. A fixed-window counter is simpler, but traffic at the boundary can produce a double-sized burst. For multiple services sharing one account or key, use a central limiter or allocate explicit per-service budgets.

Set priority classes before requests enter a queue. A practical ordering is:

  1. New orders, cancels and risk-reducing amendments.
  2. Position and margin checks needed for trading decisions.
  3. Order-state reconciliation and account updates.
  4. Historical backfills, dashboards and non-urgent polling.

Reserve capacity for the first two classes. If every worker draws from the same unprioritised queue, a large backfill can delay a cancel even when the average request rate is below the published limit.

On a 429 response, honour Retry-After when supplied. Otherwise use exponential backoff with random jitter, a maximum delay and a bounded retry count.

For example, a client might start at 250 to 500 milliseconds, double the wait, and cap it at 8 to 30 seconds, depending on the operation. These are tuning ranges, not universal settings. Do not automatically retry a non-idempotent order submission unless the API supports an idempotency key or the client can first establish whether the order was accepted.

Putting a cost on the control plane

A small integration commonly needs several engineering days for a basic limiter, retry handling and metrics. A production implementation across multiple services, account types and failure paths can take roughly two to six engineer-weeks, depending on API complexity and existing gateway tooling.

Allow a further one to three days per material provider change or operational review. Those are planning ranges, not vendor quotes.

Infrastructure is usually less expensive than engineering and incident time. For a modest workload, queueing, metrics and log retention may add tens to a few hundred pounds a month. Larger firms with high-volume event logs, multi-region services or long retention can spend several thousand pounds monthly. The larger recurring cost is often the time spent diagnosing incidents and maintaining provider-specific behaviour.

For a planning example, assume a service makes 100,000 calls a day and 2 per cent receive throttling responses during busy periods. That is 2,000 rejected calls before retries.

If each rejection triggers three immediate retries, the client can add 6,000 calls a day precisely when capacity is constrained. A capped backoff and queue can reduce the burst, but may extend data freshness or order-state reconciliation. Measure both outcomes rather than treating a lower 429 count as success.

Track these measures by endpoint and priority class:

  • 429 rate and retry attempts per successful request.
  • Queue wait at the 50th, 95th and 99th percentiles.
  • Age of the oldest queued request and recovery time after throttling.
  • Order acknowledgement latency, separated from polling and backfill traffic.
  • Quota use per account or key, including headroom during peak sessions.

Set alerts on queue age and order latency as well as error rates. A service can show few 429s while silently accumulating work behind a conservative limiter. Conversely, a brief 429 spike may be harmless if critical calls remain within their latency budget and the backlog drains quickly.

Broker APIs expose limits in different ways, and clients turn them into different operating costs. The quota is rarely the surprising part. The surprise is how much infrastructure was built around ignoring it.

Perguntas frequentes

What is a typical broker API rate limit?

Typical market ranges run from about 1 to 20 requests per second for many account and order endpoints, with higher rates sometimes available for market-data snapshots. Limits vary by broker, endpoint and whether quotas apply per account, key or IP address.

How should a trading API handle HTTP 429 responses?

Honour the Retry-After header when present, then use exponential backoff with jitter and a bounded retry count. Avoid retrying order submissions blindly unless the API supports idempotency or the client can confirm whether the original order was accepted.

Should order calls and polling share the same rate-limit queue?

Usually not. Prioritise orders, cancels and risk-reducing amendments over polling and historical backfills, and reserve capacity for critical traffic. If several services share one broker key, coordinate their budgets through a shared limiter or gateway.