Assets Author API (2024.11-experimental)

Download OpenAPI specification:Download

API definitions for asset management capabilities in AEM Assets. To configure a client to access to these APIs, visit the Adobe Developer Console and add the "AEM Assets Author API" card to your project.

Assets

APIs for working with assets

Delete asset

Deletes an existing asset from the system. In most cases, a 204 response will be returned immediately, but in some cases, a 202 will be returned if the operation may take a long time to complete. This most commonly occurs when an asset has a large number of references to update, but can occur for other reasons as well.

SecurityBearer and ApiKeyAuth
Request
path Parameters
assetId
required
string (AssetId) non-empty

ID of the asset

Example: urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
query Parameters
force
boolean

If true, delete the asset even if it is referenced

header Parameters
X-Adobe-Accept-Experimental
required
integer
Value: 1
Responses
202

Accepted

204

No Content

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/{assetId}
Request samples
Response samples
application/json
{
  • "jobId": "85f7c90a-a252-4e82-8cf3-3c989829cdf9",
  • "state": "PROCESSING"
}

Get the status of an async job

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

SecurityBearer and ApiKeyAuth
Request
path Parameters
jobId
required
string

ID of an asynchronous job

Examples:
542c88b4-e136-4341-9221-ae42d3d70b10
header Parameters
X-Adobe-Accept-Experimental
required
integer
Value: 1
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"
}

Events

Events generated by AEM Assets

Asset processing completed eventWebhook

Event triggered when an asset has completed processing in AEM. This is often used in place of an 'asset created' event for use cases that trigger from asset creation for two reasons - many extensions require some amount of asset metadata, which is extracted during asset processing and acting upon an asset that is in processing has a high chance of running into conflicts and contention issues.

SecurityNone
Request
Request Body schema: application/json
id
required
string non-empty

An identifier for the event. When used in combination with the source property, it allows for each instance of an event to be uniquely identified. That is to say, the combination of the source + id properties will be unique for each distinct event. If a duplicate event is re-sent (e.g. due to a network error) it may have the same id and should be treated as a duplicate.

source
required
string <uri> non-empty ^acct:aem(-cmstg)?-p\d+-e\d+@adobe\.com$

An instance of the acct URI scheme that uniquely identifies the producer of this event, of the format acct:aem-p<programId>-e<environmentId>@adobe.com.

specversion
required
string >= 3 characters

The version of the CloudEvents specification which the event uses. AEM events use the CloudEvents spec version 1.0.2, hence this value will be 1.0.

Value: "1.0"
type
required
string >= 4 characters ^aem\..*$

The type for the event. This will identify the AEM solution that has dispatched the event and may also include the type of entity and the activity that occurred.

Value: "aem.assets.asset.processing_completed"
datacontenttype
required
string non-empty

The format of the data in the event. This will always be application/json for AEM events.

Value: "application/json"
dataschema
string <uri>

An optional attribute, which may point to a JSON schema document that covers the data object.

time
required
string <date-time> non-empty

A timestamp of when the event occurred.

required
object

The event payload.

Responses
200

Asset processing completed event data is received successfully

Request samples
application/json
{
  • "specversion": "1.0",
  • "type": "aem.assets.asset.processing_completed",
  • "source": "acct:aem-p56789-e12345@adobe.com",
  • "id": "7c1104e5-4cd7-47d6-a50f-2568c480f2e9",
  • "time": "2018-04-05T17:31:00Z",
  • "datacontenttype": "application/json",
  • "data": {
    }
}

Asset deleted eventWebhook

An event that is triggered when an asset is deleted from AEM through the Assets View UI or the Assets Open API. It is not triggered when the asset is deleted with the AEM Touch UI or other AEM APIs.

SecurityNone
Request
Request Body schema: application/json
id
required
string non-empty

An identifier for the event. When used in combination with the source property, it allows for each instance of an event to be uniquely identified. That is to say, the combination of the source + id properties will be unique for each distinct event. If a duplicate event is re-sent (e.g. due to a network error) it may have the same id and should be treated as a duplicate.

source
required
string <uri> non-empty ^acct:aem(-cmstg)?-p\d+-e\d+@adobe\.com$

An instance of the acct URI scheme that uniquely identifies the producer of this event, of the format acct:aem-p<programId>-e<environmentId>@adobe.com.

specversion
required
string >= 3 characters

The version of the CloudEvents specification which the event uses. AEM events use the CloudEvents spec version 1.0.2, hence this value will be 1.0.

Value: "1.0"
type
required
string >= 4 characters ^aem\..*$

The type for the event. This will identify the AEM solution that has dispatched the event and may also include the type of entity and the activity that occurred.

Value: "aem.assets.asset.deleted"
datacontenttype
required
string non-empty

The format of the data in the event. This will always be application/json for AEM events.

Value: "application/json"
dataschema
string <uri>

An optional attribute, which may point to a JSON schema document that covers the data object.

time
required
string <date-time> non-empty

A timestamp of when the event occurred.

required
object

The event payload.

Responses
200

Asset deleted event data is received successfully

