Rate Limiting
The Agentix API enforces rate limits to protect the platform and ensure fair usage. Limits are applied per IP address and persist across server restarts.Rate Limit Tiers
The API has three tiers of rate limiting, applied from most restrictive to least:Sensitive Endpoints
High-security endpoints that handle password resets and credential operations:| Endpoint | Limit | Window |
|---|---|---|
POST /api/auth/forget-password | 3 requests | 1 hour |
POST /api/auth/reset-password | 3 requests | 1 hour |
Authentication Endpoints
All endpoints under/api/auth/*:
| Endpoint | Limit | Window |
|---|---|---|
POST /api/auth/sign-in/email | 5 requests | 60 seconds |
POST /api/auth/sign-up/email | 3 requests | 5 minutes |
All other /api/auth/* | 10 requests | 60 seconds |
Sign-in has additional brute force protection: 5 failed attempts per email+IP triggers a 15-minute lockout, independent of the rate limit counter. See Authentication for details.
General API
All endpoints under/api/* (applied after auth-specific limits):
| Scope | Limit | Window |
|---|---|---|
All /api/* endpoints | 100 requests | 60 seconds |
Response Headers
When rate limits are active, responses include standard rate limit headers (draft-7):| Header | Description | Example |
|---|---|---|
RateLimit-Limit | Maximum requests allowed in the window | 100 |
RateLimit-Remaining | Requests remaining in the current window | 87 |
RateLimit-Reset | Seconds until the window resets | 42 |
When You Exceed a Limit
If you exceed a rate limit, the API returns a429 Too Many Requests response:
Retry-After header indicating how many seconds to wait before retrying:
Best Practices
- Respect
Retry-After— When you receive a 429, wait the specified number of seconds before retrying - Implement exponential backoff — For automated scripts, use exponential backoff with jitter to avoid thundering herd effects
- Cache responses — Reduce API calls by caching GET responses on your end
- Use pagination efficiently — Fetch only the data you need with appropriate
limitvalues - Monitor headers — Track
RateLimit-Remainingto proactively slow down before hitting limits