Для AI-агентов: markdown этой страницы — /docs-content/chats/messages/forward.md индекс документации — /llms.txt
Пересылка сообщений
POST /v1/chats/:dialogId/forward
Пересылает в чат до 20 сообщений, при необходимости с комментарием.
Параметры
| Параметр | Тип | Обяз. | По умолч. | Описание |
|---|---|---|---|---|
dialogId (path) |
string | да | — | ID диалога, куда пересылаются сообщения: числовой ID пользователя для личных сообщений, chatXXX для групповых. Специальный алиас me — личный диалог текущего пользователя. chatXXX — поле id строки последних диалогов, ID пользователя — из списка пользователей |
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
forwardIds |
object | да | Что переслать: ключ — клиентский UUID v4 в нижнем регистре, значение — ID пересылаемого сообщения из ленты чата. От 1 до 20 записей, каждое сообщение — один раз |
message |
string | нет | Комментарий, который публикуется перед пересланными сообщениями. Должен содержать что-то кроме пробелов |
templateId |
string | нет | Клиентский ID комментария, до 255 символов. Возвращается в push-событиях. Принимается только вместе с message |
Другие поля тела и любые параметры запроса отклоняются с 400 INVALID_PARAMS.
Примеры
curl — личный ключ
curl -X POST "https://vibecode.bitrix24.tech/v1/chats/chat42/forward" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"forwardIds":{"3f2b8c1e-5d4a-4b6f-9e7d-1a2b3c4d5e6f":1001},"message":"Посмотрите, пожалуйста"}'
curl — OAuth-приложение
curl -X POST "https://vibecode.bitrix24.tech/v1/chats/chat42/forward" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"forwardIds":{"3f2b8c1e-5d4a-4b6f-9e7d-1a2b3c4d5e6f":1001},"message":"Посмотрите, пожалуйста"}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/chat42/forward', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({"forwardIds":{"3f2b8c1e-5d4a-4b6f-9e7d-1a2b3c4d5e6f":1001},"message":"Посмотрите, пожалуйста"}),
})
const { data } = await res.json()
console.log('Переслано:', Object.keys(data.uuidMap).length)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/chat42/forward', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({"forwardIds":{"3f2b8c1e-5d4a-4b6f-9e7d-1a2b3c4d5e6f":1001},"message":"Посмотрите, пожалуйста"}),
})
const { data } = await res.json()
console.log('Переслано:', Object.keys(data.uuidMap).length)
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data.id |
number | null | ID комментария. null, если комментария не было |
data.uuidMap |
object | UUID из запроса → ID копии сообщения в чате. Переслано ровно то, что здесь перечислено |
data.failureMap |
object | array | UUID → код отказа Битрикс24 для сообщений, которые переслать не удалось. Пустой массив [], если отказов нет. Приходит начиная с im 26.1300 |
data.legacyFailureMap |
object | ID сообщения → код отказа для сообщений без клиентского UUID. Приходит начиная с im 26.1300 и только непустым |
Пример ответа
{
"success": true,
"data": {
"id": 1100,
"uuidMap": {
"3f2b8c1e-5d4a-4b6f-9e7d-1a2b3c4d5e6f": 1101
},
"failureMap": []
}
}
Пример ответа при ошибке
400 — ключ forwardIds не UUID v4 в нижнем регистре:
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Every key of `forwardIds` must be a UUID v4 in lower case. `forwardIds` is required: an object mapping a client UUID v4 (lower case) to the id of a message to forward, e.g. {\"3f2b8c1e-5d4a-4b6f-9e7d-1a2b3c4d5e6f\": 1001}."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | INVALID_PARAMS |
Нет forwardIds, это не объект, в нём нет записей или больше 20. Ключ не UUID v4 в нижнем регистре. Значение не положительное целое. Одно сообщение указано дважды. message пустой или не строка. templateId без message или длиннее 255 символов. Другое поле тела или любой параметр запроса. Проверяется до обращения к Битрикс24 |
| 404 | ENTITY_NOT_FOUND |
Битрикс24 вернул «не найдено». Код портала — в error.b24Code |
| 422 | BITRIX_ERROR |
Битрикс24 вернул ошибку. Код — в error.b24Code: MESSAGE_NOT_FOUND — одного из сообщений нет, и тогда не пересылается ничего. CHAT_NOT_FOUND — чата назначения нет |
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа im |
| 403 | WRITE_BLOCKED_READONLY_KEY |
Ключ только для чтения, а пересылка публикует сообщения — см. права доступа |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов Битрикс24 |
| 502 | ME_ALIAS_RESOLUTION_FAILED |
Алиас me не удалось разрешить: Битрикс24 не вернул ID текущего пользователя. В чат ничего не отправлено |
Полный список общих ошибок API — Ошибки.
Известные особенности
200 не значит «переслано всё». Сообщение, которое пользователь ключа переслать не может, пропускается, а весь вызов не отклоняется. Начиная с im 26.1300 пропущенные сообщения с кодом отказа перечислены в data.failureMap. На более ранних версиях этих полей нет, и пропуск молчаливый — сверяйте запрос с uuidMap.
UUID — идентификатор копии на стороне клиента. По нему копия находится в ответе и в push-событиях до того, как станет известен её ID.
Повтор с тем же UUID не создаёт вторую копию. UUID пересланного сообщения запоминается примерно на месяц, и повторный запрос возвращает в uuidMap ID существующей копии. Поэтому запрос, ответ на который потерялся, можно безопасно повторить с теми же forwardIds. Для новой пересылки генерируйте новый UUID — например, crypto.randomUUID().