Guides

Chat Members

Main Walkthrough 15 of 25

Chat members are represented by ChatMember objects. Each object contains the member and their status in the chat.

With setChatMemberTag, you can set or remove a member’s tag when the chat supports member tags.

Listing Members

getChatMembers lists the members of a group, supergroup, or channel.

const members = await client.getChatMembers(chatId);

for (const { member, status } of members) {
  console.log(member.id, status);
}

getChatMember lets you retrieve one member.

const member = await client.getChatMember(chatId, userId);

Listing Administrators

getChatAdministrators lists a chat’s administrators.

const administrators = await client.getChatAdministrators(chatId);

Online MembersUSER-ONLY

To get the approximate number of online members, call getOnlineCount.

Handling Membership Changes

The chatMember update contains the previous and current state of a member.

client.on("chatMember", (ctx) => {
  const { oldChatMember, newChatMember } = ctx.update.chatMember;
  console.log(oldChatMember.status, newChatMember.status);
});

With the myChatMember update, you can handle changes to the current account’s membership.

Adding Members

addChatMember adds one member, while addChatMembers adds several.

Restricting a Member

setChatMemberRights lets you restrict a member of a supergroup.

await client.setChatMemberRights(chatId, userId, {
  rights: {
    canSendMessages: false,
  },
});

A future Unix timestamp in until makes the restriction temporary.

Promoting a Member

To grant administrator rights, call promoteChatMember.

await client.promoteChatMember(chatId, userId, {
  canDeleteMessages: true,
  canManageTopics: true,
});

Removing a Member

Ban a member to prevent them from rejoining. Unban them to allow them to join again.

await client.banChatMember(chatId, userId);
await client.unbanChatMember(chatId, userId);

With kickChatMember, you can remove a member without keeping them banned.

await client.kickChatMember(chatId, userId);

Deleting a Member’s MessagesUSER-ONLY

Users who administer a chat can delete all messages from one member with deleteChatMemberMessages.

await client.deleteChatMemberMessages(chatId, memberId);