---
schema_version: "1"
id: b84d61d14fe3011e84831e30fe7ef90f7b1a8f1ef61e4e51b79cc18cd17dee78
title: Content - Folder (Connect API)
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/marketing-cloud/mc-core/references/generated-api-specs/mc-next-folder.md
canonical_url: https://developer.salesforce.com/docs/marketing/marketing-cloud-growth/references/mc-next-folder
source_site: developer.salesforce.com
content_type: documentation
content_hash: c6b49e2904b0a233ca8c226b0784766cdac92f2cb35d51bad03a69fc7c2e9cc1
products:
  - Marketing Cloud Next
  - Marketing Cloud
---
Content - Folder (Connect API)

# Content - Folder (Connect API)

Manage folders in your Marketing Cloud Next content workspace by using Connect API.

This table lists the folder-related use cases that Connect API supports.

| Supported Use Case | HTTP Verb | URI |
| --- | --- | --- |
| Create a folder | [POST](/docs/marketing/marketing-cloud-growth/references/mc-next-folder?meta=createFolder) | /services/data/{apiVersion}/connect/cms/folders |
| Get a folder | [GET](/docs/marketing/marketing-cloud-growth/references/mc-next-folder?meta=getFolder) | /services/data/{apiVersion}/connect/cms/folders/{folderId} |
| Update a folder | [PATCH](/docs/marketing/marketing-cloud-growth/references/mc-next-folder?meta=updateFolder) | /services/data/{apiVersion}/connect/cms/folders/{folderId} |
| Delete a folder | [DELETE](/docs/marketing/marketing-cloud-growth/references/mc-next-folder?meta=deleteFolder) | /services/data/{apiVersion}/connect/cms/folders/{folderId} |

For more information, see [Manage Content Folders in Marketing Cloud Next](/docs/marketing/marketing-cloud-growth/guide/mc-manage-content-folders.html).

**Version:** 68.0

## Servers

*   `https://{subdomain}.my.salesforce.com`
    *   `subdomain (default (no default)) The unique API subdomain for your Salesforce org.`

## Operations

### POST Create a folder.

`POST /services/data/{apiVersion}/connect/cms/folders`

Operation ID: `createFolder`. Tags: Folders.

Create a standard folder within a specified parent folder in your content workspace.

#### Parameters

*   `apiVersion` (path, string, required) The Salesforce API version.
*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to Connect API. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    

#### Request body (required)

The folder to create.

Media type: `application/json`. Schema: `FolderCreateRequest`.

_Example: createUnderParent_ Create a folder in a parent folder.

```
{
  "name": "Q4 Promotional Emails",
  "parentFolderId": "9PuSB000002KUDo0AO"
}
```

#### Responses

*   **201** The folder was created. The response contains the detailed folder representation, including the folder hierarchy and audit fields.
    
    Media type: `application/json`. Schema: `ManagedContentSpaceFolderDetailRepresentation`.
    
    _Example: created_ A folder created in a parent folder.
    
    ```
    {
      "createdBy": "005SB00000eaki1YAA",
      "createdDate": "2026-07-30T15:04:32.000Z",
      "folderHierarchy": [
        {
          "folderType": "System",
          "id": "9PuSB000002aY6r0AE",
          "name": "Messaging Workspace_marketing",
          "parentFolderId": null
        }
      ],
      "folderType": "Standard",
      "id": "9PuSB000002yr570AA",
      "isShared": false,
      "lastModifiedBy": "005SB00000eaki1YAA",
      "lastModifiedDate": "2026-07-30T15:04:32.000Z",
      "name": "Q4 Promotional Emails",
      "parentFolderId": "9PuSB000002aY6r0AE"
    }
    ```
    
