Perpetual, Lending, Margin Trading, and Vault routes are Testnet-Only, so references to them on this page apply to Testnet.
code together with HTTP status. Messages are descriptive and can change.
Unregistered routes can return a plain-text 404, and hosted gateways can return non-JSON errors.
Empty, absent and unavailable
An empty collection normally returns an empty array or wrapper array. A Vault activity/redemption collection first checks the vault exists and can return 404. Null valuations mean insufficient pricing/history, not zero balances or safe risk. A 503 can mean ticker data, paginated history or a required risk view is temporarily unavailable. Use bounded backoff and inspect the relevant response state before resuming trading. List limits are generally capped at their maximum; book depth above 20 is rejected. Follow Pagination for each collection instead of assuming one global limit rule.Rate limiting
REST reads use a per-client-IP token bucket. The configured requests-per-second and burst are deployment values; no per-key trading quota or cancellation reserve is implied. The application does not guarantee aRetry-After header. Cache reference data, bound concurrency, and prefer supported streams for frequently changing data.
WebSocket errors have a different frame format. WebSocket command and connection limits are separate from REST reads and native chain transaction budgets.