For AI agents: markdown of this page — /docs-content-en/chats/members/mentionable.md documentation index — /llms.txt

Users to mention

GET /v1/chats/:dialogId/users/mentionable

Returns the chat members the current user can mention with @. The list contains active members, excluding the current user, members whose membership is hidden, and hidden bots.

Parameters

Parameter Type Required Default Description
ParameterdialogId (path) Typestring Requiredyes Default— DescriptionDialog ID: chatXXX for a group chat, a user ID for a direct dialog, or the me alias. chatXXX is the id field of a recent dialogs row, a user ID comes from the user list
Parameterlimit (query) Typenumber Requiredno Default50 DescriptionHow many members to return, from 1 to 200. A value outside the range is clamped, and the requested and applied values are returned in meta.requestedLimit and meta.appliedLimit. If omitted, the Bitrix24 account default of 50 applies

Any other parameter, or a repeated one, is rejected with 400 INVALID_PARAMS.

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/chats/chat123/users/mentionable?limit=20" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl "https://vibecode.bitrix24.com/v1/chats/chat123/users/mentionable?limit=20" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/chats/chat123/users/mentionable?limit=20', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { data } = await res.json()
console.log('Can be mentioned:', data.users.map((u) => u.name))

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/chats/chat123/users/mentionable?limit=20', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { data } = await res.json()

Response fields

Field Type Description
Fieldsuccess Typeboolean DescriptionAlways true on success
Fielddata Typeobject DescriptionResult object
Fielddata.users Typearray DescriptionMembers who can be mentioned
Fielddata.users[].id Typenumber DescriptionUser ID
Fielddata.users[].name Typestring DescriptionFull name
Fielddata.users[].firstName Typestring DescriptionFirst name
Fielddata.users[].lastName Typestring DescriptionLast name
Fielddata.users[].workPosition Typestring DescriptionJob title
Fielddata.users[].avatar Typestring DescriptionAvatar URL. An empty string when no avatar is set
Fielddata.users[].color Typestring DescriptionAvatar color in hexadecimal format
Fielddata.users[].type Typestring DescriptionUser type: user, extranet, bot and others
Fielddata.users[].bot Typeboolean DescriptionThe user is a bot
Fielddata.users[].extranet Typeboolean DescriptionAn external user
Fielddata.users[].status Typestring DescriptionPresence status, for example online
Fielddata.users[].lastActivityDate Typestring DescriptionTime of the last activity (ISO 8601)
Fielddata.users[].absent Typeboolean | string Descriptionfalse or the end date of the absence
Fielddata.users[].departments Typearray DescriptionDepartment IDs
Fieldmeta.requestedLimit Typenumber DescriptionThe limit that was sent. Returned together with appliedLimit, and only when the value was outside the 1 to 200 range
Fieldmeta.appliedLimit Typenumber DescriptionThe applied limit value — only when it was clamped to a bound

The user object also carries other messenger fields.

Response example

JSON
{
  "success": true,
  "data": {
    "users": [
      {
        "id": 7,
        "active": true,
        "name": "John Brown",
        "firstName": "John",
        "lastName": "Brown",
        "workPosition": "Designer",
        "color": "#df532d",
        "avatar": "",
        "gender": "M",
        "bot": false,
        "extranet": false,
        "status": "online",
        "lastActivityDate": "2026-09-20T10:01:00+00:00",
        "absent": false,
        "departments": [1],
        "type": "user"
      }
    ]
  }
}

Error response example

400 — limit is not a number:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "`limit` must be an integer (1-200)."
  }
}

Errors

HTTP Code Description
HTTP400 CodeINVALID_PARAMS DescriptionA parameter other than limit, a repeated parameter or a non-numeric limit. Checked before any call to Bitrix24
HTTP403 CodeSCOPE_DENIED DescriptionThe API key does not have the im scope
HTTP403 CodeWRITE_BLOCKED_READONLY_KEY DescriptionRead-only key, and the chat is not confirmed: a value other than chatN was passed and the personal dialog was not found in the same employee's recent dialog list — up to 20 pages and 4000 rows — or the alias creates a dialog. Rejected before any call to Bitrix24
HTTP403 CodeWRITE_BLOCKED_READONLY_KEY DescriptionRead-only key that is not an employee's personal key: an application key with a user session, a management key, or a key with an unconfirmed owner
HTTP401 CodeTOKEN_MISSING DescriptionThe API key has no Bitrix24 tokens configured
HTTP404 CodeENTITY_NOT_FOUND DescriptionBitrix24 answered "not found". The Bitrix24 code is in error.b24Code
HTTP422 CodeBITRIX_ERROR DescriptionBitrix24 returned an error. The Bitrix24 code is in error.b24Code. For a chat that does not exist, the code is CHAT_NOT_FOUND
HTTP502 CodeME_ALIAS_RESOLUTION_FAILED DescriptionFailed to resolve the user when using the me alias
HTTP502 CodeBITRIX_UNAVAILABLE DescriptionBitrix24 is unavailable or returned a server error

Full list of common API errors — Errors.

Known specifics

The list may be shorter than limit and incomplete. Hidden bots are filtered out after the members are fetched, so a page can be shorter than limit. There is no cursor: in a chat with more than 200 members, the list is not complete — read all members through the list of members.

The call may make you a member. If the chat allows auto-join, the call adds the current user as a member, just as opening the chat does. This read is allowed for a READONLY key under two conditions: it is an employee's personal key, and the chat is confirmed — chatN was passed or the personal dialog was found in the same employee's recent dialogs. The call itself does not mark messages as read. The im scope and the user's Bitrix24 permissions still apply.

See also