*   **400** The request is invalid because the name or parent folder is invalid, a folder with the same name exists in the parent folder, the folder nesting limit is reached, or you don't have access to manage the parent folder. Folder-level access errors return `400`, not `403`, because Connect API maps `ResourceApiException` responses to `400`.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: invalidName_ Invalid folder name.
    
    ```
    [
      {
        "errorCode": "INVALID_API_INPUT",
        "message": "Folder name is invalid"
      }
    ]
    ```
    
    _Example: duplicateName_ Duplicate name in the parent folder.
    
    ```
    [
      {
        "errorCode": "DUPLICATE_VALUE",
        "message": "A folder with this name already exists under the parent folder"
      }
    ]
    ```
    
    _Example: maxDepth_ Maximum folder nesting level reached.
    
    ```
    [
      {
        "errorCode": "LIMIT_EXCEEDED",
        "message": "Maximum folder nesting level reached"
      }
    ]
    ```
    
    _Example: insufficientParentFolderAccess_ You can't manage the specified parent folder.
    
    ```
    [
      {
        "errorCode": "INSUFFICIENT_ACCESS",
        "message": "Insufficient permissions to manage this folder"
      }
    ]
    ```
    
*   **401** The request requires valid authentication credentials.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: unauthorized_ Authentication credentials are missing or invalid.
    
    ```
    [
      {
        "errorCode": "UNAUTHORIZED",
        "message": "Authentication credentials are missing or invalid"
      }
    ]
    ```
    
*   **403** You don't have access to the managed content system. Connect API performs this organization-level or user-level access check before it evaluates folder-level access or request parameters.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: managedContentUnavailable_ Managed content isn't enabled for the user.
    
    ```
    [
      {
        "errorCode": "INSUFFICIENT_ACCESS_OR_READONLY",
        "message": "This feature is not currently enabled for this user."
      }
    ]
    ```
    
*   **500** An internal server error occurred while the API processed the request.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: internalServerError_ An unexpected error occurred.
    
    ```
    [
      {
        "errorCode": "INTERNAL_SERVER_ERROR",
        "message": "An unexpected error occurred while processing the request"
      }
    ]
    ```
    
*   **503** The service is temporarily unavailable. Try the request again later.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: serviceUnavailable_ The service is temporarily unavailable.
    
    ```
    [
      {
        "errorCode": "SERVICE_UNAVAILABLE",
        "message": "The service is temporarily unavailable. Please try again later"
      }
    ]
    ```
    

### GET Retrieve a folder.

`GET /services/data/{apiVersion}/connect/cms/folders/{folderId}`

Operation ID: `getFolder`. Tags: Folders.

Retrieve information about a folder in your content workspace.

#### Parameters

*   `apiVersion` (path, string, required) The Salesforce API version.
*   `folderId` (path, string, required) The 18-character ID of the folder.
*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to Connect API. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    

#### Responses

*   **200** This response indicates that the API accepted your request to retrieve a managed content folder.
    
    Media type: `application/json`. Schema: `ManagedContentSpaceFolderDetailRepresentation`.
    
    _Example retrieved: same as POST /services/data/{apiVersion}/connect/cms/folders 201 response._ A managed content folder.
    
    _Example: retrieved_ A managed content folder.
    
*   **400**
    
    The folder can't be updated because the request is invalid. The API returns this response in these situations:
    
    *   When the folder name specified in the request is invalid or exceeds 255 characters.
        
    *   When the parent folder contains a folder with the same name.
        
    *   When the request includes `parentFolderId`.
        
    *   When the folder is a root folder.
        
    *   When you don't have the permissions required to update the folder.
        
    *   When the specified folder ID has a valid checksum but doesn't exist (if the checksum is invalid, the API returns `404` instead).
        
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: parentFolderRejected_ You can't specify parentFolderId when you update a folder.
    
    ```
    [
      {
        "errorCode": "INVALID_API_INPUT",
        "message": "Updating parentFolder... is not supported."
      }
    ]
    ```
    
    _Example: nameTooLong_ Name exceeds 255 characters.
    
    ```
    [
      {
        "errorCode": "INVALID_FIELD",
        "message": "Folder name exceeds the maximum length of 255 characters"
      }
    ]
    ```
    
    _Example: duplicateName_ Duplicate name in the parent folder.
    
    ```
    [
      {
        "errorCode": "DUPLICATE_VALUE",
        "message": "A folder with this name already exists under the parent folder"
      }
    ]
    ```
    
    _Example: insufficientFolderAccess_ You can't manage the specified folder.
    
    ```
    [
      {
        "errorCode": "INSUFFICIENT_ACCESS",
        "message": "Insufficient permissions to manage this folder"
      }
    ]
    ```
    
    _Example: folderNotFound_ The specified folder has a valid checksum but the ID is invalid.
    
    ```
    [
      {
        "errorCode": "INSUFFICIENT_ACCESS_OR_READONLY",
        "message": "You do not have permission to execute that operation."
      }
    ]
    ```
    
