> 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 वर्कस्पेस ट्रैश में मौजूद हर आइटम को पुनर्स्थापित करता है।

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

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

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

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

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

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

* आइटम वर्कस्पेस और सभी API सूचियों से छिपा दिया जाता है।
* आइटम के लिए चल रहे किसी भी प्रशिक्षण जॉब को स्वचालित रूप से रद्द कर दिया जाता है ताकि आप किसी ऐसी चीज़ पर क्रेडिट खर्च करते न रहें जिसे आप हटा रहे हैं।
* प्रोजेक्ट्स के लिए, संस्करण के प्रशिक्षित मॉडल सर्व करना बंद कर देते हैं।
* प्रशिक्षणों के लिए, उस रन द्वारा बनाए गए मॉडल भी छिपा दिए जाते हैं, और संस्करण का `{project}/{version}` मॉडल ID किसी दूसरे मॉडल पर स्विच हो सकता है।
* आइटम के लिए स्टोरेज 30-दिन की रिटेंशन विंडो समाप्त होने तक या आपके द्वारा उसे स्थायी रूप से हटाने तक आपके वर्कस्पेस प्लान में गिना जाता रहता है।

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

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

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

## HTTP API

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

किसी प्रोजेक्ट या संस्करण के लिए चल रहे प्रशिक्षण जॉब जब आइटम को ट्रैश में ले जाया जाता है, तो स्वचालित रूप से रद्द कर दिए जाते हैं।

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

{% tabs %}
{% tab title="REST API" %}
किसी प्रोजेक्ट को ट्रैश में ले जाएँ:

```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` scope होना चाहिए।
{% endtab %}
{% endtabs %}

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

{% tabs %}
{% tab title="REST API" %}
किसी एकल डेटासेट संस्करण को ट्रैश में ले जाएँ:

```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` scope होना चाहिए।
{% endtab %}
{% endtabs %}

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

{% tabs %}
{% tab title="REST API" %}
किसी वर्कफ़्लो को ट्रैश में ले जाएँ:

```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` scope होना चाहिए।
{% endtab %}
{% endtabs %}

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

{% tabs %}
{% tab title="REST API" %}
वर्तमान में वर्कस्पेस ट्रैश में मौजूद सब कुछ सूचीबद्ध करें:

```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": "My Detector",
      "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": "My Other Project",
      "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` टाइमस्टैम्प शामिल होता है - वह बिंदु जिस पर आइटम स्थायी सफ़ाई के लिए योग्य हो जाता है। प्रोजेक्ट्स में एक `cleanupDeleteImages` बूलियन भी होता है, जो यह दर्शाता है कि सफ़ाई चलने पर केवल प्रोजेक्ट से संबंधित चित्र उसके साथ हटाए जाएँगे या नहीं।

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

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

{% tabs %}
{% tab title="REST API" %}
ट्रैश से किसी प्रोजेक्ट, संस्करण, प्रशिक्षण, या वर्कफ़्लो को पुनर्स्थापित करें:

```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"}'
```

संस्करणों के लिए, आपको मूल प्रोजेक्ट 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"}'
```

किसी संस्करण को पुनर्स्थापित करने के लिए आवश्यक है कि मूल प्रोजेक्ट अभी भी सक्रिय हो (खुद ट्रैश में न हो)। यदि मूल भी ट्रैश में है, तो पहले उसे पुनर्स्थापित करें। किसी प्रशिक्षण को पुनर्स्थापित करने के लिए उसके प्रोजेक्ट और उसके संस्करण, दोनों का सक्रिय होना आवश्यक है।

`type` इनमें से एक होना चाहिए `project`, `version`, `training`या `workflow`. आवश्यक API-key scope है **per-type** - यदि key में पुनर्स्थापित किए जा रहे आइटम के लिए सही scope नहीं है, तो अनुरोध 401 के साथ विफल हो जाता है:

| `type`     | आवश्यक scope      |
| ---------- | ----------------- |
| `project`  | `project:update`  |
| `version`  | `version:update`  |
| `training` | `version:update`  |
| `workflow` | `workflow:update` |

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

### स्थायी हटाने

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

ट्रैश में छोड़े गए आइटम 30-दिन की रिटेंशन विंडो के बाद स्वचालित रूप से साफ़ कर दिए जाते हैं।

## Python SDK

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

किसी प्रोजेक्ट या संस्करण से जुड़े चल रहे प्रशिक्षण जॉब जब उसे ट्रैश में ले जाया जाता है, तो स्वचालित रूप से रद्द कर दिए जाते हैं, ताकि आप क्रेडिट खर्च करना जारी न रखें।

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

```python
import roboflow

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

