Rate limits
Default 600 req/min per key, burst 1000. Response headers tell you where you stand.
What it is
Per-key default is 600 req/min sustained, 1000 req/min burst. Per-route classes apply additional limits — read endpoints are cheap, write endpoints normal, bulk-mutate endpoints (e.g. WAF rule import) more expensive. When exceeded, you receive 429 rate_limited with a Retry-After header.
Quota limits (separate from rate-limits) are enforced per-tenant per-resource (e.g. 32 H100s/region/tenant). Quota exhaustion returns 429 quota_exceeded — request a lift, don't retry.
Quickstart
curl -i https://api.asc.aiarco.com/v1/pods -H 'Authorization: Bearer asc_live_…' | head -10
# HTTP/2 200
# ratelimit-limit: 600
# ratelimit-remaining: 423
# ratelimit-reset: 12# Pattern: handle 429 with exponential backoff + jitter, honour Retry-After.
from aiarco import AscError
import time, random
while True:
try:
return client.pods.list()
except AscError as e:
if e.code != 'rate_limited': raise
time.sleep(int(e.retry_after) + random.uniform(0, 0.5))// Same shape in TS; the SDK retries 429 with backoff by default unless you opt out.Limits & quotas
| Limit | Default | Burst | Notes |
|---|---|---|---|
| Default sustained | 600 req/min/key | — | |
| Default burst | 1,000 req/min/key | — | |
| Mutate-bulk (e.g. WAF import) | 20 req/min/key | — | |
| MCP invocations | 300 req/min/key | — | Per scope |
Security
All access is authenticated and scoped. See Auth & scopes and Network controls.