[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Ffolders":3,"docs-tabs-entities\u002Ffolders":6},{"content":4,"lastmod":5},"# Папки\n\nУправление папками на диске Битрикс24: список содержимого, создание, переименование и удаление. Папки хранятся внутри хранилищ и образуют дерево вложенности.\n\nБитрикс24 API: `disk.folder.*`\nСкоуп: `disk`\n\n## Операции\n\n- [Создать папку](.\u002Ffolders\u002Fcreate.md) — `POST \u002Fv1\u002Ffolders`\n- [Список содержимого папки](.\u002Ffolders\u002Flist.md) — `GET \u002Fv1\u002Ffolders`\n- [Получить папку](.\u002Ffolders\u002Fget.md) — `GET \u002Fv1\u002Ffolders\u002F:id`\n- [Переименовать папку](.\u002Ffolders\u002Fupdate.md) — `PATCH \u002Fv1\u002Ffolders\u002F:id`\n- [Удалить папку](.\u002Ffolders\u002Fdelete.md) — `DELETE \u002Fv1\u002Ffolders\u002F:id`\n- [Поиск папок](.\u002Ffolders\u002Fsearch.md) — `POST \u002Fv1\u002Ffolders\u002Fsearch`\n- [Поля папки](.\u002Ffolders\u002Ffields.md) — `GET \u002Fv1\u002Ffolders\u002Ffields`\n- [Переместить папку](.\u002Ffolders\u002Fmoveto.md) — `POST \u002Fv1\u002Ffolders\u002F:id\u002Fmoveto`\n- [Скопировать папку](.\u002Ffolders\u002Fcopyto.md) — `POST \u002Fv1\u002Ffolders\u002F:id\u002Fcopyto`\n\n## Ключевые поля\n\n| Поле | Описание |\n|------|---------|\n| `id` | Числовой идентификатор папки |\n| `name` | Имя папки. Обязательно при создании |\n| `parentId` | Идентификатор родительской папки. Обязателен при создании и для листинга. Корневую папку хранилища даёт поле `rootFolderId` в [`GET \u002Fv1\u002Fstorages`](\u002Fdocs\u002Fentities\u002Fstorages) |\n| `storageId` | Идентификатор хранилища, из [`GET \u002Fv1\u002Fstorages`](\u002Fdocs\u002Fentities\u002Fstorages) |\n| `type` | Тип объекта — `\"folder\"` или `\"file\"` |\n| `detailUrl` | Ссылка на папку в интерфейсе Битрикс24 |\n| `createdAt` | Дата и время создания в формате ISO 8601 |\n\nПолный список полей — [`GET \u002Fv1\u002Ffolders\u002Ffields`](.\u002Ffolders\u002Ffields.md).\n\n## Что нужно знать перед работой\n\n1. **Имена полей в ответе — camelCase.** Схема приводит исходные UPPER_SNAKE-имена к camelCase.\n2. **`parentId` обязателен и для создания, и для листинга.** `GET \u002Fv1\u002Ffolders` возвращает содержимое конкретной папки. Корневую папку хранилища даёт поле `rootFolderId` в [`GET \u002Fv1\u002Fstorages`](\u002Fdocs\u002Fentities\u002Fstorages).\n3. **`GET \u002Fv1\u002Ffolders` возвращает смешанный список.** В ответе одновременно подпапки (`type: \"folder\"`) и файлы (`type: \"file\"`). У файлов набор полей отличается — есть `fileId`, `size`, `downloadUrl` и нет `realObjectId`. Для управления файлами используйте раздел [Файлы](\u002Fdocs\u002Fentities\u002Ffiles). Карточка файла доступна через [`GET \u002Fv1\u002Ffiles\u002F:id`](\u002Fdocs\u002Fentities\u002Ffiles\u002Fget), а не `GET \u002Fv1\u002Ffolders\u002F:id`.\n4. **Минимум для создания — `name` и `parentId`.**\n5. **Через `PATCH` меняется только имя.** `PATCH \u002Fv1\u002Ffolders\u002F:id` переименовывает папку. Поля `parentId` и `code` в теле `PATCH` неизменяемы. Чтобы переместить папку в другую родительскую, используйте [`POST \u002Fv1\u002Ffolders\u002F:id\u002Fmoveto`](.\u002Ffolders\u002Fmoveto.md).\n6. **Удаление — мягкое.** `DELETE \u002Fv1\u002Ffolders\u002F:id` помечает папку удалённой и переносит в корзину, физически папка не стирается. Восстановление через API не предусмотрено.\n\n## Типичный сценарий\n\n1. Получить хранилище: [`GET \u002Fv1\u002Fstorages`](\u002Fdocs\u002Fentities\u002Fstorages) — нужны `id` и `rootFolderId`.\n2. Посмотреть содержимое корня: [`GET \u002Fv1\u002Ffolders?parentId=\u003CrootFolderId>`](.\u002Ffolders\u002Flist.md).\n3. Создать подпапку: [`POST \u002Fv1\u002Ffolders`](.\u002Ffolders\u002Fcreate.md) с `name` и `parentId`.\n4. Переименовать при необходимости: [`PATCH \u002Fv1\u002Ffolders\u002F:id`](.\u002Ffolders\u002Fupdate.md).\n5. Удалить: [`DELETE \u002Fv1\u002Ffolders\u002F:id`](.\u002Ffolders\u002Fdelete.md).\n\n## Лимиты\n\n| Лимит | Значение |\n|-------|----------|\n| Максимум записей на запрос | 5000. При `limit > 50` Вайбкод выполняет несколько запросов автоматически, смещение через `offset` |\n| Batch-запросы | до 50 операций в [`POST \u002Fv1\u002Fbatch`](\u002Fdocs\u002Fbatch) |\n| Rate limit | общий для Vibe API — см. [Лимиты и оптимизация](\u002Fdocs\u002Foptimization) |\n\n## Смотрите также\n\n- [Файлы](\u002Fdocs\u002Fentities\u002Ffiles)\n- [Хранилища](\u002Fdocs\u002Fentities\u002Fstorages)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n- [API-ключи](\u002Fdocs\u002Fkeys-auth)\n- [Коды ошибок](\u002Fdocs\u002Ferrors)\n","2026-07-07",{"folders\u002Fcreate.md":7,"folders\u002Flist.md":8,"folders\u002Fget.md":9,"folders\u002Fupdate.md":10,"folders\u002Fdelete.md":11,"folders\u002Fsearch.md":12,"folders\u002Ffields.md":13,"folders\u002Fmoveto.md":14,"folders\u002Fcopyto.md":15},"## Создать папку\n\n`POST \u002Fv1\u002Ffolders`\n\nСоздаёт новую папку внутри указанной родительской папки. Тело передаётся плоско, без обёртки `fields`.\n\n## Поля запроса (body)\n\n| Поле | Битрикс24 | Тип | Обяз. | Описание |\n|------|----------|-----|:-----:|---------|\n| `name` | `NAME` | string | да | Имя новой папки |\n| `parentId` | `PARENT_ID` | number | да | ID родительской папки. Корневая папка хранилища — `rootFolderId` из `GET \u002Fv1\u002Fstorages` |\n\nПоле `code` доступно только для чтения — при создании не сохраняется, его передача возвращает `400 READONLY_FIELD`.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\":\"Документы\",\"parentId\":27}'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\":\"Документы\",\"parentId\":27}'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({ name: 'Документы', parentId: 27 }),\n})\n\nconst { success, data } = await res.json()\nconsole.log('Создана папка:', data.id)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders', {\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({ name: 'Документы', parentId: 27 }),\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | object | Объект созданной папки. Все поля — см. [Поля папки](.\u002Ffields.md) |\n\nURL карточки папки в Битрикс24 строится из `id`: `https:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fcompany\u002Fpersonal\u002Fuser\u002F1\u002Fdisk\u002Fpath\u002F\u003Cимя>\u002F`. `\u003Cportal>` — домен портала. Доступ ограничен правами сотрудника в Битрикс24.\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 9301,\n    \"name\": \"Документы\",\n    \"code\": null,\n    \"storageId\": 1,\n    \"type\": \"folder\",\n    \"realObjectId\": 9301,\n    \"parentId\": 27,\n    \"deletedType\": 0,\n    \"createdAt\": \"2026-06-25T12:10:00.000Z\",\n    \"updatedAt\": \"2026-06-25T12:10:00.000Z\",\n    \"deletedAt\": null,\n    \"createdBy\": 1,\n    \"updatedBy\": 1,\n    \"deletedBy\": 0,\n    \"detailUrl\": \"https:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fcompany\u002Fpersonal\u002Fuser\u002F1\u002Fdisk\u002Fpath\u002FЗагруженные файлы\u002FДокументы\"\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n400 — не передано обязательное поле `name`:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"MISSING_REQUIRED_FIELDS\",\n    \"message\": \"Body field \\\"name\\\" is required to create diskFolder.\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `MISSING_REQUIRED_FIELDS` | Не передано поле `name` |\n| 400 | `MISSING_PARENT_ID` | Не передано поле `parentId` |\n| 400 | `READONLY_FIELD` | В теле передано поле только для чтения, например `code` |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `disk` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов портала |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Список содержимого папки](\u002Fdocs\u002Fentities\u002Ffolders\u002Flist)\n- [Получить папку](\u002Fdocs\u002Fentities\u002Ffolders\u002Fget)\n- [Переименовать папку](\u002Fdocs\u002Fentities\u002Ffolders\u002Fupdate)\n- [Поля папки](\u002Fdocs\u002Fentities\u002Ffolders\u002Ffields)\n- [Хранилища](\u002Fdocs\u002Fentities\u002Fstorages)\n","## Список содержимого папки\n\n`GET \u002Fv1\u002Ffolders`\n\nВозвращает содержимое папки — вложенные подпапки и файлы. Параметр `parentId` обязателен — без него запрос возвращается с `400`.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | По умолч. | Описание |\n|----------|-----|:-----:|-----------|----------|\n| `parentId` (query) | number | да | | ID папки, чьё содержимое перечисляется. Корневая папка хранилища — поле `rootFolderId` в `GET \u002Fv1\u002Fstorages` |\n| `filter` (query) | object | нет | | Фильтрация по полям `GET \u002Fv1\u002Ffolders\u002Ffields`.\u003Cbr>[Синтаксис фильтрации](\u002Fdocs\u002Ffiltering). Пример: `?filter[type]=folder` |\n| `select` (query) | string | нет | все поля | Список возвращаемых полей через запятую. Пример: `?select=id,name` |\n| `order` (query) | object | нет | | Сортировка по полю. Пример: `?order[name]=asc` |\n| `limit` (query) | number | нет | 50 | Сколько записей вернуть. Максимум 5000 |\n| `offset` (query) | number | нет | 0 | Смещение для постраничной выборки |\n\nДля `limit > 50` Вайбкод автоматически пагинирует запрос на стороне сервера. Максимум — 5000 записей за вызов. Если под фильтр попадает больше, в `meta.hasMore` придёт `true`.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders?parentId=27&limit=10\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders?parentId=27&limit=10\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst params = new URLSearchParams({ parentId: '27', limit: '10' })\nconst res = await fetch(`https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders?${params}`, {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data, meta } = await res.json()\nconsole.log('Записей:', data.length, 'всего:', meta.total)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst params = new URLSearchParams({ parentId: '27', limit: '10' })\nconst res = await fetch(`https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders?${params}`, {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data, meta } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | array | Массив записей — подпапки (`type: \"folder\"`) и файлы (`type: \"file\"`). Все поля — см. [Поля папки](.\u002Ffields.md) |\n| `data[].type` | string | Тип записи: `\"folder\"` или `\"file\"`. Различает две схемы строк в одном массиве |\n| `meta.total` | number | Общее количество записей в папке |\n| `meta.hasMore` | boolean | Есть ли ещё записи за пределами `limit` |\n\nЗаписи-файлы несут собственный набор полей — `fileId`, `size`, `globalContentVersion`, `downloadUrl`, `folderId` — и не содержат `realObjectId`. Управление файлами — в разделе [Файлы](\u002Fdocs\u002Fentities\u002Ffiles).\n\nПоле `detailUrl` — полный URL карточки папки в Битрикс24, например `https:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fcompany\u002Fpersonal\u002Fuser\u002F1\u002Fdisk\u002Fpath\u002F\u003Cимя>\u002F`. `\u003Cportal>` — домен портала. Доступ ограничен правами сотрудника в Битрикс24.\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 9301,\n      \"name\": \"Документы\",\n      \"code\": null,\n      \"storageId\": 1,\n      \"type\": \"folder\",\n      \"realObjectId\": 9301,\n      \"parentId\": 27,\n      \"deletedType\": 0,\n      \"createdAt\": \"2026-06-25T12:10:00.000Z\",\n      \"updatedAt\": \"2026-06-25T12:10:00.000Z\",\n      \"deletedAt\": null,\n      \"createdBy\": 1,\n      \"updatedBy\": 1,\n      \"deletedBy\": 0,\n      \"detailUrl\": \"https:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fcompany\u002Fpersonal\u002Fuser\u002F1\u002Fdisk\u002Fpath\u002FДокументы\"\n    },\n    {\n      \"id\": 205,\n      \"name\": \"отчёт.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      \"createdAt\": \"2020-05-15T09:29:09.000Z\",\n      \"updatedAt\": \"2020-05-15T09:29:09.000Z\",\n      \"deletedAt\": null,\n      \"createdBy\": 1,\n      \"updatedBy\": 1,\n      \"deletedBy\": 0,\n      \"downloadUrl\": \"https:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Frest\u002F1\u002F****\u002Fdownload\u002F?token=****\"\n    }\n  ],\n  \"meta\": { \"total\": 22, \"hasMore\": true }\n}\n```\n\n## Пример ответа при ошибке\n\n400 — не передан обязательный `parentId`:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"MISSING_REQUIRED_PARAMS\",\n    \"message\": \"GET \u002Fv1\u002Ffolders requires query parameters: parentId. Example: GET \u002Fv1\u002Ffolders?parentId=...\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `MISSING_REQUIRED_PARAMS` | Не передан обязательный `parentId` |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `disk` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов портала |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n`GET \u002Fv1\u002Ffolders` перечисляет детей одной папки, заданной через `parentId`. Это не плоский список всех папок хранилища — для обхода дерева запрашивайте каждую папку отдельно по её `id`. Корневую папку хранилища даёт поле `rootFolderId` в `GET \u002Fv1\u002Fstorages`.\n\n## Смотрите также\n\n- [Получить папку](\u002Fdocs\u002Fentities\u002Ffolders\u002Fget)\n- [Создать папку](\u002Fdocs\u002Fentities\u002Ffolders\u002Fcreate)\n- [Поля папки](\u002Fdocs\u002Fentities\u002Ffolders\u002Ffields)\n- [Файлы](\u002Fdocs\u002Fentities\u002Ffiles)\n- [Хранилища](\u002Fdocs\u002Fentities\u002Fstorages)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n","## Получить папку\n\n`GET \u002Fv1\u002Ffolders\u002F:id`\n\nВозвращает одну папку по её идентификатору.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|----------|\n| `id` (path) | number | да | ID папки. Список: `GET \u002Fv1\u002Ffolders` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002F27\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002F27\" \\\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\u002Ffolders\u002F27', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log(data.name)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002F27', {\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` | object | Объект папки. Все поля — см. [Поля папки](.\u002Ffields.md) |\n\n`GET \u002Fv1\u002Ffolders\u002F:id` адресует только папки. Идентификатор файла возвращает `404 ENTITY_NOT_FOUND` — карточка файла доступна через [`GET \u002Fv1\u002Ffiles\u002F:id`](\u002Fdocs\u002Fentities\u002Ffiles\u002Fget).\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 27,\n    \"name\": \"Загруженные файлы\",\n    \"code\": \"FOR_UPLOADED_FILES\",\n    \"storageId\": 1,\n    \"type\": \"folder\",\n    \"realObjectId\": 27,\n    \"parentId\": 1,\n    \"deletedType\": 0,\n    \"createdAt\": \"2020-04-21T16:09:38.000Z\",\n    \"updatedAt\": \"2026-06-09T12:29:04.000Z\",\n    \"deletedAt\": null,\n    \"createdBy\": 1,\n    \"updatedBy\": 1,\n    \"deletedBy\": 0,\n    \"detailUrl\": \"https:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fcompany\u002Fpersonal\u002Fuser\u002F1\u002Fdisk\u002Fpath\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 '999999'.\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 404 | `ENTITY_NOT_FOUND` | Папки с указанным `id` нет, либо `id` принадлежит файлу |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `disk` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов портала |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Список содержимого папки](\u002Fdocs\u002Fentities\u002Ffolders\u002Flist)\n- [Переименовать папку](\u002Fdocs\u002Fentities\u002Ffolders\u002Fupdate)\n- [Удалить папку](\u002Fdocs\u002Fentities\u002Ffolders\u002Fdelete)\n- [Поля папки](\u002Fdocs\u002Fentities\u002Ffolders\u002Ffields)\n- [Файлы](\u002Fdocs\u002Fentities\u002Ffiles)\n","## Переименовать папку\n\n`PATCH \u002Fv1\u002Ffolders\u002F:id`\n\nПереименовывает папку. Принимает только поле `name`. Чтобы переместить папку в другую родительскую, используйте [`POST \u002Fv1\u002Ffolders\u002F:id\u002Fmoveto`](.\u002Fmoveto.md).\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|----------|\n| `id` (path) | number | да | ID папки. Список: `GET \u002Fv1\u002Ffolders` |\n\n## Поля запроса (body)\n\n| Поле | Битрикс24 | Тип | Обяз. | Описание |\n|------|----------|-----|:-----:|---------|\n| `name` | `NAME` | string | да | Новое имя папки |\n\nПоля `parentId` и `code` неизменяемы — их передача возвращает `400 READONLY_FIELD`. Чтобы переместить папку в другую родительскую, используйте [`POST \u002Fv1\u002Ffolders\u002F:id\u002Fmoveto`](.\u002Fmoveto.md).\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X PATCH \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002F9301\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\":\"Договоры\"}'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X PATCH \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002F9301\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\":\"Договоры\"}'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002F9301', {\n  method: 'PATCH',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({ name: 'Договоры' }),\n})\n\nconst { success, data } = await res.json()\nconsole.log(data.name)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002F9301', {\n  method: 'PATCH',\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({ name: 'Договоры' }),\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | object | Объект папки после переименования. Все поля — см. [Поля папки](.\u002Ffields.md) |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 9301,\n    \"name\": \"Договоры\",\n    \"code\": null,\n    \"storageId\": 1,\n    \"type\": \"folder\",\n    \"realObjectId\": 9301,\n    \"parentId\": 27,\n    \"deletedType\": 0,\n    \"createdAt\": \"2026-06-25T12:10:00.000Z\",\n    \"updatedAt\": \"2026-06-25T12:15:30.000Z\",\n    \"deletedAt\": null,\n    \"createdBy\": 1,\n    \"updatedBy\": 1,\n    \"deletedBy\": 0,\n    \"detailUrl\": \"https:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fcompany\u002Fpersonal\u002Fuser\u002F1\u002Fdisk\u002Fpath\u002FЗагруженные файлы\u002FДоговоры\"\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n400 — попытка изменить неизменяемое поле:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"READONLY_FIELD\",\n    \"message\": \"Field 'parentId' is read-only and cannot be set\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `READONLY_FIELD` | В теле передано неизменяемое поле — `parentId` или `code` |\n| 404 | `ENTITY_NOT_FOUND` | Папки с указанным `id` нет |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `disk` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов портала |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Создать папку](\u002Fdocs\u002Fentities\u002Ffolders\u002Fcreate)\n- [Получить папку](\u002Fdocs\u002Fentities\u002Ffolders\u002Fget)\n- [Удалить папку](\u002Fdocs\u002Fentities\u002Ffolders\u002Fdelete)\n- [Поля папки](\u002Fdocs\u002Fentities\u002Ffolders\u002Ffields)\n","## Удалить папку\n\n`DELETE \u002Fv1\u002Ffolders\u002F:id`\n\nУдаляет папку. Удаление мягкое — папка переносится в корзину Битрикс24 вместе со всем содержимым. Восстановить удалённую папку через API нельзя.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|----------|\n| `id` (path) | number | да | ID папки. Список: `GET \u002Fv1\u002Ffolders` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X DELETE \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002F9301\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X DELETE \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002F9301\" \\\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\u002Ffolders\u002F9301', {\n  method: 'DELETE',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nif (res.status === 204) {\n  console.log('Папка удалена')\n}\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002F9301', {\n  method: 'DELETE',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nif (res.status === 204) {\n  console.log('Папка удалена')\n}\n```\n\n## Ответ\n\nПри успешном удалении возвращается HTTP-статус `204 No Content` с пустым телом. Признак успеха — код ответа, не содержимое.\n\n## Пример ответа\n\n```\nHTTP\u002F1.1 204 No Content\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 '999999'.\"\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` | API-ключ не имеет настроенных токенов портала |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\nУдаление помечает папку как удалённую и переносит её в корзину, не стирая физически. Сразу после удаления запись ещё доступна через `GET \u002Fv1\u002Ffolders\u002F:id` с полем `deletedType` равным `3` — в корзине. Удалённая папка остаётся в Битрикс24 до окончательной очистки.\n\n## Смотрите также\n\n- [Создать папку](\u002Fdocs\u002Fentities\u002Ffolders\u002Fcreate)\n- [Получить папку](\u002Fdocs\u002Fentities\u002Ffolders\u002Fget)\n- [Переименовать папку](\u002Fdocs\u002Fentities\u002Ffolders\u002Fupdate)\n- [Папки](\u002Fdocs\u002Fentities\u002Ffolders)\n","## Поиск папок\n\n`POST \u002Fv1\u002Ffolders\u002Fsearch`\n\nПеречисляет содержимое папки через POST-запрос с фильтром в теле. Поведение совпадает с [`GET \u002Fv1\u002Ffolders`](.\u002Flist.md) — параметры передаются в теле, а не в строке запроса. Фильтр обязан содержать `parentId`.\n\n## Поля запроса (body)\n\n| Поле | Тип | Обяз. | Описание |\n|------|-----|:-----:|---------|\n| `filter` | object | да | Условия отбора. Обязан содержать `parentId` — ID папки, чьё содержимое перечисляется.\u003Cbr>[Синтаксис фильтрации](\u002Fdocs\u002Ffiltering). Пример: `{\"parentId\":27,\"type\":\"folder\"}` |\n| `select` | array | нет | Список возвращаемых полей. Пример: `[\"id\",\"name\"]` |\n| `order` | object | нет | Сортировка по полю. Пример: `{\"name\":\"asc\"}` |\n| `limit` | number | нет | Сколько записей вернуть. По умолчанию 50, максимум 5000 |\n| `offset` | number | нет | Смещение для постраничной выборки |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002Fsearch\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"filter\":{\"parentId\":27,\"type\":\"folder\"},\"limit\":10}'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002Fsearch\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"filter\":{\"parentId\":27,\"type\":\"folder\"},\"limit\":10}'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002Fsearch', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({ filter: { parentId: 27, type: 'folder' }, limit: 10 }),\n})\n\nconst { success, data, meta } = await res.json()\nconsole.log('Найдено:', data.length)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002Fsearch', {\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({ filter: { parentId: 27, type: 'folder' }, limit: 10 }),\n})\n\nconst { success, data, meta } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | array | Массив записей — подпапки и файлы. Все поля — см. [Поля папки](.\u002Ffields.md) |\n| `data[].type` | string | Тип записи: `\"folder\"` или `\"file\"` |\n| `meta.total` | number | Общее количество записей |\n| `meta.hasMore` | boolean | Есть ли ещё записи за пределами `limit` |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 9301,\n      \"name\": \"Документы\",\n      \"code\": null,\n      \"storageId\": 1,\n      \"type\": \"folder\",\n      \"realObjectId\": 9301,\n      \"parentId\": 27,\n      \"deletedType\": 0,\n      \"createdAt\": \"2026-06-25T12:10:00.000Z\",\n      \"updatedAt\": \"2026-06-25T12:10:00.000Z\",\n      \"deletedAt\": null,\n      \"createdBy\": 1,\n      \"updatedBy\": 1,\n      \"deletedBy\": 0,\n      \"detailUrl\": \"https:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fcompany\u002Fpersonal\u002Fuser\u002F1\u002Fdisk\u002Fpath\u002FДокументы\"\n    }\n  ],\n  \"meta\": { \"total\": 1, \"hasMore\": false }\n}\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа `disk`:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'disk' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 422 | `BITRIX_ERROR` | Фильтр не содержит обязательный `parentId` |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `disk` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов портала |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\nПоиск перечисляет содержимое одной папки, заданной через `parentId`, а не ищет по всему хранилищу. Для разовых выборок проще использовать [`GET \u002Fv1\u002Ffolders`](.\u002Flist.md) с тем же набором параметров в строке запроса.\n\n## Смотрите также\n\n- [Список содержимого папки](\u002Fdocs\u002Fentities\u002Ffolders\u002Flist)\n- [Поля папки](\u002Fdocs\u002Fentities\u002Ffolders\u002Ffields)\n- [Папки](\u002Fdocs\u002Fentities\u002Ffolders)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n","## Поля папки\n\n`GET \u002Fv1\u002Ffolders\u002Ffields`\n\nВозвращает схему доступных полей сущности: типы данных и признак доступности для записи.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002Ffields\" \\\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\u002Ffolders\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log('Полей:', Object.keys(data.fields).length)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002Ffields', {\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| Поле | Битрикс24 | Тип | RO | Описание |\n|------|----------|-----|:--:|---------|\n| `id` | `ID` | number | да | Идентификатор папки |\n| `name` | `NAME` | string | | Имя папки. Обязательно при создании |\n| `parentId` | `PARENT_ID` | number | | ID родительской папки. Доступно только при создании, изменить нельзя. Список: `GET \u002Fv1\u002Ffolders`, корневая папка: `GET \u002Fv1\u002Fstorages` |\n| `storageId` | `STORAGE_ID` | number | да | ID хранилища. Список: `GET \u002Fv1\u002Fstorages` |\n| `code` | `CODE` | string | да | Символьный код. При создании и переименовании не сохраняется |\n| `type` | `TYPE` | string | да | Тип объекта: `\"folder\"` или `\"file\"` |\n| `realObjectId` | `REAL_OBJECT_ID` | number | да | Внутренний ID объекта |\n| `detailUrl` | `DETAIL_URL` | string | да | Ссылка на папку в интерфейсе Битрикс24 |\n| `deletedType` | `DELETED_TYPE` | number | да | Статус удаления: `0` — не удалена, `3` — в корзине, `4` — удалена вместе с родительской папкой |\n| `createdBy` | `CREATED_BY` | number | да | ID пользователя-создателя. Поиск: `GET \u002Fv1\u002Fusers` |\n| `updatedBy` | `UPDATED_BY` | number | да | ID автора последнего изменения. Поиск: `GET \u002Fv1\u002Fusers` |\n| `deletedBy` | `DELETED_BY` | number | да | ID пользователя, удалившего папку. Поиск: `GET \u002Fv1\u002Fusers` |\n| `createdAt` | `CREATE_TIME` | datetime | да | Дата и время создания (ISO 8601 UTC) |\n| `updatedAt` | `UPDATE_TIME` | datetime | да | Дата и время последнего изменения |\n| `deletedAt` | `DELETE_TIME` | datetime | да | Дата и время удаления. `null` — папка не удалена |\n\nПоле `name` доступно при создании и переименовании, `parentId` — только при создании. Через `PATCH \u002Fv1\u002Ffolders\u002F:id` обновляется только поле `name`.\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"fields\": {\n      \"id\": { \"type\": \"number\", \"readonly\": true },\n      \"name\": { \"type\": \"string\", \"readonly\": false },\n      \"parentId\": { \"type\": \"number\", \"readonly\": false, \"createOnly\": true },\n      \"storageId\": { \"type\": \"number\", \"readonly\": true },\n      \"code\": { \"type\": \"string\", \"readonly\": true },\n      \"type\": { \"type\": \"string\", \"readonly\": true },\n      \"realObjectId\": { \"type\": \"number\", \"readonly\": true },\n      \"detailUrl\": { \"type\": \"string\", \"readonly\": true },\n      \"deletedType\": { \"type\": \"number\", \"readonly\": true },\n      \"createdBy\": { \"type\": \"number\", \"readonly\": true },\n      \"updatedBy\": { \"type\": \"number\", \"readonly\": true },\n      \"deletedBy\": { \"type\": \"number\", \"readonly\": true },\n      \"createdAt\": { \"type\": \"datetime\", \"readonly\": true },\n      \"updatedAt\": { \"type\": \"datetime\", \"readonly\": true },\n      \"deletedAt\": { \"type\": \"datetime\", \"readonly\": true }\n    },\n    \"relations\": {\n      \"storage\": { \"type\": \"one\", \"entity\": \"storages\", \"includable\": true }\n    }\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа `disk`:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'disk' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `disk` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов портала |\n| 401 | `INVALID_API_KEY` | Неверный или просроченный API-ключ |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Список содержимого папки](\u002Fdocs\u002Fentities\u002Ffolders\u002Flist)\n- [Создать папку](\u002Fdocs\u002Fentities\u002Ffolders\u002Fcreate)\n- [Папки](\u002Fdocs\u002Fentities\u002Ffolders)\n- [Файлы](\u002Fdocs\u002Fentities\u002Ffiles)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n","## Переместить папку\n\n`POST \u002Fv1\u002Ffolders\u002F:id\u002Fmoveto`\n\nПеремещает папку в другую родительскую папку того же хранилища. После успеха поле `parentId` в ответе содержит ID целевой папки. Поля `id`, `createdAt` и `createdBy` не изменяются. Перемещение между разными хранилищами не поддерживается — используйте [`copyto`](.\u002Fcopyto.md).\n\n## Параметры\n\n| Параметр | В | Тип | Обяз. | Описание |\n|----------|---|-----|:-----:|----------|\n| `id` | path | number | да | ID папки. Получить через `GET \u002Fv1\u002Ffolders` |\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\u002Ffolders\u002F9303\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\u002Ffolders\u002F9303\u002Fmoveto\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002F9303\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.parentId)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002F9303\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.parentId` | number | ID родительской папки — равен переданному `targetFolderId` |\n| `data.storageId` | number | ID хранилища |\n| `data.type` | string | Тип объекта — всегда `\"folder\"` |\n| `data.realObjectId` | number | Внутренний ID объекта |\n| `data.deletedType` | number | Статус удаления: `0` — активна |\n| `data.createdBy` | number | ID пользователя, создавшего папку — не изменяется |\n| `data.updatedBy` | number | ID пользователя, выполнившего перемещение |\n| `data.deletedBy` | number | ID пользователя, удалившего папку. `0` — не удалена |\n| `data.createdAt` | string | Дата создания (ISO 8601) — не изменяется |\n| `data.updatedAt` | string | Дата последнего изменения (ISO 8601) |\n| `data.deletedAt` | string \\| null | Дата удаления или `null` |\n| `data.detailUrl` | string | URL карточки папки в Битрикс24 |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 9303,\n    \"name\": \"Документы\",\n    \"code\": null,\n    \"storageId\": 1,\n    \"type\": \"folder\",\n    \"realObjectId\": 9303,\n    \"parentId\": 649,\n    \"deletedType\": 0,\n    \"createdAt\": \"2026-06-25T12:54:43.000Z\",\n    \"updatedAt\": \"2026-06-25T12:54:43.000Z\",\n    \"deletedAt\": null,\n    \"createdBy\": 1,\n    \"updatedBy\": 1,\n    \"deletedBy\": 0,\n    \"detailUrl\": \"https:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fcompany\u002Fpersonal\u002Fuser\u002F1\u002Fdisk\u002Fpath\u002FАрхив\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\u002Ffolders\u002F:id\u002Fcopyto`](.\u002Fcopyto.md) |\n| 401 | `TOKEN_MISSING` | Для портала нет токенов авторизации |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `disk` |\n| 404 | `ENTITY_NOT_FOUND` | Папка с указанным `id` не найдена |\n| 422 | `BITRIX_ERROR` | В целевой папке уже есть папка с таким именем — переименуйте через `PATCH \u002Fv1\u002Ffolders\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)\n- [Получить папку](.\u002Fget.md)\n- [Список содержимого папки](.\u002Flist.md)\n- [Файлы](\u002Fdocs\u002Fentities\u002Ffiles)\n","## Скопировать папку\n\n`POST \u002Fv1\u002Ffolders\u002F:id\u002Fcopyto`\n\nКопирует папку со всем содержимым в другую родительскую папку. Возвращает **новую** папку с новым `id`. Исходная папка не изменяется. Копирование работает в том числе между разными хранилищами.\n\n## Параметры\n\n| Параметр | В | Тип | Обяз. | Описание |\n|----------|---|-----|:-----:|----------|\n| `id` | path | number | да | ID исходной папки. Получить через `GET \u002Fv1\u002Ffolders` |\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\u002Ffolders\u002F9297\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\u002Ffolders\u002F9297\u002Fcopyto\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002F9297\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) throw new Error(body.error.code)\nconsole.log('Создана копия, новый id:', body.data.id)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ffolders\u002F9297\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| `success` | boolean | `true` при успешном копировании |\n| `data.id` | number | ID **новой** папки-копии — отличается от исходной |\n| `data.name` | string | Имя папки-копии |\n| `data.code` | string \\| null | Символьный код папки |\n| `data.parentId` | number | ID родительской папки — равен переданному `targetFolderId` |\n| `data.storageId` | number | ID хранилища |\n| `data.type` | string | Тип объекта — всегда `\"folder\"` |\n| `data.realObjectId` | number | Внутренний ID объекта |\n| `data.deletedType` | number | Статус удаления: `0` — активна |\n| `data.createdBy` | number | ID пользователя, создавшего копию |\n| `data.updatedBy` | number | ID пользователя, выполнившего копирование |\n| `data.deletedBy` | number | ID пользователя, удалившего папку. `0` — не удалена |\n| `data.createdAt` | string | Дата создания копии (ISO 8601) |\n| `data.updatedAt` | string | Дата последнего изменения (ISO 8601) |\n| `data.deletedAt` | string \\| null | Дата удаления или `null` |\n| `data.detailUrl` | string | URL карточки папки-копии в Битрикс24 |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 9301,\n    \"name\": \"Документы\",\n    \"code\": null,\n    \"storageId\": 1,\n    \"type\": \"folder\",\n    \"realObjectId\": 9301,\n    \"parentId\": 649,\n    \"deletedType\": 0,\n    \"createdAt\": \"2026-06-25T12:50:10.000Z\",\n    \"updatedAt\": \"2026-06-25T12:50:10.000Z\",\n    \"deletedAt\": null,\n    \"createdBy\": 1,\n    \"updatedBy\": 1,\n    \"deletedBy\": 0,\n    \"detailUrl\": \"https:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fcompany\u002Fpersonal\u002Fuser\u002F1\u002Fdisk\u002Fpath\u002FАрхив\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` | Битрикс24 вернул пустой результат — копирование не выполнено |\n| 401 | `TOKEN_MISSING` | Для портала нет токенов авторизации |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `disk` |\n| 404 | `ENTITY_NOT_FOUND` | Папка с указанным `id` не найдена |\n| 422 | `BITRIX_ERROR` | В целевой папке уже есть папка с таким именем — переименуйте через `PATCH \u002Fv1\u002Ffolders\u002F:id` перед копированием |\n| 429 | `RATE_LIMITED` | Превышен лимит запросов — подождите 1-2 секунды и повторите |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Копия — независимая папка.** У копии собственный `id`, `createdAt` и `createdBy`. Исходная папка остаётся на месте. Копируется вся вложенная структура. Чтобы перенести папку без дубликата в пределах одного хранилища, используйте [`moveto`](.\u002Fmoveto.md).\n\n## Смотрите также\n\n- [Переместить папку](.\u002Fmoveto.md)\n- [Получить папку](.\u002Fget.md)\n- [Список содержимого папки](.\u002Flist.md)\n- [Файлы](\u002Fdocs\u002Fentities\u002Ffiles)\n"]