All docs
1 min read

Errors

All errors come back as JSON with at minimum a message field.

Status codes

Status Meaning
200 OK
201 Created
202 Accepted (queued background work)
302 Redirect (file downloads to signed URLs)
400 Bad request — malformed JSON, invalid query params
401 Unauthorized — missing or invalid token
402 Payment Required — plan does not include API access
403 Forbidden — token missing the right ability, or policy denied
404 Not found — record doesn't exist or belongs to another team
409 Conflict — e.g. AI insights regeneration already running
422 Validation failed — body details on what's wrong
423 Locked — feature locked by plan
429 Rate limited
500 Server error

Body shapes

Validation errors:

{
  "message": "The given data was invalid.",
  "errors": {
    "name": ["The name field is required."]
  }
}

Ability errors:

{
  "message": "token missing forms:write ability"
}

What to do

  • Re-mint your token if you see 401.
  • Read the errors map for 422.
  • Wait + retry for 429 — the response body includes a Retry-After header.
  • Upgrade your plan or use the dashboard for endpoints that come back 402 / 423.