*   **401** The request requires valid authentication credentials.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: unauthorized_ Authentication credentials are missing or invalid.
    
    ```
    [
      {
        "errorCode": "UNAUTHORIZED",
        "message": "Authentication credentials are missing or invalid"
      }
    ]
    ```
    
*   **403** You don't have access to the managed content system. Connect API performs this organization-level or user-level access check before it evaluates folder-level access or request parameters.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: managedContentUnavailable_ Managed content isn't enabled for the user.
    
    ```
    [
      {
        "errorCode": "INSUFFICIENT_ACCESS_OR_READONLY",
        "message": "This feature is not currently enabled for this user."
      }
    ]
    ```
    
*   **404** The folder can't be updated or deleted because the folder ID specified in your request contains an invalid checksum. If the checksum is valid but the folder ID doesn't exist, the API returns `400` instead.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: serviceUnavailable_ The specified resource wasn't found.
    
    ```
    [
      {
        "errorCode": "NOT_FOUND",
        "message": "The requested resource does not exist"
      }
    ]
    ```
    
*   **500** An internal server error occurred while the API processed the request.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: internalServerError_ An unexpected error occurred.
    
    ```
    [
      {
        "errorCode": "INTERNAL_SERVER_ERROR",
        "message": "An unexpected error occurred while processing the request"
      }
    ]
    ```
    
*   **503** The service is temporarily unavailable. Try the request again later.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: serviceUnavailable_ The service is temporarily unavailable.
    
    ```
    [
      {
        "errorCode": "SERVICE_UNAVAILABLE",
        "message": "The service is temporarily unavailable. Please try again later"
      }
    ]
    ```
    

### DELETE Delete a folder.

`DELETE /services/data/{apiVersion}/connect/cms/folders/{folderId}`

Operation ID: `deleteFolder`. Tags: Folders.

Delete a folder from your content workspace. You can delete any empty folder that isn't the root folder.

#### Parameters

*   `apiVersion` (path, string, required) The Salesforce API version.
*   `folderId` (path, string, required) The 18-character ID of the folder.
*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to Connect API. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    

#### Responses

*   **204** The folder was deleted. This response has no body.
*   **400**
    
    The folder can't be deleted because the request is invalid. The API returns this response in these situations:
    
    *   When the specified folder is a root folder.
        
    *   When the specified folder isn't empty.
        
    *   When you don't have the permissions required to delete the specified folder.
        
    *   When the specified folder ID has a valid checksum but doesn't exist (if the checksum is invalid, the API returns `404` instead).
        
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: deleteFailed_ The folder is a root folder or isn't empty.
    
    ```
    [
      {
        "errorCode": "DELETE_FAILED",
        "message": "Folder cannot be deleted because it is a root folder or is not empty"
      }
    ]
    ```
    
    _Example: insufficientFolderAccess_ You can't manage the specified folder.
    
    ```
    [
      {
        "errorCode": "INSUFFICIENT_ACCESS",
        "message": "Insufficient permissions to manage this folder"
      }
    ]
    ```
    
    _Example: folderNotFound_ The specified folder has a valid checksum but the ID is invalid.
    
    ```
    [
      {
        "errorCode": "INSUFFICIENT_ACCESS_OR_READONLY",
        "message": "You do not have permission to execute that operation."
      }
    ]
    ```
    
*   **401** The request requires valid authentication credentials.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: unauthorized_ Authentication credentials are missing or invalid.
    
    ```
    [
      {
        "errorCode": "UNAUTHORIZED",
        "message": "Authentication credentials are missing or invalid"
      }
    ]
    ```
    
*   **403** You don't have access to the managed content system. Connect API performs this organization-level or user-level access check before it evaluates folder-level access or request parameters.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: managedContentUnavailable_ Managed content isn't enabled for the user.
    
    ```
    [
      {
        "errorCode": "INSUFFICIENT_ACCESS_OR_READONLY",
        "message": "This feature is not currently enabled for this user."
      }
    ]
    ```
    
