Skip to main content
Quick Reference for AI Agents & Developers
// Kick member (can rejoin)
await CometChat.kickGroupMember("group_guid", "user_uid");

// Ban member (cannot rejoin until unbanned)
await CometChat.banGroupMember("group_guid", "user_uid");

// Unban member
await CometChat.unbanGroupMember("group_guid", "user_uid");

// Get banned members list
const bannedRequest = new CometChat.BannedMembersRequestBuilder("group_guid")
  .setLimit(30)
  .build();
const bannedMembers = await bannedRequest.fetchNext();

// Listen for kick/ban events
CometChat.addGroupListener("LISTENER", new CometChat.GroupListener({
  onGroupMemberKicked: (msg, kickedUser, kickedBy, group) => {},
  onGroupMemberBanned: (msg, bannedUser, bannedBy, group) => {},
  onGroupMemberUnbanned: (msg, unbannedUser, unbannedBy, group) => {}
}));
Remove members from a group by kicking (temporary) or banning (permanent until unbanned).
Availability: SDK, API, UI KitsOnly admins and moderators can kick or ban members.

Kick vs Ban

ActionDescription
KickRemoves member, but they can rejoin
BanRemoves member, cannot rejoin until unbanned

Kick a Member

Remove a member who can rejoin later:
const GUID = "group-123";
const UID = "user1";

CometChat.kickGroupMember(GUID, UID).then(
  (response) => console.log("Member kicked:", response),
  (error) => console.log("Failed:", error)
);

Ban a Member

Permanently remove a member until unbanned:
const GUID = "group-123";
const UID = "user1";

CometChat.banGroupMember(GUID, UID).then(
  (response) => console.log("Member banned:", response),
  (error) => console.log("Failed:", error)
);

Unban a Member

Allow a banned member to rejoin:
const GUID = "group-123";
const UID = "user1";

CometChat.unbanGroupMember(GUID, UID).then(
  (response) => console.log("Member unbanned:", response),
  (error) => console.log("Failed:", error)
);

Get Banned Members

Fetch the list of banned members:
const GUID = "group-123";
const limit = 30;

const bannedRequest = new CometChat.BannedMembersRequestBuilder(GUID)
  .setLimit(limit)
  .build();

bannedRequest.fetchNext().then(
  (bannedMembers) => console.log("Banned members:", bannedMembers),
  (error) => console.log("Failed:", error)
);

Search Banned Members

const bannedRequest = new CometChat.BannedMembersRequestBuilder("group-123")
  .setLimit(30)
  .setSearchKeyword("john")
  .build();

Real-Time Events

Listen for kick, ban, and unban events:
const listenerID = "GROUP_LISTENER";

CometChat.addGroupListener(
  listenerID,
  new CometChat.GroupListener({
    onGroupMemberKicked: (message, kickedUser, kickedBy, kickedFrom) => {
      console.log(`${kickedBy.getName()} kicked ${kickedUser.getName()}`);
    },
    onGroupMemberBanned: (message, bannedUser, bannedBy, bannedFrom) => {
      console.log(`${bannedBy.getName()} banned ${bannedUser.getName()}`);
    },
    onGroupMemberUnbanned: (message, unbannedUser, unbannedBy, unbannedFrom) => {
      console.log(`${unbannedBy.getName()} unbanned ${unbannedUser.getName()}`);
    }
  })
);

// Remove listener when done
CometChat.removeGroupListener(listenerID);

Missed Events in Message History

When fetching messages, kick/ban/unban events appear as Action messages:
messages.forEach((message) => {
  if (message.getCategory() === "action") {
    const action = message.getAction();
    const user = message.getActionOn();
    const by = message.getActionBy();
    
    switch (action) {
      case "kicked":
        console.log(`${by.getName()} kicked ${user.getName()}`);
        break;
      case "banned":
        console.log(`${by.getName()} banned ${user.getName()}`);
        break;
      case "unbanned":
        console.log(`${by.getName()} unbanned ${user.getName()}`);
        break;
    }
  }
});

Next Steps