> ## Documentation Index
> Fetch the complete documentation index at: https://api-tools.memories.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Move Videos to Folder

> Move one or more videos into a target folder.

<Info>
  **Product**: Visual Search
  **Use case**: Organize your indexed videos into folders and scope uploads/searches to a folder
  **Host**: `https://api.memories.ai/serve/api/v1`
  **Auth**: `Authorization: sk-mavi-...` (no `Bearer` prefix)
</Info>

Move existing videos into a folder. The target folder must already exist and belong to your account (it is **not** created automatically). Only videos that belong to your account are moved.

## Prerequisites

* You have [created a memories.ai API key](/visual-search/create-your-key).
* The target folder exists — create it with [Create Folder](/visual-search/create-folder), or use `-1` for the Default folder.

## Request Example

<Note>Uses `application/json` — send the request body as JSON.</Note>

```python theme={null}
import requests

headers = {"Authorization": "sk-mavi-..."}
json_body = {
    "folder_id": 671631448308117504,
    "video_nos": ["VI671631448308117504", "VI671631448308117505"]
}
response = requests.post(
    "https://api.memories.ai/serve/api/v1/folders/move",
    headers=headers,
    json=json_body,
)
print(response.json())
```

```bash cURL theme={null}
curl -X POST "https://api.memories.ai/serve/api/v1/folders/move" \
  -H "Authorization: sk-mavi-..." \
  -H "Content-Type: application/json" \
  -d '{"folder_id": 671631448308117504, "video_nos": ["VI671631448308117504"]}'
```

## Parameters

<ParamField body="folder_id" type="integer" required>
  Target folder id. `-1` moves videos into the Default folder. The target must already exist and belong to your account — it is not created automatically. Values other than `-1` must be **> 0**.
</ParamField>

<ParamField body="video_nos" type="array" required>
  Video identifiers to move. Maximum **500** per request. Videos that do not belong to your account are rejected.
</ParamField>

## Response Example

```json theme={null}
{
    "code": "0000",
    "msg": "success",
    "data": null
}
```

## Response Fields

<ResponseField name="code" type="string">Business status code. `0000` indicates success.</ResponseField>
<ResponseField name="msg" type="string">Human-readable status message.</ResponseField>

## Notes & Limits

* **Target must exist**: a non-existent target folder (including `-1` if your Default folder was never created) returns `Folder does not exist or does not belong to the current user`.
* If none of the supplied `video_nos` belong to your account, the request returns `No videos found for the provided video numbers.`
* At most **500** videos can be moved in a single request.


## OpenAPI

````yaml POST /serve/api/v1/folders/move
openapi: 3.1.0
info:
  title: Memories Platform API (Docs Mapping)
  version: v1
  description: OpenAPI mapping used by Mintlify Try it for the platform docs.
servers:
  - url: https://api.memories.ai
security:
  - ApiKeyAuth: []
paths:
  /serve/api/v1/folders/move:
    post:
      summary: Move Videos to Folder
      operationId: move_videos_to_folder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - folder_id
                - video_nos
              properties:
                folder_id:
                  type: integer
                  example: 671631448308117500
                  description: >-
                    Target folder id. -1 = Default folder. Must already exist
                    and belong to your account (not auto-created).
                video_nos:
                  type: array
                  items:
                    type: string
                  maxItems: 500
                  example:
                    - VI671631448308117504
                  description: Video identifiers to move. Max 500 per request.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericJsonResponse'
components:
  schemas:
    GenericJsonResponse:
      type: object
      properties:
        code:
          type:
            - string
            - integer
          example: '0000'
        msg:
          type: string
          example: success
        data:
          oneOf:
            - type: object
              additionalProperties: true
            - type: array
              items:
                type: object
                additionalProperties: true
            - type: string
            - type: 'null'
        success:
          type: boolean
          example: true
        failed:
          type: boolean
          example: false
      additionalProperties: true
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization

````