ReferenceRate Limits
Rate Limits
SilentAuth enforces per-project rate limits to ensure fair usage and platform stability. Limits are measured as requests per minute (RPM) and apply per API key.
Limits by Plan
| Endpoint | Free | Starter | Pro | Enterprise |
|---|---|---|---|---|
| POST /v1/intents | 60/min | 300/min | 1,000/min | Custom |
| GET /v1/intents/:id | 120/min | 600/min | 2,000/min | Custom |
| POST /v1/permits/validate | 300/min | 1,500/min | 5,000/min | Custom |
| GET /v1/projects/:id/audit | 10/min | 60/min | 200/min | Custom |
| All endpoints (global) | 500/min | 2,000/min | 10,000/min | Custom |
Rate Limit Headers
Every API response includes rate limit headers:
X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 847 X-RateLimit-Reset: 1705312260 # Unix timestamp when limit resets
Handling 429 Responses
async function createIntentWithRetry(params, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await sa.createIntent(params);
} catch (err) {
if (err.code === 'rate_limited') {
const resetAt = err.headers['x-ratelimit-reset'];
const waitMs = (resetAt * 1000) - Date.now() + 100;
await new Promise((r) => setTimeout(r, waitMs));
continue;
}
throw err;
}
}
throw new Error('Max retries exceeded');
}