# Хранилища

Доступ к хранилищам Битрикс24.Диска: личные диски сотрудников, диски рабочих групп и общий диск портала. Раздел только для чтения: хранилища создаются и удаляются на стороне Битрикс24.Диска, через API доступны список, поиск, получение по идентификатору и схема полей.

Битрикс24 API: `disk.storage.*`
Скоуп: `disk`

## Операции

- [Список хранилищ](./storages/list.md) — `GET /v1/storages`
- [Получить хранилище](./storages/get.md) — `GET /v1/storages/:id`
- [Поиск хранилищ](./storages/search.md) — `POST /v1/storages/search`
- [Поля хранилища](./storages/fields.md) — `GET /v1/storages/fields`

## Ключевые поля

| Поле | Описание |
|------|---------|
| `id` | Идентификатор хранилища |
| `name` | Название хранилища |
| `entityType` | Тип владельца: `user`, `group`, `common` |
| `entityId` | Идентификатор владельца. Строка — у общего диска нечисловая, например `shared_files_s1` |
| `rootFolderId` | Идентификатор корневой папки хранилища |

Полный список полей — [`GET /v1/storages/fields`](./storages/fields.md).

## Что нужно знать перед работой

1. **Раздел только для чтения.** Хранилища создаются и удаляются на стороне Битрикс24.Диска: личный диск есть у каждого сотрудника, диск рабочей группы создаётся вместе с группой, общий диск один на портал. Операций создания, обновления и удаления через API нет — доступны список, поиск, получение по идентификатору и схема полей.
2. **Тип владельца — поле `entityType`.** Значения: `user` — личный диск сотрудника, `group` — диск рабочей группы, `common` — общий диск портала. Поле `entityId` указывает на владельца этого типа.
3. **`entityId` — строка, не число.** У личных дисков и дисков групп это числовой идентификатор в виде строки, у общего диска значение нечисловое, например `shared_files_s1`. Не приводите его к числу.
4. **`rootFolderId` — корневая папка хранилища.** От неё доступно остальное содержимое Диска — папки и файлы. Имена полей в ответе приходят в camelCase. Поле `code` на проверенных порталах приходит как `null`.

## Типичный сценарий

1. Получить список хранилищ: [`GET /v1/storages`](./storages/list.md). Сузить по типу владельца — `filter[entityType]=group`.
2. Открыть конкретное хранилище по идентификатору: [`GET /v1/storages/:id`](./storages/get.md).
3. Взять `rootFolderId` и получить содержимое: [`GET /v1/folders?parentId={rootFolderId}`](/docs/entities/folders) — папки, затем [`GET /v1/files?folderId={folderId}`](/docs/entities/files) — файлы в папке.

## Лимиты

| Лимит | Значение |
|-------|----------|
| Максимум записей за ответ | 5000 (`limit ≤ 5000`) |
| Авто-пагинация | включается при `limit > 50` |
| Полная выборка | выборки больше 5000 записей читаются постранично через `offset` |
| Сортировка | порядок меняют `id`, `name`, `entityType`, `entityId`, `rootFolderId`. Поля `code` и `module` метод принимает, но на проверенных аккаунтах у всех хранилищ там одно значение, поэтому порядок по ним не меняется |
| Порядок по умолчанию | без сортировки — по возрастанию `id`; к вашей сортировке `id` добавляется последним ключом, поэтому постраничный обход не теряет строки |
| Фильтрация | по точному совпадению значений полей |
| Batch-запросы | до 50 операций чтения в [`POST /v1/batch`](/docs/batch) |
| Rate limit | общий для API Вайбкод — см. [Лимиты и оптимизация](/docs/optimization) |

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

- [Справочник API](/docs/api-reference)
- [Синтаксис фильтрации](/docs/filtering)
- [Batch](/docs/batch)
- [Папки](/docs/entities/folders)
- [Файлы](/docs/entities/files)
