For AI agents: markdown of this page — /docs-content-en/chats/members/remove.md documentation index — /llms.txt
Remove a member
DELETE /v1/chats/:chatId/users
Removes one user from a group chat.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
chatId (path) |
number | yes | Numeric chat ID (without the chat prefix) |
format (query) |
string | no | v2 turns on the v2 mode — see "The v2 mode" below. Any other value is ignored and the response is unchanged. A repeated format is not rejected: with format=v1&format=v2 the last value wins, so the v2 mode is on, while format=v2&format=v1 returns the legacy response. The bracket form format[]=v2 turns on the v2 mode when all its values are v2 |
Request fields (body)
| Field | Type | Required | Description |
|---|---|---|---|
userId |
number | yes | ID of the user to remove — a positive integer: a number, or a string of decimal digits without leading zeros or spaces, up to 2^53−1; any other shape is refused before Bitrix24 is called |
The v2 mode. format=v2 removes the member through the v2 messenger with the same body { "userId": … }. The Bitrix24 spelling USER_ID, other body fields and query parameters are rejected with 400 INVALID_PARAMS. data carries { "result": true } instead of true. Removing a user who is not in the chat returns 422 BITRIX_ERROR with error.b24Code USER_NOT_FOUND.
Examples
curl — personal key
curl -X DELETE "https://vibecode.bitrix24.com/v1/chats/123/users" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "userId": 42 }'
curl — OAuth application
curl -X DELETE "https://vibecode.bitrix24.com/v1/chats/123/users" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "userId": 42 }'
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/chats/123/users', {
method: 'DELETE',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({ userId: 42 }),
})
const { success, data } = await res.json()
console.log('Removed:', data)
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/chats/123/users', {
method: 'DELETE',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({ userId: 42 }),
})
const { success, data } = await res.json()
curl — the v2 mode
curl -X DELETE "https://vibecode.bitrix24.com/v1/chats/123/users?format=v2" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "userId": 42 }'
Response fields
| Field | Type | Description |
|---|---|---|
success |
boolean | Always true on success |
data |
boolean | true when removed successfully |
data.result |
boolean | The v2 mode: true — the member was removed |
Response example
{
"success": true,
"data": true
}
Error response example
422 — the user is not a member of the chat:
{
"success": false,
"error": {
"code": "BITRIX_ERROR",
"message": "The specified user is not a member of the chat"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 400 | INVALID_CHAT_ID |
chatId is not a positive integer — checked before the Bitrix24 call |
| 400 | MISSING_PARAMS |
The userId field is absent (including a request with no body at all) |
| 400 | INVALID_PARAMS |
userId is not a positive integer in canonical form — an array, a word, zero, a negative or fractional value, a value with leading zeros or spaces, or a value above 2^53−1. In the v2 mode also a query parameter other than format, a body field other than userId, a body that is not a JSON object. Nothing was sent to Bitrix24 |
| 403 | WRITE_BLOCKED_READONLY_KEY |
The key is read-only — see access rights |
| 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, the user is not a member of the chat, or there is no permission). In the v2 mode the portal code arrives in error.b24Code |
| 502 | BITRIX_UNAVAILABLE |
Bitrix24 is unavailable or returned a server error |
Full list of common API errors — Errors.
Known specifics
One member at a time. The endpoint accepts a single userId (a number), not an array. To remove several members, call the method for each one separately.
Numeric ID only. Bitrix24 casts userId to a number by PHP rules: the array [47] becomes 1 — the user with ID 1, usually the Bitrix24 account owner, would be removed from the chat instead of user 47. So the shape of the value is checked on the API side: a number and a string of decimal digits without leading zeros or spaces are accepted, anything else is 400 INVALID_PARAMS.
Only chatId and userId travel to Bitrix24. Other fields of the request body are not forwarded to Bitrix24 — including native upper-case Bitrix24 keys. Bitrix24 folds parameter names case-insensitively and the last key wins: the body {"USER_ID": 47, "user_id": [1]} would pass the check on USER_ID, yet the alias would win in Bitrix24 — the user with ID 1 would be removed from the chat.