Для AI-агентов: markdown этой страницы — /docs-content/chats/management.md индекс документации — /llms.txt
Управление чатами
Создавайте и меняйте групповые чаты, их описание, цвет, аватар, права участников и политику автоудаления сообщений. Передавайте владение, управляйте уведомлениями, вступайте и выходите из чатов, привязывайте родительский чат, удаляйте и закрепляйте чаты, раскладывайте чаты по личным папкам, ставьте метку «непрочитано» и отмечайте прочитанными все чаты или раздел списка.
Скоуп: im | Базовый URL: https://vibecode.bitrix24.tech/v1 | Авторизация: X-Api-Key
Создать групповой чат
POST /v1/chats
Создаёт новый групповой чат на портале Битрикс24.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
Параметрformat (query) |
Типstring | Обяз.нет | Описаниеv2 включает режим v2 — см. «Режим v2» ниже. Любое другое значение игнорируется, ответ прежний |
Режим v2. format=v2 создаёт чат. Тело остаётся плоским, как в обычном режиме, но принимает больше полей — владельца, менеджеров, права, автоудаление сообщений, аватар, участников по подразделениям. Каждое поле проверяется до обращения к Битрикс24: неизвестное поле, неверный тип или значение вне списка отклоняются с 400 INVALID_PARAMS с именем поля. Без этой проверки неверная роль или срок автоудаления молча заменились бы значением по умолчанию. В ответе data — объект { chatId, chat }. Поле chat приходит пустым, карточку нового чата читайте информацией о диалоге в режиме v2. Открытый чат в режиме v2 — type: "CHAT" с searchable: "Y". Прежнее написание type: "OPEN" отклоняется с 400 INVALID_PARAMS.
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
Полеtitle |
Типstring | Обяз.нет | ОписаниеНазвание чата |
Полеdescription |
Типstring | Обяз.нет | ОписаниеОписание чата |
Полеusers |
Типarray | Обяз.нет | ОписаниеМассив числовых ID участников. Список: GET /v1/users. В режиме v2 — только положительные целые |
Полеtype |
Типstring | Обяз.нет | ОписаниеТип чата: CHAT (обычный) или OPEN (открытый). По умолчанию — CHAT. В режиме v2: CHAT, CHANNEL, COPILOT или COLLAB. OPEN отклоняется. COLLAB требует entityType и entityId — см. «Чат коллаба» ниже |
ПолеentityType |
Типstring | Обяз.нет | ОписаниеТип связанной сущности (например, CRM). Для type: "COLLAB" — SONET_GROUP |
ПолеentityId |
Типstring | Обяз.нет | ОписаниеИдентификатор связанной сущности (например, DEAL|123). Для type: "COLLAB" обязателен — ID рабочей группы строкой из списка рабочих групп, например "167" |
Полеcolor |
Типstring | Обяз.нет | ОписаниеЦвет чата: RED, GREEN, MINT, LIGHT_BLUE, DARK_BLUE, PURPLE, AQUA, PINK, LIME, BROWN, AZURE, KHAKI, SAND, MARENGO, GRAY, GRAPHITE |
Полеsearchable |
Типstring | Обяз.нет | ОписаниеТолько режим v2. Y — открытый чат: его может найти и вступить в него любой сотрудник |
ПолеownerId |
Типnumber | Обяз.нет | ОписаниеТолько режим v2. Владелец чата — ID пользователя из списка пользователей. По умолчанию — вызывающий |
Полеmanagers |
Типarray | Обяз.нет | ОписаниеТолько режим v2. ID менеджеров чата — положительные целые из списка пользователей |
ПолеmemberEntities |
Типarray | Обяз.нет | ОписаниеТолько режим v2. Участники по сущностям — пары [тип, id]: ["user", 5], ["department", "12:F"] (подразделение с дочерними), ["project", 3] |
ПолеparentChatId |
Типnumber | Обяз.нет | ОписаниеТолько режим v2. Создать чат дочерним для этого чата — см. родительский чат |
Полеavatar |
Типstring | number | Обяз.нет | ОписаниеТолько режим v2. Картинка строкой base64 или ID файла на Диске, доступного вызывающему |
ПолеmanageUsersAdd |
Типstring | Обяз.нет | ОписаниеТолько режим v2. Кто может добавлять участников: MEMBER, MANAGER, OWNER |
ПолеmanageUsersDelete |
Типstring | Обяз.нет | ОписаниеТолько режим v2. Кто может удалять участников: MEMBER, MANAGER, OWNER |
ПолеmanageUi |
Типstring | Обяз.нет | ОписаниеТолько режим v2. Кто может менять название, описание и аватар: MEMBER, MANAGER, OWNER |
ПолеmanageSettings |
Типstring | Обяз.нет | ОписаниеТолько режим v2. Кто может менять настройки чата: MANAGER, OWNER |
ПолеmanageMessages |
Типstring | Обяз.нет | ОписаниеТолько режим v2. Кто может писать: NONE (никто, кроме владельца), MEMBER, MANAGER, OWNER |
ПолеmanageMessagesAutoDelete |
Типstring | Обяз.нет | ОписаниеТолько режим v2. Кто может включать автоудаление сообщений: NONE, MEMBER, MANAGER, OWNER |
ПолеmanageGuestInvites |
Типstring | Обяз.нет | ОписаниеТолько режим v2. Кто может приглашать гостей: NONE, MEMBER, MANAGER, OWNER |
ПолеmessagesAutoDeleteDelay |
Типnumber | Обяз.нет | ОписаниеТолько режим v2. Автоудаление сообщений через столько часов: 0 (не удалять), 1, 24, 168, 720 |
ПолеconferencePassword |
Типstring | Обяз.нет | ОписаниеТолько режим v2. Пароль чата видеоконференции |
ПолеcopilotMainRole |
Типstring | Обяз.нет | ОписаниеТолько режим v2. Код роли CoPilot для чата типа COPILOT |
ПолеentityData1, entityData2, entityData3 |
Типstring | Обяз.нет | ОписаниеТолько режим v2. Произвольные данные сущности, сохраняются как есть |
Примеры
curl — личный ключ
curl -X POST https://vibecode.bitrix24.tech/v1/chats \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Проект Альфа",
"users": [27, 29],
"type": "CHAT",
"color": "AZURE"
}'
curl — OAuth-приложение
curl -X POST https://vibecode.bitrix24.tech/v1/chats \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Проект Альфа",
"users": [27, 29],
"type": "CHAT",
"color": "AZURE"
}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'Проект Альфа',
users: [27, 29],
type: 'CHAT',
color: 'AZURE',
}),
})
const { success, data } = await res.json()
console.log('Chat ID:', data) // числовой ID чата
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'Проект Альфа',
users: [27, 29],
type: 'CHAT',
color: 'AZURE',
}),
})
const { success, data } = await res.json()
curl — режим v2
curl -X POST "https://vibecode.bitrix24.tech/v1/chats?format=v2" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Проект Альфа",
"searchable": "Y",
"memberEntities": [["user", 27], ["department", "12:F"]],
"manageUi": "MANAGER"
}'
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
Полеsuccess |
Типboolean | ОписаниеВсегда true при успехе |
Полеdata |
Типnumber | ОписаниеЧисловой ID созданного чата |
Полеdata.chatId |
Типnumber | ОписаниеРежим v2: числовой ID созданного чата |
Полеdata.chat |
Типobject | ОписаниеРежим v2: всегда пустой объект |
Пример ответа
{
"success": true,
"data": 3663
}
Пример ответа при ошибке
422 — Битрикс24 вернул ошибку при создании чата:
{
"success": false,
"error": {
"code": "BITRIX_ERROR",
"message": "Access denied."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| HTTP400 | КодINVALID_PARAMS |
ОписаниеТолько режим v2: тело не JSON-объект, неизвестное поле или параметр строки запроса вне format, неверный тип или значение вне списка — поле названо в сообщении, — либо type: "OPEN". Проверяется до обращения к Битрикс24 |
| HTTP422 | КодBITRIX_ERROR |
ОписаниеБитрикс24 вернул ошибку (текст в message). В режиме v2 код портала приходит в error.b24Code. type: "COLLAB" без entityId — код ENTITY_ID_EMPTY |
| HTTP403 | КодSCOPE_DENIED |
ОписаниеAPI-ключ не имеет скоупа im |
| HTTP403 | КодWRITE_BLOCKED_READONLY_KEY |
ОписаниеКлюч только для чтения — вызов создаёт чат |
| HTTP401 | КодTOKEN_MISSING |
ОписаниеAPI-ключ не имеет настроенных токенов |
Полный список общих ошибок API — Ошибки.
Известные особенности
Чат без названия. Без title имя формируется автоматически по именам участников. Поле рекомендуется передавать для групп с более чем двумя участниками.
Тип OPEN. Открытый чат виден всем пользователям портала, которые знают его ID. Обычный чат (CHAT) доступен только приглашённым участникам.
Чат коллаба. Чат коллаба принадлежит рабочей группе. Группа получает его сразу при создании через POST /v1/workgroups, отдельного главного чата у неё нет. Свой чат у группы уже есть: его dialogId возвращает ID диалога по внешнему идентификатору с externalId вида sgN, где N — ID группы. type: "COLLAB" с entityId той же группы создаёт ей ещё один чат коллаба, а не возвращает существующий. Владелец не может изменить или удалить чат коллаба методами чатов: изменение в режиме v2, права на сообщения, аватар и удаление отвечают 403 BITRIX_ACCESS_DENIED. Аватар этого чата через API не задаётся: поле imageUrl рабочей группы тоже только для чтения. Дочерний чат к чату коллаба создаётся обычным type: "CHAT" с parentChatId.
Аватар в теле запроса. Тело запроса ограничено 1 МиБ, а base64 увеличивает размер картинки на треть: в поле avatar помещается изображение примерно до 750 КиБ. Картинку больше загрузите на Диск и передайте ID файла.