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

EndpointFreeStarterProEnterprise
POST /v1/intents60/min300/min1,000/minCustom
GET /v1/intents/:id120/min600/min2,000/minCustom
POST /v1/permits/validate300/min1,500/min5,000/minCustom
GET /v1/projects/:id/audit10/min60/min200/minCustom
All endpoints (global)500/min2,000/min10,000/minCustom

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');
}