Tickmark exchange reliability, measured
Guides Published 2026-11-07 8 min read

Crypto exchange API rate limits: what error 429 means and how to stay under it

HTTP 429 means you have sent too many requests in a given time, and the server is asking you to slow down. It is not an outage. Each exchange counts requests differently: Binance uses a weight for each endpoint and bans IP addresses that keep going after a 429, Bybit blocks an IP that passes 600 requests in five seconds, and OKX sets limits per endpoint and returns error code 50011. Staying under the limit means reading the response headers, backing off properly and using WebSockets where you can.

Short answer

When you get a 429, stop and wait before trying again; do not retry at once. Read the headers that report your usage, honour Retry-After if it is present, and replace polling with WebSocket streams. Ignoring repeated 429s on Binance leads to an automatic IP ban.

What a 429 actually means

HTTP 429 Too Many Requests is a standard status code, defined for exactly this situation. The MDN reference describes it as the client having sent too many requests in a given amount of time, and notes that a Retry-After header may tell you how long to wait. A rate limit may apply to a whole server or to one resource, and it is often based on your IP address, although it can also be tied to an application or user.

It is a useful message rather than a failure. It tells you the service is working, that you have been recognised, and what to do next. When we measure availability on this site, we keep a separate category for rate limiting, so that we do not report an exchange as down merely because a request was throttled.

MDN Web Docs reference page for 429 Too Many Requests explaining the status code and the Retry-After header
The MDN reference for HTTP 429. Many exchanges build their own rules on top of this standard code, so read each exchange's documentation as well. developer.mozilla.org · 2026-11-07

How Binance counts: request weight and IP bans

Binance's futures API documentation describes a weight system. Each route has a weight, and heavier endpoints, or ones that handle multiple symbols, cost more. Your limit is on total weight per interval, rather than a simple count of requests. The current limits appear in the rateLimits array of /fapi/v1/exchangeInfo.

Key points from the documentation:

  • Every response includes X-MBX-USED-WEIGHT-(intervalNum)(intervalLetter), showing the current used weight for your IP.
  • A 429 is returned when either rate limit is exceeded.
  • Repeatedly exceeding limits, or failing to back off after 429s, results in an automated IP ban with status 418.
  • Bans scale in duration for repeat offenders, from 2 minutes to 3 days.
  • The IP limits are based on the IP address and not on the API key, so several programs on one machine share a single budget.
  • Order rate limits are tracked separately, and order responses include their own count headers.
Binance API documentation section on LIMITS and IP Limits describing rateLimits, used weight headers, 429 responses and automated IP bans with status 418
Binance's limits section. The bold line at the bottom is the one to remember: continuing after 429s leads to an automated IP ban. developers.binance.com · 2026-11-07

How Bybit counts: per IP and per user

Bybit's v5 documentation describes two layers. At the IP layer, you are allowed 600 requests within a five-second window per IP by default, for traffic to its main API hostnames. If you exceed it, you get the error "403, access too frequent", and the documentation says you should stop all HTTP sessions and wait for at least 10 minutes, after which the ban is lifted automatically. Note that this is a 403, not a 429, which catches people out.

At the API layer, limits apply to each user over a rolling window, and exceeding them returns retCode 10006 with "Too many visits!" in the JSON. The response headers report your position:

  • X-Bapi-Limit-Status shows your remaining requests for the current endpoint.
  • X-Bapi-Limit shows your current limit for that endpoint.
  • X-Bapi-Limit-Reset-Timestamp shows when your limit resets, if you have exceeded it.

Bybit also advises not to run an application at the very edge of these limits, because unusual network activity could cause an unexpected violation. WebSocket connections have their own limits.

Bybit API documentation Rate Limit Rules page showing 600 requests in a 5 second window per IP and the 403 access too frequent error
Bybit's rate limit page. A breach of the IP limit returns a 403 rather than a 429, followed by a wait of at least 10 minutes. bybit-exchange.github.io · 2026-11-07

How OKX counts: per endpoint and per instrument

