Folders API (2024.11-experimental)

Download OpenAPI specification:Download

API definitions for folder management capabilities in Adobe Experience Manager. To configure a client to access to these APIs, visit the Adobe Developer Console and add the "AEM Assets Author API" card or the "AEM CS Sites Content Management API" card to your project.

Folders

APIs for interacting with folders

List folders at the specified path

The folder path is specified as a query parameter. Child folders are returned in a JSON array.

SecurityBearer and ApiKeyHeader
Request
query Parameters
path
string non-empty
Default: "/"

Path of the folder from which to list the children.

Example: path=/content/dam/my-folder
limit
integer <int32> (Limit) [ 1 .. 50 ]

For a paginated request, this parameter defines the maximum number of items to retrieve.

cursor
string (Cursor) non-empty

When the number of results for a request exceeds the allowed limit, the response will include a cursor. That value can then be sent via this parameter on a subsequent request to retrieve the next set of items.

header Parameters
If-None-Match
string

The If-None-Match header field makes the request method conditional on a recipient cache or origin server either not having any current representation of the target resource, when the field value is "*", or having a selected representation with an entity tag that does not match any of those listed in the field value.

For more details, please head over to RFC9110.

Responses
200

List of children at the specified path

304

Not Modified

400

Bad Request. The Problem Details object will provide more information about the exact cause.

401

Unauthorized

403

Forbidden

404

Not Found

406

Unacceptable. indicates that the target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request.

get/
Request samples
Response samples
application/json
{
  • "self": {
    },
  • "children": [
    ]
}

Head request for listing folders at specified path

Returns headers, including an ETag for the specified folder path specified as a query parameter

SecurityBearer and ApiKeyHeader
Request
query Parameters
path
string non-empty
Default: "/"

Path of the folder

Example: path=/content/dam/my-folder
limit
integer <int32> (Limit) [ 1 .. 50 ]

For a paginated request, this parameter defines the maximum number of items to retrieve.

cursor
string (Cursor) non-empty

When the number of results for a request exceeds the allowed limit, the response will include a cursor. That value can then be sent via this parameter on a subsequent request to retrieve the next set of items.

header Parameters
If-None-Match
string

The If-None-Match header field makes the request method conditional on a recipient cache or origin server either not having any current representation of the target resource, when the field value is "*", or having a selected representation with an entity tag that does not match any of those listed in the field value.

For more details, please head over to RFC9110.

Responses
200

OK

400

Bad Request. The Problem Details object will provide more information about the exact cause.

401

Unauthorized

403

Forbidden

404

Not Found

406

Unacceptable. indicates that the target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request.

head/
Request samples
Response samples
application/problem+json
{}

Creates new folders at the specified paths.

One or more folder paths can be specified in the request body. The folders will be created at the specified paths. If intermediate folders are missing, those will be created as well. This operation is limited to batches of 10 folders.

SecurityBearer and ApiKeyHeader
Request
Request Body schema: application/json
Array (<= 10 items)
path
required
string non-empty

The path of the folder to be created

title
string

The title of the folder to be created

Responses
200

Folder created

400

Bad Request. The Problem Details object will provide more information about the exact cause.

401

Unauthorized

403

Forbidden

406

Unacceptable. indicates that the target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request.

409

Conflict

post/
Request samples
application/json
[
  • {
    }
]
Response samples
application/json
{
  • "data": {
    },
  • "operation": "string",
  • "status": 0,
  • "description": "string",
  • "errors": [
    ],
  • "warnings": [
    ]
}

Delete folder(s) by path

The folders with the specified paths will be deleted. If the delete operation requires more than a few seconds to complete, a job is created and a status link is returned in the response's 'Location' header. Once the async job is complete, the status link will return the results of the operation.

SecurityBearer and ApiKeyHeader
Request
Request Body schema: application/json
paths
required
Array of strings <= 10 items

The path of the folder to be deleted

recursive
boolean

If true, delete the directory and all descendants

force
boolean

If true, delete the directory even if it is referenced

Responses
200

Folders deleted successfully

202

Accepted

400

Bad Request. The Problem Details object will provide more information about the exact cause.

401

Unauthorized

403

Forbidden

404

Not Found

406

Unacceptable. indicates that the target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request.

409

Conflict

post/delete
Request samples
application/json
{
  • "paths": [
    ],
  • "recursive": true,
  • "force": true
}
Response samples
application/json
{
  • "operation": "adobe.folders.deleteFolders",
  • "status": 200,
  • "description": "Folders have been successfully deleted.",
  • "data": {
    },
  • "errors": []
}

Head request for listing folders under the specified folder ID

Returns headers, including an ETag for the specified folder, which can be a lighter method of checking for the existence of, or validating a cached version of a folder without sending a full GET request.

