docs: def request(self, method, path, params=None, headers=None, body=None):
          """ Base method for making a Losant API request """
          if not headers:
              headers = {}
          if not params:
              params = {}
  
          headers["Accept"] = "application/json"
          headers["Accept-Version"] = "^1.15.0"
          if self.auth_token:
              headers["Authorization"] = "Bearer {0}".format(self.auth_token)
  
          path = self.url + path
          params = self.flatten_params(params)
          response = requests.request(method, path, params=params, headers=headers, json=body)
  
          result = response.text
          try:
              result = response.json()
          except Exception:
              pass
  
          if response.status_code >= 400:
              raise LosantError(response.status_code, result)
  
          return result