Iterate through the members of a chat sequentially.

This convenience method does the same as repeatedly calling get_chat_members() in a loop, thus saving you from the hassle of setting up boilerplate code. It is useful for getting the whole members list of a chat with a single call.

  • chat_id (int | str) – Unique identifier (int) or username (str) of the target chat.

  • limit (int, optional) – Limits the number of members to be retrieved. By default, no limit is applied and all members are returned 1.

  • query (str, optional) – Query string to filter members based on their display names and usernames. Defaults to “” (empty string) 2.

  • filter (str, optional) – Filter used to select the kind of members you want to retrieve. Only applicable for supergroups and channels. It can be any of the followings: “all” - all kind of members, “kicked” - kicked (banned) members only, “restricted” - restricted members only, “bots” - bots only, “recent” - recent members only, “administrators” - chat administrators only. Defaults to “recent”.


Server limit: on supergroups, you can get up to 10,000 members for a single query and up to 200 members on channels.


A query string is applicable only for “all”, “kicked” and “restricted” filters only.


Generator – A generator yielding ChatMember objects.


# Iterate though all chat members
for member in app.iter_chat_members("pyrogramchat"):

# Iterate though all administrators
for member in app.iter_chat_members("pyrogramchat", filter="administrators"):

# Iterate though all bots
for member in app.iter_chat_members("pyrogramchat", filter="bots"):