> 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/ja/guan-li/manage-workflows.md).

# Workflowsを管理

## 概要

[Roboflow Workflows](/workflows/ja/birudo/create-a-workflow.md) Web アプリで作成し、ホストされたエンドポイントとしてデプロイできる、視覚的なコンピュータビジョン・パイプラインです。このページでは、REST API と Python SDK を通じて、ワークスペース内の Workflows の一覧取得、取得、作成、更新といった管理領域を扱います。画像または動画ストリームに対して Workflow を実行するには、次を参照してください。 [Workflows ランタイムドキュメント](/workflows/ja/depuroi/deploy-a-workflow.md).

## HTTP API

[Roboflow Workflows](/workflows/ja/birudo/create-a-workflow.md) Web アプリで作成し、ホストされたエンドポイントとしてデプロイできる、視覚的なコンピュータビジョン・パイプラインです。REST API は管理領域を公開します。画像または動画ストリームに対して workflow を実行するには、次を参照してください。 [画像でモデルを実行する](https://docs.roboflow.com/deployment/roboflow-cloud/serverless-api#http-api) および [Workflows ランタイムドキュメント](/workflows/ja/depuroi/deploy-a-workflow.md).

`api_key` クエリパラメータまたはリクエストボディで渡すことができます。必要なスコープは各エンドポイントに記載されています。

### Project のベース Workflow

各 Project には、そのホスト済みモデルエンドポイントを支えるベース Workflow があります。これらの Project スコープの操作を使って、その Workflow を読み取るか、モデルステップで使用されるモデルを選択します。

#### Project のベース 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 にベース Workflow がない場合、このリクエストで作成されます。レスポンスには、Project、そのベース Workflow、選択されたモデル、そのデプロイ可能性、および 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 が推論を提供できない場合。 `baseWorkflowWasCreated` このリクエストでベース Workflow が作成されたかどうかを示します。

#### Project のベース Workflow モデルを選択

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

必要なスコープ: `project:update`

Set `model.type` to `"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` 配列ではなく `modelId`:

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

レスポンスの形状は次と同じです。 [Project のベース Workflow を取得](#get-a-project-base-workflow)。1つの `400` レスポンスは、その `model` 値が欠落しているか、無効であることを意味します。

データ収集を有効にしたり、収集制限を設定したり、レビューキュー内の画像を一覧表示したりするには、次を使用します。 [Active Learning HTTP API](https://docs.roboflow.com/deployment/monitoring-and-analytics/active-learning#http-api).

### Workflows を一覧表示

<mark style="color:緑;">`GET`</mark> `/:workspace/workflows`

ワークスペース内のすべての workflow を一覧表示します。

**クエリ**

<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>ワークスペースの API キー。</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": "ok"
}
```

必要なスコープ: `workflow:read`.

### Workflow を取得

<mark style="color:緑;">`GET`</mark> `/:workspace/workflows/:workflowUrl`

workflow の仕様、メタデータ、そして（公開されていない workflow については）認可状態を返します。

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

公開 workflows には API キーなしでアクセスできます `api_key`。非公開 workflows には次の `workflow:read` スコープが必要です。

### Workflow のバージョン一覧

<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 仕様のバージョン付きスナップショットを返します。

### 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>ワークスペースの API キー。</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 スラッグ。</td><td>true</td></tr><tr><td><code>config</code></td><td>string</td><td>JSON エンコードされた workflow 仕様（下記の注記を参照）。</td><td>true</td></tr><tr><td><code>template</code></td><td>string</td><td>JSON エンコードされたテンプレートのメタデータ。 <code>"{}"</code> 持っていない場合は渡してください。</td><td>false</td></tr></tbody></table>

**に関する注記 `config`**：API は保存された形 `{"specification": {...}}`。素の仕様を渡すと SDK アダプター経由では自動的にラップされます。直接 REST を呼び出す場合は、自分でラップしてください。

**リクエスト例**

```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\":[]}}"}'
```

同じフィールドをクエリパラメータとして送ることもできますが、その場合は `template` ボディが必要です。大きな仕様では body を使用してください。長い URL は途中で切れてしまうためです。

```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": "ok"
}
```

必要なスコープ: `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 スラッグ。</td><td>true</td></tr><tr><td><code>config</code></td><td>string</td><td>JSON エンコードされた workflow 仕様（作成時の注記を参照）。</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 をフォーク

