Skip to main content
ArcenPay rate-limits API-key requests using Arcjet. The limit is enforced per API key over a sliding 60-second window.

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

  1. 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/checkFlag results for 30–60 seconds when acceptable.
  2. Batch reads. Use GET /api/v1/entitlements (all features in one call) instead of many /check calls.
  3. Retry with backoff. On 429, wait and retry. Exponential backoff with a small jitter avoids synchronized retry storms.
  1. 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.
  • Authentication — key types and the endpoint auth matrix
  • Errors — the 429 error response and handling patterns
Last modified on September 19, 2026