Для AI-агентов: markdown этой страницы — /docs-content/chats/files/upload-publish.md индекс документации — /llms.txt

Опубликовать загруженные файлы

POST /v1/chats/:chatId/files/uploads/publish

Создаёт одно сообщение с ранее загруженными файлами. В uploadIds передаются ID из ответов маршрута загрузки. Повтор после неизвестного исхода может создать второе сообщение: клиенту нужен собственный реестр идемпотентности.

Параметры

Параметр Тип Обяз. Описание
chatId (path) number да ID чата

Поля запроса (body)

Поле Тип Обяз. Описание
uploadIds number[] да От 1 до 10 положительных ID загруженных файлов. Получить: data.file.id в ответе загрузки файла в папку чата
message string нет Подпись
replyId number нет ID сообщения для ответа
asFile boolean нет Отправить как файл
templateId string нет ID шаблона

Нужен скоуп im и ключ с правом записи. Другие поля и параметры запроса отклоняются с 400 INVALID_PARAMS.

Примеры

curl — личный ключ

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/chats/42/files/uploads/publish \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"uploadIds":[7701],"message":"Подпись"}'

curl — OAuth-приложение

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/chats/42/files/uploads/publish \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"uploadIds":[7701],"message":"Подпись"}'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/42/files/uploads/publish', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"uploadIds": [7701], "message": "Подпись"}),
})
const { success, data, error } = await res.json()
console.log(success ? data : error)

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/42/files/uploads/publish', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"uploadIds": [7701], "message": "Подпись"}),
})
const { success, data, error } = await res.json()
console.log(success ? data : error)

Поля ответа

Поле Тип Описание
success boolean true при успехе
data.messageId number ID созданного сообщения

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

JSON
{
  "success": true,
  "data": {
    "messageId": 52601
  }
}

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

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "`uploadIds` must be an array of 1 to 10 positive integers."
  }
}

Ошибки

HTTP Код Описание
400 INVALID_PARAMS uploadIds не массив из 1–10 положительных целых чисел, message, replyId, asFile или templateId неверного типа, передано другое поле тела или параметр строки запроса
400 INVALID_CHAT_ID chatId в пути не положительное целое число
401 TOKEN_MISSING Нет токенов портала
403 SCOPE_DENIED API-ключ не имеет скоупа im
403 WRITE_BLOCKED_READONLY_KEY Ключ только для чтения
403 BITRIX_ACCESS_DENIED Нет доступа к чату или файлу на портале
404 ENTITY_NOT_FOUND Чат или файл не найден
422 BITRIX_ERROR Другой отказ портала
429 QUEUE_TIMEOUT Очередь портала перегружена

Полный список общих ошибок API — Ошибки.

Известные особенности

Платформа не повторяет вызов. После неизвестного исхода проверьте своё состояние перед новым вызовом, чтобы не создать второе сообщение.

Код портала приходит не всегда. Именованный отказ портала может прийти как 400, 403 или 404. Поле error.b24Code в таком ответе не гарантировано.

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