project.delete()
```

प्रोजेक्ट तुरंत वर्कस्पेस प्रोजेक्ट सूची से छिपा दिया जाता है और Settings → Trash के अंतर्गत ट्रैश व्यू में दिखाई देता है।

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

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

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

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

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

किसी एकल डेटासेट संस्करण को ट्रैश में ले जाएँ। संस्करण पर चल रहे किसी भी प्रशिक्षण को रद्द कर दिया जाता है।

```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()
```

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

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

उपयोग करें `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"]` उसी आइटम को समूहित करता है `projects`, `versions`, और `वर्कफ़्लोज़` सुविधा के लिए।

### ID के आधार पर पुनर्स्थापित करें

यदि आपके पास पहले से कोई `प्रोजेक्ट` या `वर्ज़न` handle नहीं है (उदाहरण के लिए, आप ऐसी चीज़ को पुनर्स्थापित कर रहे हैं जो पिछली 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"])
```

संस्करणों के लिए, मूल प्रोजेक्ट 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 फ़िलहाल कोई `Workflow` object उपलब्ध नहीं कराता, लेकिन आप निम्न-स्तरीय `rfapi` helper के माध्यम से किसी workflow को soft-delete कर सकते हैं और उसे `Workspace.restore_from_trash("workflow", ...)`:

```python
from roboflow.adapters import rfapi

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

# Restore - पहले ट्रैश में workflow का id ढूँढें।
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 से उपलब्ध नहीं है - ट्रैश खाली करने और किसी एकल ट्रैश आइटम को तुरंत हटाने की कार्रवाइयाँ डेटा को अपूरणीय रूप से नष्ट कर देती हैं, और हम नहीं चाहते कि कोई भटका हुआ स्क्रिप्ट उन्हें ट्रिगर कर सके। ये कार्रवाइयाँ केवल Roboflow वेब ऐप में ट्रैश व्यू के माध्यम से उपलब्ध हैं, जिसमें एक स्पष्ट पुष्टि संवाद होता है।

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

## CLI

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

किसी प्रोजेक्ट या संस्करण से जुड़े चल रहे प्रशिक्षण जॉब जब उसे ट्रैश में ले जाया जाता है, तो स्वचालित रूप से रद्द कर दिए जाते हैं, ताकि आप जिस आइटम को हटा रहे हैं उस पर क्रेडिट खर्च करना जारी न रखें।

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

किसी प्रोजेक्ट को ट्रैश में ले जाएँ:

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

उदाहरण:

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

प्रोजेक्ट को स्थानांतरित करने से पहले कमांड पुष्टि के लिए पूछता है। स्क्रिप्टेड उपयोग के लिए प्रॉम्प्ट छोड़ने हेतु `--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 स्लग के आधार पर प्रोजेक्ट को वर्कस्पेस ट्रैश में ढूँढती है और उसे पुनर्स्थापित करती है। यदि प्रोजेक्ट वर्तमान में ट्रैश में नहीं है, तो कमांड त्रुटि के साथ बाहर निकलती है।

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

किसी एकल डेटासेट संस्करण को ट्रैश में ले जाएँ। संस्करण पर चल रहे किसी भी प्रशिक्षण को रद्द कर दिया जाता है।

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

उदाहरण:

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

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

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

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

उदाहरण:

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

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

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

किसी वर्कफ़्लो को ट्रैश में ले जाएँ:

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

उदाहरण:

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

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

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

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

उदाहरण:

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

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

वर्तमान में वर्कस्पेस ट्रैश में मौजूद सब कुछ सूचीबद्ध करें:

```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
```

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

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

### स्थायी हटाने

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

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