Skip to main content
Quick Reference for AI Agents & Developers
// Fetch group members with filters
val groupMembersRequest = GroupMembersRequestBuilder("GUID")
    .setLimit(30)
    .setSearchKeyword("search")
    .setScopes(listOf("admin", "moderator"))
    .build()

groupMembersRequest.fetchNext(object : CallbackListener<List<GroupMember>>() {
    override fun onSuccess(members: List<GroupMember>) { }
    override fun onError(e: CometChatException) { }
})
Available via: SDK | REST API | UI Kits

Retrieve the List of Group Members

To fetch the list of group members for a group, use the GroupMembersRequest class. To create an object of the GroupMembersRequest class, you need to use the GroupMembersRequestBuilder class. The GroupMembersRequestBuilder class allows you to set the parameters based on which the group members are fetched. The GroupMembersRequestBuilder class allows you to set the following parameters: The GUID of the group for which the members are to be fetched must be specified in the constructor of the GroupMembersRequestBuilder class.

Set Limit

This method sets the limit i.e. the number of members that should be fetched in a single iteration.
GroupMembersRequest groupMembersRequest = new GroupMembersRequest.GroupMembersRequestBuilder(GUID)
  .setLimit(limit)
  .build();

Set Search Keyword

This method allows you to set the search string based on which the group members are to be fetched.
GroupMembersRequest groupMembersRequest = new GroupMembersRequest.GroupMembersRequestBuilder(GUID)
  .setSearchKeyword("abc")
  .build();

Set Scopes

This method allows you to fetch group members based on the specified scopes.
List<String> scopes = new ArrayList<>();
scopes.add("admin");
scopes.add("moderator");
GroupMembersRequest groupMembersRequest = new GroupMembersRequest.GroupMembersRequestBuilder(GUID)
  .setScopes(scopes)
  .build();
Finally, once all the parameters are set on the builder class, call the build() method to get the object of the GroupMembersRequest class. Once you have the object of the GroupMembersRequest class, call the fetchNext() method. This method returns a list of GroupMember objects containing N number of members depending on the limit set.
private GroupMembersRequest groupMembersRequest = null;
private String GUID = "GUID";
private int limit = 30;

groupMembersRequest = new GroupMembersRequest.GroupMembersRequestBuilder(GUID).setLimit(limit).build();

groupMembersRequest.fetchNext(new CometChat.CallbackListener<List<GroupMember>>(){
  @Override
  public void onSuccess(List<GroupMember> list) {
    Log.d(TAG, "Group Member list fetched successfully: " + list.size());
  }
  @Override
  public void onError(CometChatException e) {
    Log.d(TAG, "Group Member list fetching failed with exception: " + e.getMessage());
  }
});  

Best Practices

Set an appropriate limit (e.g., 30) and call fetchNext() multiple times to load members in batches, especially for large groups.
Use setScopes() to fetch only admins and moderators when building admin panels or management interfaces.
Cache fetched member lists locally to reduce API calls and improve performance when users navigate back to member lists.

Troubleshooting

Symptom: fetchNext() returns an empty list even though the group has members.Cause: The GUID is incorrect, or filters are too restrictive.Solution: Verify the GUID is correct. Remove filters temporarily to check if members exist.
Symptom: fetchNext() fails with “Not a member” error.Cause: User is not a member of the group (for private groups).Solution: Ensure the user has joined the group before fetching members. Use join-group first.
Symptom: setScopes() returns all members instead of filtered results.Cause: Scope values must be lowercase strings: “admin”, “moderator”, “participant”.Solution: Use lowercase scope values. Check the Group Class for valid scope constants.

Next Steps