SecurityBearer and ApiKeyHeader
Request
path Parameters
folderId
required
string non-empty

ID of the folder to access

Examples:
urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
query Parameters
limit
integer <int32> (Limit) [ 1 .. 50 ]

For a paginated request, this parameter defines the maximum number of items to retrieve.

cursor
string (Cursor) non-empty

When the number of results for a request exceeds the allowed limit, the response will include a cursor. That value can then be sent via this parameter on a subsequent request to retrieve the next set of items.

header Parameters
If-None-Match
string

The If-None-Match header field makes the request method conditional on a recipient cache or origin server either not having any current representation of the target resource, when the field value is "*", or having a selected representation with an entity tag that does not match any of those listed in the field value.

For more details, please head over to RFC9110.

Responses
200

OK

400

Bad Request. The Problem Details object will provide more information about the exact cause.

401

Unauthorized

403

Forbidden

404

Not Found

406

Unacceptable. indicates that the target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request.

head/{folderId}
Request samples
Response samples
application/problem+json
{}

List folders under the specified folder ID

The specified folder's child folders are returned in a JSON array.

SecurityBearer and ApiKeyHeader
Request
path Parameters
folderId
required
string non-empty

ID of the folder to access

Examples:
urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
query Parameters
limit
integer <int32> (Limit) [ 1 .. 50 ]

For a paginated request, this parameter defines the maximum number of items to retrieve.

cursor
string (Cursor) non-empty

When the number of results for a request exceeds the allowed limit, the response will include a cursor. That value can then be sent via this parameter on a subsequent request to retrieve the next set of items.

header Parameters
If-None-Match
string

The If-None-Match header field makes the request method conditional on a recipient cache or origin server either not having any current representation of the target resource, when the field value is "*", or having a selected representation with an entity tag that does not match any of those listed in the field value.

For more details, please head over to RFC9110.

Responses
200

List of children at the specified path

304

Not Modified

400

Bad Request. The Problem Details object will provide more information about the exact cause.

401

Unauthorized

403

Forbidden

404

Not Found

406

Unacceptable. indicates that the target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request.

get/{folderId}
Request samples
Response samples
application/json
{
  • "self": {
    },
  • "children": [
    ]
}

Delete folder by its ID

The folder with the specified ID will be deleted. If the delete operation requires more than a few seconds to complete, a job is created and a status link is returned in the response header that can be used to check the status.

SecurityBearer and ApiKeyHeader
Request
path Parameters
folderId
required
string non-empty

ID of the folder to access

Examples:
urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
query Parameters
recursive
boolean

If true, delete the directory and all descendants

force
boolean

If true, delete the directory even if it is referenced

Responses
200

Folder deleted successfully

202

Accepted

400

Bad Request. The Problem Details object will provide more information about the exact cause.

401

Unauthorized

403

Forbidden

404

Not Found

406

Unacceptable. indicates that the target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request.

delete/{folderId}
Request samples
Response samples
application/json
{
  • "operation": "adobe.folders.deleteFolders",
  • "status": 200,
  • "description": "Folders have been successfully deleted.",
  • "data": {
    },
  • "errors": []
}

Get the status of an async job

Retrieves the current status of a job created by the folder API.

SecurityBearer and ApiKeyHeader
Request
path Parameters
jobId
required
string <uuid>

ID of a backend asynchronous job

Examples:
542c88b4-e136-4341-9221-ae42d3d70b10
Responses
200

Status of a job being processed

303

The job has finished executing and results are available at the indicated location.

400

Bad Request. The Problem Details object will provide more information about the exact cause.

401

Unauthorized

403

Forbidden

404

Not Found

406

Unacceptable. indicates that the target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request.

get/jobs/{jobId}/status
Request samples
Response samples
application/json
{
  • "jobId": "85f7c90a-a252-4e82-8cf3-3c989829cdf9",
  • "state": "PROCESSING"
}

Get the results of a completed job

Retrieves the current status of a job created by the folder API.

SecurityBearer and ApiKeyHeader
Request
path Parameters
jobId
required
string <uuid>

ID of a backend asynchronous job

Examples:
542c88b4-e136-4341-9221-ae42d3d70b10
Responses
200

The results of the completed or failed async job.

400

Bad Request. The Problem Details object will provide more information about the exact cause.

401

Unauthorized

403

Forbidden

404

Not Found

406

Unacceptable. indicates that the target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request.

get/jobs/{jobId}/result
Request samples
Response samples
application/json
{
  • "operation": "adobe.folders.deleteFolders",
  • "status": 200,
  • "description": "Folders have been successfully deleted.",
  • "data": {
    },
  • "errors": []
}