Ah, I just noticed the `except HTTPError` in the client. It's probably worth documenting, as this is something that the client should always verify.

```
Raises:
    requests.HTTPError:
        Raised if login fails (for any reason).
```

Even better would be to analyze the raised exception to determine whether it's an authentication problem, a network problem, or something else, and then throw an appropriate exception with an explanatory message.