[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Ffiles\u002Fcopyto":3,"docs-tabs-entities\u002Ffiles\u002Fcopyto":6},{"content":4,"lastmod":5},"## Скопировать файл\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","2026-07-07",{}]