Для 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 — личный ключ

Terminal
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-приложение

Terminal
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 — личный ключ

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-приложение

javascript
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

Terminal
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: всегда пустой объект

Пример ответа

JSON
{
  "success": true,
  "data": 3663
}

Пример ответа при ошибке

422 — Битрикс24 вернул ошибку при создании чата:

JSON
{
  "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 файла.

Смотрите также