*   **405** In versions of the API before Winter '27 (v68.0), `DELETE` and `PATCH` return this response for existing folders.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: methodNotAllowed_ The HTTP method isn't allowed.
    
    ```
    [
      {
        "errorCode": "METHOD_NOT_ALLOWED",
        "message": "HTTP method not allowed."
      }
    ]
    ```
    
*   **500** An internal server error occurred while the API processed the request.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: internalServerError_ An unexpected error occurred.
    
    ```
    [
      {
        "errorCode": "INTERNAL_SERVER_ERROR",
        "message": "An unexpected error occurred while processing the request"
      }
    ]
    ```
    
*   **503** The service is temporarily unavailable. Try the request again later.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: serviceUnavailable_ The service is temporarily unavailable.
    
    ```
    [
      {
        "errorCode": "SERVICE_UNAVAILABLE",
        "message": "The service is temporarily unavailable. Please try again later"
      }
    ]
    ```
    

### PATCH Update a folder.

`PATCH /services/data/{apiVersion}/connect/cms/folders/{folderId}`

Operation ID: `updateFolder`. Tags: Folders.

Update a folder. You can update only the `name` property for a folder. You can't move it to a different parent folder. You can't rename the root folder.

#### Parameters

*   `apiVersion` (path, string, required) The Salesforce API version.
*   `folderId` (path, string, required) The 18-character ID of the folder.
*   `Authorization` (header, string, required) A unique, time-limited token that you can use to issue requests to Connect API. Replace `YOUR_ACCESS_TOKEN` with your authentication token.
    
    _Example_
    
    ```
    Bearer YOUR_ACCESS_TOKEN
    ```
    

#### Request body (required)

The new folder name.

Media type: `application/json`. Schema: `FolderUpdateRequest`.

_Example: rename_ Rename a folder.

```
{
  "name": "Renamed Assets"
}
```

#### Responses

*   **200** The folder was updated. The response contains the detailed folder representation.
    
    Media type: `application/json`. Schema: `ManagedContentSpaceFolderDetailRepresentation`.
    
    _Example: updated_ A renamed folder.
    
    ```
    {
      "createdBy": "005SB00000eaki1YAA",
      "createdDate": "2026-07-30T15:04:32.000Z",
      "folderHierarchy": [
        {
          "folderType": "System",
          "id": "9PuSB000002aY6r0AE",
          "name": "Messaging Workspace_marketing",
          "parentFolderId": null
        }
      ],
      "folderType": "Standard",
      "id": "9PuSB000002yr570AA",
      "isShared": false,
      "lastModifiedBy": "005SB00000eaki1YAA",
      "lastModifiedDate": "2026-07-30T15:04:32.000Z",
      "name": "Q4 Promotional Emails - Updated",
      "parentFolderId": "9PuSB000002aY6r0AE"
    }
    ```
    
*   **400**
    
    The folder can't be updated because the request is invalid. The API returns this response in these situations:
    
    *   When the folder name specified in the request is invalid or exceeds 255 characters.
        
    *   When the parent folder contains a folder with the same name.
        
    *   When the request includes `parentFolderId`.
        
    *   When the folder is a root folder.
        
    *   When you don't have the permissions required to update the folder.
        
    *   When the specified folder ID has a valid checksum but doesn't exist (if the checksum is invalid, the API returns `404` instead).
        
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: parentFolderRejected_ You can't specify parentFolderId when you update a folder.
    
    ```
    [
      {
        "errorCode": "INVALID_API_INPUT",
        "message": "Updating parentFolder... is not supported."
      }
    ]
    ```
    
    _Example: nameTooLong_ Name exceeds 255 characters.
    
    ```
    [
      {
        "errorCode": "INVALID_FIELD",
        "message": "Folder name exceeds the maximum length of 255 characters"
      }
    ]
    ```
    
    _Example: duplicateName_ Duplicate name in the parent folder.
    
    ```
    [
      {
        "errorCode": "DUPLICATE_VALUE",
        "message": "A folder with this name already exists under the parent folder"
      }
    ]
    ```
    
    _Example: insufficientFolderAccess_ You can't manage the specified folder.
    
    ```
    [
      {
        "errorCode": "INSUFFICIENT_ACCESS",
        "message": "Insufficient permissions to manage this folder"
      }
    ]
    ```
    
    _Example: folderNotFound_ The specified folder has a valid checksum but the ID is invalid.
    
    ```
    [
      {
        "errorCode": "INSUFFICIENT_ACCESS_OR_READONLY",
        "message": "You do not have permission to execute that operation."
      }
    ]
    ```
    