OKX's API documentation says that a rejected request returns error code 50011, and that the limit is different for each endpoint and is listed with each endpoint's details. Public unauthenticated REST limits are based on IP address, and WebSocket login and subscription limits are based on the connection. For trading APIs, placing, amending and cancelling orders have independent limits, generally defined per instrument and shared between REST and WebSocket.

The lesson across these three is that you should not assume one exchange's rule on another. The status code, the unit that is counted and the penalty can all differ, and all of them change over time, so go back to the current documentation.

Why you hit limits without meaning to

Most rate limit problems do not come from a single busy loop. They come from less obvious causes.

  • Shared IP addresses. Multiple bots, a cloud NAT gateway or a shared VPN all count against one address. Your neighbours can consume your budget.
  • Heavy endpoints. Fetching all tickers or deep order books can cost many times what a single-symbol request does. Ten of those may equal hundreds of simple calls.
  • Retry storms. A brief failure causes every worker to retry at once. That burst pushes you into a 429, which triggers more retries.
  • Restart loops. A program that reloads its state at startup, and that crashes and restarts repeatedly, can use its whole budget just starting up.
  • Polling for what a stream can provide. Asking for the price every second on 50 symbols is 3,000 requests a minute, and a WebSocket can deliver the same data with far less cost.

How to back off properly

When you get a limit response, the correct behaviour is simple and worth implementing just once, in one place.

  • Stop sending to that exchange for the required time. If there is a Retry-After header or a reset timestamp, follow it. Otherwise wait, starting at a second or so.
  • Use exponential backoff with jitter. Double the wait after each consecutive failure, up to a cap, and add randomness so that several workers do not all retry at the same moment.
  • Share the limiter between workers. One token bucket per IP and per exchange, shared across all processes on that address, is far more effective than each worker guessing on its own.
  • Track usage continuously. Read the used-weight headers on each response and slow down as you approach the limit, rather than waiting to be told.
  • Treat 418 and IP bans as a stop signal. Stop and alert a human. Continuing lengthens the ban.

How to use fewer requests

The cheapest request is the one you do not send.

  • Use WebSockets for market data and account updates. One stream replaces constant polling, and updates arrive sooner too.
  • Cache slow-changing data. Contract specifications and fee schedules change rarely. Fetch them occasionally rather than on every run.
  • Use batch endpoints with care. They can save many requests, but check their weight, since they cost more per call.
  • Request only the depth you need. A deep order book request costs more, and many tasks need only the first few levels.
  • Avoid polling order status in a loop. A user-data stream tells you when an order fills.

If you only need funding rates or reliability figures, you might not need to poll the exchanges at all. We publish our data as free JSON files, updated on a schedule, though they should not be used for trading decisions that need live data.

A 429 during an emergency

The worst time to find a limit is when you are trying to cancel orders in a falling market. Your loop has been hammering the API, you have used up your budget, and now your cancel is rejected. Plan for this: keep order-related traffic within a budget that is reserved, and separate from market-data polling. Keep public data on a stream so it uses no REST budget. Binance's documentation notes that when a server node is under system-level protection and throttling requests, close-position, reduce-only and cancel orders are exempt, which suggests that using those order types for risk reduction is a sensible habit. Our guide to what to do during an outage covers related preparation.

Is it a limit or an outage?

The two can look similar in a dashboard, since both produce failures. Separate them by code.

  • 429, 418, or an exchange-specific limit code: your own traffic is the likely cause.
  • 403: could be a web firewall, a region block, or Bybit's IP limit. See our guide to 403 and 451.
  • 5xx or a timeout: probably on the exchange's side or along the route. Check whether it is down.

Log the code, the endpoint, and the response headers for every failure. Without them you end up guessing.

Common questions about rate limits

Does using several API keys avoid the limit?

Not for limits based on IP, such as Binance's IP weight. Multiple keys from the same address share the same budget. Order rate limits may be tracked per account, so check how each type of limit is counted. Spreading traffic across many addresses specifically to dodge a limit may breach an exchange's terms, and it is not something we recommend.

How long does a rate limit ban last?

