For AI agents: markdown of this page — /docs-content-en/chats/members.md documentation index — /llms.txt
Members
View chat membership, add new members, and remove existing ones.
Scope: im | Base URL: https://vibecode.bitrix24.com/v1 | Authorization: X-Api-Key
List members
GET /v1/chats/:dialogId/users
Returns the list of dialog members.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
dialogId (path) |
string | yes | — | Dialog identifier (chatXXX) or the alias me for the personal dialog with yourself |
limit (query) |
number | no | 50 |
Number of members (1–200) |
offset (query) |
number | no | 0 |
Offset from the start of the list |
lastId (query) |
number | no | — | ID of the last received member — an alternative to offset for paginated traversal |
skipExternal (query) |
boolean | no | — | true — exclude external users (types extranet, network) |
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/chats/chat123/users?limit=50" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/chats/chat123/users?limit=50" \
-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/chats/chat123/users?limit=50', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data } = await res.json()
console.log('Members:', data.length)
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/chats/chat123/users?limit=50', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data } = await res.json()
console.log('Members:', data.length)
Response fields
| Field | Type | Description |
|---|---|---|
success |
boolean | Always true on success |
data |
array | Array of members |
data[].id |
number | User ID |
data[].active |
boolean | Whether the account is active |
data[].name |
string | Full name |
data[].firstName |
string | First name |
data[].lastName |
string | Last name |
data[].workPosition |
string | Job position |
data[].color |
string | Avatar color |
data[].avatar |
string | Avatar URL (empty string if no avatar is set) |
data[].gender |
string | Gender (M — male, F — female, empty string — not specified) |
data[].birthday |
string | Birth date (empty string if not specified) |
data[].extranet |
boolean | External user (type extranet) |
data[].network |
boolean | Bitrix24 Network user |
data[].bot |
boolean | Bot |
data[].connector |
boolean | Open Channels user (Contact Center) |
data[].status |
string | Status (online, away, dnd) |
data[].idle |
boolean | Idle |
data[].lastActivityDate |
string | Last activity date (ISO 8601) |
data[].absent |
boolean | Absent per work calendar |
data[].departments |
number[] | List of department IDs |
data[].type |
string | User type (user, bot, extranet) |
Response example
{
"success": true,
"data": [
{
"id": 42,
"active": true,
"name": "John Brown",
"firstName": "John",
"lastName": "Brown",
"workPosition": "Manager",
"color": "#df532d",
"avatar": "",
"gender": "M",
"birthday": "",
"extranet": false,
"network": false,
"bot": false,
"connector": false,
"status": "online",
"idle": false,
"lastActivityDate": "2026-06-05T09:40:32+00:00",
"absent": false,
"departments": [1, 47],
"type": "user"
},
{
"id": 53,
"active": true,
"name": "Maria Davis",
"firstName": "Maria",
"lastName": "Davis",
"workPosition": "Analyst",
"color": "#83c3f7",
"avatar": "",
"gender": "F",
"birthday": "",
"extranet": false,
"network": false,
"bot": false,
"connector": false,
"status": "away",
"idle": false,
"lastActivityDate": "2026-06-04T18:15:00+00:00",
"absent": false,
"departments": [1],
"type": "user"
}
]
}
Error response example
422 — Bitrix24 error (no access to the dialog):
{
"success": false,
"error": {
"code": "BITRIX_ERROR",
"message": "Access denied"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 403 | SCOPE_DENIED |
The API key does not have the im scope |
| 401 | TOKEN_MISSING |
The API key has no configured Bitrix24 tokens |
| 422 | BITRIX_ERROR |
Bitrix24 returned an error — the text is in the message field (for example, no access to the dialog) |
| 502 | BITRIX_UNAVAILABLE |
Bitrix24 is unavailable or returned a server error |
| 502 | ME_ALIAS_RESOLUTION_FAILED |
Could not resolve the me alias — the token expired or Bitrix24 is unavailable |
Full list of common API errors — Errors.
Known specifics
Pagination via lastId. When sequentially traversing large chats, pass lastId from the last item of the previous response instead of offset. This approach works more reliably during concurrent changes to chat membership.
The me alias returns members of the personal dialog with yourself — that is just you. For the membership of a group chat, pass chatXXX.