> Portal Navigation:
>
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt
# CreateFolder
# Package: mediaManager
# Namespace: FoldersService
# Method link: https://dev.wix.com/docs/api-reference/assets/media/media-manager/folders/create-folder.md
## Permission Scopes:
Manage Media Manager: SCOPE.DC-MEDIA.MANAGE-MEDIAMANAGER
## Introduction
Creates a new folder in the Media Manager.
Use the `parentFolderId` parameter to specify in which existing folder you want the new folder to be created.
If no folder is specified, the new folder is created in the `media-root` folder.
---
## REST API
### Schema
```
Method: createFolder
Description: Creates a new folder in the Media Manager.
Use the `parentFolderId` parameter to specify in which existing folder you want the new folder to be created. If no folder is specified, the new folder is created in the `media-root` folder.
URL: https://www.wixapis.com/site-media/v1/folders
Method: POST
# Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
Required parameters: displayName
Method parameters:
param name: displayName | type: displayName | description: Folder name that appears in the Media Manager. | required: true
param name: parentFolderId | type: parentFolderId | description: GUID of the folder's parent folder.
Return type: CreateFolderResponse
- name: folder | type: Folder | description: Information about the newly created folder.
- name: id | type: string | description: Folder GUID. Generated when a folder is created in the Media Manager.
- name: displayName | type: string | description: Folder name as it appears in the Media Manager.
- name: parentFolderId | type: string | description: GUID of the folder's parent folder.
Default: `media-root` folder.
- name: createdDate | type: string | description: Date the folder was created.
- name: updatedDate | type: string | description: Date the folder was updated.
- name: state | type: State | description: State of the folder.
- enum: OK, DELETED
- name: siteId | type: string | description: Site GUID the folder belongs to.
```
### Examples
### Create a folder
```curl
curl -X POST \
'https://www.wixapis.com/site-media/v1/folders' \
-H 'Authorization: ' \
-H 'Content-Type: application/json' \
--data-binary '{
"displayName": "New Folder",
"parentFolderId": "25284aa06584441ea94338fdcfbaba12"
}'
```
---
## JavaScript SDK
### Schema
```
Method: wixClientAdmin.mediaManager.FoldersService.createFolder(displayName, options)
Description: Creates a new folder in the Media Manager.
Use the `parentFolderId` parameter to specify in which existing folder you want the new folder to be created. If no folder is specified, the new folder is created in the `media-root` folder.
# Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
Required parameters: displayName
Method parameters:
param name: displayName | type: string | description: Folder name that appears in the Media Manager. | required: true
param name: options | type: CreateFolderOptions none
- name: parentFolderId | type: string | description: GUID of the folder's parent folder.
Return type: PROMISE
- name: folder | type: Folder | description: Information about the newly created folder.
- name: _id | type: string | description: Folder GUID. Generated when a folder is created in the Media Manager.
- name: displayName | type: string | description: Folder name as it appears in the Media Manager.
- name: parentFolderId | type: string | description: GUID of the folder's parent folder.
Default: `media-root` folder.
- name: _createdDate | type: Date | description: Date the folder was created.
- name: _updatedDate | type: Date | description: Date the folder was updated.
- name: state | type: State | description: State of the folder.
- enum: OK, DELETED
- name: siteId | type: string | description: Site GUID the folder belongs to.
```
### Examples
### Create a folder from visitor input (with $w)
This code is an example of a page on which a visitor chooses a folder from a dropdown list, and then creates a folder within that folder.
```javascript
/******************************************
* Backend code - create-folder.web.js/ts *
*****************************************/
import { Permissions, webMethod } from '@wix/web-methods';
import { folders } from '@wix/media';
import { auth } from '@wix/essentials';
export const listFolders = webMethod(Permissions.Anyone, async () => {
try {
const elevatedListFolders = auth.elevate(folders.listFolders)
const foldersList = await elevatedListFolders();
return foldersList;
} catch (error) {
console.error(error);
}
});
export const createFolder = webMethod(Permissions.Anyone, async (displayName, options) => {
try {
const elevateCreateFolder = auth.elevate(folders.createFolder);
const newFolder = await elevateCreateFolder(displayName, options);
return newFolder;
} catch (err){
console.error(err);
}
});
/*************
* Page code *
************/
import { createFolder, listFolders } from 'backend/create-folder.web';
$w.onReady(async () => {
await populateFoldersDropdown();
$w('#createFolder').onClick(async () => {
const folderName = $w('folderName').value;
const createOptions = {parentFolderId: $w('foldersDropdown').value};
const newFolder = await createFolder(folderName, createOptions);
console.log(`Successfully created new folder "${folderName}" in ${$w('#foldersDropdown').label}.`)
$w('#createdFolderSuccessMsg').show();
});
});
async function populateFoldersDropdown() {
const folderList = await listFolders();
const dropdownOptions = folderList.folders.map((folder) => {
return {
label: folder.displayName,
value: folder._id
};
});
$w('#foldersDropdown').options = dropdownOptions;
};
```
### Create a folder (with elevated permissions)
```javascript
import { folders } from '@wix/media';
import { auth } from '@wix/essentials';
const elevatedCreateFolder = auth.elevate(folders.createFolder);
/* Sample displayName value: 'Vector Art'
*
* Sample options value:
* {
* parentFolderId: 'b2bc72834460412494c93617d88b8c89'
* }
*/
async function myCreateFolderFunction(displayName, options) {
try {
const newFolder = await elevatedCreateFolder(displayName, options);
console.log('Created folder successfully:', newFolder);
return newFolder;
} catch (err){
console.error(err);
// Handle the error
}
}
/* Promise resolves to:
* {
* "folder": {
* "_createdDate": "2023-08-14T08:05:03.000Z",
* "_id": "128833f888ea4846bbfbe8f164f3c6b5",
* "_updatedDate": "2023-08-14T08:05:03.000Z",
* "displayName": "Vector Art",
* "parentFolderId": "b2bc72834460412494c93617d88b8c89",
* "state": "OK"
* }
* }
*/
```
### Create a folder
```javascript
import { folders } from '@wix/media';
/* Sample displayName value: 'Vector Art'
*
* Sample options value:
* {
* parentFolderId: 'b2bc72834460412494c93617d88b8c89'
* }
*/
async function myCreateFolderFunction(displayName, options) {
try {
const newFolder = await folders.createFolder(displayName, options);
console.log('Created folder successfully:', newFolder);
return newFolder;
} catch (err){
console.error(err);
// Handle the error
}
}
/* Promise resolves to:
* {
* "folder": {
* "_createdDate": "2023-08-14T08:05:03.000Z",
* "_id": "128833f888ea4846bbfbe8f164f3c6b5",
* "_updatedDate": "2023-08-14T08:05:03.000Z",
* "displayName": "Vector Art",
* "parentFolderId": "b2bc72834460412494c93617d88b8c89",
* "state": "OK"
* }
* }
*/
```
### createFolder (self-hosted)
Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md).
```javascript
import { createClient } from '@wix/sdk';
import { folders } from '@wix/media';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed
const myWixClient = createClient ({
modules: { folders },
// Include the auth strategy and host as relevant
});
async function createFolder(displayName,options) {
const response = await myWixClient.folders.createFolder(displayName,options);
};
```
---