Memo AIDocs

Errors & rate limits

HTTP status codes the Memo AI API returns, what causes them, 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