For AI agents: markdown of this page — /docs-content-en/entities/storages/fields.md documentation index — /llms.txt
Storage fields
GET /v1/storages/fields
Returns a map of all storage fields with their type and read-only flag. Every storage field is read-only — this section does not support create or update.
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/storages/fields" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/storages/fields" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/storages/fields', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data } = await res.json()
console.log('Fields:', Object.keys(data.fields).length)
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/storages/fields', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data } = await res.json()
Response fields
The data object contains a fields map (field name → { type, readonly, label, description }) and a batch list of bulk-mode operations. For storages batch is empty — the section is read-only.
The label and description field captions are returned in English. Request headers do not switch the language.
| Field | Bitrix24 | Type | RO | Description |
|---|---|---|---|---|
id |
ID |
number | yes | Storage identifier |
name |
NAME |
string | yes | Storage name |
code |
CODE |
string | null | yes | Symbolic code. null on the Bitrix24 accounts we checked |
module |
MODULE_ID |
string | yes | Owner module of the storage, disk for Drive |
entityType |
ENTITY_TYPE |
string | yes | Owner type: user, group, common |
entityId |
ENTITY_ID |
string | yes | Owner identifier. A string, non-numeric for the shared drive, for example shared_files_s1 |
rootFolderId |
ROOT_OBJECT_ID |
number | yes | Identifier of the storage root folder. List its contents with GET /v1/folders |
Response example
{
"success": true,
"data": {
"fields": {
"id": { "type": "number", "readonly": true, "label": "ID", "description": "Unique identifier of the Disk storage." },
"name": { "type": "string", "readonly": true, "label": "Name", "description": "Storage name as displayed to the user." },
"code": { "type": "string", "readonly": true, "label": "Symbolic code", "description": "Symbolic code of the storage; in practice often absent (null)." },
"entityType": { "type": "string", "readonly": true, "label": "Owner type", "description": "Type of storage owner — user, group, or company shared drive." },
"entityId": { "type": "string", "readonly": true, "label": "Owner ID", "description": "Identifier of the storage owner; for the shared drive it may be a non-numeric value." },
"rootFolderId": { "type": "number", "readonly": true, "label": "Root folder", "description": "ID of the storage's root folder where its content begins." },
"module": { "type": "string", "readonly": true, "label": "Module", "description": "Code of the module that owns the storage; for Disk — the value disk." }
},
"batch": []
}
}
Error response example
403 — no scope:
{
"success": false,
"error": {
"code": "SCOPE_DENIED",
"message": "This endpoint requires 'disk' scope"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 403 | SCOPE_DENIED |
The API key does not have the disk scope |
| 401 | TOKEN_MISSING |
The API key has no configured tokens |
| 429 | RATE_LIMITED |
Rate limit exceeded: 300 requests per minute per portal, all API keys of the portal share one limit. The exact value arrives in the x-ratelimit-limit header (the cap is divided across replicas). Retry after the delay in the Retry-After header |
The full list of common API errors — Errors.