Request samples
application/json
{
  • "specversion": "1.0",
  • "type": "aem.assets.asset.deleted",
  • "source": "acct:aem-p56789-e12345@adobe.com",
  • "id": "4fd1cdd8-0898-4d60-90ad-3d442517d3cb",
  • "time": "2021-05-20T20:00:00.000Z",
  • "datacontenttype": "application/json",
  • "data": {
    }
}

Asset downloaded eventWebhook

Event triggered when an asset, folder or collection of assets is downloaded from AEM.

SecurityNone
Request
Request Body schema: application/json
id
required
string non-empty

An identifier for the event. When used in combination with the source property, it allows for each instance of an event to be uniquely identified. That is to say, the combination of the source + id properties will be unique for each distinct event. If a duplicate event is re-sent (e.g. due to a network error) it may have the same id and should be treated as a duplicate.

source
required
string <uri> non-empty ^acct:aem(-cmstg)?-p\d+-e\d+@adobe\.com$

An instance of the acct URI scheme that uniquely identifies the producer of this event, of the format acct:aem-p<programId>-e<environmentId>@adobe.com.

specversion
required
string >= 3 characters

The version of the CloudEvents specification which the event uses. AEM events use the CloudEvents spec version 1.0.2, hence this value will be 1.0.

Value: "1.0"
type
required
string >= 4 characters ^aem\..*$

The type for the event. This will identify the AEM solution that has dispatched the event and may also include the type of entity and the activity that occurred.

Value: "aem.assets.asset.downloaded"
datacontenttype
required
string non-empty

The format of the data in the event. This will always be application/json for AEM events.

Value: "application/json"
dataschema
string <uri>

An optional attribute, which may point to a JSON schema document that covers the data object.

time
required
string <date-time> non-empty

A timestamp of when the event occurred.

required
object

The event payload.

Responses
200

Asset downloaded event data is received successfully

Request samples
application/json
{
  • "specversion": "1.0",
  • "type": "aem.assets.asset.downloaded",
  • "source": "acct:aem-p56789-e12345@adobe.com",
  • "id": "7c1104e5-4cd7-47d6-a50f-2568c480f2e9",
  • "time": "2018-04-05T17:31:00Z",
  • "datacontenttype": "application/json",
  • "data": {
    }
}

Asset metadata updated eventWebhook

Event triggered when an asset has had its metadata updated through the Assets View UI or the Assets Open API. It is not triggered when metadata is updated with the AEM Touch UI or other AEM APIs.

SecurityNone
Request
Request Body schema: application/json
id
required
string non-empty

An identifier for the event. When used in combination with the source property, it allows for each instance of an event to be uniquely identified. That is to say, the combination of the source + id properties will be unique for each distinct event. If a duplicate event is re-sent (e.g. due to a network error) it may have the same id and should be treated as a duplicate.

source
required
string <uri> non-empty ^acct:aem(-cmstg)?-p\d+-e\d+@adobe\.com$

An instance of the acct URI scheme that uniquely identifies the producer of this event, of the format acct:aem-p<programId>-e<environmentId>@adobe.com.

specversion
required
string >= 3 characters

The version of the CloudEvents specification which the event uses. AEM events use the CloudEvents spec version 1.0.2, hence this value will be 1.0.

Value: "1.0"
type
required
string >= 4 characters ^aem\..*$

The type for the event. This will identify the AEM solution that has dispatched the event and may also include the type of entity and the activity that occurred.

Value: "aem.assets.asset.metadata_updated"
datacontenttype
required
string non-empty

The format of the data in the event. This will always be application/json for AEM events.

Value: "application/json"
dataschema
string <uri>

An optional attribute, which may point to a JSON schema document that covers the data object.

time
required
string <date-time> non-empty

A timestamp of when the event occurred.

required
object

The event payload.

Responses
200

Asset metadata updated event data is received successfully

Request samples
application/json
{
  • "specversion": "1.0",
  • "type": "aem.assets.asset.metadata_updated",
  • "source": "acct:aem-p56789-e12345@adobe.com",
  • "id": "7c1104e5-4cd7-47d6-a50f-2568c480f2e9",
  • "time": "2018-04-05T17:31:00Z",
  • "datacontenttype": "application/json",
  • "data": {
    }
}

Asset published eventWebhook

This event is triggered when an asset is published from an author instance to a publish instance.

SecurityNone
Request
Request Body schema: application/json
id
required
string non-empty

An identifier for the event. When used in combination with the source property, it allows for each instance of an event to be uniquely identified. That is to say, the combination of the source + id properties will be unique for each distinct event. If a duplicate event is re-sent (e.g. due to a network error) it may have the same id and should be treated as a duplicate.

source
required
string <uri> non-empty ^acct:aem(-cmstg)?-p\d+-e\d+@adobe\.com$

An instance of the acct URI scheme that uniquely identifies the producer of this event, of the format acct:aem-p<programId>-e<environmentId>@adobe.com.

specversion
required
string >= 3 characters

The version of the CloudEvents specification which the event uses. AEM events use the CloudEvents spec version 1.0.2, hence this value will be 1.0.

