code: def request(self, endpoint):
          
          method = endpoint.method
          method = method.lower()
          params = None
          try:
              params = getattr(endpoint, "params")
          except AttributeError:
              # request does not have params
              params = {}
  
          headers = {}
          if hasattr(endpoint, "HEADERS"):
              headers = getattr(endpoint, "HEADERS")
  
          request_args = {}
          if method == 'get':
              request_args['params'] = params
          elif hasattr(endpoint, "data") and endpoint.data:
              request_args['json'] = endpoint.data
  
          # if any parameter for request then merge them
          request_args.update(self._request_params)
  
          # which API to access ?
          if not (hasattr(endpoint, "STREAM") and
                  getattr(endpoint, "STREAM") is True):
              url = "{}/{}".format(
                  TRADING_ENVIRONMENTS[self.environment]["api"],
                  endpoint)
  
              response = self.__request(method, url,
                                        request_args, headers=headers)
              content = response.content.decode('utf-8')
              content = json.loads(content)
  
              # update endpoint
              endpoint.response = content
              endpoint.status_code = response.status_code
  
              return content
  
          else:
              url = "{}/{}".format(
                  TRADING_ENVIRONMENTS[self.environment]["stream"],
                  endpoint)
              endpoint.response = self.__stream_request(method,
                                                        url,
                                                        request_args,
                                                        headers=headers)
              return endpoint.response
docs: Perform a request for the APIRequest instance 'endpoint'.
  
          Parameters
          ----------
          endpoint : APIRequest
              The endpoint parameter contains an instance of an APIRequest
              containing the endpoint, method and optionally other parameters
              or body data.
  
          Raises
          ------
              V20Error in case of HTTP response code >= 400