---
question: How do I create or move folders in Files?
kind: task
via_web: available
via_cli: na
via_python: na
via_api: available
via_config: na
ref_web: Files › File › New Folder
ref_api: POST /api/files/rename
next:
  - /capabilities/build/files/upload-a-file
  - /capabilities/build/files/delete-a-file
---

# Organise folders

Files has folders, renames, moves and ZIP downloads inside a drive. A move stays in the same drive and the same workspace.

## Web UI

### Create a folder

In the Nexus workspace, open **Files** and the parent folder. Choose **File › New Folder**. The name defaults to `new-folder`, with `-1`, `-2` added when it is taken. Choose **Create**. An empty folder still lists.

On a phone, use **Add › New folder**.

![Files with the File menu open](/abi/Screenshot_Files_Menu.png)

*Files › File › New Folder creates a folder in the current folder.*

### Rename

On the row, open **More options** (⋮) and choose **Rename**. A name that already exists in the folder is refused.

### Move

Drag the item onto a folder row. There is no Move menu item. You cannot drop an item on a system path, on itself, on its own child, or on the folder it is already in.

### Download a folder

On the folder row, choose **Download as ZIP**.

## CLI

Not applicable. There is no `abi` command for Files. Use another tab on this page. The command list is the [CLI reference](/user-guide/reference/cli).

## Python

Not applicable. Object storage has keys, not folders: there is no call that creates, renames or moves a folder. A module writes objects under the prefix it wants, and Files shows that prefix as folders. See [Use files in code](/user-guide/build/files/use-files-in-code?via=python).

## REST API

The Files routes of the Nexus API. Auth: a Nexus session of a workspace member (`POST /api/auth/login` returns the access token).

### Create a folder

```bash
curl -X POST "http://localhost:9879/api/files/folder" \
  -H "Authorization: Bearer $NEXUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"path": "reports/2026", "workspace_id": "'"$WORKSPACE_ID"'", "scope": "workspace"}'
```

409 when it exists.

### Rename or move

```http
POST /api/files/rename
```

Body: `{"old_path": "reports/2026", "new_path": "archive/2026", "workspace_id": "...", "scope": "workspace"}`. The same call renames and moves. 409 "Target path already exists"; a move across workspaces answers 400.

### Download as ZIP

```http
GET /api/files/archive/reports?workspace_id={workspace_id}&scope=workspace
```

A folder over 10,000 files answers 413.

## Config

Not applicable. Folders are data in the drive, not settings.
