[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Ffiles\u002Fmoveto":3,"docs-tabs-entities\u002Ffiles\u002Fmoveto":6},{"content":4,"lastmod":5},"\n## Переместить файл\n\n`POST \u002Fv1\u002Ffiles\u002F:id\u002Fmoveto`\n\nПеремещает файл в другую папку того же хранилища. После успеха поле `folderId` в ответе содержит ID целевой папки; `id`, `createdAt` и `createdBy` у файла не изменяются.\n\n## Параметры\n\n| Параметр | В | Тип | Обяз. | Описание |\n|----------|---|-----|:-----:|----------|\n| `id` | path | number | да | ID файла. Получить через `GET \u002Fv1\u002Ffiles` |\n\n## Поля запроса (body)\n\n| Поле | Тип | Обяз. | Описание |\n|------|-----|:-----:|----------|\n| `targetFolderId` | number | да | ID папки-назначения. Получить через `GET \u002Fv1\u002Ffolders` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"targetFolderId\":649}' \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffiles\u002F9251\u002Fmoveto\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"targetFolderId\":649}' \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffiles\u002F9251\u002Fmoveto\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffiles\u002F9251\u002Fmoveto',\n  {\n    method: 'POST',\n    headers: {\n      'X-Api-Key': 'YOUR_API_KEY',\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify({ targetFolderId: 649 }),\n  }\n)\nconst body = await res.json()\nif (!body.success) throw new Error(body.error.code)\nconsole.log('Файл перемещён, новая папка:', body.data.folderId)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffiles\u002F9251\u002Fmoveto',\n  {\n    method: 'POST',\n    headers: {\n      'X-Api-Key': 'YOUR_APP_KEY',\n      'Authorization': 'Bearer USER_SESSION_TOKEN',\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify({ targetFolderId: 649 }),\n  }\n)\nconst body = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|----------|\n| `success` | boolean | `true` при успешном перемещении |\n| `data.id` | number | ID файла (не изменяется после перемещения) |\n| `data.name` | string | Имя файла |\n| `data.code` | string \\| null | Символьный код файла |\n| `data.folderId` | number | ID папки-назначения — равен переданному `targetFolderId` |\n| `data.storageId` | number | ID хранилища |\n| `data.type` | string | Тип объекта — всегда `\"file\"` |\n| `data.deletedType` | number | Статус удаления: `0` — активен |\n| `data.globalContentVersion` | number | Счётчик версий файла |\n| `data.fileId` | number | Внутренний ID файла в Битрикс24 |\n| `data.size` | number | Размер файла в байтах |\n| `data.createdBy` | number | ID пользователя, создавшего файл |\n| `data.updatedBy` | number | ID пользователя, выполнившего перемещение |\n| `data.deletedBy` | number \\| null | ID пользователя, удалившего файл; `null` — не удалён |\n| `data.createdAt` | string | Дата создания файла (ISO 8601) — не изменяется |\n| `data.updatedAt` | string | Дата последнего изменения (ISO 8601) |\n| `data.deletedAt` | string \\| null | Дата удаления или `null` |\n| `data.downloadUrl` | string | URL для скачивания файла |\n| `data.detailUrl` | string | URL карточки файла в Битрикс24 |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 9251,\n    \"name\": \"verify-move-test.txt\",\n    \"code\": null,\n    \"storageId\": 1,\n    \"type\": \"file\",\n    \"folderId\": 649,\n    \"deletedType\": 0,\n    \"globalContentVersion\": 1,\n    \"fileId\": 34867,\n    \"size\": 11,\n    \"createdBy\": 1,\n    \"updatedBy\": 1,\n    \"deletedBy\": null,\n    \"createdAt\": \"2026-05-06T09:32:39.000Z\",\n    \"updatedAt\": \"2026-05-06T09:34:16.000Z\",\n    \"deletedAt\": null,\n    \"downloadUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fdisk\u002FdownloadFile\u002F34867\u002F?...\",\n    \"detailUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fcompany\u002Fpersonal\u002Fuser\u002F1\u002Fdisk\u002Ffile\u002Fverify-move-test.txt\u002F\"\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n422 — в целевой папке уже существует файл с таким именем:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"BITRIX_ERROR\",\n    \"message\": \"Файл с таким именем уже есть (DISK_OBJ_22000).\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 400 | `MISSING_PARAMS` | Не передан `targetFolderId` |\n| 400 | `INVALID_PARAMS` | `targetFolderId` не является положительным целым числом |\n| 400 | `INVALID_ID` | `id` файла не является положительным целым числом |\n| 400 | `OPERATION_FAILED` | Перемещение между разными хранилищами не поддерживается — используйте `POST \u002Fv1\u002Ffiles\u002F:id\u002Fcopyto` |\n| 401 | `TOKEN_MISSING` | Для портала нет токенов авторизации |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `disk` |\n| 404 | `ENTITY_NOT_FOUND` | Файл с указанным `id` не найден |\n| 422 | `BITRIX_ERROR` | В целевой папке уже есть файл с таким именем — переименуйте файл через `PATCH \u002Fv1\u002Ffiles\u002F:id` перед перемещением |\n| 429 | `RATE_LIMITED` | Превышен лимит запросов — подождите 1-2 секунды и повторите |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Постоянство идентификатора.** После перемещения `id`, `createdAt` и `createdBy` файла не изменяются — все внешние ссылки на файл по ID остаются рабочими.\n\n## Смотрите также\n\n- [Скопировать файл](.\u002Fcopyto.md) — `POST \u002Fv1\u002Ffiles\u002F:id\u002Fcopyto`\n- [Получить файл](.\u002Fget.md) — `GET \u002Fv1\u002Ffiles\u002F:id`\n- [Список файлов](\u002Fdocs\u002Fentities\u002Ffiles) — `GET \u002Fv1\u002Ffiles`\n- [Список папок](\u002Fdocs\u002Fentities\u002Ffolders) — `GET \u002Fv1\u002Ffolders`\n","2026-07-01",{"copyto.md":7,"get.md":8},"## Скопировать файл\n\n`POST \u002Fv1\u002Ffiles\u002F:id\u002Fcopyto`\n\nСоздаёт копию файла в указанной папке. Оригинал остаётся на месте, копия получает новый идентификатор.\n\n## Параметры\n\n| Параметр | В | Тип | Обяз. | Описание |\n|----------|---|-----|:-----:|---------|\n| `id` | path | number | да | ID файла, который нужно скопировать. Получить через `GET \u002Fv1\u002Ffiles` |\n\n## Поля запроса (body)\n\n| Поле | Тип | Обяз. | Описание |\n|------|-----|:-----:|---------|\n| `targetFolderId` | number | да | ID папки-назначения. Получить через `GET \u002Fv1\u002Ffolders` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"targetFolderId\": 649}' \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffiles\u002F9250\u002Fcopyto\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"targetFolderId\": 649}' \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffiles\u002F9250\u002Fcopyto\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffiles\u002F9250\u002Fcopyto',\n  {\n    method: 'POST',\n    headers: {\n      'X-Api-Key': 'YOUR_API_KEY',\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify({ targetFolderId: 649 }),\n  }\n)\nconst body = await res.json()\nif (!body.success) {\n  console.error(body.error.code, body.error.message)\n} else {\n  console.log('Копия создана, ID:', body.data.id)\n}\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffiles\u002F9250\u002Fcopyto',\n  {\n    method: 'POST',\n    headers: {\n      'X-Api-Key': 'YOUR_APP_KEY',\n      'Authorization': 'Bearer USER_SESSION_TOKEN',\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify({ targetFolderId: 649 }),\n  }\n)\nconst body = await res.json()\n```\n\n## Поля ответа\n\nВозвращается объект созданной копии.\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | `true` при успешном копировании |\n| `data.id` | number | ID созданной копии (отличается от ID оригинала) |\n| `data.name` | string | Имя файла |\n| `data.code` | string \\| null | Системный код файла |\n| `data.storageId` | number | ID хранилища |\n| `data.type` | string | Тип объекта — всегда `\"file\"` |\n| `data.folderId` | number | ID папки-назначения |\n| `data.deletedType` | number | Тип удаления: `0` — не удалён |\n| `data.globalContentVersion` | number | Глобальная версия содержимого |\n| `data.fileId` | number | Внутренний идентификатор содержимого файла |\n| `data.size` | number | Размер в байтах |\n| `data.createdBy` | number | ID пользователя, создавшего копию |\n| `data.updatedBy` | number | ID пользователя, обновившего копию |\n| `data.deletedBy` | number \\| null | ID удалившего. У новой копии всегда `null` |\n| `data.createdAt` | string (ISO 8601) | Дата создания копии |\n| `data.updatedAt` | string (ISO 8601) | Дата обновления копии |\n| `data.deletedAt` | string \\| null | Дата удаления. У новой копии всегда `null` |\n| `data.downloadUrl` | string | Прямой URL для скачивания файла |\n| `data.detailUrl` | string | URL карточки файла в Битрикс24 |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 9253,\n    \"name\": \"doc-copy-test.txt\",\n    \"code\": null,\n    \"storageId\": 1,\n    \"type\": \"file\",\n    \"folderId\": 649,\n    \"deletedType\": 0,\n    \"globalContentVersion\": 1,\n    \"fileId\": 34869,\n    \"size\": 4,\n    \"createdBy\": 1,\n    \"updatedBy\": 1,\n    \"deletedBy\": null,\n    \"createdAt\": \"2026-05-06T09:35:13.000Z\",\n    \"updatedAt\": \"2026-05-06T09:35:13.000Z\",\n    \"deletedAt\": null,\n    \"downloadUrl\": \"https:\u002F\u002F...\",\n    \"detailUrl\": \"https:\u002F\u002F...\"\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n400 — не передан `targetFolderId`:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"MISSING_PARAMS\",\n    \"message\": \"targetFolderId is required.\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `MISSING_PARAMS` | Не передан обязательный параметр `targetFolderId` |\n| 400 | `INVALID_PARAMS` | `targetFolderId` не является положительным целым числом |\n| 400 | `INVALID_ID` | `id` в path не является положительным целым числом |\n| 400 | `OPERATION_FAILED` | Битрикс24 вернул пустой результат — копирование не выполнено |\n| 401 | `TOKEN_MISSING` | Для портала не найдены токены авторизации |\n| 403 | `SCOPE_DENIED` | У API-ключа отсутствует скоуп `disk` |\n| 422 | `BITRIX_ERROR` | В папке-назначении уже существует файл с таким именем |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- **Копия получает новый ID.** Оригинал остаётся в исходной папке без изменений. Идентификатор копии (поле `data.id`) не совпадает с идентификатором оригинала — используйте `data.id` для дальнейшей работы с копией.\n- **Копирование работает между хранилищами.** В отличие от операции перемещения (`POST \u002Fv1\u002Ffiles\u002F:id\u002Fmoveto`), копирование допустимо даже тогда, когда исходный файл и папка-назначение принадлежат разным хранилищам.\n- **Конфликт имён.** Если в папке-назначении уже есть файл с таким же именем, операция завершится ошибкой `422`. Переименуйте оригинал или выберите другую папку.\n\n## Смотрите также\n\n- [Переместить файл](.\u002Fmoveto.md)\n- [Загрузить файл](.\u002Fupload.md)\n- [Список файлов](.\u002Flist.md)\n- [Список папок](\u002Fdocs\u002Fentities\u002Ffolders)\n","## Получить файл\n\n`GET \u002Fv1\u002Ffiles\u002F:id`\n\nВозвращает файл по ID со всеми полями, включая ссылку для скачивания и прямой URL в интерфейсе Битрикс24.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `id` (path) | number | да | ID файла. Получить: `GET \u002Fv1\u002Ffiles?folderId=X` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffiles\u002F205\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffiles\u002F205\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffiles\u002F205', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log('Файл:', data.name, '—', data.size, 'байт')\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffiles\u002F205', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Только чтение | Описание |\n|------|-----|:---:|---------|\n| `success` | boolean | | Всегда `true` при успехе |\n| `data.id` | number | ✓ | Идентификатор файла |\n| `data.name` | string | | Имя файла |\n| `data.code` | string\\|null | | Символьный код файла |\n| `data.storageId` | number | ✓ | ID хранилища. Список: `GET \u002Fv1\u002Fstorages` |\n| `data.type` | string | ✓ | Тип объекта: всегда `\"file\"` |\n| `data.folderId` | number | | ID родительской папки. Список: `GET \u002Fv1\u002Ffolders` |\n| `data.deletedType` | number | ✓ | Статус удаления: `0` — активен, `3` — в корзине, `4` — удалён вместе с папкой |\n| `data.globalContentVersion` | number | ✓ | Счётчик версий файла |\n| `data.fileId` | number | ✓ | Внутренний идентификатор файла в Битрикс24 |\n| `data.size` | number | ✓ | Размер файла в байтах |\n| `data.createdBy` | number | ✓ | ID пользователя-создателя. Список: `GET \u002Fv1\u002Fusers` |\n| `data.updatedBy` | number | ✓ | ID автора последнего изменения. Список: `GET \u002Fv1\u002Fusers` |\n| `data.deletedBy` | number\\|null | ✓ | ID пользователя, удалившего файл; `null` — файл не удалён |\n| `data.createdAt` | datetime | ✓ | Дата и время создания (ISO 8601) |\n| `data.updatedAt` | datetime | ✓ | Дата и время последнего изменения (ISO 8601) |\n| `data.deletedAt` | datetime\\|null | ✓ | Дата и время перемещения в корзину; `null` — файл не удалён |\n| `data.downloadUrl` | string | ✓ | Ссылка для скачивания файла |\n| `data.detailUrl` | string | ✓ | Ссылка на файл в интерфейсе Битрикс24 |\n| `data.contentProvider` | string | ✓ | Поставщик контента (может отсутствовать) |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 205,\n    \"name\": \"project-report.pdf\",\n    \"code\": null,\n    \"storageId\": 1,\n    \"type\": \"file\",\n    \"folderId\": 27,\n    \"deletedType\": 0,\n    \"globalContentVersion\": 1,\n    \"fileId\": 363,\n    \"size\": 31232,\n    \"createdBy\": 1,\n    \"updatedBy\": 1,\n    \"deletedBy\": null,\n    \"createdAt\": \"2020-05-15T09:29:09.000Z\",\n    \"updatedAt\": \"2020-05-15T09:29:09.000Z\",\n    \"deletedAt\": null,\n    \"downloadUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fdisk\u002FdownloadFile\u002F363\u002F?...\",\n    \"detailUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fdisk\u002Ffile\u002Fproject-report.pdf\u002F\"\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n404 — файл не найден:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"ENTITY_NOT_FOUND\",\n    \"message\": \"Could not find entity with id '99999999'.\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 404 | `ENTITY_NOT_FOUND` | Файл с указанным ID не существует |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `disk` |\n| 401 | `TOKEN_MISSING` | Ключ не имеет настроенных токенов авторизации |\n| 401 | `INVALID_API_KEY` | Неверный или просроченный API-ключ |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n`downloadUrl` содержит токен авторизации и действует ограниченное время. Для программного скачивания используйте `GET \u002Fv1\u002Ffiles\u002F:id\u002Fdownload` — он возвращает перенаправление на актуальную ссылку без встроенного токена.\n\nМетод возвращает только объекты типа `\"file\"`. Чтобы получить данные папки, используйте `GET \u002Fv1\u002Ffolders\u002F:id`.\n\n## Смотрите также\n\n- [Список файлов](\u002Fdocs\u002Fentities\u002Ffiles\u002Flist)\n- [Переименовать файл](\u002Fdocs\u002Fentities\u002Ffiles\u002Fupdate)\n- [Удалить файл](\u002Fdocs\u002Fentities\u002Ffiles\u002Fdelete)\n- [Получить папку](\u002Fdocs\u002Fentities\u002Ffolders)\n"]