code: def fetch(self, path, parse=lambda r: r['results'][0]):
          
          url = self.BASE_URI + path
          headers = {'X-API-Key': self.apikey}
  
          log.debug(url)
  
          resp, content = self.http.request(url, headers=headers)
          content = u(content)
          content = json.loads(content)
  
          # handle errors
          if not content.get('status') == 'OK':
  
              if "errors" in content and content['errors'][0]['error'] == "Record not found":
                  raise NotFound(path)
  
              if content.get('status') == '404':
                  raise NotFound(path)
  
              raise CongressError(content, resp, url)
  
          if callable(parse):
              content = parse(content)
  
          return content
docs: Make an API request, with authentication.
  
          This method can be used directly to fetch new endpoints
          or customize parsing.
  
          ::
  
              >>> from congress import Congress
              >>> client = Congress()
              >>> senate = client.fetch('115/senate/members.json')
              >>> print(senate['num_results'])
              101