---
title: "Permanently delete one trash entry"
method: DELETE
path: "/stats/deleted-sites/{id}"
tags: ["Stats"]
---

# Permanently delete one trash entry

`DELETE /stats/deleted-sites/{id}`

## Request

- Base URL: `https://api.nippy.host`
- URL: `https://api.nippy.host/stats/deleted-sites/{id}`
- Auth: `bearer` (a scheme the document does not define)

Admin-only. Deletes the files, then the row. The body repeats the site name as a confirmation. Records a site.purged activity.

## Path parameters

- `id` string, required

## Request body

- PurgeDeletedSiteDto
  - `subdomain` string, required: The site name, typed again as a confirmation. Must equal the name of the trash entry.

## Response `200`

- APIDeletedSitesPurgeResult
  - `count` number, required: Entries deleted for good.
  - `totalBytes` number, required: Bytes freed.
  - `failed` number, required: Entries a storage error kept; a later purge retries them.

## Other responses

- `400`: The name does not match
- `403`: Admin access required
- `404`: Deleted site not found
- `503`: The files could not be deleted; the entry is kept

---

[API](https://skmtc.dev/nippy/apis/nippy-backend-api.md) · [All operations](https://skmtc.dev/nippy/apis/nippy-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nippy/apis/nippy-backend-api/revisions/7ab23f040a55?raw)