Value: "1.0"
type
required
string >= 4 characters ^aem\..*$

The type for the event. This will identify the AEM solution that has dispatched the event and may also include the type of entity and the activity that occurred.

Value: "aem.assets.asset.published"
datacontenttype
required
string non-empty

The format of the data in the event. This will always be application/json for AEM events.

Value: "application/json"
dataschema
string <uri>

An optional attribute, which may point to a JSON schema document that covers the data object.

time
required
string <date-time> non-empty

A timestamp of when the event occurred.

required
object

The event payload.

Responses
200

Asset published event data is received successfully

Request samples
application/json
{
  • "specversion": "1.0",
  • "type": "aem.assets.asset.published",
  • "source": "acct:aem-p56789-e12345@adobe.com",
  • "id": "4fd1cdd8-0898-4d60-90ad-3d442517d3cb",
  • "time": "2021-05-20T20:00:00.000Z",
  • "datacontenttype": "application/json",
  • "data": {
    }
}

Asset unpublished eventWebhook

An event that is triggered when an asset is unpublished from an AEM publish instance.

SecurityNone
Request
Request Body schema: application/json
id
required
string non-empty

An identifier for the event. When used in combination with the source property, it allows for each instance of an event to be uniquely identified. That is to say, the combination of the source + id properties will be unique for each distinct event. If a duplicate event is re-sent (e.g. due to a network error) it may have the same id and should be treated as a duplicate.

source
required
string <uri> non-empty ^acct:aem(-cmstg)?-p\d+-e\d+@adobe\.com$

An instance of the acct URI scheme that uniquely identifies the producer of this event, of the format acct:aem-p<programId>-e<environmentId>@adobe.com.

specversion
required
string >= 3 characters

The version of the CloudEvents specification which the event uses. AEM events use the CloudEvents spec version 1.0.2, hence this value will be 1.0.

Value: "1.0"
type
required
string >= 4 characters ^aem\..*$

The type for the event. This will identify the AEM solution that has dispatched the event and may also include the type of entity and the activity that occurred.

Value: "aem.assets.asset.unpublished"
datacontenttype
required
string non-empty

The format of the data in the event. This will always be application/json for AEM events.

Value: "application/json"
dataschema
string <uri>

An optional attribute, which may point to a JSON schema document that covers the data object.

time
required
string <date-time> non-empty

A timestamp of when the event occurred.

required
object

The event payload.

Responses
200

Asset unpublished event data is received successfully

Request samples
application/json
{
  • "specversion": "1.0",
  • "type": "aem.assets.asset.unpublished",
  • "source": "acct:aem-p56789-e12345@adobe.com",
  • "id": "4fd1cdd8-0898-4d60-90ad-3d442517d3cb",
  • "time": "2021-05-20T20:00:00.000Z",
  • "datacontenttype": "application/json",
  • "data": {
    }
}

Metadata

APIs for working with asset metadata

Head request for asset metadata

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

SecurityBearer and ApiKeyAuth
Request
path Parameters
assetId
required
string non-empty

ID of the asset to access

Examples:
urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
header Parameters
X-Adobe-Accept-Experimental
required
integer
Value: 1
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/{assetId}/metadata
Request samples
Response samples
application/problem+json
{}

Delivers the specified asset's metadata

Asset metadata contains those metadata values that have been extracted from the asset, configured by the user, or derived from the asset during asset processing. Repository metadata contains metadata properties that are set and maintained by the repository during system operations.

SecurityBearer and ApiKeyAuth
Request
path Parameters
assetId
required
string non-empty

ID of the asset to access

Examples:
urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
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.

X-Adobe-Accept-Experimental
required
integer
Value: 1
Responses
200

Metadata for the specified asset

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/{assetId}/metadata
Request samples
Response samples
application/json
{
  • "value": {
    }
}

Updates the asset's assetMetadata properties

The specified properties will be updated per the RFC-6902 syntax. Note that while assetMetadata is editable, repositoryMetadata is not. If both types are supplied in the request, the assetMetadata properties will be updated and a 200 response will be returned with the failed repositoryMetadata properties listed in the response body.

SecurityBearer and ApiKeyAuth
Request
path Parameters
assetId
required
string non-empty

ID of the asset to access

Examples:
urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
header Parameters
If-Match
required
string

The If-Match header field makes the request method conditional on the recipient origin server either having at least one current representation of the target resource, when the field value is "*", or having a current representation of the target resource that has an entity tag matching a member of the list of entity tags provided in the field value.

For more details, please head over to RFC9110.

X-Adobe-Accept-Experimental
required
integer
Value: 1
Request Body schema: application/json-patch+json
Array
op
required
string

The operation to perform

path
required
string non-empty

The location where information should be added

required
string or number or Array of any or object

The information to place at the location indicated by the path parameter

Responses
200

Patch applied

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

412

Precondition Failed

428

Precondition Required

patch/{assetId}/metadata
Request samples
application/json-patch+json
[
  • {
    },
  • {
    },
  • {
    }
]
Response samples
application/json
{
  • "value": {
    }
}