# Storages

Access to Bitrix24 Drive storages: employees' personal drives, workgroup drives, and the account's shared drive. This section is read-only: storages are created and deleted on the Bitrix24 Drive side; the API exposes listing, search, fetch by ID, the field schema, and the contents of the storage root.

Bitrix24 API: `disk.storage.*`
Scope: `disk`

## Operations

- [List storages](./storages/list.md) — `GET /v1/storages`
- [Get a storage](./storages/get.md) — `GET /v1/storages/:id`
- [Search storages](./storages/search.md) — `POST /v1/storages/search`
- [Storage fields](./storages/fields.md) — `GET /v1/storages/fields`
- [Contents of the storage root](./storages/children.md) — `POST /v1/storages/:id/children`

## Key fields

| Field | Description |
|------|---------|
| `id` | Storage identifier |
| `name` | Storage name |
| `entityType` | Owner type: `user`, `group`, `common` |
| `entityId` | Owner identifier. A string — non-numeric for the shared drive, for example `shared_files_s1` |
| `rootFolderId` | Identifier of the storage root folder |

Full field list — [`GET /v1/storages/fields`](./storages/fields.md).

## What to know before you start

1. **This section is read-only.** Storages are created and deleted on the Bitrix24 Drive side: every employee has a personal drive, a workgroup drive is created together with the workgroup, and there is one shared drive per Bitrix24 account. There are no create, update, or delete operations through the API — listing, search, fetch by ID, the field schema, and the contents of the storage root are available.
2. **Owner type — the `entityType` field.** Values: `user` — an employee's personal drive, `group` — a workgroup drive, `common` — the account's shared drive. The `entityId` field points to the owner of that type.
3. **`entityId` is a string, not a number.** For personal and workgroup drives it is a numeric identifier given as a string; for the shared drive the value is non-numeric, for example `shared_files_s1`. Do not cast it to a number.
4. **`rootFolderId` is the storage root folder.** The rest of the Drive content — folders and files — is reached from it. Field names in the response come back in camelCase. The `code` field comes back as `null` on the Bitrix24 accounts we checked.

## Typical scenario

1. List storages: [`GET /v1/storages`](./storages/list.md). Narrow by owner type — `filter[entityType]=group`.
2. Open a specific storage by ID: [`GET /v1/storages/:id`](./storages/get.md).
3. Fetch the contents of the root: [`POST /v1/storages/:id/children`](./storages/children.md) returns folders and files together, addressed by the storage ID itself. The root folder returns the same listing: [`GET /v1/folders?parentId={rootFolderId}`](/docs/entities/folders).
4. Descend into the folder you picked: [`GET /v1/files?folderId={folderId}`](/docs/entities/files) returns its contents.

## Limits

| Limit | Value |
|-------|----------|
| Maximum records per response | 5000 (`limit ≤ 5000`) |
| Auto-pagination | enabled when `limit > 50` |
| Full retrieval | result sets larger than 5000 records are read page by page with `offset` |
| Sorting | the fields that change the order are `id`, `name`, `entityType`, `entityId`, `rootFolderId`. The method also accepts `code` and `module`, but on the accounts we checked those fields hold the same value for every storage, so ordering by them changes nothing |
| Default order | with no sort — ascending by `id`; `id` is appended to your sort as a final key, so paging does not lose rows |
| Filtering | by exact field-value match |
| Contents of the root | up to 500 objects per response, continue with `meta.nextOffset` — [this operation](./storages/children.md) |
| Batch requests | up to 50 read operations in [`POST /v1/batch`](/docs/batch). The contents of the root are not part of a batch |
| Rate limit | shared across the Vibecode API — see [Limits and optimization](/docs/optimization) |

## See also

- [API reference](/docs/api-reference)
- [Filtering syntax](/docs/filtering)
- [Batch](/docs/batch)
- [Folders](/docs/entities/folders)
- [Files](/docs/entities/files)
