Docs / API Reference / Error Codes

Error Codes

TrueEntropy uses conventional HTTP status codes and structured JSON error responses. Every error includes a machine-readable code and a human-readable message.

Error Response Format

Error Response
{ "error": { "code": "rate_limited", "message": "Rate limit exceeded. Retry after 12 seconds.", "retry_after": 12 } }

HTTP Status Codes

StatusMeaning
200Success - request completed, random values returned
400Bad Request - invalid parameters (see specific error code)
401Unauthorized - missing or invalid API key
403Forbidden - key lacks required scope
404Not Found - endpoint or resource does not exist
429Rate Limited - too many requests, retry after specified delay
500Internal Error - server-side issue, contact support
503Service Unavailable - maintenance or pool exhaustion

Error Codes Reference

CodeHTTPDescription
auth_missing401No Authorization header provided
auth_invalid401API key is invalid, revoked, or expired
auth_scope403API key lacks the required scope for this endpoint
invalid_count400count parameter out of allowed range
invalid_range400min must be less than max
unique_impossible400Unique values requested but range too small
invalid_encoding400encoding must be hex or base64
invalid_type400Batch type must be integers, floats, bytes, or uuid
invalid_precision400precision must be between 1 and 16
invalid_length400Bitstring length out of allowed range
rate_limited429Rate limit exceeded - check X-RateLimit-Reset header
quota_exceeded429Monthly request quota exhausted
pool_exhausted503Entropy pool temporarily depleted (rare)
internal_error500Unexpected server error - includes request_id for support
cert_not_found404Certificate ID does not exist

Handling Errors

error_handling.py
from trueentropy import TrueEntropy, TrueEntropyError, RateLimitError client = TrueEntropy(api_key="te_live_YOUR_KEY") try: result = client.integers(count=5) except RateLimitError as e: print(f"Rate limited. Retry after {e.retry_after}s") except TrueEntropyError as e: print(f"Error {e.code}: {e.message}")