Skip to main content
Every error response carries a numeric code and a stable string key. message is human-readable and may change; always branch on key.
See Error handling for retry strategy.

Code blocks

Codes are organized into 100-block ranges by domain, with sub-groups every 10 codes inside a domain.

HTTP status mapping

General / Infrastructure (1001–1007)

Cross-cutting errors that any endpoint can return.

Auth (1100–1107)

2FA (1200–1208)

Account access (1300–1311)

User Settings (1400–1422)

Codes 14151417 were added in v0.4.x for the sell flow.

Wallet (1500–1522)

Deposits — gateway (1600–1608)

gatepay and onramp deposits.

Crypto deposits / withdrawals (1800–1811)

Self-hosted EVM deposit/withdrawal/transfer.

Partner crypto payout custody (1820–1827)

Merchant management (1900–1950)

Marketplace (2000–2041)

Sell / own Steam bots (2100–2109)

Returned by the sell endpoints (GET /market/sell/prices, GET /market/sell/inventory, POST /market/sell). See the Selling guide. Selling also reuses PRICE_MISMATCH (2020), DUPLICATE_LISTING_ID (2023), LISTING_NOT_FOUND (2011), and the trade-URL codes 14151417.

Validation error shape

When key === "VALIDATION_FAILED", the error includes per-field details: