Rate Limits
CC enforces rate limits per API key based on your environment.
Default Rate Limits
| Environment | Requests per minute (RPM) |
|---|---|
development |
120 |
production |
1000 |
Endpoint-Specific Limits
| Endpoint | Development RPM | Production RPM |
|---|---|---|
POST /v1/ingest |
120 | 1,000 |
GET /v1/signals |
120 | 1,000 |
GET /v1/alerts |
120 | 500 |
GET /v1/score |
120 | 1,000 |
GET /v1/report |
20 | 20 |
GET /v1/usage |
10 per 10 min | 10 per 10 min |
Handling 429 Responses
When you exceed the rate limit:
HTTP/2 429 Too Many Requests
retry-after: 60
{
"error": "Rate limit exceeded. Please reduce request frequency.",
"retry_after": 60
}
Implement retry logic that reads the retry-after header before resending.
Python example:
import time, requests
def call_with_retry(url, headers, params, max_retries=3):
for attempt in range(max_retries):
r = requests.get(url, headers=headers, params=params)
if r.status_code == 429:
wait = int(r.headers.get("retry-after", 60))
print(f"Rate limited. Waiting {wait}s...")
time.sleep(wait)
else:
return r
raise Exception("Max retries exceeded")
Production keys require an active paid plan. See Credits & Pricing.
Expert help
Need help tracking this in your app?
Our team sets up analytics pipelines for mobile and web teams every day. Talk to us and get your first events flowing in under an hour.
Talk to an expert