Create folder

post
https://api.box.com/2.0
/folders

Creates a new empty folder within the specified parent folder.

Request

application/json

Query Parameters

string arrayin queryoptional
id,type,name

A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response.

Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.

Request Body

objectin body

Setting this object enables the upload email address.

This email address can be used by users to directly upload files directly to the folder via email.

stringnulloptional
open

When this parameter has been set, users can email files to the email address that has been automatically created for this folder.

To create an email address, set this property either when creating or updating the folder.

When set to collaborators, only emails from registered email addresses for collaborators will be accepted. This includes any email aliases a user might have registered.

When set to open it will accept emails from any email address.

Value is one of open,collaborators

stringin bodyrequired
New Folder255

The name for the new folder.

There are some restrictions to the file name. Names containing non-printable ASCII characters, forward and backward slashes (/, \), as well as names with trailing spaces are prohibited.

Additionally, the names . and .. are not allowed either.

objectin body

The parent folder to create the new folder within.

stringnulloptional
0

The ID of parent folder

stringin bodyoptional
synced

Specifies whether a folder should be synced to a user's device or not. This is used by Box Sync (discontinued) and is not used by Box Drive.

Value is one of synced,not_synced,partially_synced

Response

application/jsonFolder

Returns a folder object.

Not all available fields are returned by default. Use the fields query parameter to explicitly request any specific fields.

application/jsonClient error

Returns an error if some of the parameters are missing or not valid.

  • bad_request when a parameter is missing or incorrect.
  • item_name_too_long when the folder name is too long.
  • item_name_invalid when the folder name contains non-valid characters.
application/jsonClient error

Returns an error if the user does not have the required access to perform the action. This might be because they don't have access to the folder or parent folder, or because the application does not have permission to write files and folders.

application/jsonClient error

Returns an error if the parent folder could not be found, or the authenticated user does not have access to the parent folder.

  • not_found when the authenticated user does not have access to the parent folder
application/jsonClient error
  • operation_blocked_temporary: Returned if either of the destination or source folders is locked due to another move, copy, delete or restore operation in process.

    The operation can be retried at a later point.

  • item_name_in_use: Returned if a folder with the name already exists in the parent folder.
application/jsonClient error

An unexpected client error.

post
Create folder
You can now try out some of our APIs live, right here in the documentation.
Log in

Request Example

cURL
curl -X POST https://api.box.com/2.0/folders \
     -H 'Authorization: Bearer <ACCESS_TOKEN>'
     -H 'Content-Type: application/json" '
     -d '{
       "name": "New Folder",
       "parent": {
         "id": "0"
       }
     }'
.NET
// Create a new folder in the user's root folder
var folderParams = new BoxFolderRequest()
{
    Name = "New folder",
    Parent = new BoxRequestEntity()
    {
        Id = "0"
    }
};
BoxFolder folder = client.FoldersManager.CreateAsync(folderParams);
Java
BoxFolder parentFolder = new BoxFolder(api, "id");
BoxFolder.Info childFolderInfo = parentFolder.createFolder("Child Folder Name");
Python
subfolder = client.folder('0').create_subfolder('My Stuff')
print('Created subfolder with ID {0}'.format(subfolder.id))
Node
client.folders.create('0', 'New Folder')
    .then(folder => {
        /* folder -> {
            type: 'folder',
            id: '123456',
            sequence_id: '0',
            etag: '0',
            name: 'New Folder',
            created_at: '2012-12-12T10:53:43-08:00',
            modified_at: '2012-12-12T11:15:04-08:00',
            description: '',
            size: 0,
            path_collection: 
            { total_count: 1,
                entries: 
                [ { type: 'folder',
                    id: '0',
                    sequence_id: null,
                    etag: null,
                    name: 'All Files' } ] },
            created_by: 
            { type: 'user',
                id: '22222',
                name: 'Example User'
                login: 'user@example.com' },
            modified_by: 
            { type: 'user',
                id: '22222',
                name: 'Example User',
                login: 'user@example.com' },
            owned_by: 
            { type: 'user',
                id: '22222',
                name: 'Example User',
                login: 'user@example.com' },
            shared_link: null,
            parent: 
            { type: 'folder',
                id: '0',
                sequence_id: null,
                etag: null,
                name: 'All Files' },
            item_status: 'active',
            item_collection: 
            { total_count: 0,
                entries: [],
                offset: 0,
                limit: 100 } }
        */
    });
iOS
client.folders.create(name: "New Folder", parentId: "22222") { (result: Result<Folder, BoxSDKError>) in
    guard case let .success(folder) = result else {
        print("Error creating folder")
        return
    }

    print("Created folder \"\(folder.name)\" inside of folder \"\(folder.parent.name)\"")
}