That depends on the exchange. Binance's documentation states that its bans scale from 2 minutes up to 3 days for repeat offenders. Bybit says that you should wait at least 10 minutes after a "403, access too frequent". Keep sending requests during a ban and you risk extending it.

Can I ask for higher limits?

Some exchanges offer higher limits to market makers, to VIP tiers or on application. See their documentation. It is usually a better first step to reduce unnecessary traffic, since that also makes your system more robust.

Staying under the limit

  1. Read the rate limit rules for the exact API you use.
  2. Log used-weight headers and slow down before you reach the limit.
  3. Share one limiter across all workers on an IP.
  4. On a limit response, back off with jitter and honour Retry-After.
  5. Stop and alert on 418 or a ban.
  6. Move market data to WebSockets.
  7. Reserve budget for cancels.

Related reading: Why an exchange API returns 403 or 451 · How to fix Binance error -1021 · How to check if an exchange is down

Sources

Binance · Limits · Bybit · Rate limit rules · OKX · API documentation · MDN · 429 · About Tickmark

Other guides

What is a funding rate in crypto perpetual futures? A plain explanation

A funding rate is a regular payment between traders holding opposite sides of a perpetual futures contract. It exists because a perpetual contract never expires, so something else has to keep its price close to the underlying asset. When the rate is positive, longs pay shorts; when it is negative, shorts pay longs. The exchange sets the formula but, on the major exchanges, the money moves between traders.

How to compare funding rates across crypto exchanges: 8h vs 4h settlement

You cannot compare two funding rates by looking at the percentages alone. A rate only means something once you know how often it is charged, whether you are long or short, and whether the two readings describe the same contract at the same moment. The same +0.01% costs twice as much per day on a four-hour schedule as on an eight-hour one, and it earns a short exactly what it costs a long.

What does a negative funding rate mean? Who pays, and what it does not tell you

A negative funding rate means traders holding short positions pay traders holding long positions at the next settlement. It usually happens when a perpetual contract trades below its index price, which often reflects heavy shorting or hedging. It does not mean the price is about to fall or about to rise, and it is not free income for longs, because the price can move against them by far more than the payment.

How to convert a funding rate to APR, and why the number can mislead you

To annualise a funding rate, multiply the rate per settlement by the number of settlements in a day, then by 365. A rate of 0.01% every eight hours becomes 0.01% × 3 × 365 = 10.95% a year. This puts contracts on different schedules onto one scale, which makes them comparable. It does not tell you what you will earn or pay over a year, because it assumes today's rate never changes.

Funding rate arbitrage explained: how it works and what eats the profit

Funding rate arbitrage means holding two offsetting positions in the same asset so that price moves roughly cancel, and collecting funding payments on one side. The classic version buys spot and shorts the perpetual. A second version shorts the perpetual on the exchange with the higher rate and goes long on the exchange with the lower rate. It is often described as risk free. It is not. The risks are simply different from the risk of an ordinary directional trade.

Mark price vs last price vs index price: which one liquidates you?

Perpetual futures show three prices that are easy to mix up. The last price is where the most recent trade happened. The index price is an average of spot prices across several exchanges. The mark price is an exchange's estimate of what the contract is fairly worth, and on the major exchanges it is what decides your unrealised profit and whether you are liquidated. Knowing which price does what explains why a position can be liquidated even though the chart never touched your liquidation level.

How much does a market order really cost? Fees, spread and slippage

The fee on an exchange's fee page is only part of what a market order costs. The rest comes from the price you actually receive, which depends on the direction of your trade, your order size and the depth of the order book at that moment. To compare exchanges fairly, measure the average fill price against one reference price, then add your trading fee on top, and be careful not to count the spread twice.

How to estimate slippage from order book depth before you trade

Slippage is the difference between the price you expected and the average price you actually got. You can estimate most of it before placing an order, because the order book shows how much is available at each price. Add up the levels on the side you will consume until they cover your size, calculate the average price, and compare it with the mid price. The estimate is only as good as the snapshot it came from, and books thin out at the moments you are most likely to need them.

Maker and taker fees explained: how to compare crypto exchange trading fees

