Errors and limits
Errors use a stable JSON shape:field, suggestedFix, allowedValues, and writableFields are included when the server can provide a precise recovery hint. AI agents should use those fields to correct the payload instead of guessing.
Common error codes
Recovery fields
Example non-writable field error:
Scopes
API keys carry scopes. Aread key can list and read subscriptions and call the analytics and audit endpoints. A write key additionally allows create, update, cancel, pause, resume, and delete. A write call made with a read-only key returns 403 insufficient_scope; do not retry — request a write-scoped key. See Authentication.
Rate-limit headers
Authenticated API responses include:X-RateLimit-Reset is a Unix timestamp in seconds.
Validation failures (400) are rejected before the hourly quota is consumed, so they do not count against your limit and do not carry rate-limit headers. Fixing the payload and retrying is free.
429 responses also include a Retry-After header with the number of seconds to wait before retrying. This applies both to the per-user request limit and to the “too many invalid API key attempts” lockout.