---
title: "Delete every render a user requested (native app, admin offboarding)."
method: POST
path: "/v1/orgs/{orgId}/renders/bulk-delete"
tags: ["renders"]
---

# Delete every render a user requested (native app, admin offboarding).

`POST /v1/orgs/{orgId}/renders/bulk-delete`

## Request

- Base URL: `http://localhost:8080`
- URL: `http://localhost:8080/v1/orgs/{orgId}/renders/bulk-delete`
- Auth: one of:
  - API key in cookie `dvt_session`
  - HTTP bearer

Native app only (DVT-4925): **404 unless the render app-stage is configured**. Admin only
(`render:delete`; **403** otherwise). Hard-deletes up to `limit` (default 100, max 500) of
the named user's non-thumbnail, non-in-flight renders in one transaction, one audit row per
render. In-flight renders are skipped. `more: true` means further renders remain: call
again. The response is NOT wrapped in the `{data, meta}` envelope. A failure after some
objects were already removed is **500** and is recorded as
`dashboard.render.delete.commit_failed`; retrying converges.

## Request body

- object
  - `requestedBy` string, uuid, required: The user whose renders to delete.
  - `limit` integer

## Response `200`

The batch result.

- object
  - `deleted` integer, required: Renders deleted in this batch.
  - `more` boolean, required: True when more renders remain beyond this batch.

## Other responses

- `400`: Malformed request.
- `401`: Missing, invalid, or expired session.
- `403`: The caller's role does not permit this action.
- `404`: Resource does not exist.
- `429`: Per-actor API rate limit exceeded (SEC-2). All authenticated `/v1` routes apply a per-actor fixed-window default tier; selected compute-heavy routes (connection tests, column describe, data export) apply an additional tighter tier. Auth endpoints apply a per-IP tier. Problem type: `https://docs.dvt.dev/errors/rate-limited`. Wait for the `Retry-After` response header value (seconds) before retrying.
- `500`: An unexpected internal error occurred. A 500 can follow stored-object removals whose row deletes did not commit (the batch rolled back): the objects are gone but the rows remain, and each is recorded as `dashboard.render.delete.commit_failed`. Retrying converges (the object delete is idempotent).

---

[API](https://skmtc.dev/dvt/apis/dvt-rest-api.md) · [All operations](https://skmtc.dev/dvt/apis/dvt-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dvt/apis/dvt-rest-api/revisions/00016f504165?raw)
