| 80000 | SIGN_VERIFY_FAILED | Signature verification failed. The signature is invalid or the request was modified. |
| 80010 | NONCE_REPLAYED | The request was submitted more than once. |
| 80020 | ACTION_TYPE_MISMATCH | The action type does not match the endpoint. |
| 80030 | ILLEGAL_PARAMETER | Invalid parameter or empty request body. |
| 80031 | MISSING_CLIENT_ORDER_ID | Missing clientOrderId. |
| 80032 | ACCOUNT_NOT_SETUP | The user does not have an on-chain smart account or wallet. |
| 80033 | LEVERAGE_TOO_LOW | Leverage is below the minimum value. |
| 80034 | LEVERAGE_PRECISION_INVALID | Invalid leverage precision. |
| 80035 | MARGIN_MODE_INVALID | Invalid margin mode. |
| 80036 | POSITION_DIRECTION_INVALID | Invalid position direction. |
| 80037 | LEVERAGE_EXCEEDS_TIER | Leverage exceeds the current tier limit. |
| 80038 | INSTRUMENT_ISOLATED_ONLY | This contract supports isolated margin only and cannot be switched to cross margin. |
| 80039 | ISOLATED_POSITION_NOT_FOUND | No isolated position exists for the asset when adjusting margin. |
| 80040 | RATE_LIMITED | Request frequency exceeded the limit. |
| 80041 | ORDERS_STILL_EXIST | Open orders still exist for the contract before switching margin mode. |
| 80042 | REDUCE_ONLY_TPSL_FORBIDDEN | A Reduce-Only order cannot include TPSL. |
| 80043 | PARTIAL_POSITION_TPSL_FIELD_IMMUTABLE | An immutable field of a partial-position TPSL order was modified. |
| 80044 | ORDER_SIZE_BELOW_MINIMUM | Order size is below minTradeAmount. |
| 80045 | INVALID_CLIENT_ORDER_ID | Invalid clientOrderId format, region, or source. |
| 80050 | FEATURE_RESTRICTED | The feature is restricted by the user’s region or compliance policy. |
| 80058 | CALLDATA_INVALID | Invalid calldata or action payload. |
| 80060 | AGENT_NOT_AUTHORIZED | The recovered signing address is not a valid Agent for the current OpenAPI user. |
| 80061 | CREATE_SUB_ACCOUNT_NOT_ALLOWED | The main account is not allowed to create subaccounts. |
| 80062 | EXCHANGE_OS_TRADE_FROZEN | All Exchange OS trading operations are frozen for the user. |
| 80063 | EXCHANGE_OS_SPOT_BUY_FROZEN | Spot buying is frozen for the user. |
| 80064 | EXCHANGE_OS_SPOT_TRADE_FROZEN | Spot trading is frozen for the user. |
| 80065 | EXCHANGE_OS_PERP_OPEN_FROZEN | Perps opening or position-increasing operations are frozen for the user. |
| 80066 | EXCHANGE_OS_MARGIN_TRANSFER_FROZEN | Isolated margin reduction or margin-mode switching is frozen for the user. |
| 80067 | API_KEY_AUTHENTICATION_FAILED | OpenAPI API Key, signature, timestamp, Passphrase, or permission authentication failed. |
| 80068 | OPENAPI_AUTH_CROSS_SITE_NOT_SUPPORTED | The endpoint does not support cross-site API Keys. |
| 80069 | OPENAPI_AUTH_API_FROZEN | The API Key has been frozen. |
| 80070 | OPENAPI_AUTH_ENVIRONMENT_MISMATCH | The API Key does not match the current Broker domain. |
| 80071 | OPENAPI_AUTH_TIMESTAMP_EXPIRED | The request timestamp has expired. |
| 80072 | OPENAPI_AUTH_ACCESS_KEY_REQUIRED | Missing OK-ACCESS-KEY header. |
| 80073 | OPENAPI_AUTH_PASSPHRASE_REQUIRED | Missing OK-ACCESS-PASSPHRASE header. |
| 80074 | OPENAPI_AUTH_PASSPHRASE_INVALID | Invalid OK-ACCESS-PASSPHRASE. |
| 80075 | OPENAPI_AUTH_SIGNATURE_REQUIRED | Missing OK-ACCESS-SIGN header. |
| 80076 | OPENAPI_AUTH_TIMESTAMP_REQUIRED | Missing OK-ACCESS-TIMESTAMP header. |
| 80077 | OPENAPI_AUTH_BROKER_ID_MISMATCH | The API Key Broker ID does not match. |
| 80078 | OPENAPI_AUTH_IP_INVALID | The request IP is invalid or not on the whitelist. |
| 80079 | OPENAPI_AUTH_ACCESS_KEY_INVALID | Invalid OK-ACCESS-KEY. |
| 80080 | OPENAPI_AUTH_TIMESTAMP_INVALID | Invalid OK-ACCESS-TIMESTAMP. |
| 80081 | OPENAPI_AUTH_SIGNATURE_INVALID | Invalid request signature. |
| 80082 | OPENAPI_AUTH_AUTHORITY_INVALID | Invalid API Key authority. |
| 80083 | OPENAPI_AUTH_REQUEST_METHOD_INVALID | Invalid request method. |
| 80084 | OPENAPI_AUTH_API_KEY_NOT_FOUND | API Key does not exist. |
| 80085 | OPENAPI_AUTH_PERMISSION_DENIED | The API Key does not have the required permission. |
| 80086 | OPENAPI_AUTH_COLO_RESTRICTED | The request was blocked by a data-center or IP restriction policy. |
| 80087 | OPENAPI_AUTH_BASE_COIN_NOT_PERMITTED | The API Key does not have trading permission for the asset. |
| 80088 | OPENAPI_AUTH_BIZ_LINE_NOT_PERMITTED | The API Key does not have permission for the business line. |
| 80101 | INVALID_ARGUMENT | Invalid argument, such as an oversized request body, invalid format, or backend rejection. |
| 80102 | RESOURCE_NOT_FOUND | The requested resource does not exist. |
| 80103 | NOT_LEADER | The current service node cannot process the request. Retry later. |
| 80104 | DUPLICATE_TX | Duplicate request. The transaction has already been submitted. |
| 80105 | CONFLICT | State conflict. The resource is busy; retry later. |
| 80106 | TX_NOT_CONFIRMED | The request was accepted but not confirmed before timeout. Query the result later. |
| 80107 | INTERNAL_ERROR | Internal server error. |
| 80108 | NO_MARKET_DATA | The request is valid, but the upstream market-data source returned no data. |
| 80109 | INDEX_NOT_FOUND | The requested market index does not exist. |
| 80110 | GATEWAY_TIMEOUT | Request timed out and the result is unknown. |
| 80111 | USER_NOT_FOUND | The requested user does not exist. |
| 80200 | INVALID_TRANSACTION | Invalid transaction. |
| 80201 | GENERIC_MESSAGE | Generic error message. |
| 80202 | INSUFFICIENT_BALANCE | Insufficient balance. |
| 80203 | INSUFFICIENT_MARGIN | Insufficient margin. |
| 80204 | NONCE_VALIDATION_FAILED | On-chain transaction nonce validation failed. |
| 80205 | ACCOUNT_NOT_FOUND | Account does not exist. |
| 80206 | INVALID_SUB_ACCOUNT | Invalid subaccount operation. |
| 80207 | INVALID_REFERRAL | Invalid referral operation. |
| 80208 | ASSET_NOT_FOUND | Instrument or asset does not exist. |
| 80209 | PORTFOLIO_NOT_FOUND | Portfolio does not exist. |
| 80210 | ORDER_NOT_FOUND | Order does not exist. |
| 80211 | MARGIN_TABLE_NOT_FOUND | Margin tier table does not exist. |
| 80212 | EXECUTION_FAILED | Execution failed. |
| 80213 | UNAUTHORIZED | Unauthorized. |
| 80214 | BALANCE_OVERFLOW | Balance overflow. |
| 80215 | MARK_PRICE_NOT_FOUND | Mark price is unavailable. |
| 80216 | POSITION_NOT_FOUND | Position does not exist. |
| 80217 | MARGIN_CALCULATION_FAILED | Margin calculation failed. |
| 80218 | ORDER_EXECUTION_FAILED | FOK was not fully filled, IOC had no liquidity, or Post-Only would cross the market. |
| 80219 | ASSET_HALTED | Trading for the asset is suspended. |
| 80220 | ALREADY_EXISTS | The resource or state already exists. |
| 80221 | RATE_LIMITED_CHAIN | On-chain operation limit exhausted and the throttling interval has not elapsed. |
| 80222 | EXCEED_CANCEL_ALL_LIMIT | Cancel-All daily limit exceeded. |
| 80223 | EXCEED_OPEN_ORDER_LIMIT | Open-order limit exceeded. |
| 80224 | BALANCE_NOT_FOUND | Balance for the specified Token does not exist. |
| 80225 | MULTISIG_SINGLE_SIGN_DISALLOWED | A multisig account cannot use the single-signature path. |
| 80226 | MULTISIG_TARGET_NOW_NORMAL | The target user is no longer a multisig account. |
| 80227 | MULTISIG_THRESHOLD_NOT_MET | The multisig threshold has not been met. |
| 80228 | MULTISIG_OUTER_SIGNER_INVALID | Invalid multisig outer signer. |
| 80229 | MULTISIG_INNER_DIGEST_FAILED | Failed to calculate the multisig inner digest. |
| 80230 | ORDER_BELOW_MIN_NOTIONAL | Order notional is below the market minimum. |
| 80231 | TOKEN_NOT_FOUND | Token does not exist. |
| 80232 | FILL_NOT_FOUND | Fill does not exist or does not belong to the user. |
| 80233 | CASHFLOW_NOT_FOUND | Cash-flow or bill record does not exist or does not belong to the user. |
| 80234 | POST_ONLY_WOULD_CROSS | Post-Only order would execute immediately. |
| 80235 | PRICE_OUTSIDE_LIMIT_BAND | Limit price is outside the price band. |
| 80236 | BUY_PRICE_DEVIATES_BELOW_MID | Buy price is below the allowed deviation threshold from the mid price. |
| 80237 | ORDER_ABOVE_MAX_NOTIONAL | Order notional exceeds the maximum limit. |
| 80238 | OPEN_INTEREST_EXCEEDS_PLATFORM | Open interest exceeds the platform limit. |
| 80239 | OPEN_INTEREST_EXCEEDS_USER | Open interest exceeds the user limit. |
| 80240 | PLACE_TIER_NOTIONAL_EXCEEDED | Order exceeds the current tier notional limit. |
| 80241 | PLACE_INSUFFICIENT_MARGIN | Insufficient margin to place the order. |
| 80242 | REDUCE_ONLY_NO_POSITION | No corresponding position exists for the Reduce-Only order. |
| 80243 | CLOSE_SIZE_EXCEEDS_POSITION | Close size exceeds the position size. |
| 80244 | ASSET_SETTLEMENT_PENDING | Asset settlement is in progress; only Reduce-Only orders are allowed. |
| 80245 | TRIGGER_PRICE_EQUALS_REFERENCE | Trigger price equals the reference price. |
| 80246 | ALGO_SIZE_EXCEEDS_POSITION | Algo order size exceeds the position size. |
| 80247 | POSITION_TPSL_SIZE_EXCEEDS_POSITION | Position TPSL size exceeds the position size. |
| 80248 | STOP_ORDER_MODIFY_TARGET_NOT_FOUND | Stop-order modification target does not exist or has already triggered. |
| 80249 | TPSL_DIRECTION_AGAINST_PARENT | TPSL direction conflicts with the parent order. |
| 80250 | TP_LIMIT_PRICE_AGAINST_PARENT | TP limit price is on the wrong side of the parent order. |
| 80251 | TPSL_TRIGGER_CROSSED_REFERENCE | Position TPSL trigger price has already crossed the reference price. |
| 80252 | TPSL_DUPLICATE_ON_PARENT | An order can contain only one TP and one SL. |
| 80253 | ENTIRE_POSITION_TPSL_DUPLICATE | Each entire position can have only one TP and one SL group. |
| 80254 | OA_TRIGGER_MARKET_CHILD_IMMUTABLE | OA trigger-market child order cannot be modified. |
| 80255 | OA_TRIGGER_LIMIT_AMOUNT_IMMUTABLE | OA trigger-limit child order amount cannot be modified. |
| 80256 | OA_TP_LIMIT_CHILD_IMMUTABLE | OA TP-limit child order cannot be modified. |
| 80257 | ENTIRE_POSITION_TPSL_SIZE_IMMUTABLE | Entire-position TPSL size cannot be modified. |
| 80258 | POSITION_MODE_SWITCH_BLOCKED | Position mode cannot be switched while open orders or positions exist. |
| 80259 | LEVERAGE_ORDERS_EXCEED_LIMIT | Open-order count exceeds the limit when adjusting leverage. |
| 80260 | LEVERAGE_INSUFFICIENT_MARGIN_CROSS | Insufficient margin when adjusting cross-margin leverage. |
| 80261 | ISOLATED_MARGIN_TRANSFER_INSUFFICIENT | Insufficient isolated margin for the transfer. |
| 80262 | MARGIN_ADJUST_INSUFFICIENT | Margin is insufficient after the adjustment. |
| 80263 | MARGIN_ADJUST_AVAILABLE_INSUFFICIENT | Available balance is insufficient for the margin adjustment. |
| 80264 | LEVERAGE_INSUFFICIENT_MARGIN_ISOLATED | Insufficient margin when adjusting isolated leverage. |
| 80265 | MODIFY_TARGET_NOT_FOUND | Modification target does not exist or is in a terminal state. |
| 80266 | MODIFY_ASSET_SETTLEMENT_PENDING | Modification rejected because asset settlement is in progress. |
| 80267 | PLAN_MODIFY_TRIGGER_PRICE_EQUALS_REFERENCE | Modified plan-order trigger price equals the reference price. |
| 80268 | TPSL_MODIFY_TRIGGER_PRICE_EQUALS_REFERENCE | Modified position TPSL trigger price equals the reference price. |
| 80269 | PLAN_TRIGGER_CROSSED_REFERENCE | Plan-order trigger direction is invalid. |
| 80270 | PLAN_MODIFY_TRIGGER_CROSSED_REFERENCE | Modified plan-order trigger direction is invalid. |
| 80271 | TPSL_MODIFY_TRIGGER_CROSSED_REFERENCE | Modified position TPSL trigger price has crossed the reference price. |
| 80272 | TPSL_MODIFY_SIZE_EXCEEDS_POSITION | Modified position TPSL size exceeds the position size. |
| 80273 | CANCEL_CLOID_NOT_MATCHED | No cancel target was found for the specified clientOrderId. |
| 80274 | MODIFY_CLOID_NOT_MATCHED | No modification target was found for the specified clientOrderId. |
| 80275 | PLAN_MODIFY_CLOID_NOT_MATCHED | No plan-order modification target was found or the order has already triggered. |
| 80276 | MARKET_KIND_NOT_SUPPORTED | The submitted market type is not supported for this operation. |
| 80277 | WIRE_MARKET_TYPE_MISMATCH | Request marketType does not match the market type associated with assetId. |
| 80278 | MARKET_TRIGGER_PRICE_IMMUTABLE | Execution price of a market-triggered TPSL order cannot be modified. |
| 80279 | PLAN_MARKET_TRIGGER_PRICE_IMMUTABLE | Execution price of a market-triggered plan order cannot be modified. |
| 80280 | TP_LIMIT_PRICE_AGAINST_LATEST | TP limit price is on the wrong side of the latest price. |
| 80281 | MARGIN_MODE_LEVERAGE_MISMATCH | Before switching from isolated to cross margin, long and short leverage must be equal. |
| 80282 | MARGIN_MODE_INSUFFICIENT_TO_CROSS | Insufficient cross margin after switching from isolated to cross margin. |
| 80283 | MARGIN_MODE_INSUFFICIENT_TO_ISOLATED | Insufficient available margin when switching from cross to isolated margin. |
| 80284 | MODIFY_PARENT_PRICE_CONFLICTS_WITH_TPSL | Modified parent-order price conflicts with an attached TPSL trigger price. |
| 80285 | ISOLATED_POSITION_TIER_SWAP_MARGIN_INSUFFICIENT | Equity is insufficient to cover maintenance margin and liquidation fees after an isolated position tier migration. |
| 80286 | IOC_NO_LIQUIDITY | IOC or FrontMarketIoc order has no immediately available liquidity. |
| 80287 | TPSL_WIRE_SHAPE_INVALID | TPSL or plan-order wire structure is invalid. |
| 80288 | MULTISIG_INNER_ACTION_NOT_ALLOWED | The multisig envelope contains an unsupported inner action type. |
| 80289 | MULTISIG_ENVELOPE_RECONFIG_REJECTED | Multisig envelope reconfiguration is not allowed; only multisig removal is supported. |
| 80290 | MULTISIG_INNER_SIGNATURE_COUNT_INVALID | Inner signature count exceeds the allowed range. |
| 80291 | MULTISIG_OUTER_SIGNER_IS_SELF | A multisig account cannot act as its own outer signer. |
| 80900 | BACKEND_UNAVAILABLE | Backend is unreachable or unavailable. |
| 80901 | SUBMIT_FAILED | Request passed validation but failed during backend submission. |
| 80902 | NOT_YET_ENABLED | The endpoint is defined but the downstream function is not enabled. |
| 80903 | RPC_DATA_EMPTY | RPC returned an empty Data object. |