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

Сохранить файлы на Диск

POST /v1/chats/files/save

Копирует файлы чата на личный Диск текущего пользователя — в папку файлов, сохранённых из чатов. Файл в чате остаётся на месте: на Диск ложится копия.

Параметры

Параметров в пути и в строке запроса нет. Любой параметр строки запроса отклоняется с 400 INVALID_PARAMS.

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

Поле Тип Обяз. Описание
fileIds number[] да ID файлов чата, от 1 до 100. Получить: files[].id в загрузке чата или в ленте в режиме v2, data.file.id после загрузки в режиме v2

Другие поля тела отклоняются с 400 INVALID_PARAMS.

Примеры

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

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/chats/files/save \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"fileIds": [7701, 7702]}'

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

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/chats/files/save \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"fileIds": [7701, 7702]}'

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/files/save', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ fileIds: [7701, 7702] }),
})

const { success, data } = await res.json()
console.log('Сохранено:', data.result)

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/files/save', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ fileIds: [7701, 7702] }),
})

const { success, data } = await res.json()
console.log('Сохранено:', data.result)

Поля ответа

Поле Тип Описание
success boolean Всегда true при успехе
data.result boolean true — копии созданы

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

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

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

400 — элемент fileIds не является положительным целым числом:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "`fileIds[1]` must be a positive integer."
  }
}

Ошибки

HTTP Код Описание
400 INVALID_PARAMS Нет fileIds, это не массив, в нём нет элементов или больше 100, элемент — не положительное целое число (индекс назван в сообщении), передано другое поле тела или параметр строки запроса. Проверяется до обращения к Битрикс24
422 BITRIX_ERROR Битрикс24 вернул ошибку. Код портала — в error.b24Code. Например, FILE_ACCESS_ERROR — у пользователя нет доступа к одному из файлов
403 SCOPE_DENIED API-ключ не имеет скоупа im
403 WRITE_BLOCKED_READONLY_KEY Ключ только для чтения — вызов изменяет Диск пользователя
401 TOKEN_MISSING API-ключ не имеет настроенных токенов Битрикс24

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

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

result: true не гарантирует, что скопированы все файлы. ID файла, которого нет, пропускается молча, и ответ остаётся успешным. Некорректный ID эндпоинт отклоняет сам, до обращения к Битрикс24, — иначе такой ID тоже пропал бы без ошибки. Проверить результат можно по папке сохранённых файлов на Диске.

Нет доступа — отказ целиком. Если хотя бы один файл пользователю недоступен, весь вызов отклоняется с FILE_ACCESS_ERROR, и ничего не копируется.

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