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

# Retrieve Groups

> Fetch, filter, and search groups using the CometChat React Native SDK. Includes pagination, tag-based filtering, joined-only groups, and online member counts.

<Accordion title="AI Integration Quick Reference">
  | Field | Value |
  | - | - |
  | Package | `@cometchat/chat-sdk-react-native` |
  | Import | `import { CometChat } from "@cometchat/chat-sdk-react-native";` |
  | Key Methods | `getGroup()`, `getOnlineGroupMemberCount()` |
  | Key Classes | `CometChatException`, `Group`, `GroupsRequest`, `GroupsRequestBuilder` |
  | Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/react-native/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/react-native/authentication-overview) |
  | Primary output | `getGroup()` → `Promise<CometChat.Group>`; `GroupsRequest.fetchNext()` → `Promise<Group[] \| []>`; `getOnlineGroupMemberCount()` → `Promise<Object>` |
  | Constraints | Joined-only vs all-groups is a builder flag, not a separate method. `getOnlineGroupMemberCount()` takes an array of GUIDs and returns a map. |
  | Related | [Create a Group](/sdk/react-native/create-group) · [Join a Group](/sdk/react-native/join-group) · [Retrieve Group Members](/sdk/react-native/retrieve-group-members) |
  | Full reference | [`Group`](/sdk/reference/entities#group) · [`GroupMember`](/sdk/reference/entities#groupmember) · [`CometChatException`](/sdk/reference/auxiliary#cometchatexception) |

  ```javascript theme={null}
  // Fetch groups list
  const request = new CometChat.GroupsRequestBuilder()
    .setLimit(30).build();
  const groups = await request.fetchNext();

  // Get specific group details
  const group = await CometChat.getGroup("GUID");

  // Fetch only joined groups
  const joinedRequest = new CometChat.GroupsRequestBuilder()
    .setLimit(30).joinedOnly(true).build();

  // Get online member count
  const count = await CometChat.getOnlineGroupMemberCount(["GUID"]);
  ```
</Accordion>

Fetch the list of [`Group`](/sdk/reference/entities#group) objects the logged-in user can see, get details for a specific group, or check online member counts.

## Retrieve List of Groups

Use `GroupsRequestBuilder` to fetch groups with filtering, searching, and pagination.

Fetching using this builder will return [`Group`](/sdk/reference/entities#group) objects.

### Set Limit

Sets the number of groups to fetch per request.

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    let limit: number = 30;
    let groupsRequest: CometChat.GroupsRequest = new CometChat.GroupsRequestBuilder()
      .setLimit(limit)
      .build();
    ```
  </Tab>

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

### Set Search Keyword

Filters groups by a search string.

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    let limit: number = 30;
    let searchKeyword: string = "group";
    let groupsRequest: CometChat.GroupsRequest = new CometChat.GroupsRequestBuilder()
      .setLimit(limit)
      .setSearchKeyword(searchKeyword)
      .build();
    ```
  </Tab>

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

### Joined Only

When `true`, returns only groups the logged-in user has joined.

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    let limit: number = 30;
    let groupsRequest: CometChat.GroupsRequest = new CometChat.GroupsRequestBuilder()
      .setLimit(limit)
      .joinedOnly(true)
      .build();
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    let limit = 30;
    let groupsRequest = new CometChat.GroupsRequestBuilder()
                      	.setLimit(limit)
                      	.joinedOnly(true)
                      	.build();
    ```
  </Tab>
</Tabs>

### Set Tags

Filters groups by specified tags.

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    let limit: number = 30;
    let tags: Array<String> = ["tag1", "tag2"];
    let groupsRequest: CometChat.GroupsRequest = new CometChat.GroupsRequestBuilder()
      .setLimit(limit)
      .setTags(tags)
      .build();
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    let limit = 30;
    let tags = ["tag1", "tag2"];
    let groupsRequest = new CometChat.GroupsRequestBuilder()
                      	.setLimit(limit)
                      	.setTags(tags)
                      	.build();
    ```
  </Tab>
</Tabs>

### With Tags

When `true`, includes tag data in the returned group objects.

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    let limit: number = 30;
    let groupsRequest: CometChat.GroupsRequest = new CometChat.GroupsRequestBuilder()
      .setLimit(limit)
      .withTags(true)
      .build();
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    let limit = 30;
    let groupsRequest = new CometChat.GroupsRequestBuilder()
     .setLimit(limit)
     .withTags(true)
     .build();
    ```
  </Tab>
</Tabs>

Relevant fields to access on returned groups:

| Field | Getter | Return Type | Description |
| - | - | - | - |
| tags | `getTags()` | `string[]` | Tags associated with the group |

After configuring the builder, call `build()` to get the `GroupsRequest` object, then call `fetchNext()` to retrieve groups.

<Note>
  The list only includes public and password-protected groups. Private groups appear only if the user is a member.
</Note>

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    let limit: number = 30;
    let groupsRequest: CometChat.GroupsRequest = new CometChat.GroupsRequestBuilder()
      .setLimit(limit)
      .build();

    groupsRequest.fetchNext().then(
      (groupList: CometChat.Group[]) => {
          console.log("Groups list fetched successfully", groupList);
      }, (error: CometChat.CometChatException) => {
          console.log("Groups list fetching failed with error", error);
      }
    );
    ```
  </Tab>

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

    groupsRequest.fetchNext().then(
    groupList => {
      console.log("Groups list fetched successfully", groupList);
    }, error => {
      console.log("Groups list fetching failed with error", error);
    }
    );
    ```
  </Tab>
</Tabs>

The `fetchNext()` method returns an array of [`Group`](/sdk/reference/entities#group) objects.

## Retrieve Particular Group Details

Use `getGroup()` to fetch a specific group's details by GUID.

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    const GUID: string = "GUID";
    CometChat.getGroup(GUID).then(
      (group: CometChat.Group) => {
          console.log("Group details fetched successfully:", group);
      }, (error: CometChat.CometChatException) => {
          console.log("Group details fetching failed with exception:", error);
      }
    );
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    const GUID = "GUID";
    CometChat.getGroup(GUID).then(
    group => {
      console.log("Group details fetched successfully:", group);
    }, error => {
      console.log("Group details fetching failed with exception:", error);
    }
    );   
    ```
  </Tab>
</Tabs>

| Parameter | Description |
| - | - |
| `GUID` | The GUID of the group to fetch |

The method returns a [`Group`](/sdk/reference/entities#group) object.

## Get Online Group Member Count

Use `getOnlineGroupMemberCount()` to get the number of online members in specified groups.

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    let guids: String[] = ["cometchat-guid-1"];
    CometChat.getOnlineGroupMemberCount(guids).then(
      (groupMemberCount: Object) => {
          console.log("Total online user for specified groups:", groupMemberCount);
      }, (error: CometChat.CometChatException) => {
          console.log("Online group member count fetching failed with error:", error);
      }
    );
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    let guids = ["cometchat-guid-1"];
    CometChat.getOnlineGroupMemberCount(guids).then(
    groupMemberCount => {
      console.log("Total online user for specified groups:", groupMemberCount);
    }, error => {
      console.log("Online group member count fetching failed with error:", error);
    }
    );
    ```
  </Tab>
</Tabs>

Returns an object with GUIDs as keys and online member counts as values.

`getOnlineGroupMemberCount()` resolves with a `{ guid: count }` object where each key is a group GUID and its value is the number of currently online members in that group.

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Create Group" icon="plus" href="/sdk/react-native/create-group">
    Create public, private, or password-protected groups
  </Card>

  <Card title="Retrieve Group Members" icon="users" href="/sdk/react-native/retrieve-group-members">
    Fetch and filter members of a specific group
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.