> 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/datasets/ja/guan-li/project-folders.md).

# プロジェクトフォルダ

## 概要

プロジェクトフォルダは、ワークスペース内のプロジェクトの整理とセキュリティを向上させます。フォルダを使うと、1つ以上のプロジェクトを明確なカテゴリにまとめられるため、プロジェクトの移動、整理、管理がしやすくなります。さらに、SSO が有効なワークスペースでは、フォルダ内のプロジェクトへのアクセスを特定のチームメンバーに制限でき、データのセキュリティが強化されます。

## Web アプリ

#### フォルダの表示

ワークスペース表示では、所有しているプロジェクトフォルダが最上部に表示されます。ワークスペースには1つ以上のプロジェクトフォルダを作成でき、各プロジェクトフォルダには1つ以上のプロジェクトを含めることができます。

<figure><img src="/files/faf505b81902bb084be67f1152098f257b59af4e" alt=""><figcaption><p>プロジェクトフォルダはワークスペースの上部に表示されます</p></figcaption></figure>

#### フォルダの作成

新しいフォルダを作成するには、右上の「+ 新しいフォルダ」ボタンをクリックします。フォルダ名を入力し、「保存」をクリックします。ページはプロジェクトフォルダに移動し、そこで新しいプロジェクトを作成できます。プロジェクトフォルダ表示から作成したプロジェクトは、すべて自動的にそのフォルダに追加されます。

