> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/get-started/hi/platform/workspaces/trash.md).

# ट्रैश

## के बारे में

हटाए गए प्रोजेक्ट, डेटासेट संस्करण, ट्रेनिंग और वर्कफ़्लोज़ पहले 30 दिनों के लिए आपके वर्कस्पेस के ट्रैश में भेज दिए जाते हैं, और उसके बाद उन्हें स्थायी रूप से हटा दिया जाता है। आप 30-दिन की प्रतिधारण अवधि के भीतर किसी भी समय ट्रैश से किसी आइटम को पुनर्स्थापित कर सकते हैं, या यदि आपको यकीन है कि आपको उसकी आवश्यकता नहीं है, तो उसे तुरंत स्थायी रूप से हटा सकते हैं।

## वेब ऐप

### ट्रैश खोलें

अपने वर्कस्पेस में Settings पर जाएँ और उप-नेविगेशन से Trash चुनें। यह पेज प्रकार के अनुसार समूहित हर हटाया गया प्रोजेक्ट, संस्करण, ट्रेनिंग और वर्कफ़्लो सूचीबद्ध करता है, साथ ही यह भी कि प्रत्येक आइटम किसने हटाया, वह कब हटाया गया, और स्थायी सफ़ाई से पहले कितने दिन शेष हैं।

### आइटम पुनर्स्थापित करें

किसी एक पंक्ति पर Restore पर क्लिक करके उस आइटम को पुनर्स्थापित करें, या चेकबॉक्स का उपयोग करके कई आइटम चुनें और उन सभी को एक साथ पुनर्स्थापित करने के लिए Restore पर क्लिक करें। Restore All, workspace Trash में मौजूद हर आइटम को पुनर्स्थापित करता है।

पुनर्स्थापित आइटम तुरंत उसी स्थान पर वर्कस्पेस में फिर से दिखाई देते हैं जहाँ से उन्हें हटाया गया था। डेटासेट संस्करण केवल तभी पुनर्स्थापित किए जा सकते हैं जब उनका parent project अभी भी सक्रिय हो। यदि parent project भी Trash में है, तो पहले project को पुनर्स्थापित करें और फिर उसके versions को। यही trainings पर भी लागू होता है: पहले parent project और version को पुनर्स्थापित करें।

### आइटम को स्थायी रूप से हटाएँ

30-दिन की प्रतिधारण अवधि को छोड़कर किसी आइटम को तुरंत हटाने के लिए, किसी एक पंक्ति पर Delete Permanently पर क्लिक करें, या कई आइटम चुनें और Delete Permanently पर क्लिक करें। Empty Trash, workspace Trash में मौजूद सब कुछ एक साथ हटा देता है। स्थायी विलोपन को वापस नहीं लिया जा सकता।

स्थायी विलोपन केवल web app के इस पेज से उपलब्ध है। यह REST API, Python SDK, या CLI में उपलब्ध नहीं है, ताकि कोई भटका हुआ script या automation डेटा को अपूरणीय रूप से नष्ट न कर सके।

### जब आप हटाते हैं तो क्या होता है

जब कोई प्रोजेक्ट, संस्करण, ट्रेनिंग, या वर्कफ़्लो हटाया जाता है:

* आइटम को workspace और सभी API listings से छिपा दिया जाता है।
* आइटम के लिए चल रही कोई भी training job स्वतः रद्द कर दी जाती है, ताकि आप किसी ऐसी चीज़ पर credits खर्च करना जारी न रखें जिसे आप हटा रहे हैं।
* प्रोजेक्ट्स के लिए, version के trained models सेवा देना बंद कर देते हैं।
* Trainings के लिए, उस run द्वारा बनाए गए models भी छिपा दिए जाते हैं, और version का `{project}/{version}` model ID किसी दूसरे model पर बदल सकता है।
* आइटम के लिए storage फिर भी आपके workspace plan में गिना जाता है, जब तक कि 30-दिन की प्रतिधारण अवधि समाप्त नहीं हो जाती या आप उसे स्थायी रूप से हटा नहीं देते।

