ADCG enforces rate limits per API key to ensure fair usage and platform stability. Limits vary by plan tier.
| Plan | Requests/Minute | Concurrent Runs | Evidence Retention |
|---|---|---|---|
| Free | 50 | 2 | 30 days |
| Standard | 200 | 10 | 1 year |
| Professional | 600 | 50 | 3 years |
| Enterprise | 2,000 | Unlimited | Unlimited |
Unauthenticated requests (e.g., health checks, OpenAPI spec) are limited to 200 requests/minute per IP.
Every response includes rate limit information:
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 187
X-RateLimit-Reset: 1708012380
| Header | Description |
|---|---|
X-RateLimit-Limit |
Maximum requests allowed in the current window |
X-RateLimit-Remaining |
Requests remaining in the current window |
X-RateLimit-Reset |
Unix timestamp when the window resets |
When you exceed your rate limit:
Retry-After header indicates how many seconds to wait{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 12 seconds.",
"retryAfter": 12
}
}
Beyond rate limits, some resources have monthly quotas:
| Resource | Free | Standard | Professional | Enterprise |
|---|---|---|---|---|
| Pipeline runs | 100/mo | 1,000/mo | 10,000/mo | Unlimited |
| Evidence storage | 1 GB | 10 GB | 100 GB | Unlimited |
| Webhook endpoints | 2 | 10 | 50 | Unlimited |
| API keys | 2 | 10 | 50 | Unlimited |
If you're hitting limits:
GET /v1/usage shows current consumption across all quotas/pricingEnterprise customers can negotiate custom limits tailored to their workload.