Every method logs its activity at the DEBUG level - Every error produces a user-readable message (not a raw exception traceback) - The class works as a context manager (supports `with APIClient(...) as client:`) - Constructor validates that at least base_url was provided