ErrorEnvelope

Every 4xx and 5xx response has this shape.

  • error
    Type: object · Error
    required

    What went wrong, and which part of the request caused it.

    • details
      Type: array object[] · ErrorDetail[]
      required

      One entry per individual problem, so a rejected request can be fixed in one pass instead of one field at a time. Empty on failures that are not field-specific.

      A single problem with the request, pointing at the parameter or body field responsible.

    • message
      Type: string
      required

      Human-readable summary of the failure. Intended for logs and developers, not for end users.

    • request_id
      Type: string
      required

      Identifier for the failed request. Quote it when contacting support.

    • status
      Type: integer
      required

      The HTTP status code, repeated here so the body is self-contained.

    • type
      Type: string enum
      required

      What kind of failure this is. Branch on this rather than on message:

      • bad_request (400) — a query parameter is unknown, malformed or conflicts with another.
      • authentication_error (401) — the access token is missing, expired or invalid.
      • insufficient_permissions (403) — the token is valid but the member behind it is not allowed to do this.
      • not_found (404) — no such record in your account.
      • validation_error (422) — the request body was understood but rejected. See details.
      • rate_limited (429) — you have exhausted a rate limit window.
      • internal_error (500) — something failed on our side. Safe to retry.
      values
      • bad_request
      • authentication_error
      • insufficient_permissions
      • not_found
      • validation_error
      • rate_limited
      • internal_error