Exceptions

Exception classes for handling errors from the Moderately AI API.

Base Exceptions

class moderatelyai_sdk.exceptions.ModeratelyAIError(message, details=None)[source]

Bases: Exception

Base exception class for all Moderately AI SDK errors.

All SDK-specific exceptions inherit from this class, making it easy to catch any SDK-related error with a single except clause.

Parameters:
__init__(message, details=None)[source]
Parameters:
class moderatelyai_sdk.exceptions.APIError(message, status_code=None, response_data=None, request_id=None)[source]

Bases: ModeratelyAIError

Raised when an API request fails due to a server error or client error.

This is the most common exception you’ll encounter when using the SDK. It includes the HTTP status code and full response data for debugging.

Parameters:
__init__(message, status_code=None, response_data=None, request_id=None)[source]
Parameters:

Authentication Exceptions

class moderatelyai_sdk.exceptions.AuthenticationError(message='Authentication failed')[source]

Bases: ModeratelyAIError

Raised when authentication fails.

This typically means: - No API key was provided - The API key is invalid or expired - The API key doesn’t have permission for the requested operation

Parameters:

message (str)

__init__(message='Authentication failed')[source]
Parameters:

message (str)

HTTP Status Exceptions

class moderatelyai_sdk.exceptions.NotFoundError(message='Resource not found')[source]

Bases: APIError

Raised when a requested resource is not found (HTTP 404).

Parameters:

message (str)

__init__(message='Resource not found')[source]
Parameters:

message (str)

class moderatelyai_sdk.exceptions.ConflictError(message='Request conflicts with current state')[source]

Bases: APIError

Raised when a request conflicts with the current state (HTTP 409).

Parameters:

message (str)

__init__(message='Request conflicts with current state')[source]
Parameters:

message (str)

class moderatelyai_sdk.exceptions.UnprocessableEntityError(message='Unprocessable entity')[source]

Bases: APIError

Raised when the request is well-formed but semantically incorrect (HTTP 422).

Parameters:

message (str)

__init__(message='Unprocessable entity')[source]
Parameters:

message (str)

Rate Limiting and Timeouts

class moderatelyai_sdk.exceptions.RateLimitError(message='Rate limit exceeded', retry_after=None)[source]

Bases: APIError

Raised when the API rate limit is exceeded.

Includes retry_after information when available, indicating how long to wait before making another request.

Parameters:
__init__(message='Rate limit exceeded', retry_after=None)[source]
Parameters:
class moderatelyai_sdk.exceptions.TimeoutError(message='Request timed out')[source]

Bases: ModeratelyAIError

Raised when a request times out.

This can happen due to network issues or when the server takes too long to respond. The SDK automatically retries timeout errors with exponential backoff.

Parameters:

message (str)

__init__(message='Request timed out')[source]
Parameters:

message (str)

Validation Exceptions

class moderatelyai_sdk.exceptions.ValidationError(message, details=None)[source]

Bases: ModeratelyAIError

Raised when request validation fails.

This includes detailed information about which fields failed validation and why, making it easy to fix the request.

Parameters:
__init__(message, details=None)[source]
Parameters: