---
title: Folders
description: Group links into folders. A folder is a link too, with its own short URL that lists what visitors can open.
sidebar:
  label: Folders
  order: 6
---

A folder is a link whose content is the list of items you put in it. It has its own slug, short URL, password, start and expiry, openings limit, pause, domain, social preview, QR code, and stats, like any other link.

## How folders work

- **Items stay independent.** Every item in a folder is still its own link with its own short URL. Putting a link in a folder never changes how that link opens.
- **One folder per item.** A link or folder sits in at most one folder. Folders can hold folders, up to 32 levels deep.
- **The folder page shows what visitors can open.** `lida.sh/<folder-id>` first applies the folder's own gate and password, then lists the items inside that a visitor could open right now. Paused, scheduled, expired, and used-up items are hidden. Folders come first, then the newest items.
- **A folder never grants access.** Each item opens at its own short URL, so its own password, schedule, variants, and analytics apply.
- **Names.** Folder names are public on the folder page. Link names stay private: an item shows its preview name, else its file name.
- **Stats.** Opening a folder counts one opening and one visit for the folder.

## In the dashboard

The **Library** tab replaces Links. Open a folder to browse inside it (the URL follows the path, `/dashboard/library/<folder>/<folder>`), switch between grid and table, and use the breadcrumbs to go back up. Use **New folder** to create one, and drag items onto a folder or use **Move to…** to file them.

## Copy

**Make a copy** (`links copy`, `POST /v1/links/:id/copy`, `links_copy`) creates a new link with the same content, password, gates, preview, tags, and domain. Stored files are duplicated and count against storage. The copy gets a new random slug, lands in the same folder, and its name gets ` (copy)`. Openings and analytics start fresh. Folders can't be copied.

## Delete a folder

Deleting a folder asks what happens to the items inside:

- **Keep items** (the default) moves them up to the parent folder, or to the top level.
- **Delete everything** deletes the items inside and every folder inside, all the way down.

From the CLI that is `links delete <id>` or `links delete <id> --with-contents`; over HTTP, `DELETE /v1/links/:id?contents=keep|delete`; in MCP, `links_delete` with `contents`.

## From the CLI, API, and MCP

```bash
linkdash links create --folder "Q4 launch" --slug q4
linkdash links create --file ./deck.pdf --in q4
linkdash links move k3m9xq --in q4
linkdash links list --in q4
```

| CLI | HTTP | MCP |
| --- | --- | --- |
| `links create --folder <name>` | `POST /v1/links` with `{ "kind": "folder", "name" }` | `links_create` with `kind: "folder"` |
| `links create … --in <folder-id>` | `POST /v1/links` with `folder` | `links_create` with `folder` |
| `links list --in <folder-id\|root>` | `GET /v1/links?folder=<slug>\|root` | `links_list` with `folder` |
| `links move <id> --in <folder-id>` / `--root` | `POST /v1/links/:id/move` | `links_move` |
| `links copy <id>` | `POST /v1/links/:id/copy` | `links_copy` |

Move and copy each count as one event. CSV export and import carry a `folder` column. Details: [CLI](/cli#folders), [HTTP API](/api#folders), [MCP](/mcp#folders).
