Errors

All SDK errors inherit from EToroError:

EToroError
  +-- EToroApiError           # HTTP 4xx/5xx
  |     +-- EToroRateLimitError   # HTTP 429
  +-- EToroAuthError          # HTTP 401/403 or WS auth failure
  +-- EToroValidationError    # Invalid input
  +-- EToroWebSocketError     # WS connection/protocol errors

EToroError

class etoropy.EToroError(message, cause=None)[source]

Bases: Exception

Base exception for all etoropy errors.

Parameters:

EToroApiError

class etoropy.EToroApiError(message, status_code, response_body=None, request_id=None, request_context=None)[source]

Bases: EToroError

HTTP error from the eToro API (4xx/5xx).

Parameters:
  • status_code (int) – HTTP status code.

  • response_body (Any (default: None)) – Raw response text.

  • request_id (str | None (default: None)) – Correlation ID sent with the request.

  • request_context (RequestContext | None (default: None)) – Method, path, and duration of the failed request.

  • message (str)

EToroRateLimitError

class etoropy.EToroRateLimitError(message, retry_after_s=None, request_id=None)[source]

Bases: EToroApiError

HTTP 429 – rate limit exceeded.

Parameters:
  • retry_after_s (float | None (default: None)) – Seconds to wait before retrying (from Retry-After header).

  • message (str)

  • request_id (str | None (default: None))

EToroAuthError

class etoropy.EToroAuthError(message='Authentication failed', request_id=None)[source]

Bases: EToroError

Authentication failure (HTTP 401/403 or WebSocket auth rejection).

Parameters:
  • message (str (default: 'Authentication failed'))

  • request_id (str | None (default: None))

EToroValidationError

class etoropy.EToroValidationError(message, field=None)[source]

Bases: EToroError

Client-side validation error (e.g. unknown symbol, too many candles).

Parameters:
  • message (str)

  • field (str | None (default: None))

EToroWebSocketError

class etoropy.EToroWebSocketError(message, error_code=None)[source]

Bases: EToroError

WebSocket connection or protocol error.

Parameters:
  • message (str)

  • error_code (str | None (default: None))