---
title: "Create Folder Endpoint"
description: "Details about the Create Folder endpoint for Disguise Cloud"
url: https://developer.disguise.one/cloud/drive/create-folder/
---

# Create Folder

-   [Endpoints](#endpoints)
-   [Response Structure](#response-structure)
-   [Response Example](#response-example)
    -   [Success](#success)
    -   [Errors](#errors)
-   [Request Parameters](#request-parameters)
-   [Request Example](#request-example)

The `/folder` endpoint of the Disguise Cloud Drive API allows you to create a new folder within a specified drive and parent folder. A folder represents a directory within a drive that can contain files and other folders.

## Endpoints

`POST https://drive-api.disguise.cloud/v1/drives/{{drive_id}}/content/{{content_id}}/folder`

Create a new folder within the specified drive and parent folder. The content ID is the parent folder's unique identifier.

## Response Structure

A successful response from the `/folder` endpoint will be the same as the **Content** endpoint, but without the pagination wrapper.

| Field | Type | Description |
| --- | --- | --- |
| **id** | string | The unique identifier of the content. |
| **drive\_id** | string | The unique identifier of the drive. |
| **parent\_id** | string | The unique identifier of the parent content, if applicable. Root folders will be the only piece of content that is missing this field. |
| **name** | string | The name of the content. |
| **versions** | array | A list of versions of the content. See the Versions table for more information. |
| **is\_locked** | boolean | Whether the content is locked. When locked, the content can not be updated or deleted. |
| **locked\_by\_id** | string | The unique identifier of the user who locked the content, if applicable. |
| **uploaded\_by\_id** | string | The unique identifier of the user who uploaded the content, if applicable. |
| **url** | string | The URL of the content, if applicable. |
| **format** | string | The format of the content, if applicable. |
| **thumbnail** | string | The URL of the thumbnail image of the content, if applicable. |
| **thumbnail\_tiny** | string | The URL of the tiny thumbnail image of the content, if applicable. |
| **type** | string | The type of the content (e.g., `folder`, `file`, `image`, `scene`, `video`, `previz`). |
| **length** | integer | The length of the content, if applicable. |
| **width** | integer | The width of the content, if applicable. |
| **height** | integer | The height of the content, if applicable. |
| **dimensions** | string | The dimensions of the content, if applicable. |
| **size\_bytes** | integer | The size of the content in bytes. For folders, this will be the total size of all content in the folder. |
| **status** | string | The status of the content (e.g., `pending`, `ready`). Refers to if the content has been finished processing (such as video encoding). |
| **meta** | object | Additional metadata about the content, if applicable. Data structure is not guaranteed. |
| **file\_extension** | string | The file extension of the content, if applicable. |
| **is\_shared** | boolean | Whether the content is shared. |
| **share\_slug** | string | The share slug of the content, if applicable. Only applies if the content was shared previously. |
| **share\_url** | string | The share URL of the content, if applicable. Only applies if the content was shared previously. |
| **description** | string | The description of the content, if applicable. |
| **created\_at** | datetime | The date and time when the content was created. |
| **updated\_at** | datetime | The date and time when the content was last updated. |
| **children** | array | A list of child content items see the Children table for more information. |

## Response Example

```bash
curl -X POST https://drive-api.disguise.cloud/v1/drives/{{drive_id}}/content/{{content_id}}/folder \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
  "name": "My Folder"
}'
```

### Success

A successful response will return a `201 Created` with the following JSON:

```json
{
  "id": "1cb5e233-908b-4799-80d7-943b86d3916c",
  "drive_id": "3b5b9cab-073d-416a-bcf1-f2b3154fb0ee",
  "parent_id": null,
  "name": "My Folder",
  "versions": [],
  "is_locked": false,
  "locked_by_id": null,
  "uploaded_by_id": null,
  "url": null,
  "format": null,
  "thumbnail": null,
  "thumbnail_tiny": null,
  "type": "folder",
  "length": null,
  "width": null,
  "height": null,
  "dimensions": null,
  "size_bytes": 0,
  "status": "pending",
  "meta": null,
  "file_extension": null,
  "is_shared": false,
  "share_slug": null,
  "share_url": null,
  "description": null,
  "created_at": "2024-11-27T21:05:01.000000Z",
  "updated_at": "2024-11-27T21:05:01.000000Z",
  "children": []
}
```

### Errors

If the drive is not found, the API will return a `404 Not Found` status code and the following JSON:

```json
{
  "error": {
    "message": "Drive not found",
    "details": "Drive not found"
  }
}
```

If the parent folder is not found, the API will return a `404 Not Found` status code and the following JSON:

```json
{
  "error": {
    "message": "Parent folder not found",
    "details": "Parent folder not found"
  }
}
```

If you try to create a folder not inside another folder, the API will return a `400 Bad Request` status code and the following JSON:

```json
{
  "error": {
    "message": "Cannot upload to selected location",
    "details": "Parent asset is not a folder"
  }
}
```

## Request Parameters

The following parameters can be used with the `/folder` endpoint for **POST** requests:

| Parameter | Type | Description |
| --- | --- | --- |
| **name** | string | The name of the folder to be created. |
| **description** | string | A description of the folder. |

## Request Example

Below is an example of making a **POST** request to the `/folder` endpoint to create a new folder within a drive and parent folder:

```bash
curl -X POST https://drive-api.disguise.cloud/v1/drives/{{drive_id}}/content/{{content_id}}/folder \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
  "name": "New Folder",
  "description": "This is a new folder"
}'
```
