For AI agents: markdown of this page — /docs-content-en/bots/chats/user-list.md documentation index — /llms.txt
List participants
GET /v1/bots/:botId/chats/:dialogId/users
Returns the list of chat participants. The bot must be a participant of the chat.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
ParameterbotId (path) |
Typenumber | Requiredyes | Default— | DescriptionBot ID. List: GET /v1/bots |
ParameterdialogId (path) |
Typestring | Requiredyes | Default— | DescriptionGroup chat ID in the form chatXXX. It arrives in the data.chat.dialogId field of the POST /v1/bots/:botId/chats response and in the chat.dialogId field of bot events |
Parameterlimit (query) |
Typenumber | Requiredno | Default50 |
DescriptionNumber of records (1-200) |
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/bots/42/chats/chat456/users?limit=100" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/bots/42/chats/chat456/users?limit=100" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/bots/42/chats/chat456/users?limit=100', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data } = await res.json()
console.log('Participants:', data.length)
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/bots/42/chats/chat456/users?limit=100', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata |
Typearray | DescriptionArray of participants |
Fielddata[].id |
Typenumber | DescriptionUser ID |
Fielddata[].active |
Typeboolean | DescriptionWhether the account is active |
Fielddata[].name |
Typestring | DescriptionFull name |
Fielddata[].firstName |
Typestring | DescriptionFirst name |
Fielddata[].lastName |
Typestring | DescriptionLast name. An empty string if not set |
Fielddata[].workPosition |
Typestring | DescriptionJob title. An empty string if not set |
Fielddata[].color |
Typestring | DescriptionAvatar color in HEX format, for example #29619b |
Fielddata[].avatar |
Typestring | DescriptionAvatar URL. An empty string if no avatar is set |
Fielddata[].gender |
Typestring | DescriptionGender: M — male, F — female, an empty string — not specified |
Fielddata[].birthday |
Typestring | DescriptionDate of birth. An empty string if not specified |
Fielddata[].extranet |
Typeboolean | DescriptionWhether the user is an external user of the extranet type |
Fielddata[].bot |
Typeboolean | DescriptionWhether the user is a bot |
Fielddata[].connector |
Typeboolean | DescriptionOpen Channels user |
Fielddata[].externalAuthId |
Typestring | DescriptionExternal authentication code of the account. bot for a bot |
Fielddata[].internalAccount |
Typeboolean | DescriptionWhether this is an internal account in Bitrix24. false for a bot |
Fielddata[].intranetUser |
Typeboolean | DescriptionEmployee of the Bitrix24 account. false for a bot |
Fielddata[].status |
Typestring | DescriptionStatus: online, away, dnd |
Fielddata[].idle |
Typeboolean | DescriptionWhether the user is idle |
Fielddata[].lastActivityDate |
Typestring | false | DescriptionTime of the last activity in ISO 8601 format. false if there was no activity |
Fielddata[].mobileLastDate |
Typestring | false | DescriptionTime of the last sign-in from the mobile app. false if there was none |
Fielddata[].desktopLastDate |
Typestring | false | DescriptionTime of the last sign-in from the desktop app. false if there was none |
Fielddata[].absent |
Typeboolean | string | Descriptionfalse or the date the absence ends |
Fielddata[].departments |
Typenumber[] | DescriptionDepartment IDs. List: GET /v1/departments. An empty array for a bot |
Fielddata[].phones |
Typeobject | false | DescriptionPhone numbers. Keys are work_phone, personal_mobile, inner_phone, and the object holds only the filled ones. false if there are no phone numbers |
Fielddata[].type |
Typestring | DescriptionUser type: user, bot, extranet |
Fielddata[].website |
Typestring | DescriptionWebsite. An empty string if not specified |
Fielddata[].email |
Typestring | DescriptionEmail. An empty string if not specified |
Response example
{
"success": true,
"data": [
{
"id": 1,
"active": true,
"name": "John Smith",
"firstName": "John",
"lastName": "Smith",
"workPosition": "Manager",
"color": "#df532d",
"avatar": "",
"gender": "M",
"birthday": "",
"extranet": false,
"bot": false,
"connector": false,
"externalAuthId": "socservices",
"internalAccount": true,
"intranetUser": true,
"status": "online",
"idle": false,
"lastActivityDate": "2026-10-14T15:44:48+00:00",
"mobileLastDate": false,
"desktopLastDate": false,
"absent": false,
"departments": [1, 47],
"phones": {
"personal_mobile": "10000000000",
"inner_phone": "111"
},
"type": "user",
"website": "",
"email": "user@example.com"
},
{
"id": 42,
"active": true,
"name": "Support",
"firstName": "Support",
"lastName": "",
"workPosition": "Chatbot",
"color": "#58cc47",
"avatar": "",
"gender": "M",
"birthday": "",
"extranet": false,
"bot": true,
"connector": false,
"externalAuthId": "bot",
"internalAccount": false,
"intranetUser": false,
"status": "online",
"idle": false,
"lastActivityDate": false,
"mobileLastDate": false,
"desktopLastDate": false,
"absent": false,
"departments": [],
"phones": false,
"type": "bot",
"website": "",
"email": ""
}
]
}
Error response example
403 — the bot is not a participant of the chat:
{
"success": false,
"error": {
"code": "BITRIX_ACCESS_DENIED",
"message": "Access denied"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeINVALID_BOT_ID |
DescriptionbotId is not a number |
| HTTP404 | CodeBOT_NOT_FOUND |
DescriptionNo bot found with this ID |
| HTTP403 | CodeBOT_ACCESS_DENIED |
DescriptionThe bot belongs to another API key |
| HTTP403 | CodeBITRIX_ACCESS_DENIED |
DescriptionThe bot is not a participant of the chat |
| HTTP422 | CodeBITRIX_ERROR |
DescriptionAnother Bitrix24 error, text in message |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe API key does not have the imbot scope |
| HTTP410 | CodeBOT_DISABLED |
DescriptionThe bot is disabled and does not process API calls. How to restore it — Bot disabled |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionThe API key has no configured tokens |
Full list of common API errors — Errors.