DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS
API·RATE LIMITS

Rate limits

Every API key has its own token bucket. Each request consumes one token. Tokens refill at a steady rate, up to a maximum capacity.

Default limits (v1)

  • Burst capacity: 60 tokens
  • Refill rate: 10 tokens / second

Most workloads never hit the bucket. If you're doing a bulk read or write, you'll want to space requests.

Response headers

Every response includes:

HeaderMeaning
x-ratelimit-remainingTokens left in the bucket right now
x-ratelimit-resetUnix seconds when the bucket will be full

Exhausted bucket

When you run out of tokens, the response is 429 rate_limited:

{ "error": { "code": "rate_limited", "message": "Rate limit exceeded. Try again in 1.4s." } }

Back off and retry. A simple exponential backoff (start at 500 ms, double on each 429) handles most cases.