- Blitz Rocket API DocumentationGetting StartedAPI ReferenceWebhooksReferral Tracking
Rate Limits
Understand API request limits and how to handle them
On this page
Rate Limits
The Blitz Rocket API enforces rate limits to ensure fair usage and protect service stability. Rate limits are applied per API key and vary by endpoint.
Default Limits
| Endpoint Category | Limit | Window |
|---|---|---|
| General endpoints | 100 requests | 1 minute |
| Contest entry creation | 5 requests | 15 minutes (per IP + contest) |
| Email/phone verification | 10 requests | 15 minutes (per IP + email) |
| Entry lookup | 20 requests | 5 minutes (per IP) |
Rate Limit Headers
When you approach or exceed rate limits, the API returns a 429 Too Many Requests status code:
{
"success": false,
"error": "Rate limit exceeded. Please try again later."
}
Best Practices
- Cache responses where possible to reduce the number of API calls
- Implement exponential backoff when you receive a 429 response
- Batch operations instead of making many individual requests
- Use webhooks for real-time updates instead of polling endpoints
Example: Exponential Backoff
async function fetchWithRetry(url, options, maxRetries = 3) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
const response = await fetch(url, options);
if (response.status === 429) {
const delay = Math.pow(2, attempt) * 1000;
await new Promise((resolve) => setTimeout(resolve, delay));
continue;
}
return response;
}
throw new Error("Max retries exceeded");
}
import time
import requests
def fetch_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url, headers=headers)
if response.status_code == 429:
delay = (2 ** attempt)
time.sleep(delay)
continue
return response
raise Exception("Max retries exceeded")