Error Codes

Understanding API errors and reason codes

HTTP Status Codes

StatusErrorDescription
400validation_errorInvalid request parameters
401unauthorizedInvalid or missing API key
403forbiddenAPI key lacks permission
404not_foundEndpoint not found
429rate_limit_exceededToo many requests
500internal_errorServer error
503service_unavailableTemporary outage

Error Response Format

{
    "error": "validation_error",
    "message": "Missing required field: actions",
    "request_id": "req_xxxxx"
}

Decision Reason Codes

CodeConstantDescription
0OKAction approved
1NO_VALID_ACTIONAll actions failed thresholds
2SAFETY_VETOSafety constraint violated
3MISSION_VETOMission constraint violated
4ETHICS_VETOEthics constraint violated

Handling Rate Limits

try:
    result = ata.decide(actions=[0, 1, 2])
except RateLimitError as e:
    time.sleep(60)  # Wait and retry
    result = ata.decide(actions=[0, 1, 2])