Default limit
Requests beyond the limit return
429 Too Many Requests:
Which endpoints enforce it
The rate limit is applied on the key-authenticated client-safe endpoints:
General REST routes (companies, events, payment links, checkout sessions) do not enforce this per-key window today.
Rate-limit enforcement depends on
ARCJET_KEY being configured in the backend environment. In environments where Arcjet is not configured, the limit is not applied.Best practices
- Cache access decisions. Entitlement results are stable within a billing period. Common patterns:
- React SDK hooks already cache for 30 seconds (
useCompanyEntitlements). - For server checks, cache
checkEntitlement/checkFlagresults for 30–60 seconds when acceptable.
- React SDK hooks already cache for 30 seconds (
- Batch reads. Use
GET /api/v1/entitlements(all features in one call) instead of many/checkcalls. - Retry with backoff. On
429, wait and retry. Exponential backoff with a small jitter avoids synchronized retry storms.
- Use embed tokens for customer-scoped reads. Browser reads (hooks,
ArcenEmbed) authenticate with the customer’s access token, not your API key, so they do not consume your server key’s quota.
Related
- Authentication — key types and the endpoint auth matrix
- Errors — the
429error response and handling patterns

