code: def _handle_api_call(self, url):
          
          response = requests.get(url, proxies=self.proxy)
          if 'json' in self.output_format.lower() or 'pandas' in \
                  self.output_format.lower():
              json_response = response.json()
              if "Error Message" in json_response:
                  raise ValueError(json_response["Error Message"])
              elif "Information" in json_response and self.treat_info_as_error:
                  raise ValueError(json_response["Information"])
              elif "Note" in json_response and self.treat_info_as_error:
                  raise ValueError(json_response["Note"])
              return json_response
          else:
              csv_response = csv.reader(response.text.splitlines())
              if not csv_response:
                  raise ValueError(
                      'Error getting data from the api, no return was given.')
              return csv_response
docs: Handle the return call from the  api and return a data and meta_data
          object. It raises a ValueError on problems
  
          Keyword Arguments:
              url:  The url of the service
              data_key:  The key for getting the data from the jso object
              meta_data_key:  The key for getting the meta data information out
              of the json object