400 | bad_request, model_load_error, sdk_error | Model file missing, ONNX load failed, generic bad input |
401 | unauthorized | Missing/invalid Bearer token, or a session token that isn’t valid |
402 | plan_limit_reached | The free-plan run limit was reached; upgrade on the platform (raised as PlanLimitError in the SDK) |
403 | forbidden | Valid session, but the account’s role doesn’t allow this action (see Authentication) |
404 | not_found, unknown_action | Unknown job/key/rule/deployment/invite id, or an unrecognized action |
409 | conflict | E.g. trying to demote the platform’s last remaining Admin, or a duplicate email on registration |
422 | invalid_request, invalid_config, missing_field, calibration_required, unsupported_config | Request failed validation, or a config/action combination the SDK can’t run (e.g. QAT without calibration_data) |
424 | backend_not_installed | An optional export backend (TensorFlow, Paddle, TFLite) isn’t installed |
429 | rate_limited | Too many requests from this caller — see Rate limiting |
500 | quantization_failed, benchmark_failed, internal_error | The job itself failed, or an unhandled bug in the API layer |
503 | unavailable | E.g. the dashboard’s site-password check when R3AL_API_KEY isn’t configured server-side |