Specala AIDocs

Errors & rate limits

HTTP status codes the Specala AI API returns (401, 403, 422, 429, 5xx), the JSON error shape, what triggers each one, and how to handle rate limits.

The API uses standard HTTP status codes. 2xx means success; 4xx means something about the request needs fixing.

Status codes

StatusMeaningTypical cause
200OKRequest succeeded.
201CreatedKey created (management).
204No ContentKey revoked (management).
401UnauthorizedMissing/invalid/expired key, or key passed in the URL.
403ForbiddenPlan without API access (api_access_denied).
404Not FoundResource doesn't exist in your workspace.
422Unprocessable EntityInvalid parameter (e.g. bad format, too many ids).
429Too Many RequestsRate limit exceeded.
5xxServer errorTransient — retry with backoff.

Error shape

Most errors return a JSON body with a detail field. Plan/access errors include a machine-readable code:

403 Forbidden
{
  "detail": {
    "code": "api_access_denied",
    "message": "Your current plan does not include API access. Please upgrade to a plan with API & MCP support."
  }
}
401 Unauthorized
{
  "detail": "Invalid API key"
}

Common cases

What you seeWhyFix
401 on every callKey revoked, expired, or has a trailing spaceCreate a fresh key, copy carefully
401 with a key in the query stringKeys in URLs are rejected by designMove the key to the Authorization header
403 api_access_deniedPlan without API & MCPUpgrade to Pro or Expert
404 on a known IDThe transcription is in another workspaceUse a key for that workspace
422 on exportformat isn't md/txt, or ids is empty/over 100Fix the parameter

Rate limits

Limits are per key:

SurfaceLimit
Data endpoints (list / get / export / bulk)500 requests / minute
Key management180 requests / minute

When you exceed a limit you get 429. Handle it gracefully:

  • Back off, don't retry immediately. Wait a few seconds and try again.
  • Avoid tight loops. To export many transcriptions, use Bulk export (one request) instead of looping over single exports.
  • Spread work out rather than firing hundreds of calls at once.

Don't auto-retry on 429 instantly

Immediate automatic retries make the limit worse. Use exponential backoff (e.g. 1s, 2s, 4s).

On this page