> 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/manage/project-folders.md).

# Project Folders

Group projects into folders to organize your workspace and optionally restrict access with SSO.

## About

Project Folders improves the organization and security of projects within your workspace. Folders allow you to group one or more projects into distinct categories, which improves your ability to navigate, organize, and manage your projects. Additionally, for workspaces with SSO enabled, you can restrict access to projects within a folder to certain team members, which enhances the security of your data.

## Web App

#### Viewing Folders

From your workspace view, any Project Folders you have will appear at the top. Your workspace can have one or more Project Folders, and each Project Folder can contain one or more Projects.

<figure><img src="https://2252499186-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-14fd4a03b0a908ce48c534106c592c407099c4eb%2FScreenshot%202024-06-26%20at%2010.36.05.png?alt=media" alt=""><figcaption><p>Project Folders appear at the top of your Workspace</p></figcaption></figure>

#### Creating a Folder

To create a new folder, click the "+ New Folder" button in the top right. Provide a name for your folder and click "Save". The page will navigate to your project folder where you can create a new project. Any project created from the project folder view will automatically added to that folder.

[\[Roboflow Documentation\] Project Folders - Create Project - Watch Video](https://www.loom.com/share/aefb3b5fd1ea40cdb4183c903f13d9c8)

<figure><img src="https://cdn.loom.com/sessions/thumbnails/aefb3b5fd1ea40cdb4183c903f13d9c8-with-play.gif" alt=""><figcaption><p>Creating a new Project Folder</p></figcaption></figure>

#### Renaming a Folder

To rename a folder, click on the dropdown menu (3 dots) on the project folder. Select the "Rename" option, and then provide the new name for your project. After clicking "Save", your folder will have its new name.

[\[Roboflow Documentation\] Project Folders - Rename Folder - Watch Video](https://www.loom.com/share/63508a2ff629454690ac0957d5cfc990)

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

#### Managing Projects in Folders

You can move existing projects into a folder. To move a project, click on the project's dropdown menu (3 dots) and select "Move Project". You will then see a pop up where you can select the new target destination. If you do not have any project folders, you can add one by clicking the "New Folder" button. Otherwise, you can select any of your existing folders as the target location. If you want to move your project out of a folder, you can select your workspace's name.

You can also drag a project or a folder onto a folder card to move it there. If you select several folders, drag one of them to move them all.

[\[Roboflow Documentation\] Project Folders - Move Project - Watch Video](https://www.loom.com/share/a411cabb98f14255b07c3c2e209c3abd)

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

#### Deleting a Folder

You can delete a folder by clicking the dropdown menu (3 dots) on the project folder and selecting the "Delete" option (this action cannot be undone). Deleting a folder does not delete what is in it. Its projects, Workflows, and subfolders move to the folder one level up, or to the workspace level if the folder is at the top.

[\[Roboflow Documentation\] Project Folders - Delete Folder - Watch Video](https://www.loom.com/share/852e70b217de4d5d9ca79bef41903ad9)

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

### Custom Folder Permissions

Folders provide a great way to organize and manage your projects, but they also enable you to set custom permissions for a subset of your folders. For example, if you only want a few members of your workspace to access projects in a particular folder, you can accomplish that with Roboflow's SSO integration. To get started, please contact support and we will be happy to get you set up.

### Project Folders API

Project Folders can be managed programmatically using the Roboflow API. For details on available endpoints, view the [Project Folders API](#http-api) documentation.

## HTTP API

{% hint style="info" %}
Project Folders is available on Enterprise plans.
{% endhint %}

Folders take project URL slugs and return folder IDs. Use the ID from create or list in every call that names a folder.

### Create a folder

{% openapi src="/files/7XHd4GvvfvWHY65CHSYu" path="/{workspace}/groups" method="post" %}
[project-folders.yaml](https://2252499186-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-13acc185115f06fed4181111f92cd2ffb30d4db2%2Fproject-folders.yaml?alt=media)
{% endopenapi %}

### List folders

Pass `groupId` to get a single folder.

{% openapi src="/files/7XHd4GvvfvWHY65CHSYu" path="/{workspace}/groups" method="get" %}
[project-folders.yaml](https://2252499186-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-13acc185115f06fed4181111f92cd2ffb30d4db2%2Fproject-folders.yaml?alt=media)
{% endopenapi %}

### Update a folder

{% openapi src="/files/7XHd4GvvfvWHY65CHSYu" path="/{workspace}/groups/{folderId}" method="post" %}
[project-folders.yaml](https://2252499186-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-13acc185115f06fed4181111f92cd2ffb30d4db2%2Fproject-folders.yaml?alt=media)
{% endopenapi %}

### Add projects to a folder

{% openapi src="/files/7XHd4GvvfvWHY65CHSYu" path="/{workspace}/groups/{folderId}/projects" method="patch" %}
[project-folders.yaml](https://2252499186-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-13acc185115f06fed4181111f92cd2ffb30d4db2%2Fproject-folders.yaml?alt=media)
{% endopenapi %}

### Remove projects from a folder

Removed projects go to the top level of the workspace, even when the folder is nested.

{% openapi src="/files/7XHd4GvvfvWHY65CHSYu" path="/{workspace}/groups/{folderId}/projects" method="delete" %}
[project-folders.yaml](https://2252499186-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-13acc185115f06fed4181111f92cd2ffb30d4db2%2Fproject-folders.yaml?alt=media)
{% endopenapi %}

### Delete a folder

This cannot be undone.

{% openapi src="/files/7XHd4GvvfvWHY65CHSYu" path="/{workspace}/groups/{folderId}" method="delete" %}
[project-folders.yaml](https://2252499186-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-13acc185115f06fed4181111f92cd2ffb30d4db2%2Fproject-folders.yaml?alt=media)
{% endopenapi %}

## Python SDK

Project folders organize the projects in a workspace into nested groups. The Python SDK exposes folder listing and creation directly on `Workspace`; update and delete are available through the low-level `rfapi` adapter.

{% hint style="info" %}
Project folders are an Enterprise feature. The folder endpoints return `403` for non-Enterprise workspaces.
{% endhint %}

### List folders

```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"])
```

### Create a folder

```python
folder = workspace.create_folder(
    name="Training Data",
    parent_id=None,                              # optional, for nesting
    project_ids=["my-detector", "other-project"], # optional, populate at creation time
)
print(folder["id"])
```

#### Parameters

* `name` (str) - folder name shown in the web app.
* `parent_id` (str, optional) - id of an existing folder to nest under. Omit for a top-level folder.
* `project_ids` (list\[str], optional) - project ids to move into the folder at creation time.

### Get a folder

```python
from roboflow.adapters import rfapi

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

### Rename or update a folder

```python
from roboflow.adapters import rfapi

rfapi.update_folder(
    "YOUR_API_KEY",
    workspace.url,
    "<folder-id>",
    name="New Name",
)
```

### Delete a folder

```python
from roboflow.adapters import rfapi

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

Deleting a folder does not delete its projects. Its projects, Workflows, and subfolders move to the parent folder, or to the top level of the workspace.

## CLI

You can create, list, update, and delete workspace folders from the command line.

### List Folders

```bash
roboflow folder list
```

With JSON output:

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

### Get Folder Details

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

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

### Create a Folder

```bash
roboflow folder create "Training Data"
```

#### Options

| Flag         | Description                            |
| ------------ | -------------------------------------- |
| `--parent`   | Parent folder ID (for nesting)         |
| `--projects` | Comma-separated project IDs to include |

Example with projects:

```bash
roboflow folder create "Q2 Models" --projects my-project,other-project
```

### Update a Folder

Rename a folder:

```bash
roboflow folder update <folder-id> --name "New Name"
```

### Delete a Folder

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

### JSON Output

All folder commands support `--json` for structured output:

```bash
roboflow folder list --json | jq '.[].name'
roboflow folder create "My Folder" --json
```

Exit codes: 0 = success, 1 = error, 2 = auth error, 3 = not found.
