---
title: "TrashItem"
description: "One soft-deleted row in the cross-entity trash list. `id` carries the
entity's prefixed ID (use `detectEntityType(id)` if you need the type
without reading `type`). `purgeAt` is the wall-clock at which the
cleanup worker will hard-delete this row, computed server-side from
`deletedAt + RETENTION_DURATIONS[retentionTier]`. Null when the tier
is `none` (compliance hold) or unset."
section: "Reference"
group: "Types"
order: 242
---

## Definition

```ts
interface TrashItem {
  id: string;
  type: string;
  name: string;
  workspaceId: string;
  deletedAt: string;
  deletedBy: string | null;
  retentionTier: "short" | "medium" | "long" | "none" | null;
  purgeAt: string | null;
}
```

## Fields

| Field           | Type                                              | Notes                                                                                                                                 |
| --------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `id`            | `string`                                          | `readonly` `required` — Prefixed ID of the soft-deleted entity.                                                                       |
| `type`          | `string`                                          | `required` — Entity type (matches the ID's prefix).                                                                                   |
| `name`          | `string`                                          | `required` — Display label — name / title / subject depending on entity. Falls back to `id` when the entity has no display field set. |
| `workspaceId`   | `string`                                          | `required` — Workspace the entity belongs to.                                                                                         |
| `deletedAt`     | `string`                                          | `required` — ISO timestamp when the row was soft-deleted.                                                                             |
| `deletedBy`     | `string \| null`                                  | `required` — User who soft-deleted the row, or null if unknown.                                                                       |
| `retentionTier` | `"short" \| "medium" \| "long" \| "none" \| null` | `required` — Retention tier snapshotted at delete time.                                                                               |
| `purgeAt`       | `string \| null`                                  | `required` — ISO timestamp at which the cleanup worker will hard-delete this row. Null when retention tier is `none` (or unset).      |
