Skip to main content
Quick Reference for AI Agents & Developers
  • Build request: GroupMembersRequest.GroupMembersRequestBuilder(guid:).set(limit:).build()
  • Fetch members: groupMembersRequest.fetchNext(onSuccess:onError:)
  • Filters: .set(searchKeyword:), .set(scopes:)
  • Member scopes: .admin, .moderator, .participant
  • Related: Add Members · Kick Member · Groups Overview

GroupMembersRequestBuilder

Build a request to fetch group members with various filters.

GroupMembersRequestBuilder Methods

MethodParameterReturnsDescription
init(guid:)StringGroupMembersRequestBuilderConstructor with GUID
set(limit:)IntGroupMembersRequestBuilderNumber of members to fetch (1-100)
set(searchKeyword:)StringGroupMembersRequestBuilderSearch in member name
set(scopes:)[String]GroupMembersRequestBuilderFilter by scopes
build()-GroupMembersRequestBuild the request
Builder Configuration:
ParameterTypeDescription
guidStringUnique group identifier (required). Example: "cometchat-guid-1"
limitIntMaximum number of members to fetch per request. Range: 1-100. Example: 30
searchKeywordStringSearch string to filter members by name. Example: "john"
scopes[String]Filter members by scopes. Example: ["admin", "moderator"]
Common Filter Combinations:
Use CaseBuilder Configuration
Fetch all members.set(limit: 30).build()
Fetch admins only.set(limit: 30).set(scopes: ["admin"]).build()
Fetch moderators only.set(limit: 30).set(scopes: ["moderator"]).build()
Search members by name.set(limit: 30).set(searchKeyword: "john").build()
Fetch admins and moderators.set(limit: 30).set(scopes: ["admin", "moderator"]).build()

GroupMembersRequest Methods (After build())

MethodReturnsDescription
fetchNext(onSuccess:onError:)[GroupMember]Fetch next batch of members

Retrieve Group Members

In order to fetch the list of groups members for a group, you can use the GroupMembersRequest class. To use this class i.e to create an object of the GroupMembersRequest class, you need to use the GroupMembersRequestBuilder class.

Set Limit

This method sets the limit i.e. the number of members that should be fetched in a single iteration.
let groupMembersRequest = GroupMembersRequest.GroupMembersRequestBuilder(guid: "cometchat-guid-1")
    .set(limit: 30)
    .build()

Set Search Keyword

This method allows you to set the search string based on which the group members are to be fetched.
let groupMembersRequest = GroupMembersRequest.GroupMembersRequestBuilder(guid: "cometchat-guid-1")
    .set(limit: 30)
    .set(searchKeyword: "abc")
    .build()

Set Scopes

This method allows you to fetch group members based on multiple scopes.
let groupMembersRequest = GroupMembersRequest.GroupMembersRequestBuilder(guid: "cometchat-guid-1")
    .set(limit: 30)
    .set(scopes: ["admin", "participant"])
    .build()

Fetch Group Members

Once you have the object of the GroupMembersRequest class, you need to call the fetchNext() method. Calling this method will return a list of GroupMember objects.
let limit = 30
let guid = "cometchat-guid-1"

let groupMembersRequest = GroupMembersRequest.GroupMembersRequestBuilder(guid: guid)
    .set(limit: limit)
    .build()

groupMembersRequest.fetchNext(onSuccess: { (groupMembers) in
    for member in groupMembers {
        print("Member: \(member.stringValue())")
    }
}, onError: { (error) in
    print("Error: \(error?.errorDescription)")
})
Request Parameters:
ParameterTypeDescription
guidStringUnique group identifier. Example: "cometchat-guid-1"
limitIntMaximum number of members to fetch. Example: 30
Success Response (Array of GroupMember Objects):
ParameterTypeDescription
uidString?Unique identifier of the member. Example: "cometchat-uid-1"
nameString?Display name of the member. Example: "John Doe"
avatarString?URL to the member’s avatar image. Example: "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-1.webp"
scopeMemberScopeMember’s scope in the group. Example: .admin
joinedAtDoubleUnix timestamp when member joined. Example: 1771586968.0
statusUserStatusCurrent online status. Example: .online
lastActiveAtDoubleUnix timestamp of last activity. Example: 1772105474.0
Sample Member Entries:
uidnamescopejoinedAtstatus
cometchat-uid-2George Alan.admin1771586968.0.online
cometchat-uid-1Andrew Joseph.participant1771586970.0.offline
cometchat-uid-3Jane Smith.moderator1771587000.0.offline
Error Response (CometChatException):
ParameterTypeDescription
errorCodeStringUnique error code. Example: "ERR_GROUP_NOT_JOINED"
errorDescriptionStringHuman-readable error message. Example: "The user with UID cometchat-uid-2 is not a member of the group with GUID cometchat-guid-1. Please join the group to access it."
Request Parameters:
ParameterTypeDescription
guidStringUnique group identifier. Example: "cometchat-guid-1"
limitIntMaximum number of members to fetch. Example: 30
scopes[String]Filter by scopes. Example: ["admin"]
Success Response (Array of GroupMember Objects):
ParameterTypeDescription
uidString?Unique identifier of the admin member. Example: "cometchat-uid-2"
nameString?Display name of the member. Example: "George Alan"
avatarString?URL to the member’s avatar image. Example: "https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-2.webp"
scopeMemberScopeMember’s scope (filtered to admin). Example: .admin
joinedAtDoubleUnix timestamp when member joined. Example: 1771586968.0
statusUserStatusCurrent online status. Example: .online
Error Response (CometChatException):
ParameterTypeDescription
errorCodeStringUnique error code. Example: "ERR_GROUP_NOT_JOINED"
errorDescriptionStringHuman-readable error message. Example: "The user is not a member of the group"
Request Parameters:
ParameterTypeDescription
guidStringUnique group identifier. Example: "cometchat-guid-1"
limitIntMaximum number of members to fetch. Example: 30
scopes[String]Filter by scopes. Example: ["moderator"]
Success Response (Array of GroupMember Objects):
ParameterTypeDescription
uidString?Unique identifier of the moderator member. Example: "cometchat-uid-3"
nameString?Display name of the member. Example: "Jane Smith"
avatarString?URL to the member’s avatar image. Example: "https://example.com/avatar.png"
scopeMemberScopeMember’s scope (filtered to moderator). Example: .moderator
joinedAtDoubleUnix timestamp when member joined. Example: 1771587000.0
statusUserStatusCurrent online status. Example: .offline

GroupMember Object Properties

PropertyTypeDescription
uidString?Unique identifier of the member
nameString?Display name
avatarString?Avatar URL
linkString?Profile link URL
roleString?User role
metadata[String: Any]?Custom metadata
statusUserStatus.online or .offline
statusMessageString?Custom status message
lastActiveAtDoubleLast active Unix timestamp
scopeMemberScope.admin, .moderator, or .participant
joinedAtDoubleUnix timestamp when member joined
hasJoinedBoolWhether user has joined the group

MemberScope Enum

ScopeRaw ValueDescription
.admin”admin”Full group management privileges
.moderator”moderator”Can kick/ban members, delete messages
.participant”participant”Default scope, can send/receive messages

Common Error Codes

Error CodeDescriptionResolution
ERR_GROUP_NOT_FOUNDGroup with specified GUID does not existVerify the GUID is correct
ERR_GROUP_NOT_JOINEDLogged-in user is not a member of the groupJoin the group first
ERR_INVALID_GUIDInvalid or empty GUID providedProvide a valid group GUID