Docs  /  Rate limits

Rate limits

There are two layers: a per-minute burst limit and a per-day quota tied to your tier.

Per-minute burst (always on)

Keyed by token (if present) or client IP.

CallerBurst limit
Anonymous (per IP)120 / min
Keyed (per token)600 / min

When you hit it:

HTTP/1.1 429 Too Many Requests
Retry-After: 23
{ "error": { "code": "rate_limited", "message": "Too many requests. Retry after 23 seconds." } }

Sleep at least Retry-After seconds before retrying.

Per-day quota (tier-based)

Counted per key (or per IP for anonymous), resets at UTC midnight.

TierDaily quota
free20 / day
pro100 / day
dev500 / day

When you hit it:

HTTP/1.1 429 Too Many Requests
{ "error": { "code": "daily_limit_exceeded", "message": "Daily request limit of 100 reached for your API key." } }

The global archive key (DIVERGENCE_ARCHIVE_KEY) is treated as Dev tier with no daily cap.

What does and does not count

  • /health does not count against either limit.
  • Cached responses (the soft 60s aggregate cache) still count.
  • A 401 or 429 response counts against the burst limit but not the daily quota.

Tracking your usage

Logged-in users see today's count, last-7-days count, and the daily cap for every active key on the account page.