Error Handling
Deribit maps every JSON-RPC error Deribit returns onto one of these exceptions,
importable from typed_deribit directly:
| exception | raised on |
|---|---|
AuthError |
missing credentials; auth required (10000), invalid credentials (10001), bad/expired token (13009), token revoked (13010), missing permissions (13011), 2FA failed (13668) |
RateLimited |
too_many_requests (10028) |
BadRequest |
order/self-trade errors (11000-11009), bad_request (11050) |
ApiError |
any other non-empty JSON-RPC error |
ValidationError |
the response shape didn't match the expected schema (validate=True, the default) |
NetworkError |
connection failures, timeouts |
LogicError |
incorrect local usage of the client (e.g. a truncated pagination window) |
Pattern
from typed_deribit import (
ApiError, AuthError, BadRequest, Deribit, NetworkError, RateLimited, ValidationError,
)
async with Deribit.new(testnet=True) as client:
try:
summary = await client.http.account.get_account_summary(currency='BTC')
except AuthError:
... # missing or rejected credentials
except RateLimited:
... # back off and retry
except BadRequest:
... # invalid parameters
except ValidationError:
... # response didn't match the expected schema
except ApiError:
... # any other venue-reported error
except NetworkError:
... # connection failureEvery call also accepts validate=False per-call, or Deribit.new(validate=False)
client-wide, to skip response validation and its ValidationError.