code: protected Object httpRequest(HttpRequestMethod method, ApiParams apiParams) throws IOException {
          ApiAction action = apiParams.getApiCall();
          String url = apiUrl + "/" + action.toString().toLowerCase();
          String json = GSON.toJson(apiParams, apiParams.getType());
          Map<String, String> params = buildPayload(json);
          Object response = httpClient.executeHttpRequest(url, method, params, handler, customHeaders);
          recordRateLimitInfo(action, method, response);
          return response;
      }
docs: Make HTTP Request to Sailthru API but with Api Params rather than generalized Map, this is recommended way to make request if data structure is complex
  @param method HTTP method
  @param apiParams
  @return Object
  @throws IOException