docs: def error_handler(response, **kwargs):
      """Error Handler to surface 4XX and 5XX errors.
  
      Attached as a callback hook on the Request object.
  
      Parameters
          response (requests.Response)
              The HTTP response from an API request.
          **kwargs
              Arbitrary keyword arguments.
  
      Raises
          ClientError (ApiError)
              Raised if response contains a 4XX status code.
          ServerError (ApiError)
              Raised if response contains a 5XX status code.
  
      Returns
          response (requests.Response)
              The original HTTP response from the API request.
      """
      try:
          body = response.json()
      except ValueError:
          body = {}
      status_code = response.status_code
      message = body.get('message', '')
      fields = body.get('fields', '')
      error_message = str(status_code) + ': ' + message + ' ' + str(fields)
      if 400 <= status_code <= 499:
          raise ClientError(response, error_message)
  
      elif 500 <= status_code <= 599:
          raise ServerError(response, error_message)
  
      return response