A maker adds an order to the book that waits to be filled. A taker fills against an order already there. Most exchanges charge takers more than makers, because makers supply the liquidity others trade against. Comparing exchanges by the headline fee alone is misleading: you need to know which side you usually trade on, what tier your volume actually puts you in, and how the fee compares with slippage and funding on the same trade.

How to check if a crypto exchange is down: a step-by-step guide

When an exchange stops working for you, the first question is whether it is down for everyone or only for you. You can usually answer that in a couple of minutes: check the exchange's own status page, check an independent measurement, try a different network, and test the public API directly. Each source sees something different, so one green page does not prove everything is fine, and one failed request does not prove the exchange is down.

Is an exchange really down? How to read API uptime and outage records

Uptime describes the share of successful requests to particular services, over a particular period, from a particular network route. It does not establish whether you can place an order, withdraw funds or trust an exchange with your assets. A figure like 99.9% is useful only if you know what was tested, from where and for how long, so this guide explains how to read those details on our pages and on anyone else's.

What to do when a crypto exchange goes down while you have an open position

If an exchange stops responding while you hold a position, your first job is to find out what is actually broken, the second is to stop making it worse, and the third is to reduce your risk by whatever route still works. Do not keep resending the same order, because earlier attempts may have gone through. Check the mobile app and the API as alternative routes, consider hedging elsewhere if your exposure is large, and record what happened in case you need to raise it later.

Why exchange APIs reject timestamps: clock offset and stale quotes explained

A fast response can contain an old quote. Round-trip latency, clock offset and quote age describe different parts of a request, and mixing them up can make a clock mismatch look like a delayed market feed. This guide explains each one with a worked example, shows how we estimate them, and covers what to do when an exchange API rejects your request because of the time.

Binance error -1021 timestamp: causes and how to fix it

Binance API error -1021 INVALID_TIMESTAMP means the timestamp on your signed request falls outside the window Binance will accept. The message usually reads "Timestamp for this request is outside of the recvWindow" or "was 1000ms ahead of the server's time". In most cases your own clock is the cause, so the fix is to synchronise it, measure the offset against Binance's server time, and handle any remaining network delay properly. A larger recvWindow can hide the problem, but it should not be your first move.

Why an exchange API returns 403 or 451: blocks and regions

A 403 means the server understood your request and refuses to carry it out. A 451 means access is refused for legal reasons. On crypto exchange APIs, a 403 can be a web firewall, a request limit, an unauthorised key or a regional block, so the code alone does not tell you which. The response body, the exchange's documentation and a comparison from another network usually do. A real restriction applies to you for a reason, so the right response is to find out whether the service is available where you are.

Before you open a crypto exchange account: a checklist by country

Before you open an account on a crypto exchange, check four things: whether the exchange is allowed to serve people where you live, whether your country's regulator lists it, whether the site in front of you is the real one, and how the exchange has been running lately. The sign-up form takes ten minutes. Recovering from the wrong choice can take months, and sometimes it is not possible at all. This guide works through each check, using Binance and OKX as worked examples because they are the two exchanges readers ask us about most.

How to open and verify a Binance account: a step-by-step guide

Opening a Binance account takes four steps: register with an email address, a phone number or a Google, Apple or Telegram account; complete identity verification; secure the account; and make a first deposit. Registration takes a few minutes. Binance says verification is usually reviewed within 48 hours. This guide follows each step as Binance's own help pages describe it on 8 November 2026, with screenshots of those pages, and points out the details that most often cause trouble later.

How to open and verify an OKX account: a step-by-step guide

Opening an OKX account takes four steps: register with your country of residence, an email address and a phone number; complete identity verification; secure the account; and make a first deposit. OKX says it reviews verification applications within 24 hours. Which OKX company you end up with depends on where you live, and that decides the address you log in at, the fees you pay and the products you see. This guide follows OKX's own help pages as they stood on 8 November 2026, with screenshots, and flags the choices that are hard to undo. OKX shows some help pages differently by region; we read the versions served at okx.com/en-us, and the rules shown in your own account after you log in are the ones that apply to you.