- RPM — a sliding-window cap on requests per minute, per team.
- Monthly quotas — counts of autouser ratings, human ratings, and evaluations created per team per billing period.
Per-plan limits
These mirror the pricing page exactly.| Plan | RPM | Autouser ratings / mo | Human ratings / mo | Evaluations / mo |
|---|---|---|---|---|
| Free | 60 | 50 | 250 | 5 |
| Team | 120 | 500 | 5,000 | 100 |
| Pro | 600 | 2,000 | 20,000 | unlimited |
| Enterprise | custom | custom | custom | unlimited |
Response headers
Every/v1 response carries:
| Header | Meaning |
|---|---|
X-RateLimit-Limit | The team’s per-minute limit (e.g. 120). |
X-RateLimit-Remaining | Requests remaining in the current sliding window. |
X-RateLimit-Reset | Unix epoch seconds when the window resets. |
Retry-After | Set on 429 only. Seconds to wait before retrying. |
The 429 response
code: quota_exceeded and does not
carry Retry-After — the quota resets at the start of the next billing
period (visible at GET /v1/usage).
Self-throttling
CallGET /v1/usage to read the team’s plan and remaining budget without
firing a real workload request:
Exponential backoff with jitter
Treat 429 and 5xx as retryable. Cap at 5 attempts; add jitter so retries don’t synchronise across replicas.Limits on specific routes
A handful of routes have stricter per-user limits independent of plan tier:| Route | Limit | Why |
|---|---|---|
POST /v1/settings/byok/test | 5 / minute / user | Probing a third-party Vertex key. |
POST /v1/settings/byok/probe | 5 / minute / user | Same. |
POST /v1/auth/figma/* | 10 / minute / IP | Unauthenticated pairing surface. |
What does not count
GET /v1/auth/whoami— free, unmetered, ping anytime.GET /v1/usage— free, unmetered.- Webhook deliveries (us → you). Your endpoint receiving a webhook is not a request you made; it doesn’t consume RPM.
Enterprise
Custom RPM, unmetered monthly quotas, and dedicated capacity are available on Enterprise. Contactsales@autousers.ai.