यदि आपने कोई project हटाते समय "Also delete images from Asset Library" चुना था, तो Trash row पर एक amber indicator दिखाता है कि केवल उसी project से संबंधित images भी project के स्थायी रूप से साफ़ होने पर हटा दी जाएँगी। अन्य projects के साथ साझा की गई images हमेशा सुरक्षित रहती हैं।

### ट्रैश का उपयोग कौन कर सकता है

ट्रैश और उसके actions तक पहुँच भूमिका-आधारित अभिगम नियंत्रण द्वारा नियंत्रित होती है। डिफ़ॉल्ट Owner role सभी trash permissions प्रदान करता है। आप अपने workspace की Role-Based Access Control settings से व्यक्तिगत trash permissions (`view_trash`, `trash_dataset`, `restore_dataset`, `trash_version`, `restore_version`, `trash_training`, `restore_training`, `delete_training`, `trash_workflow`, `restore_workflow`) को custom roles पर असाइन कर सकते हैं।

## HTTP API

ट्रैश में भेजे गए प्रोजेक्ट और डेटासेट संस्करण स्थायी रूप से साफ़ किए जाने से पहले 30 दिनों तक सुरक्षित रखे जाते हैं। आप REST API के माध्यम से आइटमों को हटा सकते हैं, सूचीबद्ध कर सकते हैं और पुनर्स्थापित कर सकते हैं; स्थायी विलोपन केवल web UI में उपलब्ध है (देखें [स्थायी विलोपन](#permanent-deletion) नीचे दिए गए नोट).

किसी प्रोजेक्ट या version के लिए चल रही training jobs, जब आइटम को Trash में भेजा जाता है, तो स्वतः रद्द कर दी जाती हैं।

### प्रोजेक्ट हटाएँ

{% tabs %}
{% tab title="REST API" %}
प्रोजेक्ट को Trash में भेजें:

```url
https://api.roboflow.com/:workspace/:project
```

```bash
curl "https://api.roboflow.com/my-workspace/my-detector?api_key=$ROBOFLOW_API_KEY" \\
  -X DELETE
```

उदाहरण प्रतिक्रिया:

```json
{
  "deleted": true,
  "type": "project",
  "workspace": "my-workspace",
  "project": "my-detector",
  "projectId": "d_abc123",
  "trash": true
}
```

कॉल करने वाली API key में `project:update` स्कोप होना चाहिए।
{% endtab %}
{% endtabs %}

### संस्करण हटाएँ

{% tabs %}
{% tab title="REST API" %}
एक single dataset version को Trash में भेजें:

```url
https://api.roboflow.com/:workspace/:project/:version
```

```bash
curl "https://api.roboflow.com/my-workspace/my-detector/3?api_key=$ROBOFLOW_API_KEY" \\
  -X DELETE
```

उदाहरण प्रतिक्रिया:

```json
{
  "deleted": true,
  "type": "version",
  "workspace": "my-workspace",
  "project": "my-detector",
  "projectId": "d_abc123",
  "version": "3",
  "trash": true
}
```

कॉल करने वाली API key में `version:update` स्कोप होना चाहिए।
{% endtab %}
{% endtabs %}

### वर्कफ़्लो हटाएँ

{% tabs %}
{% tab title="REST API" %}
वर्कफ़्लो को Trash में भेजें:

```url
https://api.roboflow.com/:workspace/workflows/:workflowUrl
```

```bash
curl "https://api.roboflow.com/my-workspace/workflows/slow-webhooks?api_key=$ROBOFLOW_API_KEY" \\
  -X DELETE
```

उदाहरण प्रतिक्रिया:

```json
{
  "deleted": true,
  "type": "workflow",
  "workspace": "my-workspace",
  "workflow": "slow-webhooks",
  "workflowId": "wf_abc123",
  "trash": true
}
```

कॉल करने वाली API key में `workflow:update` स्कोप होना चाहिए।
{% endtab %}
{% endtabs %}

### ट्रैश में आइटम सूचीबद्ध करें

{% tabs %}
{% tab title="REST API" %}
workspace Trash में वर्तमान में मौजूद हर चीज़ सूचीबद्ध करें:

```url
https://api.roboflow.com/:workspace/trash
```

```bash
curl "https://api.roboflow.com/my-workspace/trash?api_key=$ROBOFLOW_API_KEY"
```

उदाहरण प्रतिक्रिया:

```json
{
  "items": [
    {
      "type": "project",
      "id": "d_abc123",
      "name": "मेरा डिटेक्टर",
      "url": "my-detector",
      "deletedAt": "2026-04-20T17:05:33.000Z",
      "scheduledCleanupAt": "2026-05-20T17:05:33.000Z",
      "deletedBy": "uid-of-user",
      "deletedByName": "Alice"
    },
    {
      "type": "version",
      "id": "3",
      "name": "augmented-416",
      "parentId": "d_xyz789",
      "parentName": "मेरा अन्य प्रोजेक्ट",
      "parentUrl": "my-other-project",
      "parentInTrash": false,
      "deletedAt": "2026-04-21T12:14:02.000Z",
      "scheduledCleanupAt": "2026-05-21T12:14:02.000Z"
    }
  ],
  "sections": {
    "projects": [ ... ],
    "versions": [ ... ],
    "workflows": [ ... ],
    "trainings": [ ... ]
  }
}
```

हर आइटम में एक `scheduledCleanupAt` timestamp शामिल होता है - वह बिंदु जिस पर आइटम स्थायी सफ़ाई के लिए पात्र हो जाता है। प्रोजेक्ट्स में एक `cleanupDeleteImages` बूलियन भी होता है, जो दर्शाता है कि क्या प्रोजेक्ट के लिए विशिष्ट images cleanup चलने पर उसके साथ ही हटा दी जाएँगी।

कॉल करने वाली API key में `project:read` स्कोप होना चाहिए।
{% endtab %}
{% endtabs %}

### आइटम पुनर्स्थापित करें

{% tabs %}
{% tab title="REST API" %}
Trash से एक प्रोजेक्ट, version, training, या workflow पुनर्स्थापित करें:

```url
https://api.roboflow.com/:workspace/trash/restore
```

```bash
curl "https://api.roboflow.com/my-workspace/trash/restore?api_key=$ROBOFLOW_API_KEY" \\
  -X POST \\
  -H "Content-Type: application/json" \\
  -d '{"type": "project", "id": "d_abc123"}'
```

Versions के लिए, आपको parent project id भी शामिल करना होगा:

```bash
curl "https://api.roboflow.com/my-workspace/trash/restore?api_key=$ROBOFLOW_API_KEY" \\
  -X POST \\
  -H "Content-Type: application/json" \\
  -d '{"type": "version", "id": "3", "parentId": "d_abc123"}'
```

किसी version को पुनर्स्थापित करने के लिए parent project का अभी भी सक्रिय होना ज़रूरी है (वह स्वयं Trash में नहीं होना चाहिए)। यदि parent भी Trash में है, तो पहले उसे पुनर्स्थापित करें। किसी training को पुनर्स्थापित करने के लिए उसका project और उसका version दोनों सक्रिय होने चाहिए।

`प्रकार` इनमें से एक होना चाहिए `प्रोजेक्ट`, `संस्करण`, `ट्रेनिंग`, या `वर्कफ़्लो`. आवश्यक API-key स्कोप है **प्रकार-विशिष्ट** - यदि कुंजी में पुनर्स्थापित किए जा रहे आइटम के लिए सही स्कोप नहीं है, तो अनुरोध 401 के साथ विफल हो जाता है:

| `प्रकार`    | आवश्यक स्कोप      |
| ----------- | ----------------- |
| `प्रोजेक्ट` | `project:update`  |
| `संस्करण`   | `version:update`  |
| `ट्रेनिंग`  | `version:update`  |
| `वर्कफ़्लो` | `workflow:update` |

एंडपॉइंट यह भी सत्यापित करता है कि `targetItem.owner === :workspace` डेलिगेट करने से पहले, इसलिए workspace A में मान्य कुंजी workspace B में मौजूद किसी आइटम को पुनर्स्थापित नहीं कर सकती।
{% endtab %}
{% endtabs %}

### स्थायी विलोपन

REST API पर स्थायी विलोपन जानबूझकर उपलब्ध नहीं है। Trash खाली करने और एक अकेले Trash आइटम को तुरंत हटाने की कार्रवाइयाँ डेटा को अपूरणीय रूप से नष्ट कर देती हैं, और हम नहीं चाहते कि कोई भटका हुआ curl या automation इन्हें ट्रिगर कर सके। ये कार्रवाइयाँ केवल Roboflow web app के Trash view के माध्यम से उपलब्ध हैं।

Trash में बचे आइटम 30-दिन की प्रतिधारण अवधि के बाद स्वतः साफ़ कर दिए जाते हैं।

## Python SDK

Python SDK के माध्यम से हटाए गए प्रोजेक्ट और डेटासेट संस्करण workspace में भेज दिए जाते हैं **ट्रैश** और स्थायी रूप से साफ़ किए जाने से पहले 30 दिनों तक सुरक्षित रखे जाते हैं। प्रतिधारण अवधि के भीतर आप उन्हें वापस workspace में पुनर्स्थापित कर सकते हैं।

किसी प्रोजेक्ट या version से संबंधित कोई भी चल रही training job, जब उसे Trash में भेजा जाता है, तो स्वतः रद्द कर दी जाती है, ताकि आप credits खर्च करना जारी न रखें।

### प्रोजेक्ट हटाएँ

```python
import roboflow

rf = roboflow.Roboflow(api_key="YOUR_API_KEY")
project = rf.workspace().project("my-detector")

project.delete()
```

प्रोजेक्ट तुरंत workspace project list से छिपा दिया जाता है और Settings → Trash के अंतर्गत Trash view में दिखाई देता है।

### प्रोजेक्ट पुनर्स्थापित करें

यदि आपके पास अभी भी `Project` object का संदर्भ है, तो उस पर `restore()` कॉल करें:

```python
project.restore()
```

SDK, उसके slug के आधार पर workspace Trash में प्रोजेक्ट ढूँढ़ता है और उसे पुनर्स्थापित करता है। `RuntimeError` उत्पन्न होता है यदि प्रोजेक्ट वर्तमान में Trash में नहीं है।

### संस्करण हटाएँ

एक single dataset version को Trash में भेजें। version पर चल रही कोई भी training रद्द कर दी जाती है।

```python
import roboflow

rf = roboflow.Roboflow(api_key="YOUR_API_KEY")
project = rf.workspace().project("my-detector")
version = project.version(3)

version.delete()
```

### संस्करण पुनर्स्थापित करें

```python
version.restore()
```

किसी version को पुनर्स्थापित करने के लिए parent project का अभी भी सक्रिय होना ज़रूरी है (वह स्वयं Trash में नहीं होना चाहिए)। यदि आवश्यक हो तो पहले project को पुनर्स्थापित करें।

### ट्रैश में आइटम सूचीबद्ध करें

उपयोग करें `Workspace.trash()` यह देखने के लिए कि इस समय workspace Trash में क्या है:

```python
import roboflow

rf = roboflow.Roboflow(api_key="YOUR_API_KEY")
ws = rf.workspace()

trash = ws.trash()
for item in trash["items"]:
    print(item["type"], item["name"], "cleanup:", item["scheduledCleanupAt"] )
```

`trash["sections"]` सुविधा के लिए वही आइटमों को `प्रोजेक्ट्स`, `संस्करणों`, और `वर्कफ़्लोज़` में समूहित करता है।

### आईडी से पुनर्स्थापित करें

यदि आपके पास पहले से कोई `Project` या `संस्करण` हैंडल नहीं है (उदाहरण के लिए, आप ऐसी चीज़ को पुनर्स्थापित कर रहे हैं जिसे पिछले session में हटाया गया था), तो `Workspace.restore_from_trash()` का उपयोग करें, उस id के साथ जो `trash()`:

```python
trash = ws.trash()
project_in_trash = trash["sections"]["projects"][0]

ws.restore_from_trash("project", project_in_trash["id"])
```

Versions के लिए, parent project id पास करें:

```python
version_in_trash = trash["sections"]["versions"][0]
ws.restore_from_trash(
    "version",
    version_in_trash["id"],
    parent_id=version_in_trash["parentId"],
)
```

### वर्कफ़्लोज़

SDK फिलहाल कोई `वर्कफ़्लो` object उपलब्ध नहीं कराता, लेकिन आप low-level `rfapi` helper के माध्यम से किसी workflow को soft-delete कर सकते हैं और उसे `Workspace.restore_from_trash("workflow", ...)`:

```python
from roboflow.adapters import rfapi

# Soft-delete - workflow को 30 दिनों के लिए Trash में भेजता है।
rfapi.delete_workflow(api_key, ws.url, "slow-webhooks")

# Restore - पहले workflow की id को Trash में खोजें।
trash = ws.trash()
wf = next(w for w in trash["sections"]["workflows"] if w["url"] == "slow-webhooks")
ws.restore_from_trash("workflow", wf["id"])
```

### स्थायी विलोपन

स्थायी विलोपन जानबूझकर SDK में उपलब्ध नहीं है - Trash खाली करने और एक single Trash item को तुरंत हटाने की कार्रवाइयाँ डेटा को अपूरणीय रूप से नष्ट कर देती हैं, और हम नहीं चाहते कि कोई भटका हुआ script इन्हें ट्रिगर कर सके। ये कार्रवाइयाँ केवल Roboflow web app के Trash view के माध्यम से उपलब्ध हैं, जिसमें एक स्पष्ट confirmation dialog होता है।

Trash में बचे आइटम 30-दिन की प्रतिधारण अवधि के बाद स्वतः साफ़ कर दिए जाते हैं, इसलिए आपको आम तौर पर उन पर मैन्युअल रूप से कार्रवाई करने की ज़रूरत नहीं पड़ती।

## CLI

प्रोजेक्ट्स, डेटासेट संस्करण, और वर्कफ़्लोज़ सभी को workspace में भेजा जा सकता है **ट्रैश**जहाँ उन्हें स्थायी रूप से साफ़ किए जाने से पहले 30 दिनों तक सुरक्षित रखा जाता है। प्रतिधारण अवधि के भीतर आप उन्हें वापस workspace में पुनर्स्थापित कर सकते हैं।

किसी प्रोजेक्ट या version से जुड़े कोई भी चल रहे training jobs, जब उसे Trash में भेजा जाता है, तो स्वतः रद्द कर दिए जाते हैं, ताकि आप जिस आइटम को हटा रहे हैं उस पर credits खर्च करना जारी न रखें।

### प्रोजेक्ट हटाएँ

प्रोजेक्ट को Trash में भेजें:

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

उदाहरण:

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

प्रोजेक्ट को भेजने से पहले command पुष्टि के लिए पूछता है। scripted उपयोग के लिए संकेत को छोड़ने हेतु `--yes` (या `-y`) पास करें:

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

### प्रोजेक्ट पुनर्स्थापित करें

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

उदाहरण:

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

CLI, उसके slug के आधार पर workspace Trash में प्रोजेक्ट ढूँढ़ता है और उसे पुनर्स्थापित करता है। यदि प्रोजेक्ट वर्तमान में Trash में नहीं है, तो command error के साथ बाहर निकलती है।

### संस्करण हटाएँ

एक single dataset version को Trash में भेजें। version पर चल रही कोई भी training रद्द कर दी जाती है।

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

उदाहरण:

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

पुष्टि छोड़ने के लिए `--yes` confirmation छोड़ें।

### संस्करण पुनर्स्थापित करें

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

उदाहरण:

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

parent project का अभी भी सक्रिय होना ज़रूरी है (वह स्वयं Trash में नहीं होना चाहिए) - यदि आवश्यक हो तो पहले project को पुनर्स्थापित करें।

### वर्कफ़्लो हटाएँ

वर्कफ़्लो को Trash में भेजें:

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

उदाहरण:

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

पुष्टि छोड़ने के लिए `--yes` (या `-y`) confirmation prompt छोड़ने के लिए। आप workflow URL slug या उसका Firestore id, दोनों में से कोई भी पास कर सकते हैं।

### वर्कफ़्लो पुनर्स्थापित करें

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

उदाहरण:

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

### ट्रैश में आइटम सूचीबद्ध करें

workspace Trash में वर्तमान में मौजूद हर चीज़ सूचीबद्ध करें:

```bash
roboflow trash list
```

```
प्रकार       आईडी               नाम                              हटाया गया       सफ़ाई_समय    द्वारा
डेटासेट    d_abc123         मेरा डिटेक्टर                     2026-04-20    2026-05-20    Alice
संस्करण    3                मेरा डिटेक्टर - augmented-416 (v3)  2026-04-21    2026-05-21    Bob
वर्कफ़्लो   wf_def456        पूर्व-प्रसंस्करण पाइपलाइन         2026-04-19    2026-05-19    Alice
```

स्क्रिप्टिंग के लिए उपयुक्त संरचित आउटपुट के लिए:

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

### स्थायी विलोपन

स्थायी विलोपन जानबूझकर CLI या SDK में उपलब्ध नहीं है - Trash खाली करने और एक single Trash item को तुरंत हटाने की कार्रवाइयाँ डेटा को अपूरणीय रूप से नष्ट कर देती हैं, और हम नहीं चाहते कि कोई भटका हुआ script या typo इन्हें ट्रिगर कर सके। ये कार्रवाइयाँ केवल Roboflow web app के Trash view के माध्यम से उपलब्ध हैं, जिसमें एक स्पष्ट confirmation dialog होता है।

Trash में बचे आइटम 30-दिन की प्रतिधारण अवधि के बाद स्वतः साफ़ कर दिए जाते हैं, इसलिए आपको आम तौर पर उन पर मैन्युअल रूप से कार्रवाई करने की ज़रूरत नहीं पड़ती।

## MCP सर्वर

अपने AI agent को [MCP सर्वर](/get-started/hi/agents/mcp-server.md) से जोड़ें और वह इन tools का उपयोग करके आपके द्वारा हटाई गई चीज़ को पुनर्स्थापित कर सकता है:

<table data-search="false"><thead><tr><th width="290">टूल</th><th>विवरण</th></tr></thead><tbody><tr><td><code>trash_list</code></td><td>workspace Trash में वर्तमान में मौजूद soft-deleted items सूचीबद्ध करें।</td></tr><tr><td><code>trash_restore_project</code></td><td>हटाया गया प्रोजेक्ट पुनर्स्थापित करें।</td></tr><tr><td><code>trash_restore_version</code></td><td>हटाया गया डेटासेट संस्करण पुनर्स्थापित करें।</td></tr><tr><td><code>trash_restore_workflow</code></td><td>हटाया गया Workflow पुनर्स्थापित करें।</td></tr><tr><td><code>trash_restore_training</code></td><td>हटाया गया training run पुनर्स्थापित करें।</td></tr></tbody></table>
