Skip to main content
Quick Reference for AI Agents & Developers
// Kick a member (can rejoin)
CometChat.kickGroupMember("UID", "GUID", object : CallbackListener<String>() {
    override fun onSuccess(message: String) { }
    override fun onError(e: CometChatException) { }
})

// Ban a member (cannot rejoin without unban)
CometChat.banGroupMember("UID", "GUID", callback)

// Unban a member
CometChat.unbanGroupMember("UID", "GUID", callback)
Note: Only admins and moderators can kick, ban, or unban members.
Available via: SDK | REST API | UI Kits
There are certain actions that can be performed on the group members:
  1. Kick a member from the group
  2. Ban a member from the group
  3. Unban a member from the group
  4. Update the scope of the member of the group
All of the above actions can only be performed by the Admin or the Moderator of the group.

Kick a Group Member

The Admin or Moderator of a group can kick a member out of the group using the kickGroupMember() method.
private String UID = "UID";
private String GUID = "GUID";

CometChat.kickGroupMember(UID, GUID, new CometChat.CallbackListener<String>() {
  @Override
  public void onSuccess(String successMessage) {
    Log.d(TAG, "Group member kicked successfully");
  }
  @Override
  public void onError(CometChatException e) {
    Log.d(TAG, "Group member kicking failed with exception: " + e.getMessage());
  }
});
The kickGroupMember() takes following parameters:
ParameterDescription
UIDThe UID of the user to be kicked
GUIDThe GUID of the group from which user is to be kicked
The kicked user will be no longer part of the group and can not perform any actions in the group, but the kicked user can rejoin the group.

Ban a Group Member

The Admin or Moderator of the group can ban a member from the group using the banGroupMember() method.
private String UID = "UID";
private String GUID = "GUID";

CometChat.banGroupMember(UID, GUID, new CometChat.CallbackListener<String>() {
  @Override
  public void onSuccess(String successMessage) {
    Log.d(TAG, "Group member banned successfully");
  }
  @Override
  public void onError(CometChatException e) {
    Log.d(TAG, "Group member banning failed with exception: " + e.getMessage());
  }
});
The banGroupMember() method takes the following parameters:
ParameterDescription
UIDThe UID of the user to be banned
GUIDThe GUID of the group from which user is to be banned
The banned user will be no longer part of the group and can not perform any actions in the group. A banned user cannot rejoin the group same group without being unbanned.

Unban a Banned Group Member from a Group

Only Admin or Moderators of the group can unban a previously banned member from the group using the unbanGroupMember() method.
private String UID = "UID";
private String GUID = "GUID";

CometChat.unbanGroupMember(UID, GUID, new CometChat.CallbackListener<String>() {
  @Override
  public void onSuccess(String successMessage) {
    Log.d(TAG, "Group Member unbanned successfully");
  }
  @Override
  public void onError(CometChatException e) {
    Log.d(TAG, "Group Member unbanning failed with exception: " + e.getMessage());
  }
});
The unbanGroupMember() method takes the following parameters
ParameterDescription
UIDThe UID of the user to be unbanned
GUIDThe UID of the group from which user is to be banned
The unbanned user can now rejoin the group.

Get List of Banned Members for a Group

To fetch the list of banned group members for a group, use the BannedGroupMembersRequest class. To create an object of the BannedGroupMembersRequest class, you need to use the BannedGroupMembersRequestBuilder class. The BannedGroupMembersRequestBuilder class allows you to set the parameters based on which the banned group members are fetched. The BannedGroupMembersRequestBuilder class allows you to set the following parameters: The GUID of the group for which the banned 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 banned members that should be fetched in a single iteration.
BannedGroupMembersRequest bannedGroupMembersRequest = new BannedGroupMembersRequest.BannedGroupMembersRequestBuilder(GUID)
  .setLimit(limit)
  .build();

Set Search Keyword

This method allows you to set the search string based on which the banned group members are to be fetched.
BannedGroupMembersRequest bannedGroupMembersRequest = new BannedGroupMembersRequest.BannedGroupMembersRequestBuilder(GUID)
  .setSearchKeyword("abc")
  .build();
