Rate Limits
API requests are rate-limited based on your subscription plan.
Limits by plan
| Plan | Price | Requests |
|---|---|---|
| Free | $0/mo | 1,000/month |
| Plus | $29/mo | 25,000/month |
| Pro | $69/mo | 150,000/month |
| Ultra | $199/mo | 500,000/month |
Exceeding the limit
If you exceed your rate limit, you'll receive a 429 Too Many Requests response:
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded. Please retry later.",
"retryAfter": 30
}Best practices
1. Implement exponential backoff
When you get a 429, wait before retrying and increase the wait time on repeated failures:
import time
import requests
def make_request_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url, headers=headers)
if response.status_code == 429:
wait_time = 30 * (2 ** attempt)
print(f"Rate limited. Waiting {wait_time}s...")
time.sleep(wait_time)
continue
return response
raise Exception("Max retries exceeded")2. Cache responses
Cache API responses when possible. Filing data doesn't change frequently.
3. Use the limit parameter
Request only the data you need to reduce unnecessary API calls.
Need higher limits?
Upgrade your plan for more requests, or email support@secdaily.io for custom enterprise plans.