{% note tip "" %}
If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the MCP server so that the assistant can utilize the official REST documentation.
{% endnote %}
Scope:
diskWho can execute the method: any user
The method disk.storage.getList returns a list of available storages.
{% include Note on required parameters %}
#|
|| Name
type | Description ||
|| filter
array | Array format:
{
field_1: value_1,
field_2: value_2,
...,
field_n: value_n,
}
where:
field_n— the name of the field to filter byvalue_n— the filter value
You can add a prefix to the keys field_n to specify the filter operation.
Possible prefix values:
>=— greater than or equal to>— greater than<=— less than or equal to<— less than@— IN, an array is passed as the value!@— NOT IN, an array is passed as the value%— LIKE, substring search. The%symbol should not be included in the filter value. The search looks for the substring in any position of the string=%— LIKE, substring search. The%symbol should be included in the value. Examples:"mol%"— searches for values starting with "mol""%mol"— searches for values ending with "mol""%mol%"— searches for values where "mol" can be in any position
%=— LIKE (similar to=%)=— equal, exact match (used by default)!=— not equal!— not equal
The list of fields available for filtering can be obtained using the method disk.storage.getFields ||
|| order
array | Array format:
{
field_1: value_1,
field_2: value_2,
...,
field_n: value_n,
}
where:
field_n— the name of the field to sort byvalue_n— astringvalue equal to:ASC— ascending sortDESC— descending sort
The list of fields available for sorting can be obtained using the method disk.storage.getFields ||
|| start
integer | This parameter is used to manage pagination.
The page size for results is always static — 50 records.
To select the second page of results, you need to pass the value 50. To select the third page of results — the value 100, and so on.
The formula for calculating the start parameter value:
start = (N - 1) * 50, where N — the desired page number ||
|#
{% include Note on examples %}
{% list tabs %}
-
cURL (Webhook)
curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"filter":{"NAME":"%Bitrix24%"},"order":{"NAME":"DESC"}}' \ https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/disk.storage.getList
-
cURL (OAuth)
curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"filter":{"NAME":"%Bitrix24%"},"order":{"NAME":"DESC"},"auth":"**put_access_token_here**"}' \ https://**put_your_bitrix24_address**/rest/disk.storage.getList
-
JS (TS)
// This snippet is an ES module: top-level await requires type="module" or a bundler. // $b24 is an already-initialized SDK instance (see the SDK "Get started" guide). import { Text } from '@bitrix24/b24jssdk' import type { B24Frame } from '@bitrix24/b24jssdk' declare const $b24: B24Frame // Shape of each StorageItem returned in result[] type StorageItem = { ID: string NAME: string CODE: string | null MODULE_ID: string ENTITY_TYPE: string ENTITY_ID: string ROOT_OBJECT_ID: string } try { // disk.storage.getList returns a single page (max 50 records). For the whole result set // use a list helper: $b24.actions.v2.callList.make() returns every record as one // array, $b24.actions.v2.fetchList.make() yields them in chunks (async generator). // NOTE: the list helpers do not accept `order` (it is excluded from their params, so // passing it is a TS error) — keep this call.make + `start` variant when sort matters. const response = await $b24.actions.v2.call.make<StorageItem[]>({ method: 'disk.storage.getList', params: { filter: { NAME: '%Bitrix24%', }, order: { NAME: 'DESC', }, start: 0, }, requestId: Text.getUuidRfc4122() }) // The payload is available only on a successful response if (!response.isSuccess) { console.error(response.getErrorMessages().join('; ')) } else { const result = response.getData()!.result console.info('Storages:', result.length, result) } } catch (error) { // Thrown on transport or SDK failures (AjaxError, SdkError, etc.) console.error(error) }
-
JS (UMD)
<!-- Load the SDK (UMD build); it is exposed as the global B24Js --> <script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script> <script> async function getStorageList() { try { // Initialize the SDK inside a Bitrix24 frame const $b24 = await B24Js.initializeB24Frame() // disk.storage.getList returns a single page (max 50 records). For the whole result set // use a list helper: $b24.actions.v2.callList.make() returns every record as one // array, $b24.actions.v2.fetchList.make() yields them in chunks (async generator). // NOTE: the list helpers do not accept `order` (it is excluded from their params, so // passing it is a TS error) — keep this call.make + `start` variant when sort matters. const response = await $b24.actions.v2.call.make({ method: 'disk.storage.getList', params: { filter: { NAME: '%Bitrix24%', }, order: { NAME: 'DESC', }, start: 0, }, requestId: B24Js.Text.getUuidRfc4122() }) // The payload is available only on a successful response if (!response.isSuccess) { console.error(response.getErrorMessages().join('; ')) return } const result = response.getData().result console.info('Storages:', result.length, result) } catch (error) { // Thrown on transport or SDK failures (AjaxError, SdkError, etc.) console.error(error) } } document.addEventListener('DOMContentLoaded', getStorageList) </script>
-
PHP
try { $response = $b24Service ->core ->call( 'disk.storage.getList', [ 'filter' => [ 'NAME' => '%Bitrix24%', ], 'order' => [ 'NAME' => 'DESC' ] ] ); $result = $response ->getResponseData() ->getResult(); echo 'Success: ' . print_r($result, true); processData($result); } catch (Throwable $e) { error_log($e->getMessage()); echo 'Error fetching storage list: ' . $e->getMessage(); }
-
BX24.js
BX24.callMethod( "disk.storage.getList", { filter: { NAME: '%Bitrix24%', }, order: { NAME: 'DESC' } }, function (result) { if (result.error()) console.error(result.error()); else console.dir(result.data()); } );
-
PHP CRest
require_once('crest.php'); $result = CRest::call( 'disk.storage.getList', [ 'filter' => [ 'NAME' => '%Bitrix24%', ], 'order' => [ 'NAME' => 'DESC' ] ] ); echo '<PRE>'; print_r($result); echo '</PRE>';
-
Go
// client and ctx are already created — see the Go SDK section res, err := client.Core().Call(ctx, "disk.storage.getList", b24.Params{ "filter": b24.Params{ "NAME": "%Bitrix24%", }, "order": b24.Params{ "NAME": "DESC", }, }, b24.WithIdempotent()) if err != nil { return fmt.Errorf("disk.storage.getList: %w", err) } var items []struct { ID b24.ID `json:"ID"` Name string `json:"NAME"` ModuleID string `json:"MODULE_ID"` EntityType string `json:"ENTITY_TYPE"` EntityID b24.ID `json:"ENTITY_ID"` RootObjectID b24.ID `json:"ROOT_OBJECT_ID"` } if err := json.Unmarshal(res.Result, &items); err != nil { return fmt.Errorf("parse response: %w", err) } for _, it := range items { fmt.Println(it.ID, it.Name) }
{% endlist %}
HTTP Status: 200
{
"result": [
{
"ID": "13",
"NAME": "Support Bitrix24",
"CODE": null,
"MODULE_ID": "disk",
"ENTITY_TYPE": "user",
"ENTITY_ID": "3",
"ROOT_OBJECT_ID": "21"
},
{
"ID": "1335",
"NAME": "Bitrix24 Integration Module",
"CODE": null,
"MODULE_ID": "disk",
"ENTITY_TYPE": "user",
"ENTITY_ID": "1255",
"ROOT_OBJECT_ID": "8755"
}
],
"total": 2,
"time": {
"start": 1770044358,
"finish": 1770044358.241043,
"duration": 0.2410430908203125,
"processing": 0,
"date_start": "2026-02-02T11:29:18+01:00",
"date_finish": "2026-02-02T11:29:18+01:00",
"operating_reset_at": 1770044958,
"operating": 0
}
}#|
|| Name
type | Description ||
|| result
array | An array of available storages.
An empty array means that the user does not have access to storages or there are no records that meet the filter criteria ||
|| ID
integer | Storage identifier ||
|| NAME
string | Storage name ||
|| CODE
string | Symbolic code of the storage ||
|| MODULE_ID
string | Identifier of the module to which the storage belongs ||
|| ENTITY_TYPE
string | Type of the object associated with the storage.
Possible values:
user— user storagecommon— common documents storagegroup— group storage || || ENTITY_IDstring| Identifier of the object associated with the storage || || ROOT_OBJECT_IDinteger| Identifier of the root folder of the storage || || totalinteger| Total number of records found || || timetime| Information about the request execution time || |#
{% include system errors %}