docs: def _make_request(session, url, argument=None, params=None, raw=False):
      """Make a request to API endpoint."""
      if not params:
          params = {}
      params['key'] = session.auth.key
      try:
          if argument:
              request_url = '{}{}{}{}'.format(session.auth.base_url, VOOBLY_API_URL, url, argument)
          else:
              request_url = '{}{}'.format(VOOBLY_API_URL, url)
          resp = session.get(request_url, params=params)
      except RequestException:
          raise VooblyError('failed to connect')
      if resp.text == 'bad-key':
          raise VooblyError('bad api key')
      elif resp.text == 'too-busy':
          raise VooblyError('service too busy')
      elif not resp.text:
          raise VooblyError('no data returned')
      if raw:
          return resp.text
      try:
          return tablib.Dataset().load(resp.text).dict
      except UnsupportedFormat:
          raise VooblyError('unexpected error {}'.format(resp.text))