Error Format

All errors will return with the same base format. Look to the right to see an example.

{
  "status_code": 401,
  "error": {
    "minor_code": 4012,
    "type": "API Authentication Failure",
    "message": "The supplied bearer token has expired.  Please obtain a new one.",
    "details": {
      "bearer_token": "7GimeNYhwD3fs0xoTtLXdZIox53eSttzrRf71ENA"
    },
    "error_token": "54ae20da-a2d3-47a1-ac29-f9b7569ca652"
  },
  "timestamp": 1472052254031,
  "evaluation_token": null,
  "entity_token": null,
  "application_token": null,
  "application_version_id": null
}
AttributeDescription
status_codeSame as HTTP status code but included for easy access and debugging
errorThe main error object
error.minor_codeMinor code indicating the exact type of the error. Every type of handled error in the Alloy system gets a unique minor error code. See below for the list of possible minor error codes
error.typeHigh level description of error
error.messageMore detailed error message
error.detailsObject possibly containing information to make it easier to debug the cause of the error
timestampUnix timestamp of error
evaluation_tokenEvaluation token for this request if it has been set (otherwise null)
entity_tokenEntity token for this request if it has been set (otherwise null)
application_tokenApplication token for this request if it has been set (otherwise null)
application_version_idApplication version ID for this request if it has been set (otherwise null)
HTTP codeMinor CodeDescription
200Waiting Data Request- please PATCH the missing params
201Created - this will be the result of all HTTP POST requests, we just successfully "created" the entity on our system
202Pending Webhook
206Partial Response - if the request executed but some upstream services failed to execute, we will return as much data as we can. You can resume this evaluation where it left off by running PATCH https://sandbox.alloy.co/v1/evaluations/<evaluation_token>
4004000Bad Request - Custom Error Occurred
4004001Bad Request - Header Validation Failure
4004002Bad Request - Request Body Validation Failure
4004003Bad Request - Invalid Request Body
4004005Bad Request - Supplied Token Not Associated With Entity
4004039Bad Request - Transaction Not Found
4004043Bad Request - Validation Error
4014011Unauthorized
4014012Unauthorized - Credentials Expired
4014013Unauthorized - API Authentication Failure or the object you tried to get does not exist.
4014014Unauthorized - Bearer token refresh unauthorized
4014015Unauthorized - Production mode disabled
4014016Unauthorized - Client IP not in allowlist
4014017Unauthorized - Invalid auth mechanism
4014018Unauthorized - You must use "Basic" or "Bearer" header auth
4014019Unauthorized - Basic token must be Base64 encoded
4014020Unauthorized - Revoked API Key
4034031Forbidden - Entity token not valid
4034032Forbidden - Environment mismatch - can not switch between sandbox and live
4034033Forbidden - You are not allowed to perform this action
4044004Not Found - The specified document has not yet been uploaded
4044041Not Found - Evaluation Not Found
4044042Not Found - The specified list does not exist
4054050Method Not Allowed - Method not allowed for the resource identified
4094091Conflict - The specified resource already exists or conflicts with an existing resource
4094092Conflict - Attribute type mismatch
4104101Gone - Unable to supply additional fields to an expired evaluation
4124121Precondition Failed - App disabled
4184180I'm a teapot
4264261Upgrade Required - Upgrade to new endpoint required
4294033Rate Limit Exceeded - You have reached the maximum rate
5005000Unhandled Server Error
5005001Unhandled Server Error - Service(s) disabled
5005002Unhandled Server Error - Response body validation failure
5005003Unhandled Server Error - Error running what-if analysis
5035031Service Unavailable - We're temporarily offline for maintenance. We're probably looking over Peter's shoulder while he configures NGINX.
5115111Network Authentication Required - Missing network authentication for proxying to service