docs: def _action(self, res):
          """Returns JSON response or raise exception if errors are present"""
          try:
              j = res.json()
          except:
              res.raise_for_status()
              j = {}
  
          if 'Retry-After' in res.headers:
              raise HTTPError('403 Forbidden: API rate-limit has been reached until {}.'
                              'See http://freshdesk.com/api#ratelimit'.format(res.headers['Retry-After']))
  
          if 'require_login' in j:
              raise HTTPError('403 Forbidden: API key is incorrect for this domain')
  
          if 'error' in j:
              raise HTTPError('{}: {}'.format(j.get('description'),
                                              j.get('errors')))
  
          # Catch any other errors
          try:
              res.raise_for_status()
          except Exception as e:
              raise HTTPError("{}: {}".format(e, j))
  
          return j