Getting started

    Error codes reference

    Error response format, API error codes, and common HTTP status codes.

    The API uses conventional HTTP status codes: 2xx means success, 4xx means something is wrong with the request (fix and retry), 5xx means something went wrong on our side (safe to retry with backoff). Every error response carries the same JSON envelope with a stable machine-readable code, a human-readable message and, where useful, a details object pointing at the offending field.

    Error response format

    Response
    {
      "success": false,
      "error": {
        "code": "VALIDATION_ERROR",
        "message": "Email is required",
        "details": {
          "field": "email"
        }
      }
    }

    Error codes

    400
    VALIDATION_ERROR

    Invalid input data. Check the request body and parameters.

    401
    AUTHENTICATION_ERROR

    Invalid or missing authentication token. Re-authenticate and try again.

    403
    AUTHORIZATION_ERROR

    You don't have permission to access this resource.

    404
    NOT_FOUND

    The requested resource was not found.

    409
    CONFLICT_ERROR

    Resource already exists or conflicts with another resource.

    429
    RATE_LIMIT_ERROR

    Too many requests. Wait and retry with exponential backoff.

    500
    INTERNAL_ERROR

    Server error. Try again later or contact support.

    502
    EXTERNAL_SERVICE_ERROR

    External service (OpenAI, AWS) is unavailable. Try again later.

    503
    SERVICE_UNAVAILABLE

    Service temporarily unavailable for maintenance.

    Recommended retry strategy

    Handle errors by code, not by matching message text - messages can change, codes will not. Retry RATE_LIMIT_ERROR and 5xx responses with exponential backoff (for example 1s, 2s, 4s, up to 5 attempts). Never retry VALIDATION_ERROR or AUTHENTICATION_ERROR unchanged; fix the request first.

    Common HTTP status codes

    200Success
    201Created
    400Bad request
    401Unauthorized
    404Not found
    429Rate limited
    500Server error