[\[Roboflow Documentation\] プロジェクトフォルダ - プロジェクトを作成 - 動画を見る](https://www.loom.com/share/aefb3b5fd1ea40cdb4183c903f13d9c8)

<figure><img src="https://cdn.loom.com/sessions/thumbnails/aefb3b5fd1ea40cdb4183c903f13d9c8-with-play.gif" alt=""><figcaption><p>新しいプロジェクトフォルダを作成する</p></figcaption></figure>

#### フォルダ名の変更

フォルダ名を変更するには、プロジェクトフォルダ上のドロップダウンメニュー（3つの点）をクリックし、「名前を変更」オプションを選択して、新しい名前を入力します。「保存」をクリックすると、フォルダ名が新しい名前に更新されます。

[\[Roboflow Documentation\] プロジェクトフォルダ - フォルダ名を変更 - 動画を見る](https://www.loom.com/share/63508a2ff629454690ac0957d5cfc990)

<figure><img src="https://cdn.loom.com/sessions/thumbnails/63508a2ff629454690ac0957d5cfc990-with-play.gif" alt=""><figcaption></figcaption></figure>

#### フォルダ内のプロジェクトの管理

既存のプロジェクトをフォルダに移動できます。プロジェクトを移動するには、プロジェクトのドロップダウンメニュー（3つの点）をクリックし、「プロジェクトを移動」を選択します。するとポップアップが表示され、移動先を選択できます。プロジェクトフォルダがまだない場合は、「新しいフォルダ」ボタンをクリックして追加できます。すでにある場合は、既存のフォルダを移動先として選択できます。プロジェクトをフォルダの外に移動したい場合は、ワークスペース名を選択します。

[\[Roboflow Documentation\] プロジェクトフォルダ - プロジェクトを移動 - 動画を見る](https://www.loom.com/share/a411cabb98f14255b07c3c2e209c3abd)

<figure><img src="https://cdn.loom.com/sessions/thumbnails/a411cabb98f14255b07c3c2e209c3abd-with-play.gif" alt=""><figcaption></figcaption></figure>

#### フォルダの削除

フォルダを削除するには、プロジェクトフォルダ上のドロップダウンメニュー（3つの点）をクリックし、「削除」オプションを選択します（この操作は元に戻せません）。フォルダを削除しても **削除されません** フォルダ内のプロジェクトは削除されず、ワークスペースのレベルに戻されます。フォルダ内のワークフローもワークスペースのレベルに戻り、引き続きアクセスできます。

[\[Roboflow Documentation\] プロジェクトフォルダ - フォルダを削除 - 動画を見る](https://www.loom.com/share/852e70b217de4d5d9ca79bef41903ad9)

<figure><img src="https://cdn.loom.com/sessions/thumbnails/852e70b217de4d5d9ca79bef41903ad9-with-play.gif" alt=""><figcaption></figcaption></figure>

### カスタムフォルダ権限

フォルダはプロジェクトを整理・管理するのに最適ですが、フォルダの一部に対してカスタム権限を設定することもできます。たとえば、ワークスペースの一部のメンバーだけに特定のフォルダ内のプロジェクトへのアクセスを許可したい場合は、Roboflow の SSO 連携で実現できます。開始するにはサポートまでご連絡ください。設定をお手伝いします。

### プロジェクトフォルダ API

プロジェクトフォルダは、Roboflow API を使ってプログラムから管理できます。利用可能なエンドポイントの詳細は、 [プロジェクトフォルダ API](#http-api) ドキュメントを参照してください。

## HTTP API

Roboflow API を使って、プログラムからプロジェクトフォルダを管理できます。

**注記:** この機能は Enterprise ワークスペースでのみ利用できます。

**注記**: あなたの `api_key` はすべてのリクエストで送信する必要があります。 `api_key` はクエリパラメータとして、または POST ボディの最上位属性として送信できます。

### プロジェクトフォルダを作成する

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

プロジェクトフォルダを作成します。

**ヘッダー**

| 名前           | 値                  |
| ------------ | ------------------ |
| Content-Type | `application/json` |

**本文**

<table data-search="false"><thead><tr><th width="164">名前</th><th width="223">種類</th><th width="287">説明</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>false</td></tr><tr><td><code>プロジェクト</code></td><td>Array&#x3C;string></td><td>このフォルダに移動するプロジェクトの ID の一覧</td><td>false</td></tr><tr><td><code>external_id</code></td><td>string</td><td>外部システムにおけるこのプロジェクトフォルダの ID</td><td>false</td></tr><tr><td><code>auth_groups</code></td><td>Map&#x3C;"read" | "write\n, Array&#x3C;string></td><td>このフォルダ内のプロジェクトへの読み取り/書き込みアクセス権を持つ権限グループの一覧です。（注: この機能は追加設定が必要なため、使用前に Roboflow までお問い合わせください）</td><td>false</td></tr></tbody></table>

**リクエスト例**

```
curl --location 'https://api.roboflow.com/<workspace_id>/groups?api_key=$ROBOFLOW_API_KEY' \\
--header 'Content-Type: application/json' \\
--data '{
    "name": "クライアントデモ",
    "projects": ["client-demo-project-1", "another-project-id"],
    "external_id": "jfowke123jfiowje",
    "auth_groups": {
        "read": [],
        "write": []
    }
}'
```

**応答**

{% tabs %}
{% tab title="200" %}

```json
{
  "id": "<project_folder_id>"
}
```

{% endtab %}

{% tab title="401" %}

```json
{
  "error": "無効なリクエスト"
}
```

{% endtab %}
{% endtabs %}

### プロジェクトフォルダを取得

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

ID でプロジェクトフォルダを取得します

**ヘッダー**

| 名前           | 値                  |
| ------------ | ------------------ |
| 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>api_key</code></td><td>string</td><td>プロジェクトフォルダが存在するワークスペースの API キー</td><td>true</td></tr></tbody></table>

**リクエスト例**

```
curl --location 'https://api.roboflow.com/<workspace_id>/groups?api_key=$ROBOFLOW_API_KEY' \\
--header 'Content-Type: application/json'
```

**応答**

{% tabs %}
{% tab title="200" %}

```json
{
  "data": Array<#ProjectFolder>
}
```

{% endtab %}

{% tab title="404" %}
指定された `folderId` パラメータで指定されたプロジェクトフォルダが存在しないか、指定された API キーに属するワークスペースにプロジェクトフォルダが存在しません
{% endtab %}
{% endtabs %}

### プロジェクトフォルダを更新

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

プロジェクトフォルダのプロパティを更新します

**ヘッダー**

| 名前           | 値                  |
| ------------ | ------------------ |
| 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>returnUpdated</code></td><td>ブール値</td><td>設定すると、レスポンスで完全なリソースのペイロードを返します</td><td>false</td></tr></tbody></table>

**本文**

<table data-search="false"><thead><tr><th width="164">名前</th><th width="223">種類</th><th width="287">説明</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>false</td></tr><tr><td><code>プロジェクト</code></td><td>Array&#x3C;string></td><td>このフォルダに移動するプロジェクトの ID の一覧</td><td>false</td></tr><tr><td><code>external_id</code></td><td>string</td><td>外部システムにおけるこのプロジェクトフォルダの ID</td><td>false</td></tr><tr><td><code>auth_groups</code></td><td>Map&#x3C;"read" | "write\n, Array&#x3C;string></td><td>このフォルダ内のプロジェクトへの読み取り/書き込みアクセス権を持つ権限グループの一覧です。（注: この機能は追加設定が必要なため、使用前に Roboflow までお問い合わせください）</td><td>false</td></tr></tbody></table>

**リクエスト例**

```
curl --location 'https://api.roboflow.com/<workspace_id>/groups/<folder_id>?api_key=$ROBOFLOW_API_KEY&returnUpdated=true' \\
--header 'Content-Type: application/json' \\
--data '{
    "name": "新しい名前"
}'
```

**応答**

{% tabs %}
{% tab title="204" %}
No Content. リソースは正常に更新されました
{% endtab %}

{% tab title="200" %}

```
// クエリパラメータ ?returnUpdated=true の場合のみ
{
    "data": Array<#ProjectFolder>
}
```

{% endtab %}
{% endtabs %}

### プロジェクトをフォルダに追加

<mark style="color:緑;">`PATCH`</mark> `/:workspace/groups/:folderId/projects`

既存のフォルダに1つ以上のプロジェクトを追加します

**ヘッダー**

| 名前           | 値                  |
| ------------ | ------------------ |
| 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>プロジェクト</code></td><td>Array&#x3C;string></td><td>プロジェクトフォルダに追加するプロジェクト ID の一覧</td><td>true</td></tr></tbody></table>

**リクエスト例**

```
curl --location --request PATCH 'https://api.roboflow.com/<workspace_id>/groups/example-folder-id/projects?api_key=$ROBOFLOW_API_KEY' \\
--header 'Content-Type: application/json' \\
--data '{
    "projects": ["dog-breeds-mi53"]
}'
```

**応答**

{% tabs %}
{% tab title="204" %}
No Content. プロジェクトはグループに正常に追加されました
{% endtab %}
{% endtabs %}

### フォルダからプロジェクトを削除

<mark style="color:赤;">`DELETE`</mark> `/:workspace/groups/:folderId/projects`

既存のフォルダから1つ以上のプロジェクトを削除し、最上位のワークスペースに戻します

**ヘッダー**

| 名前           | 値                  |
| ------------ | ------------------ |
| 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>プロジェクト</code></td><td>Array&#x3C;string></td><td>プロジェクトフォルダから削除するプロジェクト ID の一覧</td><td>true</td></tr></tbody></table>

**リクエスト例**

```
curl --location --request PATCH 'https://api.roboflow.com/<workspace_id>/groups/example-folder-id/projects?api_key=$ROBOFLOW_API_KEY' \\
--header 'Content-Type: application/json' \\
--data '{
    "projects": ["dog-breeds-mi53"]
}'
```

**応答**

{% tabs %}
{% tab title="204" %}
No Content. プロジェクトはグループから正常に削除されました
{% endtab %}
{% endtabs %}

### プロジェクトフォルダを削除

<mark style="color:赤;">`DELETE`</mark> `/:workspace/groups/:folderId`

プロジェクトフォルダを削除します。フォルダ内のすべてのプロジェクトは最上位のワークスペースに戻され、削除されません。

**ヘッダー**

| 名前           | 値                  |
| ------------ | ------------------ |
| Content-Type | `application/json` |

**リクエスト例**

<pre><code><strong>curl --location --request DELETE 'https://api.roboflow.com/&#x3C;workspace_id>/groups/example-folder-id/projects?api_key=&#x3C;api_key>' \\
</strong>--header 'Content-Type: application/json'
</code></pre>

**応答**

{% tabs %}
{% tab title="204" %}
No Content. プロジェクトフォルダは正常に削除されました
{% endtab %}
{% endtabs %}

## Python SDK

プロジェクトフォルダは、ワークスペース内のプロジェクトをネストされたグループに整理します。Python SDK では、フォルダ一覧の取得と作成を直接 `Workspace`；更新と削除は低レベルの `rfapi` アダプター。

{% hint style="info" %}
プロジェクトフォルダは Enterprise 機能です。フォルダのエンドポイントは `403` 非 Enterprise ワークスペース向けです。
{% endhint %}

### フォルダ一覧を表示

```python
import roboflow

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

folders = workspace.list_folders()
for folder in folders.get("data", []):
    print(folder["id"], folder["name"] )
```

### フォルダを作成

```python
folder = workspace.create_folder(
    name="学習データ",
    parent_id=None,                              # 任意、ネスト用
    project_ids=["my-detector", "other-project"], # 任意、作成時に追加
)
print(folder["id"])
```

#### パラメータ

* `name` (str) - ウェブアプリに表示されるフォルダ名。
* `parent_id` (str, optional) - ネスト先となる既存フォルダの ID。最上位フォルダにする場合は省略します。
* `project_ids` (list\[str], optional) - 作成時にフォルダへ移動するプロジェクト ID。

### フォルダを取得

```python
from roboflow.adapters import rfapi

folder = rfapi.get_folder("YOUR_API_KEY", workspace.url, "<folder-id>")
print(folder)
```

### フォルダ名の変更または更新

```python
from roboflow.adapters import rfapi

rfapi.update_folder(
    "YOUR_API_KEY",
    workspace.url,
    "<folder-id>",
    name="新しい名前",
)
```

### フォルダを削除

```python
from roboflow.adapters import rfapi

rfapi.delete_folder("YOUR_API_KEY", workspace.url, "<folder-id>")
```

フォルダを削除すると、含まれていたプロジェクトは最上位レベルに戻ります。プロジェクト自体は削除されません。

## CLI

コマンドラインからワークスペースのフォルダを作成、一覧表示、更新、削除できます。

### フォルダ一覧

```bash
roboflow folder list
```

JSON出力の場合：

```bash
roboflow folder list --json
```

### フォルダ詳細を取得

```bash
roboflow folder get <folder-id>
```

```bash
roboflow folder get <folder-id> --json
```

### フォルダを作成

```bash
roboflow folder create "学習データ"
```

#### オプション

| フラグ          | 説明                      |
| ------------ | ----------------------- |
| `--parent`   | 親フォルダ ID（ネスト用）          |
| `--projects` | 含めるプロジェクト ID をカンマ区切りで指定 |

プロジェクトを含める例:

```bash
roboflow folder create "第2四半期モデル" --projects my-project,other-project
```

### フォルダを更新

フォルダ名を変更:

```bash
roboflow folder update <folder-id> --name "新しい名前"
```

### フォルダを削除

```bash
roboflow folder delete <folder-id>
```

### JSON出力

すべてのフォルダコマンドは `--json` 構造化出力用：

```bash
roboflow folder list --json | jq '.[].name'
roboflow folder create "マイフォルダ" --json
```

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