> ## Documentation Index > Fetch the complete documentation index at: https://developer.rocket.chat/llms.txt > Use this file to discover all available pages before exploring further. # Get Users Presence > Get presence of multiple workspace users. You can filter by date and user IDs. If the `Presence_broadcast_disabled` setting is true, the endpoint returns an empty array. You can find this setting under **Manage** > **Workspace** > **Settings** > **Troubleshoot**. When the Premium **User status hiding** feature is enabled, users who have hidden their status from the caller are omitted from the response. This applies to full results and requests filtered by `from` or `ids`. ### Changelog | Version | Description | | ---------------- | ------------| |8.8.0 | Added status visibility filtering. | |8.6.0 | Added `statusSource` and `statusExpiresAt` to returned user objects. | |8.5.0 | Restored comma-separated `ids` query parameter support. | |1.1.0 | Added | ## OpenAPI ````json GET /api/v1/users.presence { "openapi": "3.0.0", "info": { "version": "1.0.0", "title": "User Management" }, "servers": [ { "url": "https://apiexplorer.support.rocket.chat" } ], "tags": [ { "name": "LDAP" }, { "name": "Permissions" }, { "name": "Roles" }, { "name": "Users" }, { "name": "SAML" } ], "paths": { "/api/v1/users.presence": { "get": { "summary": "Get Users Presence", "operationId": "get-api-v1-users.presence", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "users": { "type": "array", "items": { "type": "object", "properties": { "_id": { "type": "string" }, "name": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string" }, "utcOffset": { "type": "integer" }, "statusText": { "type": "string", "description": "The user's status message." }, "statusSource": { "type": "string", "description": "The claim that set the user's current status. One of `internal`, `manual`, or `external` (priority order: `internal` > `manual` > `external`). Omitted when the user has no recorded status source." }, "statusExpiresAt": { "type": "string", "description": "Date as an ISO 8601 string indicating when the user's current status expires. Omitted when the status has no expiration." }, "avatarETag": { "type": "string" } } } }, "full": { "type": "boolean" }, "success": { "type": "boolean" } } }, "examples": { "Success Example": { "value": { "users": [ { "_id": "rocket.cat", "name": "Rocket.Cat", "username": "rocket.cat", "status": "online", "utcOffset": "0", "statusText": "In a call", "statusSource": "internal", "avatarETag": "5BB9B5ny5DkKdrwkq" }, { "_id": "rocketchat.internal.admin.test", "name": "RocketChat Internal Admin Test", "username": "rocketchat.internal.admin.test", "status": "online", "utcOffset": "-2", "statusText": "Focus time", "statusSource": "manual", "statusExpiresAt": "2026-06-22T18:00:00Z", "avatarETag": "iEbEm4bTT327NJjXt" } ], "full": "true", "success": "true" } } } } } }, "401": { "$ref": "#/components/responses/authorizationError" } }, "parameters": [ { "$ref": "#/components/parameters/UserId" }, { "$ref": "#/components/parameters/Auth-Token" }, { "schema": { "type": "string" }, "example": "2019-05-22T12:11:45.392Z", "in": "query", "name": "from", "description": "The last date when the status was changed. Format: ISO 8601 datetime. Timezone, milliseconds and seconds are optional. If you don't pass `from` parameter, you'll get a list of all users' presence and the result will have a `full` field with value `true` ." }, { "schema": { "type": "string" }, "example": "J4sWseCgs8eEnWvhE,BsNr28znDkG8aeo7W", "in": "query", "name": "ids", "description": "The IDs of the users whose presence you want. Provide one ID as `?ids=userId1`, multiple comma-separated IDs as `?ids=userId1,userId2`, or repeat the parameter as `?ids=userId1&ids=userId2`." } ], "description": "Get presence of multiple workspace users. You can filter by date and user IDs.\n\nIf the `Presence_broadcast_disabled` setting is true, the endpoint returns an empty array. You can find this setting under **Manage** > **Workspace** > **Settings** > **Troubleshoot**.\n\nWhen the Premium **User status hiding** feature is enabled, users who have hidden their status from the caller are omitted from the response. This applies to full results and requests filtered by `from` or `ids`.\n\n### Changelog\n| Version | Description |\n| ---------------- | ------------|\n|8.8.0 | Added status visibility filtering. |\n|8.6.0 | Added `statusSource` and `statusExpiresAt` to returned user objects. |\n|8.5.0 | Restored comma-separated `ids` query parameter support. |\n|1.1.0 | Added |", "tags": [ "Users" ] } } }, "components": { "responses": { "authorizationError": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string" }, "message": { "type": "string" } } }, "examples": { "Authorization Error": { "value": { "status": "error", "message": "You must be logged in to do this." } } } } } } }, "parameters": { "UserId": { "name": "X-User-Id", "in": "header", "description": "The authenticated user ID.", "required": "true", "schema": { "type": "string" }, "example": "rbAXPnMktTFbNpwtJ" }, "Auth-Token": { "name": "X-Auth-Token", "in": "header", "description": "The authenticated user token.", "required": "true", "schema": { "type": "string" }, "example": "RScctEHSmLGZGywfIhWyRpyofhKOiMoUIpimhvheU3f" } } } } ````