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

Скопировать файл

POST /v1/files/:id/copyto

Создаёт копию файла в указанной папке. Оригинал остаётся на месте, копия получает новый идентификатор.

Параметры

Параметр В Тип Обяз. Описание
id path number да ID файла, который нужно скопировать. Получить через GET /v1/files

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

Поле Тип Обяз. Описание
targetFolderId number да ID папки-назначения. Получить через GET /v1/folders

Примеры

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

Terminal
curl -X POST \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"targetFolderId": 649}' \
  https://vibecode.bitrix24.tech/v1/files/9250/copyto

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

Terminal
curl -X POST \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"targetFolderId": 649}' \
  https://vibecode.bitrix24.tech/v1/files/9250/copyto

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

javascript
const res = await fetch(
  'https://vibecode.bitrix24.tech/v1/files/9250/copyto',
  {
    method: 'POST',
    headers: {
      'X-Api-Key': 'YOUR_API_KEY',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ targetFolderId: 649 }),
  }
)
const body = await res.json()
if (!body.success) {
  console.error(body.error.code, body.error.message)
} else {
  console.log('Копия создана, ID:', body.data.id)
}

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

javascript
const res = await fetch(
  'https://vibecode.bitrix24.tech/v1/files/9250/copyto',
  {
    method: 'POST',
    headers: {
      'X-Api-Key': 'YOUR_APP_KEY',
      'Authorization': 'Bearer USER_SESSION_TOKEN',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ targetFolderId: 649 }),
  }
)
const body = await res.json()

Поля ответа

Возвращается объект созданной копии.

Поле Тип Описание
success boolean true при успешном копировании
data.id number ID созданной копии (отличается от ID оригинала)
data.name string Имя файла
data.code string | null Системный код файла
data.storageId number ID хранилища
data.type string Тип объекта — всегда "file"
data.folderId number ID папки-назначения
data.deletedType number Тип удаления: 0 — не удалён
data.globalContentVersion number Глобальная версия содержимого
data.fileId number Внутренний идентификатор содержимого файла
data.size number Размер в байтах
data.createdBy number ID пользователя, создавшего копию
data.updatedBy number ID пользователя, обновившего копию
data.deletedBy number | null ID удалившего. У новой копии всегда null
data.createdAt string (ISO 8601) Дата создания копии
data.updatedAt string (ISO 8601) Дата обновления копии
data.deletedAt string | null Дата удаления. У новой копии всегда null
data.downloadUrl string Прямой URL для скачивания файла
data.detailUrl string URL карточки файла в Битрикс24

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

JSON
{
  "success": true,
  "data": {
    "id": 9253,
    "name": "doc-copy-test.txt",
    "code": null,
    "storageId": 1,
    "type": "file",
    "folderId": 649,
    "deletedType": 0,
    "globalContentVersion": 1,
    "fileId": 34869,
    "size": 4,
    "createdBy": 1,
    "updatedBy": 1,
    "deletedBy": null,
    "createdAt": "2026-05-06T09:35:13.000Z",
    "updatedAt": "2026-05-06T09:35:13.000Z",
    "deletedAt": null,
    "downloadUrl": "https://...",
    "detailUrl": "https://..."
  }
}

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

400 — не передан targetFolderId:

JSON
{
  "success": false,
  "error": {
    "code": "MISSING_PARAMS",
    "message": "targetFolderId is required."
  }
}

Ошибки

HTTP Код Описание
400 MISSING_PARAMS Не передан обязательный параметр targetFolderId
400 INVALID_PARAMS targetFolderId не является положительным целым числом
400 INVALID_ID id в path не является положительным целым числом
400 OPERATION_FAILED Битрикс24 вернул пустой результат — копирование не выполнено
401 TOKEN_MISSING Для портала не найдены токены авторизации
403 SCOPE_DENIED У API-ключа отсутствует скоуп disk
422 BITRIX_ERROR В папке-назначении уже существует файл с таким именем

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

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

  • Копия получает новый ID. Оригинал остаётся в исходной папке без изменений. Идентификатор копии (поле data.id) не совпадает с идентификатором оригинала — используйте data.id для дальнейшей работы с копией.
  • Копирование работает между хранилищами. В отличие от операции перемещения (POST /v1/files/:id/moveto), копирование допустимо даже тогда, когда исходный файл и папка-назначение принадлежат разным хранилищам.
  • Конфликт имён. Если в папке-назначении уже есть файл с таким же именем, операция завершится ошибкой 422. Переименуйте оригинал или выберите другую папку.

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