<mark style="color:緑;">`POST`</mark> `/:workspace/forkWorkflow`

別のワークスペースの 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 を所有するワークスペースのスラッグ。</td><td>true</td></tr><tr><td><code>source_workflow</code></td><td>string</td><td>元の workflow の URL スラッグ。</td><td>true</td></tr><tr><td><code>name</code></td><td>string</td><td>フォークの表示名。既定では元の名前になります。</td><td>false</td></tr><tr><td><code>url</code></td><td>string</td><td>フォークの URL スラッグ。省略すると自動生成されます。</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 トークンを生成

<mark style="color:緑;">`POST`</mark> `/:workspace/workflowToken`

公開クライアント（例: ブラウザ）から workflow を実行するのに適した短命トークンを生成します。

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

### Workflow を削除（ソフト削除）

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

workflow をゴミ箱に移動します。参照: [ゴミ箱の管理](https://docs.roboflow.com/platform/workspaces/trash#delete-a-workflow) でレスポンス形式と復元フローを確認してください。

### Workflow を実行

Workflow の実行先は `https://serverless.roboflow.com`であり、管理 API ではありません。参照: [画像でモデルを実行する](https://docs.roboflow.com/deployment/roboflow-cloud/serverless-api#http-api) および製品ドキュメントの [workflow のデプロイ](/workflows/ja/depuroi/deploy-a-workflow.md).

## Python SDK

[Roboflow Workflows](/workflows/ja/birudo/create-a-workflow.md) は視覚的なコンピュータビジョン・パイプラインです。SDK は list / get / create を直接公開します。 `Workspace`。update、fork、delete は低レベルの `rfapi` アダプターにあります。

### 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` この引数は workflow のスラッグ（Web アプリの 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` 後で Web アプリで編集する空の workflow シェルを作成するためです。

SDK は、素の仕様 dict（`{"version": ..., "steps": ...}`）またはラップされたもの（`{"specification": {...}}`）のどちらも受け入れます。ラップは自動で正規化され、存在する場合は UTF-8 BOM を除去します。

### workflow を更新

`Workspace` は update を直接公開していません。低レベルのアダプターを使用してください:

```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 をフォーク

別のワークスペースの workflow を自分のワークスペースにコピーします。公開テンプレートを採用する際に便利です:

```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",        # 任意。既定では生成されたスラッグになります
)
```

### workflow バージョン一覧

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

### workflow を削除（ソフト削除）

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

これにより workflow はワークスペースの [ゴミ箱](https://docs.roboflow.com/platform/workspaces/trash#python-sdk) に移動され、30 日間保持された後に完全に削除されます。復元は次で行います: `Workspace.restore_from_trash("workflow", id)` - 参照 [削除と復元](https://docs.roboflow.com/platform/workspaces/trash#workflows).

### workflow を実行

workflow の実行先は [Inference SDK](https://inference.roboflow.com) および [Workflows ランタイム](/workflows/ja/depuroi/deploy-a-workflow.md)ではなく `roboflow` パッケージです。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

コマンドラインから workflow の一覧表示、作成、更新、フォーク、バージョン管理ができます。

### 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 定義ファイルを使う場合:

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

#### オプション

| フラグ             | 説明              |
| --------------- | --------------- |
| `--name`        | workflow 名（必須）  |
| `--definition`  | JSON 定義ファイルへのパス |
| `--description` | workflow の説明    |

### Workflow を更新

workflow の定義を更新:

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

### Workflow のバージョン一覧

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

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

### Workflow をフォーク

現在のワークスペースから workflow をフォーク:

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

別のワークスペースからフォーク:

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

### JSON 出力

すべての workflow コマンドは `--json` 構造化出力をサポートします:

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

終了コード: 0 = 成功、1 = エラー、2 = 認証エラー、3 = 見つかりません。
