> 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/zuo-cheng/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/zuo-cheng/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` は、クエリパラメータまたはリクエスト本文で渡すことができます。必要なスコープは各エンドポイントに記載されています。

### プロジェクトのベースWorkflow

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

#### プロジェクトのベース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": "マイプロジェクト",
    "owner": "my-workspace-id",
    "type": "object-detection",
    "classes": ["cat", "dog"],
    "multilabel": false
  },
  "workflow": {
    "id": "wf_xyz",
    "name": "マイプロジェクトのベース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
}
```

`モデル` は `null` モデルが設定されていない場合。 `deployability.status` は `"not_deployable"` Workflowが推論を提供できない場合。 `baseWorkflowWasCreated` このリクエストでベースWorkflowが作成されたかどうかを示します。

#### プロジェクトのベース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` 配列を `modelId`:

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

レスポンスの形は [プロジェクトのベースWorkflowを取得](#get-a-project-base-workflow)。 `400` 応答は `モデル` 値が欠落しているか無効であることを意味します。

データ収集を有効にしたり、収集上限を設定したり、レビューキュー内の画像を一覧表示したりするには、 [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>文字列</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": "低速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"
```

公開Workflowには `api_key`がなくてもアクセスできます。非公開Workflowには `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>文字列</td><td>ワークスペースのAPIキー。</td><td>true</td></tr><tr><td><code>name</code></td><td>文字列</td><td>表示名。</td><td>true</td></tr><tr><td><code>url</code></td><td>文字列</td><td>WorkflowのURLスラッグ。</td><td>true</td></tr><tr><td><code>config</code></td><td>文字列</td><td>JSONエンコードされたWorkflow仕様（下の注記を参照）。</td><td>true</td></tr><tr><td><code>template</code></td><td>文字列</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` が必要です。長い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>文字列</td><td>Workflowの内部ID。</td><td>true</td></tr><tr><td><code>name</code></td><td>文字列</td><td>表示名。</td><td>true</td></tr><tr><td><code>url</code></td><td>文字列</td><td>URLスラッグ。</td><td>true</td></tr><tr><td><code>config</code></td><td>文字列</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>文字列</td><td>元のworkflowを所有するワークスペースのスラッグ。</td><td>true</td></tr><tr><td><code>source_workflow</code></td><td>文字列</td><td>元のworkflowのURLスラッグ。</td><td>true</td></tr><tr><td><code>name</code></td><td>文字列</td><td>フォークの表示名。既定では元の名前になります。</td><td>false</td></tr><tr><td><code>url</code></td><td>文字列</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/zuo-cheng/create-a-workflow.md) は視覚的なコンピュータビジョンパイプラインです。SDKは list / get / create を直接 `ワークスペース上で`；update、fork、delete は低レベルの `rfapi` アダプターにあります。

### workflowを一覧表示

```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を更新

`ワークスペース上で` では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",       # optional; defaults to the source name
    url="my-fork",        # optional; defaults to a generated slug
)
```

### 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 runtime](/workflows/ja/depuroi/deploy-a-workflow.md)で行われ、 `roboflow` パッケージではありません。Pythonからは次のようにします：

```python
from inference_sdk import InferenceHTTPClient, InferenceConfiguration

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key="YOUR_API_KEY",
).configure(InferenceConfiguration(api_key_transport="header"))
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をフォーク

現在のワークスペースからワークフローをフォークします:

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

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

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

### JSON出力

すべてのワークフローコマンドは `--json` 構造化された出力に対応しています:

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

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

## MCPサーバー

AIエージェントを [MCPサーバー](https://docs.roboflow.com/agents/mcp-server) に接続すると、次のツールでワークフローを作成および実行できます:

<table data-search="false"><thead><tr><th width="290">ツール</th><th>説明</th></tr></thead><tbody><tr><td><code>workflows_list</code></td><td>ワークスペース内の保存済みワークフローを一覧表示します。</td></tr><tr><td><code>workflows_get</code></td><td>保存済みワークフローの詳細を取得します。</td></tr><tr><td><code>workflows_create</code></td><td>新しいワークフローを作成して保存します。</td></tr><tr><td><code>workflows_update</code></td><td>保存済みワークフローの名前と定義を更新します。</td></tr><tr><td><code>workflows_run</code></td><td>1つ以上の画像に対して保存済みワークフローを実行します。</td></tr><tr><td><code>workflows_delete</code></td><td>保存済みワークフローを削除し、ワークスペースのゴミ箱に移動します。</td></tr></tbody></table>
