Skip to main content
Quick Reference - Fetch users:
Available via: SDK | REST API | UI Kits

Retrieve Logged In User Details

You can get the details of the logged-in user using the getLoggedInUser() method. This method can also be used to check if the user is logged in or not. If the method returns Promise with reject callback, it indicates that the user is not logged in and you need to log the user into CometChat SDK.
On SuccessgetLoggedinUser() returns a User object containing the logged-in user’s details:User Object:
This method will return a User object containing all the information related to the logged-in user.

Retrieve List of Users

In order to fetch the list of users, you can use the UsersRequest class. To use this class i.e to create an object of the UsersRequest class, you need to use the UsersRequestBuilder class. The UsersRequestBuilder class allows you to set the parameters based on which the users are to be fetched. The UsersRequestBuilder class allows you to set the below parameters:

Set Limit

This method sets the limit i.e. the number of users that should be fetched in a single iteration.
On SuccessfetchNext() with basic limit returns an array of User objects:

Set Search Keyword

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

Search In

This method allows you to define in which user property should the searchKeyword be searched. This method only works in combination with setSearchKeyword(). By default the keyword is searched in both UID & Name.
On SuccessfetchNext() with search filter returns an array of User objects matching the search criteria:

Set Status

The status based on which the users 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 users.
  • CometChat.USER_STATUS.OFFLINE - will return the list of only offline users.
If this parameter is not set, will return all the available users.
On SuccessfetchNext() with status filter returns an array of User objects with matching status:

Hide Blocked Users

This method is used to determine if the blocked users should be returned as a part of the user list. If set to true, the user list will not contain the users blocked by the logged in user.
On SuccessfetchNext() with hideBlockedUsers(true) returns an array of User objects excluding blocked users:

Set Roles

This method allows you to fetch the users based on multiple roles.
On SuccessfetchNext() with roles filter returns an array of User objects with matching roles:

Friends Only

This property when set to true will return only the friends of the logged-in user.
On SuccessfetchNext() with friendsOnly(true) returns an array of User objects who are friends:

Set Tags

This method accepts a list of tags based on which the list of users is to be fetched. The list fetched will only contain the users that have been tagged with the specified tags.
On SuccessfetchNext() with tags filter returns an array of User objects with matching tags:

With Tags

This property when set to true will fetch tags data along with the list of users.
On SuccessfetchNext() with withTags(true) returns an array of User objects including the tags field:

Set UIDs

This method accepts a list of UIDs based on which the list of users is fetched. A maximum of 25 users can be fetched.
On SuccessfetchNext() with UIDs filter returns an array of User objects for the specified UIDs:

Sort By

This method allows you to sort the User List by a specific property of User. By default the User List is sorted by status => name => UID . If name is pass to the sortBy() method the user list will be sorted by name => UID.
On SuccessfetchNext() with sortBy("name") returns an array of User objects sorted by name:

Sort By Order

This method allows you to sort the User List in a specific order. By default the user list is sorted in ascending order.
On SuccessfetchNext() with sortByOrder("desc") returns an array of User objects in descending order:
Finally, once all the parameters are set to the builder class, you need to call the build() method to get the object of the UsersRequest class. Once you have the object of the UsersRequest class, you need to call the fetchNext() method. Calling this method will return a list of User objects containing n number of users where n is the limit set in the builder class.
On SuccessfetchNext() returns an array of User objects:User Object (per item in array):

Retrieve Particular User Details

To get the information of a user, you can use the getUser() method.
The getUser() method takes the following parameters:
On SuccessgetUser() returns a User object containing the requested user’s details:User Object:

Get online user count

To get the total count of online users for your app, you can use the getOnlineUserCount() method.
On SuccessgetOnlineUserCount() returns an object with the count:Response Object:
This method returns the total online user count for your app.

Best Practices

Always use fetchNext() with a reasonable setLimit() value (e.g., 20-30) rather than fetching all users at once. This improves performance and reduces memory usage.
The UsersRequest object maintains an internal cursor. Creating a new instance resets the cursor, causing the same page to be fetched repeatedly. Reuse the same instance across fetchNext() calls.
Use the builder’s filter methods (setSearchKeyword, setStatus, setRoles, setTags) to narrow results at the API level rather than fetching all users and filtering in your app.

Troubleshooting

Verify the logged-in user session is active. Also check if filters like setRoles, setTags, or setStatus are too restrictive. Try removing filters to confirm users exist.
Ensure the UID exists in your CometChat app. UIDs are case-sensitive — double-check the exact UID string.
By default, blocked users are included in the user list. Use hideBlockedUsers(true) in the UsersRequestBuilder to exclude them.

Next Steps

User Management

Create, update, and delete users in CometChat

Block Users

Block and unblock users, retrieve blocked user lists

User Presence

Track online/offline status of users in real time

Retrieve Conversations

Fetch conversation lists with last message and unread counts