# Manage Trash

Projects, dataset versions, and workflows can all be moved to the workspace **Trash**, where they are retained for 30 days before being permanently cleaned up. Within the retention window you can restore them back to the workspace.

Any in-flight training jobs associated with a project or version are cancelled automatically when it is moved to Trash, so you don't continue spending credits on an item you're deleting.

## Delete a Project

Move a project to Trash:

```bash
roboflow project delete <workspace>/<project>
```

Example:

```bash
roboflow project delete my-workspace/my-detector
```

The command prompts for confirmation before moving the project. Pass `--yes` (or `-y`) to skip the prompt for scripted use:

```bash
roboflow project delete my-workspace/my-detector --yes
```

## Restore a Project

```bash
roboflow project restore <workspace>/<project>
```

Example:

```bash
roboflow project restore my-workspace/my-detector
```

The CLI looks the project up in the workspace Trash by its slug and restores it. If the project isn't currently in Trash, the command exits with an error.

## Delete a Version

Move a single dataset version to Trash. Any in-flight training on the version is cancelled.

```bash
roboflow version delete <workspace>/<project>/<version>
```

Example:

```bash
roboflow version delete my-workspace/my-detector/3
```

Pass `--yes` to skip confirmation.

## Restore a Version

```bash
roboflow version restore <workspace>/<project>/<version>
```

Example:

```bash
roboflow version restore my-workspace/my-detector/3
```

The parent project must still be active (not itself in Trash) — restore the project first if necessary.

## Delete a Workflow

Move a workflow to Trash:

```bash
roboflow workflow delete <workflow>
```

Example:

```bash
roboflow workflow delete slow-webhooks
```

Pass `--yes` (or `-y`) to skip the confirmation prompt. You can pass either the workflow URL slug or its Firestore id.

## Restore a Workflow

```bash
roboflow workflow restore <workflow>
```

Example:

```bash
roboflow workflow restore slow-webhooks
```

## List Items in Trash

List everything currently in the workspace Trash:

```bash
roboflow trash list
```

```
TYPE       ID               NAME                              DELETED       CLEANUP_AT    BY
dataset    d_abc123         My Detector                       2026-04-20    2026-05-20    Alice
version    3                My Detector — augmented-416 (v3)  2026-04-21    2026-05-21    Bob
workflow   wf_def456        Preprocessing Pipeline            2026-04-19    2026-05-19    Alice
```

For structured output suitable for scripting:

```bash
roboflow --json trash list
```

## Permanent Deletion

Permanent deletion is intentionally not available from the CLI or SDK — emptying Trash and immediately deleting a single Trash item destroy data irrecoverably, and we don't want a stray script or typo to be able to trigger them. These actions are available only through the Trash view in the Roboflow web app, which has an explicit confirmation dialog.

Items left in Trash are cleaned up automatically after the 30-day retention window, so you rarely need to act on them manually.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.roboflow.com/developer/command-line-interface/manage-trash.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
