Rate Limits & Errors

The API applies per-minute rate limits per key and request category.

Limits

CategoryRequests / minute
Reads600
Writes60
Analytics30
AI generation10

Writes and generation are intentionally stricter.

Rate-limit headers

Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.

When you hit the limit

The API returns 429 with a Retry-After header. Wait that many seconds before retrying, and use exponential backoff for long-running automations.

Error shape

All errors return { "error": { "code": "...", "message": "..." }, "request_id": "req_…" }.

StatusCodeMeaning
401unauthorizedMissing or invalid key
403missing_scopeKey lacks the required scope
404not_foundResource does not exist in your academy
409idempotency_conflictSame Idempotency-Key, different body
422validation_errorInvalid request fields
429rate_limit_exceededRate limit hit — see Retry-After

Did this page help you?