code: public void getConversations(final EndpointConversationsCompletionListener completionListener) {
          if (!isConnected()) {
              getEndpointConversationsError(completionListener, "Can't complete request when not connected, " +
                  "Please reconnect!");
              return;
          }
  
          String urlEndpoint = "/v1/endpoints/" + localEndpointID + "/conversations";
          signalingChannel.sendRESTMessage("get", urlEndpoint, null,
              new RespokeSignalingChannel.RESTListener() {
                  @Override
                  public void onSuccess(Object response) {
                      if (!(response instanceof JSONArray)) {
                          getEndpointConversationsError(completionListener, "Invalid response from server");
                          return;
                      }
  
                      final JSONArray json = (JSONArray) response;
                      final List<EndpointConversationInfo> results = new ArrayList<EndpointConversationInfo>();
  
                      try {
                          for (int i = 0; i < json.length(); i++) {
                              final JSONObject jsonConversationInfo = json.getJSONObject(i);
  
                              final EndpointConversationInfo info = new EndpointConversationInfo();
  
                              final JSONObject jsonMessage = jsonConversationInfo.getJSONObject("latestMsg");
  
                              info.latestMessage = buildGroupMessage(jsonMessage);
                              info.groupId = jsonConversationInfo.getString("groupId");
                              info.sourceId = jsonConversationInfo.getString("sourceId");
                              info.unreadCount = jsonConversationInfo.getInt("unreadCount");
                              info.timestamp = new Date(jsonConversationInfo.getLong("timestamp"));
  
                              results.add(info);
                          }
                      } catch (JSONException e) {
                          getEndpointConversationsError(completionListener, "Error parsing JSON response");
                          return;
                      }
  
                      new Handler(Looper.getMainLooper()).post(new Runnable() {
                          @Override
                          public void run() {
                              if (completionListener != null) {
                                  completionListener.onSuccess(results);
                              }
                          }
                      });
                  }
  
                  @Override
                  public void onError(final String errorMessage) {
                      getEndpointConversationsError(completionListener, errorMessage);
                  }
              });
      }
docs: Retrieve a list of conversations (groupIds) that this endpoint has
  message history with. Only group messages that have been marked to be
  persisted will show up in history (and thus create a conversation).
  
  The success handler is passed a list of EndpointConversationInfo records.
  
  @param completionListener The callback called when this async operation has completed