---
title: "Organize Speak AI media with the folders endpoints"
description: "Create, list, clone, update, and delete Speak AI folders, and manage the saved views that control how the media inside a folder is filtered."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.speakai.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Organize Speak AI media with the folders endpoints


import EndpointIndex from "@/components/api/EndpointIndex.astro";

The Speak AI API exposes 12 folders endpoints under the base URL `https://api.speakai.co/v1`. Every request needs the `x-speakai-key` and `x-access-token` headers described in [Authentication](/api/authentication/).

Manage Folder workflow. Create, Update, Delete folders.

## What can you do with the folders endpoints?

Speak AI groups these 12 endpoints under the folders resource. Each entry below links to the full reference for that endpoint further down this page.

| Method | Path | What it does |
| --- | --- | --- |
| `GET` | [`/folder`](#get-folder) | Get folders |
| `POST` | [`/folder`](#post-folder) | Create folder |
| `GET` | [`/folder/{folderId}`](#get-folder-folder-id) | Get folders info |
| `PUT` | [`/folder/{folderId}`](#put-folder-folder-id) | Update folder |
| `DELETE` | [`/folder/{folderId}`](#delete-folder-folder-id) | Delete folder |
| `GET` | [`/folder/{folderId}/views`](#get-folder-folder-id-views) | Get Views by Folder ID |
| `POST` | [`/folder/{folderId}/views`](#post-folder-folder-id-views) | Create View |
| `PUT` | [`/folder/{folderId}/views/{viewId}`](#put-folder-folder-id-views-view-id) | Update View |
| `DELETE` | [`/folder/{folderId}/views/{viewId}`](#delete-folder-folder-id-views-view-id) | Delete View |
| `POST` | [`/folder/clone`](#post-folder-clone) | Clone Folder |
| `GET` | [`/folder/views`](#get-folder-views) | Get All Views |
| `POST` | [`/folder/views/clone`](#post-folder-views-clone) | Clone View |

<h2 id="get-folder">Get folders</h2>

#### Get Folders

This endpoint retrieves a list of folders based on pagination and sorting criteria.

##### Request Parameters

- **page** (integer, required): The page number to retrieve. This parameter is used for pagination.

- **pageSize** (integer, required): The number of folders to return per page. This parameter controls the size of the result set.

- **sortBy** (string, required): The field by which to sort the folders. In this case, it is sorted by `createdAt`.

##### Response Format

The response will contain the following structure:

- **status** (string): The status of the request.

- **data** (object): Contains the details of the folders retrieved.

- **totalCount** (integer): The total number of folders available.

- **pages** (integer or null): The total number of pages available based on the pagination.

- **folders** (array): An array of folder objects, each containing:

- **_id** (string): The unique identifier for the folder.

- **defaultAssignTo** (string): The default user assigned to the folder.

- **showOrder** (integer): The order in which the folder should be displayed.

- **name** (string): The name of the folder.

- **folderId** (string): The identifier for the folder.

- **createdAt** (string): The creation date of the folder.

- **updatedAt** (string): The last updated date of the folder.

- **user** (object): An object representing the user associated with the folder.

- **_id** (string): The unique identifier for the user.

- **firstName** (string): The first name of the user.

- **lastName** (string): The last name of the user.

- **userId** (string): The identifier for the user associated with the folder.

##### Notes

- Ensure that the `page` and `pageSize` parameters are set correctly to retrieve the desired set of folders.

- The response may return an empty array if no folders are available for the specified page and size.

### Parameters

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `page` | query | integer | No |  |
| `pageSize` | query | integer | No |  |
| `sortBy` | query | string | No |  |
| `from` | query | string | No | You can pass in the dateFormat |
| `to` | query | string | No | You can pass in the dateFormat |

<div slot="code">

<CodePanel label="Example request">

```bash
curl -X GET 'https://api.speakai.co/v1/folder?page=0&pageSize=5&sortBy=createdAt' \
  -H 'x-speakai-key: sk_test_speak_0000000000000000' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000'
```

</CodePanel>

<ResponsePanel id="get-folder" statuses={[{"code":"200","description":"OK"}]}>

<div slot="status-200">

**`200` OK**

Response body, `application/json`.

| Field | Type |
| --- | --- |
| `status` | string |
| `data` | object |
| `data.totalCount` | integer |
| `data.pages` | string |
| `data.folders` | object[] |

Deeper nested fields are not listed. See the example response below for the full shape.

Example response (Get folders), `application/json`.

```json
{
  "status": "success",
  "data": {
"totalCount": 93,
"pages": null,
"folders": [
  {
    "_id": "61e3d27bxxxx5041a7",
    "defaultAssignTo": "",
    "showOrder": 1,
    "name": "AudioAudioAudioAudioAudioAudioAudioAudioAu",
    "folderId": "905c208f1c07",
    "createdAt": "2022-01-16T08:08:27.821Z",
    "updatedAt": "2025-01-06T15:05:38.939Z",
    "user": {
      "_id": "5d03a9d5xxxx8cf89",
      "firstName": "Vatsal",
      "lastName": "Shah"
    },
    "userId": "5d03a9d5dxxxxc8cf89"
  }
]
  }
}
```

</div>

</ResponsePanel>

</div>

<h2 id="post-folder">Create folder</h2>

#### Create a New Folder

This endpoint allows you to create a new folder by sending an HTTP POST request to the specified URL.

##### Request Body

- **name** (string, required): The name of the folder to be created.

Example:

``` json
{
  "name": "Folder name 2"
}

```

##### Response

- **status** (string): The status of the request.

- **data**

- **folderId** (string): The ID of the newly created folder.

- **message** (string): A message related to the folder creation.

Example:

``` json
{
  "status": "",
  "data": {
"folderId": "",
"message": ""
  }
}

```

### Request body

Field types and names come from the request body the spec records. The spec does not mark request body fields as required, so read this as the shape the endpoint accepts rather than a required field list.

| Field | Type |
| --- | --- |
| `name` | string |

<div slot="code">

<CodePanel label="Example request">

```bash
curl -X POST 'https://api.speakai.co/v1/folder' \
  -H 'x-speakai-key: sk_test_speak_0000000000000000' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "Folder name 2"
}'
```

</CodePanel>

<ResponsePanel id="post-folder" statuses={[{"code":"200","description":"OK"}]}>

<div slot="status-200">

**`200` OK**

Response body, `application/json`.

| Field | Type |
| --- | --- |
| `status` | string |
| `data` | object |
| `data.folderId` | string |
| `data.message` | string |

Example response (Create folder), `application/json`.

```json
{
  "status": "success",
  "data": {
"folderId": "0648e533f72c",
"message": "Folder name 2 folder created successfully"
  }
}
```

</div>

</ResponsePanel>

</div>

<h2 id="get-folder-folder-id">Get folders info</h2>

#### Get Folder Details

This endpoint retrieves the details of a specific folder identified by its unique `folderId`.

##### Request Parameters

- `folderId` (path parameter): The unique identifier of the folder you want to retrieve. This should be a valid ID corresponding to an existing folder in the system.

##### Response

The response will contain a JSON object with the following structure:

- `status`: A string indicating the status of the request.

- `data`: An object containing detailed information about the folder:

    - `_id`: The unique identifier of the folder.

    - `companyId`: The ID of the company associated with the folder.

    - `userId`: The ID of the user who owns the folder.

    - `folderType`: The type of folder.

    - `name`: The name of the folder.

    - `description`: A brief description of the folder.

    - `defaultAssignTo`: The default user assigned to the folder (can be null).

    - `showOrder`: An integer indicating the order in which the folder is displayed.

    - `userShowOrder`: An object mapping user IDs to their specific display order for the folder.

    - `isDeleted`: A boolean indicating whether the folder has been deleted.

    - `folderId`: The ID of the folder.

    - `createdAt`: The timestamp when the folder was created.

    - `updatedAt`: The timestamp when the folder was last updated.

    - `__v`: The version key for the document.

    - `source`: An object containing:

        - `type`: The type of source associated with the folder.

        - `subCategory`: The subcategory of the source.

    - `shared`: An array containing information about users or entities with whom the folder is shared.

##### Notes

- Ensure that the `folderId` provided in the request is valid, as an invalid ID will result in an error response.

- The `isDeleted` field in the response indicates whether the folder is currently active or has been marked for deletion.

### Parameters

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `folderId` | path | string | Yes |  |

<div slot="code">

<CodePanel label="Example request">

```bash
curl -X GET 'https://api.speakai.co/v1/folder/e88575b384b6' \
  -H 'x-speakai-key: sk_test_speak_0000000000000000' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000'
```

</CodePanel>

<ResponsePanel id="get-folder-folder-id" statuses={[{"code":"200","description":"OK"}]}>

<div slot="status-200">

**`200` OK**

Response body, `application/json`.

| Field | Type |
| --- | --- |
| `status` | string |
| `data` | object |
| `data._id` | string |
| `data.companyId` | string |
| `data.userId` | string |
| `data.folderType` | string |
| `data.name` | string |
| `data.description` | string |
| `data.defaultAssignTo` | string |
| `data.showOrder` | integer |
| `data.userShowOrder` | object |
| `data.isDeleted` | boolean |
| `data.folderId` | string |
| `data.createdAt` | string (date-time) |
| `data.updatedAt` | string (date-time) |
| `data.__v` | integer |
| `data.source` | object |
| `data.shared` | any[] |

Deeper nested fields are not listed. See the example response below for the full shape.

Example response (Get folders info), `application/json`.

```json
{
  "status": "success",
  "data": {
"_id": "6776f1459df32xxx30f8",
"companyId": "5e21c8ddxxxxxx2c64214816",
"userId": "5d03a9d5d4xxxxxc8cf89",
"folderType": "sub",
"name": "v35",
"description": "",
"defaultAssignTo": null,
"showOrder": 2,
"userShowOrder": {
  "5d03a9d5d4bca272e9c8cf89": 2
},
"isDeleted": false,
"folderId": "e8857xxx4b6",
"createdAt": "2025-01-02T20:04:21.511Z",
"updatedAt": "2025-01-06T15:05:38.939Z",
"__v": 0,
"source": {
  "type": "content",
  "subCategory": "podcast"
},
"shared": []
  }
}
```

</div>

</ResponsePanel>

</div>

<h2 id="put-folder-folder-id">Update folder</h2>

#### Update Folder

This endpoint allows you to update the details of a specific folder identified by its `folderId`. 

##### Request

- **Method**: `PUT`
- **Endpoint**: `https://api.speakai.co/v1/folder/{folderId}`
- **Path Parameter**:
  - `folderId` (string): The unique identifier of the folder you wish to update.

##### Request Body

The request body should be in JSON format and must include the following parameter:

- `name` (string): The new name for the folder.

**Example Request Body**:
```json
{
  "name": "Folder name 2 Updated"
}
```

##### Response

Upon a successful update, the response will be in JSON format and will include the following fields:

- `status` (string): The status of the request.
- `data` (object): Contains additional information about the update.
  - `folderId` (string): The ID of the updated folder.
  - `message` (string): A message indicating the result of the update.
  - `fields` (array): An array that may contain any relevant fields related to the update.

**Example Response**:
```json
{
  "status": "",
  "data": {
"folderId": "",
"message": "",
"fields": []
  }
}
```

##### Notes

Ensure that the `folderId` in the URL is valid and that you have the necessary permissions to update the folder.

### Parameters

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `folderId` | path | string | Yes |  |

### Request body

Field types and names come from the request body the spec records. The spec does not mark request body fields as required, so read this as the shape the endpoint accepts rather than a required field list.

| Field | Type |
| --- | --- |
| `name` | string |

<div slot="code">

<CodePanel label="Example request">

```bash
curl -X PUT 'https://api.speakai.co/v1/folder/0648e533f72c' \
  -H 'x-speakai-key: sk_test_speak_0000000000000000' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "Folder name 2 Updated"
}'
```

</CodePanel>

<ResponsePanel id="put-folder-folder-id" statuses={[{"code":"200","description":"OK"}]}>

<div slot="status-200">

**`200` OK**

Response body, `application/json`.

| Field | Type |
| --- | --- |
| `status` | string |
| `data` | object |
| `data.folderId` | string |
| `data.message` | string |
| `data.fields` | any[] |

Example response (Update folder), `application/json`.

```json
{
  "status": "success",
  "data": {
"folderId": "0648e533f72c",
"message": "Folder name 2 Updated folder updated successfully",
"fields": []
  }
}
```

</div>

</ResponsePanel>

</div>

<h2 id="delete-folder-folder-id">Delete folder</h2>

#### DELETE /v1/folder/\{folderId\}

This endpoint is used to delete a specific folder identified by the `folderId`. The deletion operation will remove the folder and all its contents from the system.

##### Request Parameters

- `folderId` (path parameter): The unique identifier of the folder that you wish to delete. This parameter is required.

##### Response Structure

Upon successful deletion, the response will return a JSON object with the following structure:

- `status`: A string indicating the status of the operation (e.g., success or failure).

- `message`: A string providing additional information about the result of the deletion operation.

##### Example Response

``` json
{
  "status": "success",
  "message": "Folder deleted successfully."
}

```

In case of an error, the response may contain an appropriate error message indicating what went wrong.

### Parameters

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `folderId` | path | string | Yes |  |

<div slot="code">

<CodePanel label="Example request">

```bash
curl -X DELETE 'https://api.speakai.co/v1/folder/0648e533f72c' \
  -H 'x-speakai-key: sk_test_speak_0000000000000000' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000'
```

</CodePanel>

<ResponsePanel id="delete-folder-folder-id" statuses={[{"code":"200","description":"OK"}]}>

<div slot="status-200">

**`200` OK**

Response body, `application/json`.

| Field | Type |
| --- | --- |
| `status` | string |
| `message` | string |

Example response (Delete folder), `application/json`.

```json
{
  "status": "success",
  "message": "Folder successfully deleted."
}
```

</div>

</ResponsePanel>

</div>

<h2 id="get-folder-folder-id-views">Get Views by Folder ID</h2>

Get all views for a specific folder

### Parameters

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `folderId` | path | string | Yes | The ID of the folder to get views for |

<div slot="code">

<CodePanel label="Example request">

```bash
curl -X GET 'https://api.speakai.co/v1/folder/your_folder_id_here/views' \
  -H 'x-speakai-key: sk_test_speak_0000000000000000' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000'
```

</CodePanel>

<ResponsePanel id="get-folder-folder-id-views" statuses={[{"code":"200","description":"Success. This spec records no example response body for this endpoint."}]}>

<div slot="status-200">

**`200` Success. This spec records no example response body for this endpoint.**

The spec records no example response body for this status code.

</div>

</ResponsePanel>

</div>

<h2 id="post-folder-folder-id-views">Create View</h2>

Create a new view for a specific folder. Column types can be:

**FieldType values:**
- text
- url
- boolean
- date
- datetime
- number
- currency

**DefaultViewColumn values:**
- name
- duration
- tags
- sentiment
- datetime
- createdAt
- updatedAt

### Parameters

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `folderId` | path | string | Yes | The ID of the folder to create view for |

### Request body

Field types and names come from the request body the spec records. The spec does not mark request body fields as required, so read this as the shape the endpoint accepts rather than a required field list.

| Field | Type |
| --- | --- |
| `name` | string |
| `isDefault` | boolean |
| `columns` | object[] |
| `columns[].fieldId` | string |
| `columns[].name` | string |
| `columns[].type` | string |
| `columns[].definition` | string |
| `columns[].order` | integer |

<div slot="code">

<CodePanel label="Example request">

```bash
curl -X POST 'https://api.speakai.co/v1/folder/your_folder_id_here/views' \
  -H 'x-speakai-key: sk_test_speak_0000000000000000' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "My Custom View",
  "isDefault": false,
  "columns": [
{
  "fieldId": "",
  "name": "Name",
  "type": "name",
  "definition": "",
  "order": 0
},
{
  "fieldId": "",
  "name": "Duration",
  "type": "duration",
  "definition": "duration",
  "order": 1
},
{
  "fieldId": "",
  "name": "Tags",
  "type": "tags",
  "definition": "tags",
  "order": 2
},
{
  "fieldId": "",
  "name": "Sentiment",
  "type": "sentiment",
  "definition": "sentiment",
  "order": 3
},
{
  "fieldId": "",
  "name": "Created At",
  "type": "datetime",
  "definition": "createdAt",
  "order": 4
}
  ]
}'
```

</CodePanel>

<ResponsePanel id="post-folder-folder-id-views" statuses={[{"code":"200","description":"Success. This spec records no example response body for this endpoint."}]}>

<div slot="status-200">

**`200` Success. This spec records no example response body for this endpoint.**

The spec records no example response body for this status code.

</div>

</ResponsePanel>

</div>

<h2 id="put-folder-folder-id-views-view-id">Update View</h2>

Update an existing view. Note: isDefault is required in update operation.

### Parameters

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `folderId` | path | string | Yes | The ID of the folder |
| `viewId` | path | string | Yes | The ID of the view to update |

### Request body

Field types and names come from the request body the spec records. The spec does not mark request body fields as required, so read this as the shape the endpoint accepts rather than a required field list.

| Field | Type |
| --- | --- |
| `name` | string |
| `isDefault` | boolean |
| `columns` | object[] |
| `columns[].fieldId` | string |
| `columns[].name` | string |
| `columns[].type` | string |
| `columns[].definition` | string |
| `columns[].order` | integer |

<div slot="code">

<CodePanel label="Example request">

```bash
curl -X PUT 'https://api.speakai.co/v1/folder/your_folder_id_here/views/your_view_id_here' \
  -H 'x-speakai-key: sk_test_speak_0000000000000000' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "Updated View Name",
  "isDefault": true,
  "columns": [
{
  "fieldId": "",
  "name": "Name",
  "type": "name",
  "definition": "",
  "order": 0
},
{
  "fieldId": "",
  "name": "Duration",
  "type": "duration",
  "definition": "duration",
  "order": 1
},
{
  "fieldId": "",
  "name": "Tags",
  "type": "tags",
  "definition": "tags",
  "order": 2
},
{
  "fieldId": "",
  "name": "Sentiment",
  "type": "sentiment",
  "definition": "sentiment",
  "order": 3
},
{
  "fieldId": "",
  "name": "Created At",
  "type": "datetime",
  "definition": "createdAt",
  "order": 4
}
  ]
}'
```

</CodePanel>

<ResponsePanel id="put-folder-folder-id-views-view-id" statuses={[{"code":"200","description":"Success. This spec records no example response body for this endpoint."}]}>

<div slot="status-200">

**`200` Success. This spec records no example response body for this endpoint.**

The spec records no example response body for this status code.

</div>

</ResponsePanel>

</div>

<h2 id="delete-folder-folder-id-views-view-id">Delete View</h2>

Delete a view (soft delete - sets isActive to false)

### Parameters

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `folderId` | path | string | Yes | The ID of the folder |
| `viewId` | path | string | Yes | The ID of the view to delete |

<div slot="code">

<CodePanel label="Example request">

```bash
curl -X DELETE 'https://api.speakai.co/v1/folder/your_folder_id_here/views/your_view_id_here' \
  -H 'x-speakai-key: sk_test_speak_0000000000000000' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000'
```

</CodePanel>

<ResponsePanel id="delete-folder-folder-id-views-view-id" statuses={[{"code":"200","description":"Success. This spec records no example response body for this endpoint."}]}>

<div slot="status-200">

**`200` Success. This spec records no example response body for this endpoint.**

The spec records no example response body for this status code.

</div>

</ResponsePanel>

</div>

<h2 id="post-folder-clone">Clone Folder</h2>

#### Clone Folder

This endpoint allows the user to clone a folder by making an HTTP POST request to the specified URL.

##### Request Body

- `folderId` (string) - The ID of the folder to be cloned.

- `name` (string) - The name of the new folder.

- `description` (string) - The description of the new folder.

- `defaultAssignTo` (string) - The default assignee for the new folder.

- `isSaveDefaultView` (boolean) - Indicates whether the default view should be saved.

##### Response

The response of this request is a JSON object with the following schema:

``` json
{
"type": "object",
"properties": {
    "status": {
        "type": "string"
    },
    "data": {
        "type": "object",
        "properties": {
            "folderId": {
                "type": "string"
            },
            "message": {
                "type": "string"
            }
        }
    }
}
}

```

##### Example Response

``` json
{
"status": "",
"data": {
    "folderId": "",
    "message": ""
}
}

```

### Request body

Field types and names come from the request body the spec records. The spec does not mark request body fields as required, so read this as the shape the endpoint accepts rather than a required field list.

| Field | Type |
| --- | --- |
| `folderId` | string |
| `name` | string |
| `description` | string |
| `defaultAssignTo` | string |
| `isSaveDefaultView` | boolean |

<div slot="code">

<CodePanel label="Example request">

```bash
curl -X POST 'https://api.speakai.co/v1/folder/clone' \
  -H 'x-speakai-key: sk_test_speak_0000000000000000' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000' \
  -H 'Content-Type: application/json' \
  -d '{
  "folderId": "905c208f1c07",
  "name": "New Folder Name",
  "description": "New Folder description",
  "defaultAssignTo": "",
  "isSaveDefaultView": true
}'
```

</CodePanel>

<ResponsePanel id="post-folder-clone" statuses={[{"code":"200","description":"OK"}]}>

<div slot="status-200">

**`200` OK**

Response body, `application/json`.

| Field | Type |
| --- | --- |
| `status` | string |
| `data` | object |
| `data.folderId` | string |
| `data.message` | string |

Example response (Create folder), `application/json`.

```json
{
  "status": "success",
  "data": {
"folderId": "0648e533f72c",
"message": "Folder name 2 folder created successfully"
  }
}
```

</div>

</ResponsePanel>

</div>

<h2 id="get-folder-views">Get All Views</h2>

Get all views across all folders for the company. Used to populate dropdown for cloning views.

<div slot="code">

<CodePanel label="Example request">

```bash
curl -X GET 'https://api.speakai.co/v1/folder/views' \
  -H 'x-speakai-key: sk_test_speak_0000000000000000' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000'
```

</CodePanel>

<ResponsePanel id="get-folder-views" statuses={[{"code":"200","description":"Success. This spec records no example response body for this endpoint."}]}>

<div slot="status-200">

**`200` Success. This spec records no example response body for this endpoint.**

The spec records no example response body for this status code.

</div>

</ResponsePanel>

</div>

<h2 id="post-folder-views-clone">Clone View</h2>

Clone a view from source folder to target folder. Use 'Get All Views' to get available view IDs for cloning.

### Request body

Field types and names come from the request body the spec records. The spec does not mark request body fields as required, so read this as the shape the endpoint accepts rather than a required field list.

| Field | Type |
| --- | --- |
| `sourceFolderId` | string |
| `targetFolderId` | string |
| `viewId` | string |
| `name` | string |
| `isDefault` | boolean |

<div slot="code">

<CodePanel label="Example request">

```bash
curl -X POST 'https://api.speakai.co/v1/folder/views/clone' \
  -H 'x-speakai-key: sk_test_speak_0000000000000000' \
  -H 'x-access-token: eyJhbGciOiJIUzI1NiJ9.test-access-token.0000000000' \
  -H 'Content-Type: application/json' \
  -d '{
  "sourceFolderId": "source_folder_id_here",
  "targetFolderId": "target_folder_id_here",
  "viewId": "view_id_to_clone_here",
  "name": "Cloned View Name",
  "isDefault": false
}'
```

</CodePanel>

<ResponsePanel id="post-folder-views-clone" statuses={[{"code":"200","description":"Success. This spec records no example response body for this endpoint."}]}>

<div slot="status-200">

**`200` Success. This spec records no example response body for this endpoint.**

The spec records no example response body for this status code.

</div>

</ResponsePanel>

</div>

## Related pages

- [API reference](/api/) for the base URL, authentication, and the error format.
- [Authenticate with the Speak AI API using access tokens](/api/authentication/)
- [Upload audio and video to Speak AI and read insights](/api/media/)
- [Create and update live transcription sessions in Speak AI](/api/live-transcription/)
- [Analyze text notes with the Speak AI text endpoints](/api/text/)

Get an API key on the [Speak AI developer page](https://app.speakai.co/developers?utm_source=docs&utm_medium=referral&utm_campaign=api-reference&utm_content=api-folders).

Source: https://docs.speakai.co/api/folders/index.mdx
