---
title: "One deleted site in the trash"
method: GET
path: "/stats/deleted-sites/{id}"
tags: ["Stats"]
---

# One deleted site in the trash

`GET /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. The entry with the settings a restore brings back, and whether the original name is free.

## Path parameters

- `id` string, required

## Response `200`

- APIDeletedSiteDetail
  - `id` string, required: The original site id (UUID).
  - `subdomain` string, required: The name the site had when it was deleted.
  - `accountId` string, nullable, required: The owning account, or null when the account is gone.
  - `ownerEmail` string, nullable, required: The account owner email at deletion.
  - `planAtDeletion` 'free' | 'basic' | 'pro' | 'max', required: The plan at deletion.
  - `reason` 'owner' | 'expired', required
  - `deletedByUserId` string, nullable, required: Who deleted it; null for the renewal job.
  - `deletedAt` string, required: Deletion time (ISO 8601).
  - `ageDays` number, required: Whole days since the deletion.
  - `fileCount` number, required: Files kept in the trash.
  - `totalBytes` number, required: Bytes kept in the trash.
  - `nameAvailable` boolean, required: True when the original name is free, so a restore needs no new name.
  - `r2Prefix` string, required: The R2 prefix the files are kept under.
  - `statusAtDeletion` 'pending' | 'awaiting_verification' | 'live' | 'inactive' | 'suspended', required: Status at deletion.
  - `suspendedReasonAtDeletion` 'billing' | 'abuse' | 'duplicate' | 'expired', nullable, required: Suspension reason at deletion.
  - `createdAt` string, required: When the site was first created (ISO 8601).
  - `createdByUserId` string, nullable, required
  - `passwordProtected` boolean, required
  - `metaTitle` string, nullable, required
  - `metaDescription` string, nullable, required
  - `searchIndexable` boolean, required
  - `analyticsEnabled` boolean, required
  - `formCaptureEnabled` boolean, required
  - `downloadsPolicy` 'auto' | 'on' | 'off', required
  - `showBannerOverride` boolean, nullable, required
  - `renewalExempt` boolean, required: True for a site published before the Free-site renewal rule.

## Other responses

- `403`: Admin access required
- `404`: Deleted site not found

---

[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)
