> 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/workflows/hi/manage/manage-workflows.md).

# वर्कफ़्लोज़ प्रबंधित करें

## परिचय

[Roboflow Workflows](/workflows/hi/build/create-a-workflow.md) वे विज़ुअल कंप्यूटर-विज़न पाइपलाइन हैं जिन्हें आप वेब ऐप में बनाते हैं और होस्टेड एंडपॉइंट के रूप में डिप्लॉय करते हैं। यह पेज मैनेजमेंट सतह—वर्कस्पेस में Workflows की सूची बनाना, उन्हें प्राप्त करना, बनाना, और अपडेट करना—को REST API और Python SDK के माध्यम से कवर करता है। किसी इमेज या वीडियो स्ट्रीम पर Workflow चलाने के लिए, देखें [Workflows रनटाइम दस्तावेज़](/workflows/hi/deploy/deploy-a-workflow.md).

## HTTP API

[Roboflow Workflows](/workflows/hi/build/create-a-workflow.md) वे विज़ुअल कंप्यूटर-विज़न पाइपलाइन हैं जिन्हें आप वेब ऐप में बना सकते हैं और होस्टेड एंडपॉइंट के रूप में डिप्लॉय कर सकते हैं। REST API मैनेजमेंट सतह को एक्सपोज़ करता है; किसी इमेज या वीडियो स्ट्रीम पर workflow निष्पादित करने के लिए, देखें [एक इमेज पर मॉडल चलाएँ](https://docs.roboflow.com/deployment/roboflow-cloud/serverless-api#http-api) और [Workflows रनटाइम दस्तावेज़](/workflows/hi/deploy/deploy-a-workflow.md).

`api_key` क्वेरी पैरामीटर के रूप में या अनुरोध बॉडी में भेजा जा सकता है। आवश्यक स्कोप प्रत्येक endpoint पर नोट किए गए हैं।

### Project बेस Workflows

हर Project के पास एक base Workflow होता है जो उसके hosted model endpoint को समर्थन देता है। इस Workflow को पढ़ने या उसके model step द्वारा उपयोग किए जाने वाले model को चुनने के लिए इन Project-स्कोप्ड operations का उपयोग करें।

#### एक Project Base Workflow प्राप्त करें

<mark style="color:हरा;">`GET`</mark> `/:workspace/:project/deploy`

आवश्यक स्कोप: `project:read`

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

यदि Project के पास base Workflow नहीं है, तो यह अनुरोध एक बनाता है। प्रतिक्रिया Project, उसके base Workflow, चुने गए model, उसकी deployability, और उसकी Active Learning स्थिति की पहचान करती है:

```json
{
  "project": {
    "id": "abc123",
    "url": "my-project",
    "name": "My Project",
    "owner": "my-workspace-id",
    "type": "object-detection",
    "classes": ["cat", "dog"],
    "multilabel": false
  },
  "workflow": {
    "id": "wf_xyz",
    "name": "My Project Base Workflow",
    "url": "my-project-base-workflow",
    "workspaceUrl": "my-workspace",
    "inferencePath": "/infer/workflows/my-workspace/my-project-base-workflow"
  },
  "model": {
    "id": "rfdetr-medium",
    "kind": "pretrained",
    "displayName": "RF-DETR Medium",
    "modelId": "rfdetr-medium"
  },
  "deployability": {
    "status": "deployable",
    "modelWasConfigured": false,
    "selectedModelId": null,
    "selectionReason": null
  },
  "activeLearning": {
    "enabled": false,
    "collectionLimits": {
      "dataPercentage": 100,
      "minutelyUsageLimit": 10,
      "hourlyUsageLimit": 100,
      "dailyUsageLimit": 1000,
      "labelingBatchesRecreationFrequency": "daily",
      "usageQuotaName": "upload_quota_active_learning",
      "imageCompressionLevel": 95,
      "maxImageHeight": 1080,
      "maxImageWidth": 1920,
      "persistPredictions": true
    },
    "filters": []
  },
  "baseWorkflowWasCreated": false
}
```

`model` है `null` जब कोई मॉडल कॉन्फ़िगर नहीं होता। `deployability.status` है `"not_deployable"` जब Workflow inference प्रदान नहीं कर सकता। `baseWorkflowWasCreated` यह बताता है कि क्या इस अनुरोध ने base Workflow बनाया था।

#### एक Project Base Workflow मॉडल चुनें

<mark style="color:हरा;">`POST`</mark> `/:workspace/:project/deploy/model`

आवश्यक स्कोप: `project:update`

सेट करें `model.type` को `"model_id"`, `"sam3"`, या `"clip"`:

```bash
curl -X POST "https://api.roboflow.com/my-workspace/my-project/deploy/model" \\
  -H "Content-Type: application/json" \\
  -d '{
    "api_key": "'$ROBOFLOW_API_KEY'",
    "model": {
      "type": "model_id",
      "modelId": "rfdetr-medium"
    }
  }'
```

के लिए `"model_id"`, `modelId` आवश्यक है। `displayName` और `taskType` वैकल्पिक हैं। के लिए `"sam3"` और `"clip"`एक गैर-खाली प्रदान करें `classes` array के बजाय `modelId`:

```json
{
  "api_key": "YOUR_API_KEY",
  "model": {
    "type": "sam3",
    "classes": ["cat", "dog"]
  }
}
```

प्रतिक्रिया की संरचना वही है जैसी [एक Project Base Workflow प्राप्त करें](#get-a-project-base-workflow)। एक `400` प्रतिक्रिया का मतलब है कि `model` मान गायब है या अमान्य है।

डेटा संग्रह सक्षम करने, संग्रह सीमाएँ सेट करने, या review queue में छवियों की सूची देखने के लिए, उपयोग करें [Active Learning HTTP API](https://docs.roboflow.com/deployment/monitoring-and-analytics/active-learning#http-api).

### Workflows की सूची

<mark style="color:हरा;">`GET`</mark> `/:workspace/workflows`

वर्कस्पेस में सभी workflows की सूची बनाता है।

**क्वेरी**

<table data-search="false"><thead><tr><th>नाम</th><th>प्रकार</th><th>विवरण</th><th data-type="checkbox">आवश्यक</th></tr></thead><tbody><tr><td><code>api_key</code></td><td>string</td><td>workspace के लिए API key.</td><td>true</td></tr></tbody></table>

**उदाहरण अनुरोध**

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

**प्रतिक्रिया**

```json
{
  "workflows": [
    {
      "id": "wf_abc123",
      "name": "Slow webhooks",
      "url": "slow-webhooks",
      "createdAt": "2026-04-12T17:05:33.000Z"
    }
  ],
  "status": "ठीक"
}
```

आवश्यक स्कोप: `workflow:read`.

### एक Workflow प्राप्त करें

<mark style="color:हरा;">`GET`</mark> `/:workspace/workflows/:workflowUrl`

Workflow का specification, metadata, और (गैर-सार्वजनिक workflows के लिए) प्राधिकरण स्थिति लौटाता है।

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

Public workflows को बिना किसी `api_key`. Private workflows के लिए `workflow:read` स्कोप आवश्यक है.

### Workflow Versions की सूची

<mark style="color:हरा;">`GET`</mark> `/:workspace/workflows/:workflowUrl/versions`

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

workflow specification के versioned snapshots लौटाता है।

### एक Workflow बनाएं

<mark style="color:हरा;">`POST`</mark> `/:workspace/createWorkflow`

**हेडर**

| नाम          | मान                |
| ------------ | ------------------ |
| Content-Type | `application/json` |

**बॉडी**

<table data-search="false"><thead><tr><th width="180">नाम</th><th width="140">प्रकार</th><th>विवरण</th><th data-type="checkbox">आवश्यक</th></tr></thead><tbody><tr><td><code>api_key</code></td><td>string</td><td>Workspace API key.</td><td>true</td></tr><tr><td><code>name</code></td><td>string</td><td>प्रदर्शित नाम.</td><td>true</td></tr><tr><td><code>url</code></td><td>string</td><td>Workflow के लिए URL slug.</td><td>true</td></tr><tr><td><code>config</code></td><td>string</td><td>JSON-encoded workflow specification (नीचे नोट देखें).</td><td>true</td></tr><tr><td><code>template</code></td><td>string</td><td>JSON-encoded template metadata. प्रदान करें <code>"{}"</code> यदि आपके पास एक नहीं है.</td><td>false</td></tr></tbody></table>

**पर नोट `config`**: API संग्रहीत संरचना की अपेक्षा करता है `{"specification": {...}}`। केवल specification देने पर SDK adapter उसे अपने आप लपेट देता है; सीधे REST calls के लिए, इसे स्वयं लपेटें।

**उदाहरण अनुरोध**

```bash
curl -X POST "https://api.roboflow.com/my-workspace/createWorkflow" \\
  -H 'Content-Type: application/json' \\
  -d '{"api_key":"'$ROBOFLOW_API_KEY'","name":"My Workflow","url":"my-workflow","config":"{\"specification\":{\"version\":\"1.0\",\"inputs\":[],\"steps\":[],\"outputs\":[]}}"}'
```

आप वही फ़ील्ड query parameters के रूप में भी भेज सकते हैं, लेकिन तब `template` आवश्यक है। बड़ी specifications के लिए body का उपयोग करें, क्योंकि लंबी URLs कट जाती हैं।

```bash
curl -X POST "https://api.roboflow.com/my-workspace/createWorkflow" \\
  --get \\
  --data-urlencode "api_key=$ROBOFLOW_API_KEY" \\
  --data-urlencode "name=My Workflow" \\
  --data-urlencode "url=my-workflow" \\
  --data-urlencode 'config={"specification":{"version":"1.0","inputs":[],"steps":[],"outputs":[]}}' \\
  --data-urlencode 'template={}'
```

**प्रतिक्रिया**

```json
{
  "workflows": { "id": "wf_xyz789", "url": "my-workflow" },
  "status": "ठीक"
}
```

आवश्यक स्कोप: `workflow:create`.

### एक Workflow अपडेट करें

<mark style="color:हरा;">`POST`</mark> `/:workspace/updateWorkflow`

**हेडर**

| नाम          | मान                |
| ------------ | ------------------ |
| Content-Type | `application/json` |

**बॉडी**

<table data-search="false"><thead><tr><th>नाम</th><th>प्रकार</th><th>विवरण</th><th data-type="checkbox">आवश्यक</th></tr></thead><tbody><tr><td><code>id</code></td><td>string</td><td>Workflow की आंतरिक ID.</td><td>true</td></tr><tr><td><code>name</code></td><td>string</td><td>प्रदर्शित नाम.</td><td>true</td></tr><tr><td><code>url</code></td><td>string</td><td>URL slug.</td><td>true</td></tr><tr><td><code>config</code></td><td>string</td><td>JSON-encoded workflow specification (Create पर नोट देखें).</td><td>true</td></tr></tbody></table>

```bash
curl -X POST "https://api.roboflow.com/my-workspace/updateWorkflow?api_key=$ROBOFLOW_API_KEY" \\
  -H 'Content-Type: application/json' \\
  -d '{"id":"wf_xyz789","name":"My Workflow","url":"my-workflow","config":"{\"specification\":{\"version\":\"1.0\",\"steps\":[]}}"}'
```

आवश्यक स्कोप: `workflow:update`.

### एक Workflow fork करें

<mark style="color:हरा;">`POST`</mark> `/:workspace/forkWorkflow`

किसी अन्य workspace से एक workflow को इसमें कॉपी करें।

**बॉडी**

<table data-search="false"><thead><tr><th>नाम</th><th>प्रकार</th><th>विवरण</th><th data-type="checkbox">आवश्यक</th></tr></thead><tbody><tr><td><code>source_workspace</code></td><td>string</td><td>स्रोत workflow के स्वामी workspace का slug.</td><td>true</td></tr><tr><td><code>source_workflow</code></td><td>string</td><td>स्रोत workflow का URL slug.</td><td>true</td></tr><tr><td><code>name</code></td><td>string</td><td>fork के लिए प्रदर्शित नाम। डिफ़ॉल्ट रूप से स्रोत नाम.</td><td>false</td></tr><tr><td><code>url</code></td><td>string</td><td>fork के लिए URL slug. छोड़ने पर स्वचालित रूप से जनरेट होता है.</td><td>false</td></tr></tbody></table>

```bash
curl -X POST "https://api.roboflow.com/my-workspace/forkWorkflow?api_key=$ROBOFLOW_API_KEY" \\
  -H 'Content-Type: application/json' \\
  -d '{"source_workspace":"other-workspace","source_workflow":"their-workflow","name":"My Fork","url":"my-fork"}'
```

आवश्यक स्कोप: `workflow:create`.

### Workflow token जनरेट करें

<mark style="color:हरा;">`POST`</mark> `/:workspace/workflowToken`

सार्वजनिक client (जैसे ब्राउज़र) से workflow निष्पादित करने के लिए उपयुक्त एक अल्पकालिक token जनरेट करें।

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

### एक Workflow हटाएँ (soft-delete करें)

<mark style="color:लाल;">`DELETE`</mark> `/:workspace/workflows/:workflowUrl`

workflow को Trash में ले जाता है। देखें [Trash प्रबंधित करें](https://docs.roboflow.com/platform/workspaces/trash#delete-a-workflow) प्रतिक्रिया की संरचना और पुनर्स्थापना प्रवाह के लिए.

### एक Workflow चलाएँ

Workflow execution यहाँ होती है `https://serverless.roboflow.com`, न कि management API में। देखें [एक इमेज पर मॉडल चलाएँ](https://docs.roboflow.com/deployment/roboflow-cloud/serverless-api#http-api) और उत्पाद दस्तावेज़ देखें [एक workflow को deploy करना](/workflows/hi/deploy/deploy-a-workflow.md).

## Python SDK

[Roboflow Workflows](/workflows/hi/build/create-a-workflow.md) विज़ुअल कंप्यूटर-विज़न पाइपलाइन हैं। SDK list / get / create सीधे `वर्कस्पेस`पर उपलब्ध कराता है; update, fork, और delete निम्न-स्तरीय `rfapi` adapter में हैं.

### workflows की सूची

```python
import roboflow

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

workflows = workspace.list_workflows()
for w in workflows:
    print(w["id"], w["name"], w["url"])

```

### एक workflow प्राप्त करें

```python
workflow = workspace.get_workflow("slow-webhooks")
print(workflow["specification"])
```

यह `url` argument workflow का slug है (वेब ऐप की URL बार में दिखाई देता है) - इसका Firestore id नहीं.

### एक workflow बनाएं

```python
workflow = workspace.create_workflow(
    name="My Workflow",
    definition={
        "version": "1.0",
        "inputs": [...],
        "steps": [...],
        "outputs": [...],
    },
)
print(workflow["id"], workflow["url"])

```

प्रदान करें `definition=None` एक खाली workflow shell बनाने के लिए जिसे आप बाद में web app में संपादित करेंगे.

SDK या तो bare specification dict (`{"version": ..., "steps": ...}`) या wrapped one (`{"specification": {...}}`); यह आपके लिए wrapping को सामान्यीकृत करता है और मौजूद होने पर UTF-8 BOM हटा देता है.

### एक workflow अपडेट करें

`वर्कस्पेस` update को सीधे एक्सपोज़ नहीं करता - निम्न-स्तरीय adapter का उपयोग करें:

```python
from roboflow.adapters import rfapi

rfapi.update_workflow(
    api_key="YOUR_API_KEY",
    workspace_url=workspace.url,
    workflow_id=workflow["id"],
    workflow_name="My Workflow",
    workflow_url="my-workflow",
    config={"version": "1.0", "steps": [...]},
)
```

### एक workflow fork करें

दूसरे workspace से एक workflow को अपने workspace में कॉपी करें। सार्वजनिक template अपनाने के लिए उपयोगी:

```python
from roboflow.adapters import rfapi

forked = rfapi.fork_workflow(
    api_key="YOUR_API_KEY",
    workspace_url=workspace.url,
    source_workspace="other-workspace",
    source_workflow="their-workflow",
    name="My Fork",       # वैकल्पिक; डिफ़ॉल्ट रूप से स्रोत नाम
    url="my-fork",        # वैकल्पिक; डिफ़ॉल्ट रूप से एक जनरेट किया गया slug
)
```

### workflow versions की सूची

```python
versions = rfapi.list_workflow_versions(
    api_key="YOUR_API_KEY",
    workspace_url=workspace.url,
    workflow_url="my-workflow",
)
```

### एक workflow हटाएँ (soft-delete करें)

```python
rfapi.delete_workflow(api_key="YOUR_API_KEY", workspace_url=workspace.url, workflow_url="my-workflow")
```

यह workflow को workspace के [Trash](https://docs.roboflow.com/platform/workspaces/trash#python-sdk) में ले जाता है, जहाँ यह स्थायी सफाई से पहले 30 दिनों तक रहता है। इसके माध्यम से पुनर्स्थापित करें `Workspace.restore_from_trash("workflow", id)` - देखें [Delete and Restore](https://docs.roboflow.com/platform/workspaces/trash#workflows).

### एक workflow चलाएँ

Workflow execution [Inference SDK](https://inference.roboflow.com) और [Workflows रनटाइम](/workflows/hi/deploy/deploy-a-workflow.md), न कि `roboflow` package. Python से:

```python
from inference_sdk import InferenceHTTPClient

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key="YOUR_API_KEY",
)
result = client.run_workflow(
    workspace_name="my-workspace",
    workflow_id="my-workflow",
    images={"image": "photo.jpg"},
)
```

## CLI

आप command line से workflows की सूची बना सकते हैं, बना सकते हैं, अपडेट कर सकते हैं, fork कर सकते हैं, और version बना सकते हैं.

### Workflows की सूची

```bash
roboflow workflow list
```

```bash
roboflow workflow list --json
```

### Workflow विवरण प्राप्त करें

```bash
roboflow workflow get my-workflow
```

```bash
roboflow workflow get my-workflow --json
```

### एक Workflow बनाएं

```bash
roboflow workflow create --name "My Workflow"
```

एक JSON definition file के साथ:

```bash
roboflow workflow create --name "My Workflow" --definition workflow.json
```

#### विकल्प

| फ़्लैग          | विवरण                      |
| --------------- | -------------------------- |
| `--name`        | Workflow का नाम (आवश्यक)   |
| `--definition`  | JSON definition file का पथ |
| `--description` | Workflow का विवरण          |

### एक Workflow अपडेट करें

एक workflow की definition अपडेट करें:

```bash
roboflow workflow update my-workflow --definition updated.json
```

### Workflow Versions की सूची

```bash
roboflow workflow version list my-workflow
```

```bash
roboflow workflow version list my-workflow --json
```

### एक Workflow fork करें

वर्तमान workspace से एक workflow fork करें:

```bash
roboflow workflow fork my-workflow
```

दूसरे workspace से fork करें:

```bash
roboflow workflow fork other-workspace/their-workflow
```

### JSON आउटपुट

सभी workflow commands समर्थन करते हैं `--json` संरचित आउटपुट के लिए:

```bash
roboflow workflow list --json | jq '.[].name'
roboflow workflow create --name "Test" --json
```

निकास कोड: 0 = सफलता, 1 = त्रुटि, 2 = प्रमाणीकरण त्रुटि, 3 = नहीं मिला.
