I would allow clients to pass in **kwargs everything they want, and just call `_sanitize_request_params` just before passing them to `requests`:

```python
request_params = copy.deepcopy(self._shared_requests_params)
request_params.update(kwargs)
request_params = pre_send(request_params)
response = super(HTTPService, self).request(**self_sanitize_request_params(request_params))
....
```