# Rate limit

Also written rate limits, rate limiting.

*https://cryptomarkets.tools/glossary/rate-limit · next to Crypto Market Data APIs*

**Definition:** 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](https://cryptomarkets.tools/tools/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](https://cryptomarkets.tools/tools/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](https://cryptomarkets.tools/tools/coinapi) charges one credit per 100 data points on any call that uses the
`limit` parameter. [Dune](https://cryptomarkets.tools/tools/dune) bills in proportion to the compute a query used and
publishes no per-query formula, so the cost is known after execution. [CryptoQuant](https://cryptomarkets.tools/tools/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](https://cryptomarkets.tools/tools/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](https://cryptomarkets.tools/tools/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](https://cryptomarkets.tools/tools/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](https://cryptomarkets.tools/tools/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](https://cryptomarkets.tools/tools/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](https://cryptomarkets.tools/tools/artemis) says "limited queries, daily
rate limits" and prints no figure. [CoinAnk](https://cryptomarkets.tools/tools/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

- [Binance Market Data API](https://cryptomarkets.tools/tools/binance-api.md)
- [OKX Market Data API](https://cryptomarkets.tools/tools/okx-api.md)
- [Coinbase Exchange API](https://cryptomarkets.tools/tools/coinbase-exchange-api.md)
- [CoinGecko API](https://cryptomarkets.tools/tools/coingecko-api.md)
- [Glassnode](https://cryptomarkets.tools/tools/glassnode.md)
- [CCXT](https://cryptomarkets.tools/tools/ccxt.md)
- [AGGR](https://cryptomarkets.tools/tools/aggr.md)
- [Allium](https://cryptomarkets.tools/tools/allium.md)
- [Altrady](https://cryptomarkets.tools/tools/altrady.md)
- [Amberdata Market Data API](https://cryptomarkets.tools/tools/amberdata.md)
- [Arkham](https://cryptomarkets.tools/tools/arkham.md)
- [Artemis](https://cryptomarkets.tools/tools/artemis.md)

## 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.

## Sources

1. [General API Information — Limits, Spot REST API](https://developers.binance.com/docs/binance-spot-api-docs/rest-api/limits) — Binance, read 2026-09-21
2. [Spot REST API rate limits](https://docs.kraken.com/api/docs/guides/spot-rest-ratelimits) — Kraken, read 2026-09-21
3. [Rate limits, Exchange REST API](https://docs.cdp.coinbase.com/exchange/rest-api/rate-limits) — Coinbase, read 2026-09-21
4. [Common errors and rate limit](https://docs.coingecko.com/docs/common-errors-rate-limit) — CoinGecko, read 2026-09-21

*Last updated 2026-09-21. A reference page, corrected in place — not a dated post.*
