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

# Retrieve Group Members

## Retrieve the List of 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. The `GroupMembersRequestBuilder` class allows you to set the parameters based on which the groups are to be fetched.

The `GroupMembersRequestBuilder` class allows you to set the below parameters:

The GUID of the group for which the members are to be fetched must be specified in the constructor of the `GroupMembersRequestBuilder` class.

### Set Limit

This method sets the limit i.e. the number of members that should be fetched in a single iteration.

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

  <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>
</Tabs>

### Set Search Keyword

This method allows you to set the search string based on which the group members are to be fetched.

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

  <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>
</Tabs>

### Set Scopes

This method allows you to fetch group members based on multiple scopes.

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

  <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>
</Tabs>

### Set Status

The status based on which the group members are to be fetched. The status parameter can contain one of the below two values:

* CometChat.USER\_STATUS.ONLINE - will return the list of only online group members.
* CometChat.USER\_STATUS.OFFLINE - will return the list of only offline group members.

If this parameter is not set, will return all the group members regardless of their status.

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

  <Tab title="TypeScript">
    ```typescript theme={null}
    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>
</Tabs>

Finally, once all the parameters are set to the builder class, you need to call the build() method to get the object of the `GroupMembersRequest` class.

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 containing n number of members where n is the limit set in the builder class.

<Tabs>
  <Tab title="Group Members Request">
    ```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>

  <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>
</Tabs>
