---
title: "Delete several files from S3 in one request"
method: POST
path: "/api/assets/bulk-delete"
tags: ["Assets - Admin"]
---

# Delete several files from S3 in one request

`POST /api/assets/bulk-delete`

Delete many files in ONE request. Body: `{"keys": [...]}`.

Batched server-side rather than looped client-side: the single-key routes are
`async def` running blocking boto3, so N concurrent client calls would put N
blocking round-trips on the shared event loop.

Returns `{"deleted": n, "results": [{"key", "status", "erro"?}, ...]}` —
`status` is `deleted` | `invalid` | `error`. S3 reports success for a key
that never existed, so `deleted` means "no longer present".

## Headers

- `x-website-token` string, nullable
- `x-api-token` string, nullable

## Request body

- object

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/multigest/apis/multigest-protected-api.md) · [All operations](https://skmtc.dev/multigest/apis/multigest-protected-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/multigest/multigest-protected-api/revisions/4b44eb76b3ee/schema)
