---
title: "Move files to a folder"
method: POST
path: "/vault/{id}/objects/organize"
tags: ["Vault Objects"]
---

# Move files to a folder

`POST /vault/{id}/objects/organize`

## Request

- Base URL: `https://api.case.dev`
- URL: `https://api.case.dev/vault/{id}/objects/organize`
- Auth: HTTP bearer

Atomically moves up to 500 files to a folder. Authoritative transcription results follow source media. Selecting a transcription result requires selecting its source media too. Source and destination folders remain durable even when empty. Metadata only; requires vault-wide write access and vault ownership.

## Path parameters

- `id` string, required

## Request body

- union
  - object
    - `objectIds` string[], required
    - `path` string, required
    - `expectedPaths` object: Optional current folder preconditions for the supplied object IDs only. Automatically included transcription results do not require entries; supplied result entries are checked.
  - object
    - `moves` object[], required: Restore confirmed move receipts with optimistic concurrency checks. Include every receipt for each media/transcription family. Cannot combine with objectIds or path.
      - `id` string, required
      - `path` string, required
      - `expectedPath` string, required

## Response `200`

Files moved

- object
  - `folderPaths` string[]
  - `moves` object[]
    - `id` string
    - `previousPath` string
    - `path` string

## Other responses

- `400`: Invalid selection or path
- `401`: Invalid API key
- `403`: Vault-wide write access required
- `404`: Vault or file not found
- `409`: Files changed or are busy

## Changes

- **2026-10-16** `a21d188f4b21`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/casemark/apis/case-dev-api/changes/vault/:id/objects/organize/post.md)

---

[API](https://skmtc.dev/casemark/apis/case-dev-api.md) - [All operations](https://skmtc.dev/casemark/apis/case-dev-api/llms.txt) - [OpenAPI document](https://skmtc.dev/casemark/apis/case-dev-api/revisions/9a3245c00044?raw)
