---
title: "Move a folder"
method: POST
path: "/api/notebooks/{notebook}/folders/{folder}/move"
tags: ["notebook-folder-controller"]
---

# Move a folder

`POST /api/notebooks/{notebook}/folders/{folder}/move`

## Request

- Base URL: `` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/api/notebooks/{notebook}/folders/{folder}/move`
- Auth: none declared

Reparents the folder within the same notebook, or moves the folder subtree to another notebook when destinationNotebookId is set. Notes keep their folderId pointing at the same folder rows; descendant folders stay under the moved subtree. A same-name folder at the destination returns 409 with FOLDER_NAME_CONFLICT unless merge=true, in which case the source subtree is merged into the existing folder (including cross-notebook moves).

## Path parameters

- `notebook` integer, required
- `folder` integer, required

## Request body

- FolderMoveRequest: Move a folder to a new parent in the same notebook, or to another notebook when destinationNotebookId is set. Omit newParentFolderId or set it to null to place the folder at notebook root.
  - `newParentFolderId` integer: Target parent folder id. When null or omitted, the folder is moved to notebook root.
  - `destinationNotebookId` integer: Destination notebook id for a cross-notebook move. When null or omitted, the folder stays in the path notebook.
  - `merge` boolean: When true, merges the folder into an existing same-name sibling at the destination instead of returning 409. Subfolder name clashes are resolved recursively.

## Response `200`

OK

- Folder
  - `id` integer, required
  - `readmeContent` string
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `parentFolderId` integer: Parent folder id when nested; omitted at notebook root.
  - `name` string, required

## Changes

- **2026-09-19** `b88bb26a237e`: 2 info
  - api tag `notebook-folder-controller` added
  - api tag `notebook-controller` removed
- **2026-07-22** `13f77438750e`: 1 warning, 1 info
  - removed the optional property `indexContent` from the response with the `200` status
  - added the optional property `readmeContent` to the response with the `200` status
- **2026-06-22** `1448a5cce876`: 1 info
  - added the new optional request property `destinationNotebookId`
- **2026-05-16** `440577546ad4`: 1 info
  - added the new optional request property `merge`
- **2026-05-12** `de5624b4a98c`: 1 info
  - added the optional property `indexContent` to the response with the `200` status

[Operation history](https://skmtc.dev/nerds-odd-e/apis/odd-e-open-api/changes/api/notebooks/:notebook/folders/:folder/move/post.md)

---

[API](https://skmtc.dev/nerds-odd-e/apis/odd-e-open-api.md) - [All operations](https://skmtc.dev/nerds-odd-e/apis/odd-e-open-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nerds-odd-e/apis/odd-e-open-api/revisions/193c5e89085a?raw)
