> ## Documentation Index
> Fetch the complete documentation index at: https://www.cometchat.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve Group Members

> Fetch and filter group members by scope, status, and search keyword using the CometChat iOS SDK with pagination support.

<Accordion title="AI Integration Quick Reference">
  ```swift theme={null}
  // Fetch group members
  let request = GroupMembersRequest.GroupMembersRequestBuilder(guid: "GUID")
      .set(limit: 30).build()
  request.fetchNext(onSuccess: { members in }, onError: { error in })

  // Filter by scope
  let scopeRequest = GroupMembersRequest.GroupMembersRequestBuilder(guid: "GUID")
      .set(limit: 30).set(scopes: ["admin", "moderator"]).build()

  // Search members
  let searchRequest = GroupMembersRequest.GroupMembersRequestBuilder(guid: "GUID")
      .set(limit: 30).set(searchKeyword: "john").build()
  ```
</Accordion>

Fetch the members of a group with filtering by scope and search keyword. Results are returned as [`GroupMember`](/sdk/reference/entities#groupmember) objects, which extend [`User`](/sdk/reference/entities#user) with group-specific fields like scope.

## Retrieve the List of Group Members

Use `GroupMembersRequestBuilder` to fetch members of a group. The GUID must be specified in the constructor.

### Set Limit

Sets the number of members to fetch per request.

<Tabs>
  <Tab title="Swift">
    ```swift theme={null}
    let groupMembersRequest = GroupMembersRequest.GroupMembersRequestBuilder(guid: "cometchat-guid-1")
        .set(limit: 30)
        .build()
    ```
  </Tab>
</Tabs>

### Set Search Keyword

Filters members by a search string.

<Tabs>
  <Tab title="Swift">
    ```swift theme={null}
    let groupMembersRequest = GroupMembersRequest.GroupMembersRequestBuilder(guid: "cometchat-guid-1")
        .set(limit: 30)
        .set(searchKeyword: "abc")
        .build()
    ```
  </Tab>
</Tabs>

### Set Scopes

Filters members by one or more scopes (`.admin`, `.moderator`, `.participant`).

<Tabs>
  <Tab title="Swift">
    ```swift theme={null}
    let groupMembersRequest = GroupMembersRequest.GroupMembersRequestBuilder(guid: "cometchat-guid-1")
        .set(limit: 30)
        .set(scopes: ["admin", "participant"])
        .build()
    ```
  </Tab>
</Tabs>

### Fetch Group Members

After configuring the builder, call `build()` to create the request, then `fetchNext()` to retrieve members. Call `fetchNext()` repeatedly on the same instance to paginate.

<Tabs>
  <Tab title="Swift">
    ```swift theme={null}
    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)")
    })
    ```
  </Tab>

  <Tab title="Objective C">
    ```objc theme={null}
    NSString *guid = @"cometchat-guid-1";
    NSInteger limit = 30;

    GroupMembersRequest *groupMemberRequest = [[[[GroupMembersRequestBuilder alloc]initWithGuid:guid] setLimitWithLimit:limit] build];

    [groupMemberRequest fetchNextOnSuccess:^(NSArray<GroupMember *> * groupMembers) {
        for (GroupMember *member in groupMembers) {
            NSLog(@"Member: %@", [member stringValue]);
        }
    } onError:^(CometChatException * error) {
        NSLog(@"Error: %@", [error errorDescription]);
    }];
    ```
  </Tab>
</Tabs>

The `fetchNext()` method returns an array of [`GroupMember`](/sdk/reference/entities#groupmember) objects. [`GroupMember`](/sdk/reference/entities#groupmember) extends [`User`](/sdk/reference/entities#user) and adds group-specific fields like `scope` and `joinedAt`.

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Add Members" icon="user-plus" href="/sdk/ios/group-add-members">
    Add users to a group programmatically
  </Card>

  <Card title="Kick & Ban Members" icon="user-slash" href="/sdk/ios/group-kick-member">
    Remove or ban members from a group
  </Card>
</CardGroup>