*   **401** The request requires valid authentication credentials.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: unauthorized_ Authentication credentials are missing or invalid.
    
    ```
    [
      {
        "errorCode": "UNAUTHORIZED",
        "message": "Authentication credentials are missing or invalid"
      }
    ]
    ```
    
*   **403** You don't have access to the managed content system. Connect API performs this organization-level or user-level access check before it evaluates folder-level access or request parameters.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: managedContentUnavailable_ Managed content isn't enabled for the user.
    
    ```
    [
      {
        "errorCode": "INSUFFICIENT_ACCESS_OR_READONLY",
        "message": "This feature is not currently enabled for this user."
      }
    ]
    ```
    
*   **404** The folder can't be updated or deleted because the folder ID specified in your request contains an invalid checksum. If the checksum is valid but the folder ID doesn't exist, the API returns `400` instead.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: serviceUnavailable_ The specified resource wasn't found.
    
    ```
    [
      {
        "errorCode": "NOT_FOUND",
        "message": "The requested resource does not exist"
      }
    ]
    ```
    
*   **405** In versions of the API before Winter '27 (v68.0), `DELETE` and `PATCH` return this response for existing folders.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: methodNotAllowed_ The HTTP method isn't allowed.
    
    ```
    [
      {
        "errorCode": "METHOD_NOT_ALLOWED",
        "message": "HTTP method not allowed."
      }
    ]
    ```
    
*   **500** An internal server error occurred while the API processed the request.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: internalServerError_ An unexpected error occurred.
    
    ```
    [
      {
        "errorCode": "INTERNAL_SERVER_ERROR",
        "message": "An unexpected error occurred while processing the request"
      }
    ]
    ```
    
*   **503** The service is temporarily unavailable. Try the request again later.
    
    Media type: `application/json`. Schema: `ErrorList`.
    
    _Example: serviceUnavailable_ The service is temporarily unavailable.
    
    ```
    [
      {
        "errorCode": "SERVICE_UNAVAILABLE",
        "message": "The service is temporarily unavailable. Please try again later"
      }
    ]
    ```
    

## Schemas

### FolderCreateRequest

*   `name` (_string_, required) The folder name. It must start with a letter and can't contain `--`, `__`, `.`, `\`, `/`, or `:`. The first or last character can't be whitespace.  
    Maximum length: 255.
*   `parentFolderId` (_string_, required) The ID of the parent folder to add the folder to.

### ManagedContentSpaceFolderDetailRepresentation

Describes the structure of objects that Create and Update requests return.

Includes all fields of `ManagedContentSpaceFolderRepresentation`.

*   `createdBy` (_string_) The ID of the user who created the folder.
*   `createdDate` (_string (date-time)_) The date and time when the folder was created.
*   `folderHierarchy` (_array of ManagedContentSpaceFolderRepresentation_) The chain of parent folders, from the root folder to this folder.
*   `isShared` (_boolean_) Indicates whether the folder is shared.
*   `lastModifiedBy` (_string_) The ID of the user who last modified the folder.
*   `lastModifiedDate` (_string (date-time)_) The date and time when the folder was last modified.

### ErrorList

Error responses are JSON arrays of error objects, not individual error objects.

Array of `Error`.

### FolderUpdateRequest

The request body for renaming a folder. You can update only the `name` field. If the request body contains other properties, the request fails with a `400` error.

*   `name` (_string_, required) The updated folder name. The name must start with a letter and can't contain `--`, `__`, `.`, `\`, `/`, or `:`. The first or last character can't be whitespace.  
    Maximum length: 255.

### ManagedContentSpaceFolderRepresentation

An object that describes the structure of a folder. The `folderHierarchy` array contains objects of this type.

*   `id` (_string_) The 18-character folder ID.
*   `name` (_string_) The folder name.
*   `parentFolderId` (_string_, nullable) The parent folder ID, or `null` for a root folder.
*   `folderType` (_string_, nullable) The folder type.  
    Allowed values: `Standard`, `SharedWithSpace`, `System`.

### Error

*   `errorCode` (_string_) The error code.
*   `message` (_string_) A description of the error.