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

Переместить файл

POST /v1/files/:id/moveto

Перемещает файл в другую папку того же хранилища. После успеха поле folderId в ответе содержит ID целевой папки; id, createdAt и createdBy у файла не изменяются.

Параметры

Параметр В Тип Обяз. Описание
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/9251/moveto

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/9251/moveto

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

javascript
const res = await fetch(
  'https://vibecode.bitrix24.tech/v1/files/9251/moveto',
  {
    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) throw new Error(body.error.code)
console.log('Файл перемещён, новая папка:', body.data.folderId)

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

javascript
const res = await fetch(
  'https://vibecode.bitrix24.tech/v1/files/9251/moveto',
  {
    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 файла (не изменяется после перемещения)
data.name string Имя файла
data.code string | null Символьный код файла
data.folderId number ID папки-назначения — равен переданному targetFolderId
data.storageId number ID хранилища
data.type string Тип объекта — всегда "file"
data.deletedType number Статус удаления: 0 — активен
data.globalContentVersion number Счётчик версий файла
data.fileId number Внутренний ID файла в Битрикс24
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": 9251,
    "name": "verify-move-test.txt",
    "code": null,
    "storageId": 1,
    "type": "file",
    "folderId": 649,
    "deletedType": 0,
    "globalContentVersion": 1,
    "fileId": 34867,
    "size": 11,
    "createdBy": 1,
    "updatedBy": 1,
    "deletedBy": null,
    "createdAt": "2026-05-06T09:32:39.000Z",
    "updatedAt": "2026-05-06T09:34:16.000Z",
    "deletedAt": null,
    "downloadUrl": "https://example.bitrix24.ru/disk/downloadFile/34867/?...",
    "detailUrl": "https://example.bitrix24.ru/company/personal/user/1/disk/file/verify-move-test.txt/"
  }
}

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

422 — в целевой папке уже существует файл с таким именем:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "Файл с таким именем уже есть (DISK_OBJ_22000)."
  }
}

Ошибки

HTTP Код Описание
400 MISSING_PARAMS Не передан targetFolderId
400 INVALID_PARAMS targetFolderId не является положительным целым числом
400 INVALID_ID id файла не является положительным целым числом
400 OPERATION_FAILED Перемещение между разными хранилищами не поддерживается — используйте POST /v1/files/:id/copyto
401 TOKEN_MISSING Для портала нет токенов авторизации
403 SCOPE_DENIED Ключу не хватает скоупа disk
404 ENTITY_NOT_FOUND Файл с указанным id не найден
422 BITRIX_ERROR В целевой папке уже есть файл с таким именем — переименуйте файл через PATCH /v1/files/:id перед перемещением
429 RATE_LIMITED Превышен лимит запросов — подождите 1-2 секунды и повторите

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

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

Постоянство идентификатора. После перемещения id, createdAt и createdBy файла не изменяются — все внешние ссылки на файл по ID остаются рабочими.

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

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

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. Переименуйте оригинал или выберите другую папку.

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