Finally, once all the parameters are set on the builder class, call the build() method to get the object of the BannedGroupMembersRequest class. Once you have the object of the BannedGroupMembersRequest class, call the fetchNext() method. This method returns a list of GroupMember objects containing n number of banned members where n is the limit set in the builder class.
private BannedGroupMembersRequest bannedGroupMembersRequest = null;
private String GUID = "GUID";
private int limit = 30;

bannedGroupMembersRequest = new BannedGroupMembersRequest.BannedGroupMembersRequestBuilder(GUID).setLimit(limit).build();

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

Real-Time Group Member Kicked/Banned Events

How do I know when someone is banned or kicked while my app is running? To receive real-time events for kick/ban/unban group member actions, override the following methods of the GroupListener class.
  1. onGroupMemberKicked() - Triggered when any group member has been kicked.
  2. onGroupMemberBanned() - Triggered when any group member has been banned.
  3. onGroupMemberUnbanned() - Triggered when any group member has been unbanned.
CometChat.addGroupListener(GroupChatActivity.class.getSimpleName(), new CometChat.GroupListener() {
  @Override
  public void onGroupMemberKicked(Action action, User kickedUser, User kickedBy, Group kickedFrom) {

  }

  @Override
  public void onGroupMemberBanned(Action action, User bannedUser, User bannedBy, Group bannedFrom) {

  }

  @Override
  public void onGroupMemberUnbanned(Action action, User unbannedUser, User unbannedBy, Group unbannedFrom) {

  }
});

Missed Group Member Kicked/Banned Events

How do I know when someone is banned or kicked while my app is not running? When you retrieve the list of previous messages, if a member has been kicked/banned/unbanned from any group that the logged-in user is a member of, the list of messages will contain an Action message. An Action message is a sub-class of the BaseMessage class. For group member kicked event, the details can be obtained using the below fields of the Action class-
  1. action - kicked
  2. actionBy - User object containing the details of the user who has kicked the member
  3. actionOn - User object containing the details of the member that has been kicked
  4. actionFor - Group object containing the details of the Group from which the member was kicked
For group member banned event, the details can be obtained using the below fields of the Action class-
  1. action - banned
  2. actionBy - User object containing the details of the user who has banned the member
  3. actionOn - User object containing the details of the member that has been banned
  4. actionFor - Group object containing the details of the Group from which the member was banned
For group member unbanned event, the details can be obtained using the below fields of the Action class-
  1. action - unbanned
  2. actionBy - User object containing the details of the user who has unbanned the member
  3. actionOn - User object containing the details of the member that has been unbanned
  4. actionFor - Group object containing the details of the Group from which the member was unbanned
Always remove group listeners when they’re no longer needed (e.g., in onDestroy() or when navigating away). Failing to remove listeners can cause memory leaks and duplicate event handling.

Best Practices

Use kick for temporary removal (user can rejoin). Use ban for permanent removal (requires unban to rejoin). Choose based on severity of violation.
Always prompt admins/moderators to confirm before kicking or banning members, as these actions immediately remove users from the group.
Store ban reasons in your database or use metadata to track why members were banned for future reference and appeals.
Use BannedGroupMembersRequest to review banned members list and consider unbanning users after appropriate time periods.

Troubleshooting

Symptom: Operation fails with “Insufficient permissions” error.Cause: User is not an admin or moderator of the group.Solution: Only admins and moderators can kick or ban members. Check the user’s scope before showing these options.
Symptom: Operation fails when trying to kick or ban an admin.Cause: Admins have elevated permissions and cannot be kicked or banned by moderators.Solution: Only group owners or other admins can remove admin members. Consider changing their scope first using group-change-member-scope.
Symptom: unbanGroupMember() fails with “User not banned” error.Cause: The user is not currently banned from the group.Solution: Fetch the banned members list first using BannedGroupMembersRequest to verify the user is banned.

Next Steps