Rate Limits

Authority implements rate limiting to protect against abuse.

Default Limits

Endpoint
Limit
Window

/authorize

60

1 minute

/token

60

1 minute

/oauth2/userinfo

120

1 minute

/register

10

1 minute

/signin

10

1 minute

/forgot-password

3

1 hour

Response Headers

Rate limit information is included in response headers:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1699999999
Header
Description

X-RateLimit-Limit

Maximum requests in window

X-RateLimit-Remaining

Requests remaining

X-RateLimit-Reset

Unix timestamp when limit resets

Rate Limit Exceeded

When rate limit is exceeded:

Rate Limit Types

Per IP Address

Default rate limiting is per IP address:

Per Client

Rate limit by OAuth client:

Per User

Rate limit by authenticated user:

Configuration

Environment Variables

Variable
Default
Description

RATE_LIMIT_ENABLED

true

Enable rate limiting

RATE_LIMIT_BY

ip

Rate limit key

RATE_LIMIT_WINDOW

60

Window in seconds

RATE_LIMIT_MAX

60

Max requests per window

Per-Endpoint Configuration

Whitelist

Exclude IPs from rate limiting:

Client-Specific Limits

Configure different limits per client:

Best Practices

Client Implementation

  1. Check headers - Monitor X-RateLimit-Remaining

  2. Implement backoff - Use exponential backoff on 429

  3. Cache tokens - Reduce token requests

  4. Batch requests - Combine when possible

Handling Rate Limits

Monitoring

Monitor rate limit metrics:

  • Rate of 429 responses

  • Clients hitting limits frequently

  • Unusual traffic patterns

Redis-Based Rate Limiting

For distributed deployments, use Redis:

This ensures consistent rate limiting across multiple Authority instances.

Next Steps

Last updated

Was this helpful?