Rate limit

Also written rate limits, rate limiting

A rate limit is the ceiling a provider puts on how much of its API you may consume, and the unit it is counted in is the vendor's own choice — requests per second, calls per minute, weighted cost per minute, credits per month, or a counter that decays while you wait. Two limits quoted in different units cannot be compared, and the identity they are charged against differs as well.

Almost every API card in this catalogue records a rate limit, and it is the least comparable number on the page. Two products can each publish one honest figure and still give you no way to work out which will run out first, because the figures are counted in different things, charged against different identities and raised by different levers.

How it works

Four families are in use across the cards here, and each answers "how much" with a different noun.

Requests per interval. The simplest form. Coinbase documents ten requests per second per IP on its Exchange public endpoints, bursting to fifteen, and fifteen per second per profile on the private ones, bursting to thirty. The unit is the request, every request is the same size, and you can plan against it with arithmetic.

Weighted cost per interval. Binance publishes a REQUEST_WEIGHT budget per minute alongside a raw-request ceiling, and every response returns the running total in an X-MBX-USED-WEIGHT header so you can watch it drain. The weights are not uniform, which is the whole point of the design and the trap in it — the Binance API card records a klines call at 2, an aggregate-trades call at 4, a trades call at 25, and an order book at 5 for depth 100 but 250 for depth 5,000. The same budget is three thousand candle pulls or twenty-four deep book snapshots.

A counter that decays. Kraken gives each REST user a call counter starting at zero with a ceiling and a drain rate set by verification tier — a maximum of 15 on Starter and 20 on Intermediate and Pro, decaying at 0.33, 0.5 and 1 per second respectively. Ledger and trade-history calls add 2, most others add 1, and order placement runs on a separate limiter entirely. Nothing here is per minute; the question is what your sustained rate is against the drain.

Credits. A monthly balance, usually alongside a per-minute ceiling, and the credit is rarely a call. Glassnode spends one credit per request per asset — one for Bitcoin, two for anything else — and only when data leaves, so browsing costs nothing and an export costs per series. CoinAPI charges one credit per 100 data points on any call that uses the limit parameter. Dune bills in proportion to the compute a query used and publishes no per-query formula, so the cost is known after execution. CryptoQuant grants credits monthly and its card says plainly that a credit is not a call.

What the headline number hides

Who is being charged. Per IP, per key, per profile or per endpoint are four different architectures. A per-IP limit means every process behind one NAT shares one budget and a serverless deployment shares it with strangers; a per-key limit means a second key is the fix, and a per-IP one means it is not.

Whether the two axes move together. On the CoinGecko API card the paid ladder raises both, but not in step — the Lite plan quadruples the monthly credit grant without raising the per-minute ceiling at all, so upgrading for throughput buys allowance instead. Glassnode bundles 50 credits a month with 5 requests a minute on entry and climbs to 600 a minute higher up.

Who is doing the limiting. CCXT paces requests client-side against constants compiled into each exchange class rather than against anything the venue reports, so a venue that tightens a limit quietly will ban you before the library knows. The Hyperliquid Python SDK does no client-side limiting and no retries at all, by design. In both cases the number on the vendor's page is not the number your process is obeying.

Whether there is a number. Laevitas publishes no REST rate limit on its site or in its OpenAPI document — the gateway returns X-RateLimit headers, so you discover the ceiling at runtime on a 500-dollar-a-month product. Artemis says "limited queries, daily rate limits" and prints no figure. CoinAnk renders an API comparison table whose plan columns are labelled Plan1 to Plan4, with rate limits filled in and prices left out.

Why it matters here

The mistake a headline number invites is a straight comparison — 1,000 requests a minute against 10,000 credits a month, and the first looks like the larger product. They are not on the same axis. The per-minute figure is a speed limit, which you can bump into forever without ever exhausting; the monthly credit grant is a budget, which one backfill can spend in an afternoon and which then returns nothing until it resets. The right question is not which number is bigger but which one your workload runs into.

Two jobs make that concrete. A one-off historical pull wants a large credit balance and does not care about throughput, because a slow loop finishes overnight. A live dashboard or an alerting process wants a high per-minute ceiling and a small, predictable spend, because it makes the same few calls forever. A plan chosen for the wrong one of those fails in a way the pricing page did not describe.

Three things are worth checking before a key is bought. Convert the limit into your own unit first — calls your process will actually make, per hour, at the weights or credit costs the vendor publishes for the specific endpoints you will hit, not the cheapest one. Check what failures cost, because CoinGecko documents that 4xx and 5xx responses count against the per-minute limit like any other request, and a retry storm on a degraded upstream spends the budget twice. And find out what the escalation is — a 429 with a retry hint is recoverable in code, whereas an automatic ban that scales from two minutes to three days, as Binance documents, is an outage you have to sit out.

Where you will meet this

The cards where this changes a decision, then the rest that use the word.

Sources

  1. General API Information — Limits, Spot REST API Binance, read
  2. Spot REST API rate limits Kraken, read
  3. Rate limits, Exchange REST API Coinbase, read
  4. Common errors and rate limit CoinGecko, read

FAQ

Why can I not compare two vendors' rate limits directly?

Because they are rarely quoted in the same unit. One vendor counts requests per second, another counts weighted cost per minute where a single call can cost 2 or 250, a third counts monthly credits that a single call can spend a hundred of, and a fourth runs a counter that decays while you wait. Putting those numbers side by side in a spreadsheet produces a column that means nothing.

Is a free tier limited by credits better than one limited by requests per minute?

They fail in opposite directions. A monthly credit grant is a budget — you can spend the month in an afternoon on one backfill and then have nothing until it resets. A per-minute ceiling is a speed limit — you can never exhaust it and never exceed it, so a slow job always finishes and a burst never does. Match the unit to the job before comparing the numbers.

Are rate limits charged against my API key?

Not necessarily, and this decides your architecture. Binance documents that the limits are based on IPs and not API keys. Coinbase Exchange throttles public endpoints per IP and private ones per profile. [OKX](/tools/okx-api) counts per endpoint per IP, with funding-rate and open-interest counted per IP and instrument together. On a shared IP you are sharing someone else's budget.

What happens when I go over?

On most venues an HTTP 429 with a Retry-After header. Binance escalates — ignore the 429s and the IP is auto-banned with a 418, and the bans are documented as scaling with repetition from two minutes to three days. CoinGecko documents that every request counts toward the per-minute limit including the 4xx and 5xx ones, so a retry loop on errors spends the same budget the successes do.

Can I pay to raise a rate limit?

Sometimes, and it is worth checking which lever exists before assuming money is one. Kraken's REST counter is set by verification tier, so the lever is identity. The [OKX](/tools/okx-api) card records that its public limits are per IP and scale with nothing you can buy — the only lever is more egress addresses. On a commercial data API the lever is a subscription, but it may raise credits without raising calls per minute.

Updated