[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Fstorages":3,"docs-tabs-entities\u002Fstorages":6},{"content":4,"lastmod":5},"# Хранилища\n\nДоступ к хранилищам Битрикс24.Диска: личные диски сотрудников, диски рабочих групп и общий диск портала. Раздел только для чтения: хранилища создаются и удаляются на стороне Битрикс24.Диска, через API доступны список, поиск, получение по идентификатору и схема полей.\n\nБитрикс24 API: `disk.storage.*`\nСкоуп: `disk`\n\n## Операции\n\n- [Список хранилищ](.\u002Fstorages\u002Flist.md) — `GET \u002Fv1\u002Fstorages`\n- [Получить хранилище](.\u002Fstorages\u002Fget.md) — `GET \u002Fv1\u002Fstorages\u002F:id`\n- [Поиск хранилищ](.\u002Fstorages\u002Fsearch.md) — `POST \u002Fv1\u002Fstorages\u002Fsearch`\n- [Поля хранилища](.\u002Fstorages\u002Ffields.md) — `GET \u002Fv1\u002Fstorages\u002Ffields`\n\n## Ключевые поля\n\n| Поле | Описание |\n|------|---------|\n| `id` | Идентификатор хранилища |\n| `name` | Название хранилища |\n| `entityType` | Тип владельца: `user`, `group`, `common` |\n| `entityId` | Идентификатор владельца. Строка — у общего диска нечисловая, например `shared_files_s1` |\n| `rootFolderId` | Идентификатор корневой папки хранилища |\n\nПолный список полей — [`GET \u002Fv1\u002Fstorages\u002Ffields`](.\u002Fstorages\u002Ffields.md).\n\n## Что нужно знать перед работой\n\n1. **Раздел только для чтения.** Хранилища создаются и удаляются на стороне Битрикс24.Диска: личный диск есть у каждого сотрудника, диск рабочей группы создаётся вместе с группой, общий диск один на портал. Операций создания, обновления и удаления через API нет — доступны список, поиск, получение по идентификатору и схема полей.\n2. **Тип владельца — поле `entityType`.** Значения: `user` — личный диск сотрудника, `group` — диск рабочей группы, `common` — общий диск портала. Поле `entityId` указывает на владельца этого типа.\n3. **`entityId` — строка, не число.** У личных дисков и дисков групп это числовой идентификатор в виде строки, у общего диска значение нечисловое, например `shared_files_s1`. Не приводите его к числу.\n4. **`rootFolderId` — корневая папка хранилища.** От неё доступно остальное содержимое Диска — папки и файлы. Имена полей в ответе приходят в camelCase. Поле `code` на проверенных порталах приходит как `null`.\n\n## Типичный сценарий\n\n1. Получить список хранилищ: [`GET \u002Fv1\u002Fstorages`](.\u002Fstorages\u002Flist.md). Сузить по типу владельца — `filter[entityType]=group`.\n2. Открыть конкретное хранилище по идентификатору: [`GET \u002Fv1\u002Fstorages\u002F:id`](.\u002Fstorages\u002Fget.md).\n3. Взять `rootFolderId` и получить содержимое: [`GET \u002Fv1\u002Ffolders?parentId={rootFolderId}`](\u002Fdocs\u002Fentities\u002Ffolders) — папки, затем [`GET \u002Fv1\u002Ffiles?folderId={folderId}`](\u002Fdocs\u002Fentities\u002Ffiles) — файлы в папке.\n\n## Лимиты\n\n| Лимит | Значение |\n|-------|----------|\n| Максимум записей за ответ | 5000 (`limit ≤ 5000`) |\n| Авто-пагинация | включается при `limit > 50` |\n| Полная выборка | выборки больше 5000 записей читаются постранично через `offset` |\n| Сортировка | не поддерживается — `order` \u002F `sort` отклоняются с `400 INVALID_SORT_FIELD` |\n| Фильтрация | по точному совпадению значений полей |\n| Batch-запросы | до 50 операций чтения в [`POST \u002Fv1\u002Fbatch`](\u002Fdocs\u002Fbatch) |\n| Rate limit | общий для API Вайбкод — см. [Лимиты и оптимизация](\u002Fdocs\u002Foptimization) |\n\n## Смотрите также\n\n- [Справочник сущностей](\u002Fdocs\u002Fentities-index)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n- [Batch](\u002Fdocs\u002Fbatch) — объединение нескольких запросов\n- [Папки](\u002Fdocs\u002Fentities\u002Ffolders) — содержимое хранилища\n- [Файлы](\u002Fdocs\u002Fentities\u002Ffiles) — файлы на Диске\n","2026-07-14",{"storages\u002Flist.md":7,"storages\u002Fget.md":8,"storages\u002Fsearch.md":9,"storages\u002Ffields.md":10},"\n## Список хранилищ\n\n`GET \u002Fv1\u002Fstorages`\n\nВозвращает список хранилищ Битрикс24.Диска с фильтрацией по точному совпадению полей и автопагинацией.\n\n## Параметры\n\n| Параметр | Тип | По умолч. | Описание |\n|----------|-----|-----------|---------|\n| `limit` | number | `50` | Количество записей (до 5000). При `limit > 50` Вайбкод автоматически запрашивает несколько страниц |\n| `offset` | number | `0` | Пропустить N записей. Применяется для чтения выборок больше 5000 записей |\n| `select` | string | — | Выборка полей: `?select=id,name`. Возвращаются только перечисленные поля |\n| `filter` | object | — | Фильтрация по точному совпадению полей `GET \u002Fv1\u002Fstorages\u002Ffields`.\u003Cbr>[Синтаксис фильтрации](\u002Fdocs\u002Ffiltering). Пример: `?filter[entityType]=group` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fstorages?limit=10&filter[entityType]=group\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fstorages?limit=10&filter[entityType]=group\" \\\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\u002Fstorages?limit=10&filter[entityType]=group', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data, meta } = await res.json()\nconsole.log(`Всего хранилищ под фильтром: ${meta.total}`)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fstorages?limit=10&filter[entityType]=group', {\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 | Массив хранилищ |\n| `data[].id` | number | Идентификатор хранилища |\n| `data[].name` | string | Название хранилища |\n| `data[].code` | string \\| null | Символьный код. На проверенных порталах `null` |\n| `data[].module` | string | Модуль-владелец хранилища, для Диска — `disk` |\n| `data[].entityType` | string | Тип владельца: `user`, `group`, `common` |\n| `data[].entityId` | string | Идентификатор владельца. Строка, у общего диска нечисловая |\n| `data[].rootFolderId` | number | Идентификатор корневой папки хранилища |\n| `meta.total` | number | Общее количество записей, соответствующих фильтру |\n| `meta.hasMore` | boolean | Признак наличия дополнительных записей |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 1,\n      \"name\": \"Летта\",\n      \"code\": null,\n      \"module\": \"disk\",\n      \"entityType\": \"user\",\n      \"entityId\": \"1\",\n      \"rootFolderId\": 1\n    },\n    {\n      \"id\": 11,\n      \"name\": \"Общий диск\",\n      \"code\": null,\n      \"module\": \"disk\",\n      \"entityType\": \"common\",\n      \"entityId\": \"shared_files_s1\",\n      \"rootFolderId\": 19\n    }\n  ],\n  \"meta\": {\n    \"total\": 490,\n    \"hasMore\": true\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа:\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| 400 | `INVALID_SORT_FIELD` | Передан `order` или `sort` — хранилища не поддерживают сортировку |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `disk` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Выборки больше 5000 записей.** За один ответ возвращается до 5000 хранилищ. Общее число записей под фильтром приходит в `meta.total`, признак наличия продолжения — в `meta.hasMore`. Если под фильтр попадает больше 5000 записей, читайте продолжение параметром `offset`, увеличивая его на размер полученной порции.\n\n## Смотрите также\n\n- [Получить хранилище](\u002Fdocs\u002Fentities\u002Fstorages\u002Fget) — данные одного хранилища по ID\n- [Поля хранилища](\u002Fdocs\u002Fentities\u002Fstorages\u002Ffields) — схема полей\n- [Хранилища](\u002Fdocs\u002Fentities\u002Fstorages) — обзор раздела\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n- [Batch](\u002Fdocs\u002Fbatch) — объединение нескольких запросов\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization) — rate limits\n","\n## Получить хранилище\n\n`GET \u002Fv1\u002Fstorages\u002F:id`\n\nВозвращает одно хранилище Битрикс24.Диска по идентификатору.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `id` (path) | number | да | Идентификатор хранилища |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fstorages\u002F1\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fstorages\u002F1\" \\\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\u002Fstorages\u002F1', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log('Хранилище:', data.name, '—', data.entityType)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fstorages\u002F1', {\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 | Символьный код. На проверенных порталах `null` |\n| `data.module` | string | Модуль-владелец хранилища, для Диска — `disk` |\n| `data.entityType` | string | Тип владельца: `user`, `group`, `common` |\n| `data.entityId` | string | Идентификатор владельца. Строка, у общего диска нечисловая, например `shared_files_s1` |\n| `data.rootFolderId` | number | Идентификатор корневой папки хранилища |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 1,\n    \"name\": \"Летта\",\n    \"code\": null,\n    \"module\": \"disk\",\n    \"entityType\": \"user\",\n    \"entityId\": \"1\",\n    \"rootFolderId\": 1\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` не существует или недоступно пользователю |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `disk` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Список хранилищ](\u002Fdocs\u002Fentities\u002Fstorages\u002Flist) — получить несколько хранилищ с фильтрами\n- [Поля хранилища](\u002Fdocs\u002Fentities\u002Fstorages\u002Ffields) — схема полей\n- [Папки](\u002Fdocs\u002Fentities\u002Ffolders) — содержимое хранилища\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization) — rate limits\n","\n## Поиск хранилищ\n\n`POST \u002Fv1\u002Fstorages\u002Fsearch`\n\nПоиск хранилищ с фильтрами. Аналог `GET \u002Fv1\u002Fstorages` с фильтром, но через POST — условия по нескольким полям передаются в теле запроса. Фильтрация по точному совпадению полей, автопагинация при `limit > 50`.\n\n## Поля запроса (body)\n\n| Параметр | Тип | По умолч. | Описание |\n|----------|-----|-----------|---------|\n| `filter` | object | — | Фильтрация по точному совпадению полей `GET \u002Fv1\u002Fstorages\u002Ffields`.\u003Cbr>[Синтаксис фильтрации](\u002Fdocs\u002Ffiltering). Пример: `{ \"entityType\": \"group\" }` |\n| `limit` | number | `50` | Количество записей (до 5000). При `limit > 50` Вайбкод автоматически запрашивает несколько страниц |\n| `offset` | number | `0` | Пропустить N записей. Применяется для чтения выборок больше 5000 записей |\n| `select` | string[] | — | Выборка полей: `[\"id\", \"name\"]`. Возвращаются только перечисленные поля |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fstorages\u002Fsearch\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"filter\": { \"entityType\": \"group\" },\n    \"limit\": 10\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fstorages\u002Fsearch\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"filter\": { \"entityType\": \"group\" },\n    \"limit\": 10\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fstorages\u002Fsearch', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    filter: { entityType: 'group' },\n    limit: 10,\n  }),\n})\n\nconst { success, data, meta } = await res.json()\nconsole.log(`Всего хранилищ под фильтром: ${meta.total}`)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fstorages\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({\n    filter: { entityType: 'group' },\n    limit: 10,\n  }),\n})\n\nconst { success, data, meta } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | array | Массив хранилищ (см. [Поля хранилища](\u002Fdocs\u002Fentities\u002Fstorages\u002Ffields)) |\n| `meta.total` | number | Общее количество записей, соответствующих фильтру |\n| `meta.hasMore` | boolean | Признак наличия дополнительных записей |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 3,\n      \"name\": \"Закрытая видимая группа\",\n      \"code\": null,\n      \"module\": \"disk\",\n      \"entityType\": \"group\",\n      \"entityId\": \"1\",\n      \"rootFolderId\": 3\n    },\n    {\n      \"id\": 113,\n      \"name\": \"test111\",\n      \"code\": null,\n      \"module\": \"disk\",\n      \"entityType\": \"group\",\n      \"entityId\": \"11\",\n      \"rootFolderId\": 787\n    }\n  ],\n  \"meta\": {\n    \"total\": 37,\n    \"hasMore\": true\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа:\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| 400 | `INVALID_SORT_FIELD` | В теле передан `sort` или `order` — хранилища не поддерживают сортировку |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `disk` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Выборки больше 5000 записей.** За один ответ возвращается до 5000 хранилищ. Общее число записей под фильтром приходит в `meta.total`, признак наличия продолжения — в `meta.hasMore`. Если под фильтр попадает больше 5000 записей, читайте продолжение параметром `offset`, увеличивая его на размер полученной порции.\n\n## Смотрите также\n\n- [Список хранилищ](\u002Fdocs\u002Fentities\u002Fstorages\u002Flist) — то же через `GET` с query-фильтром\n- [Получить хранилище](\u002Fdocs\u002Fentities\u002Fstorages\u002Fget) — одно хранилище по ID\n- [Поля хранилища](\u002Fdocs\u002Fentities\u002Fstorages\u002Ffields) — схема полей\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization) — rate limits\n","\n## Поля хранилища\n\n`GET \u002Fv1\u002Fstorages\u002Ffields`\n\nВозвращает карту всех полей хранилища с типом и признаком только для чтения. Все поля хранилища доступны только для чтения — раздел не поддерживает создание и обновление.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fstorages\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fstorages\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\u002Fstorages\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\u002Fstorages\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Объект `data` содержит карту `fields` (имя поля → `{ type, readonly }`) и список `batch` с операциями массового режима. Для хранилищ `batch` пуст — раздел только для чтения.\n\n| Поле | Битрикс24 | Тип | RO | Описание |\n|------|----------|-----|:--:|---------|\n| `id` | `ID` | number | да | Идентификатор хранилища |\n| `name` | `NAME` | string | да | Название хранилища |\n| `code` | `CODE` | string \\| null | да | Символьный код. На проверенных порталах `null` |\n| `module` | `MODULE_ID` | string | да | Модуль-владелец хранилища, для Диска — `disk` |\n| `entityType` | `ENTITY_TYPE` | string | да | Тип владельца: `user`, `group`, `common` |\n| `entityId` | `ENTITY_ID` | string | да | Идентификатор владельца. Строка, у общего диска нечисловая, например `shared_files_s1` |\n| `rootFolderId` | `ROOT_OBJECT_ID` | number | да | Идентификатор корневой папки хранилища. Содержимое — [`GET \u002Fv1\u002Ffolders`](\u002Fdocs\u002Fentities\u002Ffolders) |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"fields\": {\n      \"id\": { \"type\": \"number\", \"readonly\": true },\n      \"name\": { \"type\": \"string\", \"readonly\": true },\n      \"code\": { \"type\": \"string\", \"readonly\": true },\n      \"entityType\": { \"type\": \"string\", \"readonly\": true },\n      \"entityId\": { \"type\": \"string\", \"readonly\": true },\n      \"rootFolderId\": { \"type\": \"number\", \"readonly\": true },\n      \"module\": { \"type\": \"string\", \"readonly\": true }\n    },\n    \"batch\": []\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа:\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\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Список хранилищ](\u002Fdocs\u002Fentities\u002Fstorages\u002Flist)\n- [Получить хранилище](\u002Fdocs\u002Fentities\u002Fstorages\u002Fget)\n- [Хранилища](\u002Fdocs\u002Fentities\u002Fstorages)\n- [Entity API](\u002Fdocs\u002Fentity-api)\n"]