#Удалить объект

DELETE /v1/storage/objects/:key

Помечает объект как удалённый (мягкое удаление). Поле deletedAt объекта заполняется датой удаления; физические байты остаются в хранилище до 30 дней, затем удаляются автоматически. Восстановление объекта через API недоступно.

#Параметры

Параметр Тип Обяз. Описание
key (path) string да Логический ключ объекта, URL-кодированный. Для ключей с / (например users/42/avatar.png) передавать как users%2F42%2Favatar.png

#Примеры

#curl — личный ключ

Terminal
curl -s -X DELETE "https://vibecode.bitrix24.tech/v1/storage/objects/docs-test%2Fverify.txt" \
  -H "X-Api-Key: YOUR_API_KEY"

#curl — OAuth-приложение

Terminal
curl -s -X DELETE "https://vibecode.bitrix24.tech/v1/storage/objects/docs-test%2Fverify.txt" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

#JavaScript — личный ключ

javascript
const key = encodeURIComponent('docs-test/verify.txt')
const res = await fetch(`https://vibecode.bitrix24.tech/v1/storage/objects/${key}`, {
  method: 'DELETE',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})
const body = await res.json()
if (body.object?.deletedAt) {
  console.log('Объект удалён:', body.object.deletedAt)
}

#JavaScript — OAuth-приложение

javascript
const key = encodeURIComponent('docs-test/verify.txt')
const res = await fetch(`https://vibecode.bitrix24.tech/v1/storage/objects/${key}`, {
  method: 'DELETE',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})
const body = await res.json()
if (body.object?.deletedAt) {
  console.log('Объект удалён:', body.object.deletedAt)
}

#Поля ответа

Поле Тип Описание
object.id string (CUID) Внутренний идентификатор объекта
object.key string Логический ключ
object.contentType string MIME-тип содержимого
object.sizeBytes string Размер в байтах (строка из-за ограничений JSON на большие числа)
object.sha256 string | null SHA-256 содержимого, если был передан при загрузке
object.visibility string PRIVATE или PUBLIC
object.uploadStatus string Статус загрузки (COMPLETED)
object.createdAt string (ISO 8601) Дата создания
object.deletedAt string (ISO 8601) Дата удаления — заполнено после успешного удаления

#Пример ответа

JSON
{
  "object": {
    "id": "cmpfkc57v0akio510qclwfn7t",
    "key": "docs-test/verify.txt",
    "contentType": "text/plain",
    "sizeBytes": "40",
    "sha256": null,
    "visibility": "PRIVATE",
    "uploadStatus": "COMPLETED",
    "createdAt": "2026-05-21T14:05:20.092Z",
    "deletedAt": "2026-05-21T14:05:36.880Z"
  }
}

#Пример ответа при ошибке

410 — объект уже удалён (повторный вызов):

JSON
{
  "success": false,
  "error": {
    "code": "STORAGE_OBJECT_DELETED",
    "message": "Object docs-test/verify.txt was deleted"
  }
}

#Ошибки

HTTP Код Описание
400 STORAGE_INVALID_KEY Ключ содержит недопустимые символы, начинается с / или ., содержит .. или превышает 1024 символа
401 MISSING_API_KEY Не передан заголовок X-Api-Key
403 STORAGE_SCOPE_REQUIRED API-ключ не имеет скоупа vibe:storage
404 STORAGE_OBJECT_NOT_FOUND Объект с таким ключом не найден или принадлежит другому владельцу
409 STORAGE_MULTIPART_IN_PROGRESS Объект находится в состоянии незавершённой составной загрузки — сначала вызовите `/multipart/abort`
410 STORAGE_OBJECT_DELETED Объект уже был удалён ранее
503 STORAGE_STS_UNAVAILABLE Временная недоступность сервиса выдачи учётных данных хранилища — повторите запрос
503 STORAGE_FEATURE_DISABLED Хранилище временно недоступно на платформе

Полный список общих ошибок API — Ошибки.

#Известные особенности

  • Ключи с / в пути. Косая черта в ключе не является разделителем маршрута — передавайте её URL-кодированной. В JavaScript используйте encodeURIComponent(key).
  • Удалённый объект немедленно недоступен. GET и HEAD по ключу возвращают 410 STORAGE_OBJECT_DELETED до истечения 30-дневного периода физического удаления. Запрос списка объектов удалённые объекты не включает.

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