> ## 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.

# List Folders

> List all folders in your account, used to organize your Private Video Library.

<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>

List every folder in your account. Folders organize your **Private Video Library**; each upload can target a folder via `folder_id`, and list/search can be scoped to one.

Your account always has a built-in **Default folder** (`folder_id` `-1`), created automatically on first upload. If any videos were imported through the legacy `/api/video` endpoint, a read-only `API` folder (`folder_id` `-2`) is also returned.

## Prerequisites

* You have [created a memories.ai API key](/visual-search/create-your-key).

## Request Example

```python theme={null}
import requests

headers = {"Authorization": "sk-mavi-..."}
response = requests.get(
    "https://api.memories.ai/serve/api/v1/folders",
    headers=headers,
)
print(response.json())
```

```bash cURL theme={null}
curl "https://api.memories.ai/serve/api/v1/folders" \
  -H "Authorization: sk-mavi-..."
```

## Response Example

```json theme={null}
{
    "code": "0000",
    "msg": "success",
    "data": {
        "folders": [
            { "folder_id": -1, "folder_name": "Default folder" },
            { "folder_id": 671631448308117504, "folder_name": "my-project" }
        ]
    }
}
```

## Response Fields

<ResponseField name="code" type="string">Business status code. `0000` indicates success.</ResponseField>
<ResponseField name="msg" type="string">Human-readable status message.</ResponseField>
<ResponseField name="data.folders" type="array">All folders belonging to the authenticated account.</ResponseField>
<ResponseField name="data.folders[].folder_id" type="integer">Folder identifier. Pass it as `folder_id` on upload/list/search. `-1` is the Default folder; `-2` (if present) is the read-only legacy API folder.</ResponseField>
<ResponseField name="data.folders[].folder_name" type="string">Folder display name.</ResponseField>

## Notes & Limits

* **Rate limiting**: Folder endpoints share a per-account rate limit. See [Rate limits](/visual-search/rate-limits).
* The Default folder is created on demand — a brand-new account with no uploads may show it only after the first list/upload.


## OpenAPI

````yaml GET /serve/api/v1/folders
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:
    get:
      summary: List Folders
      description: List all folders in your account.
      operationId: list_folders
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FolderListResponse'
components:
  schemas:
    FolderListResponse:
      type: object
      properties:
        code:
          type: string
          example: '0000'
        msg:
          type: string
          example: success
        data:
          type: object
          properties:
            folders:
              type: array
              items:
                $ref: '#/components/schemas/FolderItem'
    FolderItem:
      type: object
      properties:
        folder_id:
          type: integer
          example: 671631448308117500
          description: >-
            Folder identifier. -1 = Default folder; -2 = legacy API folder
            (read-only).
        folder_name:
          type: string
          example: my-project
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization

````