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.

Set User Status

Prev Next
Post
/api/v1/users.setStatus
  • You can set the status for yourself or another user. The AllowUserStatusMessageChange setting must be enabled in the Accounts workspace settings.

  • To change another user's status, you must have the edit-other-user-info permission.

  • According to your workspace settings (under Accounts), you will only be able to set the invisible or offline status if the Allow Invisible status option setting is enabled.

    Changelog

    Version Description
    8.6.0 Added expiresAt request parameter for timed status expiration.
    1.2.0 Added
Header parameters
X-User-Id
stringRequired

The authenticated user ID.

ExamplerbAXPnMktTFbNpwtJ
X-Auth-Token
stringRequired

The authenticated user token.

ExampleRScctEHSmLGZGywfIhWyRpyofhKOiMoUIpimhvheU3f
Body parameters
Example 1
{
  "message": "My status update",
  "status": "online",
  "expiresAt": "2026-06-22T18:00:00.000Z",
  "userId": "zXuq7SvPKYbzYmfpo",
  "username": "bob"
}
object
message
string

The user's status message. At least one of the message or status parameters is required.

ExampleMy status update
status
string

The user's status like online, away, busy, or offline. At least one of the message or status parameters is required.

Exampleonline
expiresAt
string

Date as an ISO 8601 string. Sets an expiration time for the status. When this time passes, the presence engine restores the user's previous status. Must be a future date. Omit this parameter to keep the status until it is changed again.

Example2026-06-22T18:00:00.000Z
userId
string

The user ID for which you want to set the status. You don't need to add this if you are setting the status for yourself. Alternatively, you can use the username parameter and enter the username for which you want to set the status.

ExamplezXuq7SvPKYbzYmfpo
Responses
200

OK

Success
{
  "success": true
}
object
success
boolean
400

Bad Request

Missing status or message parameter
{
  "success": false,
  "error": "Match error: Failed Match.OneOf, Match.Maybe or Match.Optional validation"
}
Invalid expiresAt date
{
  "success": false,
  "error": "expiresAt must be a future date [error-invalid-date]",
  "errorType": "error-invalid-date"
}
object
success
boolean
error
string
401

Unauthorized

Authorization Error
{
  "status": "error",
  "message": "You must be logged in to do this."
}
object
status
string
message
string