Skip to main content
Quick Reference for AI Agents & Developers
// Fetch users list
const usersRequest = new CometChat.UsersRequestBuilder()
  .setLimit(30)
  .build();
const users = await usersRequest.fetchNext();

// Search users
const usersRequest = new CometChat.UsersRequestBuilder()
  .setSearchKeyword("john")
  .build();

// Filter online users
const usersRequest = new CometChat.UsersRequestBuilder()
  .setStatus(CometChat.USER_STATUS.ONLINE)
  .build();

// Filter by role
const usersRequest = new CometChat.UsersRequestBuilder()
  .setRoles(["admin", "moderator"])
  .build();

// Get specific user
const user = await CometChat.getUser("user_uid");

// Get online count
const count = await CometChat.getOnlineUserCount();

// Friends only
const usersRequest = new CometChat.UsersRequestBuilder()
  .friendsOnly(true)
  .build();
Retrieve user information including the logged-in user, user lists, and individual user details.
Availability: SDK, API, UI Kits

Get Logged-In User

Check if a user is logged in and get their details:
CometChat.getLoggedinUser().then(
  (user) => {
    if (user) {
      console.log("Logged in as:", user.getName());
    } else {
      console.log("No user logged in");
    }
  },
  (error) => console.log("Error:", error)
);

Fetch User List

Use UsersRequestBuilder to fetch users with various filters:
const limit = 30;

const usersRequest = new CometChat.UsersRequestBuilder()
  .setLimit(limit)
  .build();

usersRequest.fetchNext().then(
  (userList) => console.log("Users:", userList),
  (error) => console.log("Failed:", error)
);

Builder Options

MethodDescription
setLimit(limit)Number of users per request (max 100)
setSearchKeyword(keyword)Search users by name or UID
searchIn(fields)Fields to search in: ["uid", "name"]
setStatus(status)Filter by online/offline status
hideBlockedUsers(true)Exclude blocked users
setRoles(roles)Filter by user roles
friendsOnly(true)Only return friends
setTags(tags)Filter by user tags
withTags(true)Include tags in response
setUIDs(uids)Fetch specific users (max 25)
sortBy(field)Sort by field (e.g., “name”)
sortByOrder(order)Sort order: “asc” or “desc”

Search Users

const usersRequest = new CometChat.UsersRequestBuilder()
  .setLimit(30)
  .setSearchKeyword("john")
  .build();

usersRequest.fetchNext().then(
  (userList) => console.log("Search results:", userList),
  (error) => console.log("Failed:", error)
);

Search in Specific Fields

const usersRequest = new CometChat.UsersRequestBuilder()
  .setLimit(30)
  .setSearchKeyword("john")
  .searchIn(["name"])  // Only search in name, not UID
  .build();

Filter by Status

Get only online or offline users:
// Online users only
const onlineRequest = new CometChat.UsersRequestBuilder()
  .setLimit(30)
  .setStatus(CometChat.USER_STATUS.ONLINE)
  .build();

// Offline users only
const offlineRequest = new CometChat.UsersRequestBuilder()
  .setLimit(30)
  .setStatus(CometChat.USER_STATUS.OFFLINE)
  .build();

Filter by Role

const usersRequest = new CometChat.UsersRequestBuilder()
  .setLimit(30)
  .setRoles(["admin", "moderator"])
  .build();

usersRequest.fetchNext().then(
  (userList) => console.log("Admins and moderators:", userList),
  (error) => console.log("Failed:", error)
);

Filter by Tags

const usersRequest = new CometChat.UsersRequestBuilder()
  .setLimit(30)
  .setTags(["premium", "verified"])
  .withTags(true)  // Include tags in response
  .build();

usersRequest.fetchNext().then(
  (userList) => {
    userList.forEach((user) => {
      console.log(user.getName(), "Tags:", user.getTags());
    });
  },
  (error) => console.log("Failed:", error)
);

Get Friends Only

const usersRequest = new CometChat.UsersRequestBuilder()
  .setLimit(30)
  .friendsOnly(true)
  .build();

usersRequest.fetchNext().then(
  (friends) => console.log("Friends:", friends),
  (error) => console.log("Failed:", error)
);

Fetch Specific Users

Get users by their UIDs (max 25):
const usersRequest = new CometChat.UsersRequestBuilder()
  .setUIDs(["user1", "user2", "user3"])
  .build();

usersRequest.fetchNext().then(
  (userList) => console.log("Specific users:", userList),
  (error) => console.log("Failed:", error)
);

Get Single User

Fetch details for a specific user:
const UID = "user1";

CometChat.getUser(UID).then(
  (user) => {
    console.log("User:", user.getName());
    console.log("Status:", user.getStatus());
    console.log("Last Active:", user.getLastActiveAt());
  },
  (error) => console.log("Failed:", error)
);

Get Online User Count

Get the total number of online users in your app:
CometChat.getOnlineUserCount().then(
  (count) => console.log("Online users:", count),
  (error) => console.log("Failed:", error)
);

Pagination

Use fetchNext() repeatedly to paginate through results:
class UserListManager {
  constructor() {
    this.usersRequest = new CometChat.UsersRequestBuilder()
      .setLimit(30)
      .build();
    this.users = [];
  }

  async loadMore() {
    try {
      const userList = await this.usersRequest.fetchNext();
      this.users = [...this.users, ...userList];
      return userList;
    } catch (error) {
      console.log("Failed to load users:", error);
      return [];
    }
  }

  hasMore() {
    // If last fetch returned less than limit, no more users
    return this.users.length > 0;
  }
}

// Usage
const manager = new UserListManager();
const firstPage = await manager.loadMore();
const secondPage = await manager.loadMore();

Hide Blocked Users

Exclude users you’ve blocked from the list:
const usersRequest = new CometChat.UsersRequestBuilder()
  .setLimit(30)
  .hideBlockedUsers(true)
  .build();

Sorting

// Sort by name ascending
const usersRequest = new CometChat.UsersRequestBuilder()
  .setLimit(30)
  .sortBy("name")
  .sortByOrder("asc")
  .build();

// Sort by name descending
const usersRequestDesc = new CometChat.UsersRequestBuilder()
  .setLimit(30)
  .sortBy("name")
  .sortByOrder("desc")
  .build();
Default sort order: status → name → UID

Next Steps