> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-js-sdk-llms-index.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve Group Members

> Fetch and paginate group members using the CometChat JavaScript SDK.

<Accordion title="AI Integration Quick Reference">
  | Field           | Value                                                                                                                                                                                                                                    |
  | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | Package         | `@cometchat/chat-sdk-javascript`                                                                                                                                                                                                         |
  | Import          | `import { CometChat } from "@cometchat/chat-sdk-javascript";`                                                                                                                                                                            |
  | Key methods     | `groupMembersRequest.fetchNext()` (build via `GroupMembersRequestBuilder`)                                                                                                                                                               |
  | Request builder | `CometChat.GroupMembersRequestBuilder(GUID)` — GUID is passed to the constructor; configure with `.setLimit()` · `.setSearchKeyword()` · `.setScopes()` · `.setStatus()`; then `.build()` → `.fetchNext()` (call repeatedly to paginate) |
  | Key classes     | `CometChat.GroupMember` extends `CometChat.User`; access scope via `getScope()` (`"admin"` / `"moderator"` / `"participant"`); status via `CometChat.USER_STATUS.ONLINE` / `.OFFLINE`                                                    |
  | Primary output  | `Promise<CometChat.GroupMember[]>` — resolves to an array of members; rejects with `CometChat.CometChatException`                                                                                                                        |
  | Prerequisites   | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview); a valid GUID must be supplied to the builder constructor                    |
  | Related         | [Retrieve Groups](/sdk/javascript/retrieve-groups) · [Add Members to a Group](/sdk/javascript/group-add-members) · [Kick & Ban Members](/sdk/javascript/group-kick-ban-members) · [Create a Group](/sdk/javascript/create-group)         |
  | Full reference  | [`GroupMember`](/sdk/reference/entities#groupmember) · [`User`](/sdk/reference/entities#user)                                                                                                                                            |
</Accordion>

## Retrieve the List of Group Members

Use `GroupMembersRequestBuilder` to fetch members of a [Group](/sdk/reference/entities#group). The GUID must be specified in the constructor.

Fetching using this builder will return [`GroupMember`](/sdk/reference/entities#groupmember) objects. `GroupMember` extends [`User`](/sdk/reference/entities#user) and adds group-specific fields.

### Set Limit

Sets the number of members to fetch per request.

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    let GUID: string = "GUID";
    let limit: number = 30;
    let groupMembersRequest: CometChat.GroupMembersRequest = new CometChat.GroupMembersRequestBuilder(GUID)
      .setLimit(limit)
      .build();
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    let GUID = "GUID";
    let limit = 30;
    let groupMembersRequest = new CometChat.GroupMembersRequestBuilder(GUID)
      												.setLimit(limit)
      												.build();   
    ```
  </Tab>
</Tabs>

### Set Search Keyword

Filters members by a search string.

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    let GUID: string = "GUID";
    let limit: number = 30;
    let searchKeyword: string = "super";
    let groupMembersRequest: CometChat.GroupMembersRequest = new CometChat.GroupMembersRequestBuilder(GUID)
      .setLimit(limit)
      .setSearchKeyword(searchKeyword)
      .build();
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    let GUID = "GUID";
    let limit = 30;
    let searchKeyword = "super";
    let groupMembersRequest = new CometChat.GroupMembersRequestBuilder(GUID)
      												.setLimit(limit)
      												.setSearchKeyword(searchKeyword)
      												.build();
    ```
  </Tab>
</Tabs>

### Set Scopes

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

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    let GUID: string = "GUID";
    let limit: number = 30;
    let scopes: Array<String> = ["admin", "moderator"];
    let groupMembersRequest: CometChat.GroupMembersRequest = new CometChat.GroupMembersRequestBuilder(GUID)
      .setLimit(limit)
      .setScopes(scopes)
      .build();
    ```
  </Tab>

  <Tab title="JavaScript">
    ````javascript let GUID = "GUID"; let limit = 30; let scopes = ["admin", theme={null}
    "moderator"]; let groupMembersRequest = new
    CometChat.GroupMembersRequestBuilder(GUID) .setLimit(limit) .setScopes(scopes)
    .build(); ```
    </Tab>

    </Tabs>

    Relevant fields to access on returned members:

    | Field | Getter       | Return Type | Description                                                                     |
    | ----- | ------------ | ----------- | ------------------------------------------------------------------------------- |
    | scope | `getScope()` | `string`    | Scope of the member in the group (`"admin"`, `"moderator"`, or `"participant"`) |

    ### Set Status

    Filters members by online status:

    | Value                           | Description          |
    | ------------------------------- | -------------------- |
    | `CometChat.USER_STATUS.ONLINE`  | Only online members  |
    | `CometChat.USER_STATUS.OFFLINE` | Only offline members |

    If not set, returns all members regardless of status.

    <Tabs>
    <Tab title="TypeScript">
    ```typescript
    let GUID: string = "GUID";
    let limit: number = 30;
    let groupMembersRequest: CometChat.GroupMembersRequest = new CometChat.GroupMembersRequestBuilder(GUID)
    .setLimit(limit)
    .setStatus(CometChat.USER_STATUS.ONLINE)
    .build();
    ````
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    let GUID = "GUID";
    let limit = 30;
    let groupMembersRequest = new CometChat.GroupMembersRequestBuilder(GUID)
      .setLimit(limit)
      .setStatus(CometChat.USER_STATUS.ONLINE)
      .build();
    ```
  </Tab>
</Tabs>

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="TypeScript">
    ```typescript theme={null}
    let GUID: string = "GUID";
    let limit: number = 30;
    let groupMembersRequest: CometChat.GroupMembersRequest = new CometChat.GroupMembersRequestBuilder(GUID)
      .setLimit(limit)
      .build();

    groupMembersRequest.fetchNext().then(
    (groupMembers: CometChat.GroupMember[]) => {
    console.log("Group Member list fetched successfully:", groupMembers);
    }, (error: CometChat.CometChatException) => {
    console.log("Group Member list fetching failed with exception:", error);
    }
    );

    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    let GUID = "GUID";
    let limit = 30;
    let groupMemberRequest = new CometChat.GroupMembersRequestBuilder(GUID)
      												.setLimit(limit)
      												.build();

    groupMemberRequest.fetchNext().then(
    groupMembers => {
      console.log("Group Member list fetched successfully:", groupMembers);
    }, error => {
      console.log("Group Member list fetching failed with exception:", error);
    }
    );
    ```
  </Tab>
</Tabs>

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

***

## Next Steps

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

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