#Список объектов
GET /v1/storage/objects
Возвращает список объектов хранилища с фильтрацией по префиксу ключа и навигацией по курсору. В список попадают только завершённые, не удалённые объекты. Результаты отсортированы от новых к старым.
#Параметры
| Параметр | Тип | По умолч. | Описание |
|---|---|---|---|
limit |
number | 50 |
Количество объектов на страницу. Максимум 500; значения выше 500 усекаются без ошибки |
prefix |
string | — | Фильтр по началу ключа. Пример: prefix=reports/2024 вернёт все объекты, ключи которых начинаются с reports/2024 |
cursor |
string | — | Курсор для перехода на следующую страницу, полученный из поля cursor предыдущего ответа |
#Примеры
#curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/storage/objects?limit=10&prefix=reports/2024" \
-H "X-Api-Key: YOUR_API_KEY"
#curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/storage/objects?limit=10&prefix=reports/2024" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
#JavaScript — личный ключ
const res = await fetch(
'https://vibecode.bitrix24.tech/v1/storage/objects?limit=10&prefix=reports%2F2024',
{ headers: { 'X-Api-Key': 'YOUR_API_KEY' } }
)
const { data, cursor, total } = await res.json()
console.log(`Объектов: ${total}`)
#JavaScript — OAuth-приложение
const res = await fetch(
'https://vibecode.bitrix24.tech/v1/storage/objects?limit=10&prefix=reports%2F2024',
{
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
}
)
const { data, cursor, total } = await res.json()
#Поля ответа
Ответ не содержит обёртку success — возвращается объект напрямую.
| Поле | Тип | Описание |
|---|---|---|
data |
array | Массив объектов |
data[].id |
string | Идентификатор объекта (CUID) |
data[].key |
string | Ключ объекта в хранилище |
data[].contentType |
string | MIME-тип содержимого |
data[].sizeBytes |
string | Размер в байтах. Передаётся строкой из-за ограничений JSON на большие числа |
data[].sha256 |
string | null | SHA-256 хэш содержимого, если был вычислен при загрузке |
data[].visibility |
string | Видимость: PRIVATE или PUBLIC |
data[].uploadStatus |
string | Статус загрузки. В списке всегда COMPLETED |
data[].createdAt |
string | Дата создания в формате ISO 8601 |
data[].deletedAt |
null | Всегда null — удалённые объекты в список не попадают |
cursor |
string | null | Курсор для следующей страницы. null, если объектов больше нет |
total |
number | Общее количество объектов, соответствующих запросу |
#Пример ответа
{
"data": [
{
"id": "cmabcdef1234567890abcdef",
"key": "reports/2024/annual.pdf",
"contentType": "application/pdf",
"sizeBytes": "204800",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"visibility": "PRIVATE",
"uploadStatus": "COMPLETED",
"createdAt": "2024-06-15T10:30:00.000Z",
"deletedAt": null
}
],
"cursor": null,
"total": 1
}
#Пример ответа при ошибке
400 — некорректный limit:
{
"success": false,
"error": {
"code": "STORAGE_INVALID_LIMIT",
"message": "limit must be a positive integer"
}
}
#Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | STORAGE_INVALID_LIMIT |
Параметр limit не является положительным целым числом |
| 401 | MISSING_API_KEY |
API-ключ не передан |
| 403 | STORAGE_SCOPE_REQUIRED |
У API-ключа нет скоупа vibe:storage |
Полный список общих ошибок — Ошибки.