Operator Api
Error codes
Common error codes returned by the operator-facing API surface.
Error codes
Operator routes use the standard H3/Nitro error envelope. Clients should branch on HTTP status and statusMessage; message is human-readable context and may equal the code.
{
"statusCode": 403,
"statusMessage": "INSUFFICIENT_SCOPE",
"message": "INSUFFICIENT_SCOPE"
}
Authentication
UNAUTHORIZED-> missing or malformed bearer headerINVALID_API_KEY-> wrong, revoked, or inactive-operator API keyINVALID_OPERATOR_SESSION-> expired or revoked staff sessionINSUFFICIENT_SCOPE-> active API key or staff session lacks the required scopeSTAFF_SESSION_REQUIRED-> staff-management endpoint called with an API key
Resource and input
INVALID_NAMEINVALID_LAUNCH_PARAMETERSINVALID_EXTERNAL_USER_IDINVALID_SCOPESINVALID_IDINVALID_MARKETINVALID_MARKET_IDINVALID_TRADE_IDINVALID_AMOUNTINVALID_CATEGORYINVALID_VISIBILITYINVALID_DELIVERY_IDNOT_FOUNDINVALID_URLINVALID_OPERATOR_HOSTINVALID_ENABLED_EVENTSINVALID_STATUSINVALID_ENDPOINT_IDINVALID_DIRECTIONINVALID_AMOUNT_MINORINVALID_IDEMPOTENCY_KEYINVALID_USER_IDINVALID_STAFF_IDINVALID_INPUTINVALID_EMAILFULL_CONTRACT_CONFIRMATION_REQUIREDOPERATOR_USER_NOT_FOUNDTRADE_NOT_FOUNDMARKET_NOT_FOUNDWEBHOOK_ENDPOINT_NOT_FOUNDWEBHOOK_DELIVERY_NOT_FOUNDSTAFF_NOT_FOUNDUSER_NOT_FOUNDOPERATOR_USER_CREATE_FAILEDAPI_KEY_CREATE_FAILEDWEBHOOK_ENDPOINT_CREATE_FAILEDWEBHOOK_ENDPOINT_UPDATE_FAILEDSIMULATOR_USER_CREATE_FAILEDSIMULATOR_USER_UPDATE_FAILEDFX_RATE_UNAVAILABLEFX_RATE_INVALID
Simulator
SIMULATOR_DISABLEDSIMULATOR_USER_NOT_FOUND
Wallet adapter
REST_V1_UNSUPPORTED_CURRENCYINVALID_BASE_URLINVALID_FIELDBEARER_TOKEN_REQUIREDINVALID_WALLET_ADAPTER_CONFIGWALLET_ADAPTER_ENCRYPTION_NOT_CONFIGUREDWALLET_ADAPTER_UPDATE_FAILED
Staff auth
INVALID_OPERATOR_SESSIONPASSWORD_CHANGE_NOT_SUPPORTEDRATE_LIMIT_EXCEEDEDINVALID_CREDENTIALSMULTIPLE_OPERATOR_MEMBERSHIPS_UNSUPPORTED
Staff management
INVALID_SCOPESWILDCARD_SCOPE_NOT_ALLOWEDCANNOT_ASSIGN_SCOPESELF_ACCESS_UPDATE_FORBIDDENSELF_PASSWORD_RESET_FORBIDDENNO_UPDATESEMAIL_EXISTS
Operator action
| HTTP status | Typical codes | Operator action |
|---|---|---|
400 | INVALID_*, FULL_CONTRACT_CONFIRMATION_REQUIRED, NO_UPDATES | Correct path/query/body values. |
401 | UNAUTHORIZED, INVALID_API_KEY, INVALID_OPERATOR_SESSION, INVALID_CREDENTIALS | Replace or refresh the credential; do not retry unchanged. |
403 | INSUFFICIENT_SCOPE, STAFF_SESSION_REQUIRED, CANNOT_ASSIGN_SCOPE, WILDCARD_SCOPE_NOT_ALLOWED | Use the required scope/auth type or ask an authorized staff member. |
404 | NOT_FOUND, *_NOT_FOUND, SIMULATOR_DISABLED | Confirm ownership, environment, and identifier. |
409 | EMAIL_EXISTS, MULTIPLE_OPERATOR_MEMBERSHIPS_UNSUPPORTED | Resolve the conflicting account/membership instead of retrying unchanged. |
429 | RATE_LIMIT_EXCEEDED | Wait for the login rate-limit window before retrying. |
502 | FX_RATE_INVALID | Retry later; if persistent, escalate the operator FX configuration/runtime issue. |
500 | *_FAILED, FX_RATE_UNAVAILABLE | Preserve the request id/evidence and escalate; do not assume the mutation rolled back. |
For every failure, confirm the endpoint's required scope, request schema, environment, and operator-owned resource before escalating.
