Skip to content

Rate limits

The public API enforces per-minute quotas on every route. Limits aim to stay generous for normal integration patterns while isolating one noisy integration from others.

TierPer minuteApplies to
Read120GET / HEAD under /api/v1/…
Write30Other HTTP methods under /api/v1/…
Auth20POST /api/auth/token only (token exchange)

Limits may differ by environment. Contact your Aware account team if you need higher quotas.

We emit RateLimit-* headers on responses:

HeaderMeaning
RateLimit-LimitAllowed requests in the current window for this class.
RateLimit-RemainingRequests remaining in the window.
RateLimit-ResetSeconds until the window resets.
Retry-AfterOn 429 only — seconds to wait before retry.

You get 429 RateLimited:

{
"type": "RateLimited",
"message": "Rate limit exceeded. Retry after 23 seconds."
}
  • Honour Retry-After on 429.
  • Add jitter on bulk retries so clients don’t resync their spikes.

Separate counters apply: reads do not consume the write bucket, and token requests do not consume the versioned read/write buckets. Limits on /api/v1/… are attributed per integration (your token), not only by source IP.

Contact your Aware account team with the expected traffic shape.