Docs navigation

Rate limits

Per-minute, daily, and result-count limits

Authenticated data routes are rate limited by both minute and day. The exercise list endpoint also applies plan-based result caps and free-tier pagination depth rules.

Tier limits
TierDailyPer minuteMax results/request
Free100520
Starter10003050
Pro10000100100
Business100000500100

Header behavior

  • Authenticated data routes include rate limit headers. `GET /v1/health` is excluded.
  • Successful authenticated responses report the current daily window.
  • `429 RATE_LIMIT_EXCEEDED` responses report the window that was exceeded, either `minute` or `day`.
  • `Retry-After` is only returned on `429` responses.
  • If Redis is unavailable, successful authenticated responses can fail open with `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` all set to `-1`.

Pagination behavior

  • `limit` is validated up to 100 and then clamped to your plan's per-request result cap.
  • Free-tier pagination depth is capped at `offset + limit <= 500`.
  • Pagination-depth violations return `403 PAGINATION_DEPTH_EXCEEDED`.
Successful authenticated response headers
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 82
X-RateLimit-Reset: 1775184000
429 response headers
X-RateLimit-Limit: 5
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1775182500
Retry-After: 32