Manage Applications

    Update a folder

    put
    https://api.box.com/2.0
    /folders/:folder_id

    Updates a folder. This can be also be used to move the folder, create shared links, update collaborations, and more.

    Folder locking

    When moving a folder, part of the file tree will be locked, mainly the source folder and all of its descendants, as well as the destination folder.

    For the duration of the move, no other move, copy, delete, or restore operation can performed on any of the locked folders.

    Timeout

    Timeout for this operation is 60 seconds. The operation will complete after a HTTP 503 has been returned.

    Request

    application/json

    Path Parameters

    stringin pathrequired
    0

    The unique identifier that represent a folder.

    The ID for any folder can be determined by visiting this folder in the web application and copying the ID from the URL. For example, for the url https://*.app.box.com/folder/123 the folder_id is 123.

    The root folder of a Box account is always represented by the ID 0.

    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

    booleanin bodyoptional
    true

    Specifies if users who are not the owner of the folder can invite new collaborators to the folder.

    true

    Restricts collaborators who are not the owner of this folder from inviting other users to this folder.

    booleanin bodyoptional
    true

    Restricts collaborators who are not the owner of this folder from viewing other collaborations on this folder.

    It also restricts non-owners from inviting new collaborators.

    When setting this field to false, it is required to also set can_non_owners_invite_collaborators to false if it has not already been set.

    Parent arrayin bodyoptional

    An array of collections to make this folder a member of. Currently we only support the favorites collection.

    To get the ID for a collection, use the List all collections endpoint.

    Passing an empty array [] or null will remove the folder from all collections.

    stringin bodyoptional
    Legal contracts for the new ACME deal256

    The optional description of this folder

    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.

    Setting the value to null will disable the email address.

    stringin bodyoptional
    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"

    true

    Specifies if new invites to this folder are restricted to users within the enterprise. This does not affect existing collaborations.

    stringin bodyoptional
    New Folder

    The optional new name for this folder.

    Changes the user that owns this folder.

    stringin bodyoptional
    123456

    The ID of user that owns this item.

    objectin body

    The parent folder for this folder. Use this to move the folder or to restore it out of the trash.

    stringin bodyoptional
    0

    The ID of the new 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"

    string arrayin bodyoptional
    ["approved"]

    The tags for this item. These tags are shown in the Box web app and mobile apps next to an item.

    To add or remove a tag, retrieve the item's current tags, modify them, and then update this field.

    There is a limit of 100 tags per item, and 10,000 unique tags per enterprise.

    Request Headers

    stringin headeroptional
    1

    Ensures this item hasn't recently changed before making changes.

    Pass in the item's last observed etag value into this header and the endpoint will fail with a 412 Precondition Failed if it has changed since.

    Response

    application/jsonFolder

    Returns a folder object for the updated folder

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

    This call will return synchronously. This holds true even when moving folders with a large a large number of items in all of its descendants. For very large folders, this means the call could take minutes or hours to return.

    application/jsonClient Error

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

    • bad_request when a parameter is missing or incorrect. This error also happens when a password is set for a shared link with an access type of open.
    • item_name_too_long when the folder name is too long.
    • item_name_invalid when the folder name contains invalid characters.
    application/jsonClient Error

    Returns an error if the user does not have the required access to perform the action.

    • access_denied_insufficient_permissions: Returned when the user does not have access to the folder or parent folder.

    • insufficient_scope: Returned an error if the application does not have the right scope to update folders. Make sure your application has been configured to read and write all files and folders stored in Box.

    • forbidden: Returned when the user is not allowed to perform this action for other users. This can include trying to create a Shared Link with a company access level on a free account.

    application/jsonClient Error

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

    • not_found when the authenticated user does not have access to the folder or 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 progress.

      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

    Returns an error when the If-Match header does not match the current etag value of the folder. This indicates that the folder has changed since it was last requested.

    application/jsonClient Error

    Returns an error when the operation takes longer than 60 seconds. The operation will continue after this response has been returned.

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

    Request Example

    cURL
    curl -X PUT https://api.box.com/2.0/folders/4353455 \
         -H "Authorization: Bearer <ACCESS_TOKEN>" \
         -H "Content-Type: application/json" \
         -d '{
           "name": "New folder name"
         }'
    .NET
    var requestParams = new BoxFolderRequest()
    {
        Id = "11111",
        Name = "My Documents (2017)"
    };
    BoxFolder updatedFolder = await client.FoldersManager.UpdateInformationAsync(requestParams);
    Java
    BoxFolder folder = new BoxFolder(api, "id");
    BoxFolder.Info info = folder.new Info();
    info.setName("New Name");
    folder.updateInfo(info);
    Python
    updated_folder = client.folder(folder_id='22222').update_info({
        'name': '[ARCHIVED] Planning documents',
        'description': 'Old planning documents',
    })
    print('Folder updated!')
    Node
    client.folders.update('11111', {name: 'Pictures from 2017'})
        .then(updatedFolder => {
            /* updatedFolder -> {
                type: 'folder',
                id: '11111',
                sequence_id: '1',
                etag: '1',
                name: 'Pictures from 2017',
                created_at: '2012-12-12T10:53:43-08:00',
                modified_at: '2012-12-12T11:15:04-08:00',
                description: 'Some pictures I took',
                size: 629644,
                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: 1,
                    entries: 
                    [ { type: 'file',
                        id: '33333',
                        sequence_id: '3',
                        etag: '3',
                        sha1: '134b65991ed521fcfe4724b7d814ab8ded5185dc',
                        name: 'tigers.jpeg' } ],
                    offset: 0,
                    limit: 100 } }
            */
        });

    Response Example

    {
      "id": 12345,
      "etag": 1,
      "type": "folder",
      "sequence_id": 3,
      "name": "Contracts",
      "created_at": "2012-12-12T10:53:43-08:00",
      "modified_at": "2012-12-12T10:53:43-08:00",
      "description": "Legal contracts for the new ACME deal",
      "size": 629644,
      "path_collection": {
        "total_count": 1,
        "entries": [
          {
            "id": 12345,
            "etag": 1,
            "type": "folder",
            "sequence_id": 3,
            "name": "Contracts"
          }
        ]
      },
      "created_by": {
        "id": 11446498,
        "type": "user",
        "name": "Aaron Levie",
        "login": "ceo@example.com"
      },
      "modified_by": {
        "id": 11446498,
        "type": "user",
        "name": "Aaron Levie",
        "login": "ceo@example.com"
      },
      "trashed_at": "2012-12-12T10:53:43-08:00",
      "purged_at": "2012-12-12T10:53:43-08:00",
      "content_created_at": "2012-12-12T10:53:43-08:00",
      "content_modified_at": "2012-12-12T10:53:43-08:00",
      "expires_at": "2012-12-12T10:53:43-08:00",
      "owned_by": {
        "id": 11446498,
        "type": "user",
        "name": "Aaron Levie",
        "login": "ceo@example.com"
      },
      "shared_link": {
        "url": "https://www.box.com/s/vspke7y05sb214wjokpk",
        "download_url": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg",
        "vanity_url": "https://acme.app.box.com/v/my_url/",
        "access": "open",
        "effective_access": "company",
        "effective_permission": "can_download",
        "unshared_at": "2018-04-13T13:53:23-07:00",
        "is_password_enabled": true,
        "permissions": {
          "can_download": true,
          "can_preview": true
        },
        "download_count": 3,
        "preview_count": 3
      },
      "folder_upload_email": {
        "access": "open",
        "email": "upload.Contracts.asd7asd@u.box.com"
      },
      "parent": {
        "id": 12345,
        "etag": 1,
        "type": "folder",
        "sequence_id": 3,
        "name": "Contracts"
      },
      "item_status": "active",
      "item_collection": {
        "total_count": 5000,
        "limit": 1000,
        "offset": 2000,
        "order": [
          {
            "by": "type",
            "direction": "ASC"
          }
        ],
        "entries": [
          {
            "id": 12345,
            "etag": 1,
            "type": "file",
            "sequence_id": 3,
            "name": "Contract.pdf"
          }
        ]
      },
      "sync_state": "synced",
      "has_collaborations": true,
      "permissions": {
        "can_delete": true,
        "can_download": true,
        "can_invite_collaborator": true,
        "can_rename": true,
        "can_set_share_access": true,
        "can_share": true,
        "can_upload": true
      },
      "tags": [
        "approved"
      ],
      "can_non_owners_invite": true,
      "is_externally_owned": true,
      "is_collaboration_restricted_to_enterprise": true,
      "allowed_shared_link_access_levels": [
        "open"
      ],
      "allowed_invitee_roles": [
        "open"
      ],
      "watermark_info": {
        "is_watermarked": true
      },
      "can_non_owners_view_collaborators": true
    }