DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS
API·ERRORS

Errors

Every error response from the API has the same shape:

{ "error": { "code": "string", "message": "human-readable", "details": { } } }

details is optional and present only when relevant (e.g., a list of field-level validation errors).

Status codes

StatusCodeMeaning
400bad_requestMalformed request body or query parameters. details lists field errors.
401unauthorizedMissing, malformed, or unknown API key.
403forbiddenValid key, but missing required scope.
404not_foundResource does not exist or is not in your workspace.
409conflictState conflict — e.g., trying to set a duplicate unique value.
429rate_limitedToken bucket exhausted. See Rate limits.
500internal_errorSomething went wrong on our end. Safe to retry after a short delay.

Field-level validation

For 400 bad_request on a create or update, details.fields is an object keyed by field name with an array of issues:

{
  "error": {
    "code": "bad_request",
    "message": "Validation failed",
    "details": {
      "fields": {
        "Email": ["must be a valid email address"]
      }
    }
  }
}