Rate Limiting
Brewry implements rate limiting to ensure fair usage and system stability.
Rate Limits
- 1 request per second per API key
Rate Limit Headers
Every API response includes rate limit information in the headers:
X-RateLimit-Limit: 1
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1616236800
Header | Description |
---|---|
X-RateLimit-Limit | Maximum requests allowed per second |
X-RateLimit-Remaining | Remaining requests in the current window |
X-RateLimit-Reset | Unix timestamp when the rate limit resets |
Rate Limit Exceeded
When you exceed the rate limit, you'll receive a 429 Too Many Requests response:
{
"status": "error",
"error": "Rate limit exceeded",
"code": "RATE_LIMIT_EXCEEDED",
"retry_after": 1
}
Best Practices
-
Implement Exponential Backoff
import time
import random
def make_request():
max_retries = 3
base_delay = 1
for attempt in range(max_retries):
try:
response = requests.post(url, json=data, headers=headers)
if response.status_code != 429:
return response
retry_after = int(response.headers.get('Retry-After', base_delay))
time.sleep(retry_after + random.uniform(0, 1))
except Exception as e:
if attempt == max_retries - 1:
raise e -
Monitor Rate Limits
- Track remaining requests
- Implement alerts for approaching limits
- Log rate limit responses
-
Optimize Request Patterns
- Batch requests when possible
- Distribute requests across time
- Use appropriate request intervals
Support
Need help with rate limits?
- Contact support at support@brewry.xyz
- Visit our Support Center