Assets Delivery API (2024.10)

Download OpenAPI specification:Download

Assets

APIs for working with asset binaries

Returns web-optimized binary representation of the asset in the requested output format

The seo-name doesn't have a functional impact on the image, but is provided to allow for adding SEO value to asset URLs. The assetId is an opaque string defined by the content repository that can be used to target the asset resource.

In the URL construction, an SEO name and an output image format must be provided. Additionally, following transforms can optionally be specified as query parameters:

  • rotate
  • crop
  • flip
  • size
  • preferwebp
  • height
  • width
  • quality
  • smartcrop

These are applied the order mentioned above, irrespective of where they appear in the URL. Syntax and examples for supported parameters is captured elsewhere in this document.

SecurityNone or Bearer
Request
path Parameters
assetId
required
string (AssetId) non-empty

ID of the asset

Example: urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
seoName
required
string([%.\w-]+)

any url-encoded or alphanumeric, non-whitespace set of characters. may contain hyphens and dots

Examples:
banner
format
required
string

output format

Enum: "gif" "png" "png8" "jpg" "pjpg" "bjpg" "webp" "webpll" "webply"
Example: jpg
query Parameters
rotate
integer

rotation. can be either of '90', '180', '270'

Enum: 90 180 270
Example: rotate=90
Array of strings or Array of integers

can be one of:

  • four comma-separated values, each a number with up to two digits after the decimal point, followed by p: specify relative (percent) dimensions for the crop. First two specify the origin (top, left) of the desired cropped region as percentages of width and height, respectively. Last two specify the size of the cropped region relative to original dimensions of the asset. A valid crop region MUST meet both of the following constraints: * <x-origin> + <crop-region-width> <= 100 * <y-origin> + <crop-region-height> <=100 Requests which don't meet aforementioned constraints will fail.
  • four comma-separated integers: Deprecated: Use relative crop values instead
Examples:
crop=10p,10p,50p,50p
flip
string

horizontal or vertical flipping

Enum: "h" "v" "hv"
Example: flip=h
size
Array of integers = 2 items

comma separated integers specifying width and height of output

Examples:
size=400,200
width
integer >= 1

'width' (horizontal dimension) of the output image.

If 'height' is also specified, then horizontal dimension of the output may smaller than requested to preserve original aspect ratio.

Example: width=400
height
integer >= 1

'height' (vertical dimension) of the output image.

If 'width' is also specified, then vertical dimension of the output may smaller than requested to preserve original aspect ratio.

Example: height=200
quality
integer [ 1 .. 100 ]

%age quality parameter of the output image

Example: quality=75
smartcrop
string

Identifier of the smartcrop to be applied while delivering the asset. Specifying an unresolvable smartcrop identifier will lead to 400 responses.

Example: smartcrop=QHD
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

Web-optimized version of the asset

400

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

401

Unauthorized

403

Forbidden

404

Not Found

get/{assetId}/as/{seoName}.{format}
Request samples
Response samples
application/problem+json
{}

Returns a web-optimized binary representation of the asset

This is a convenience API for /adobe/assets/{assetId}/as/{seoname}.{format}?... that applies following defaults:

  • format => jpeg/webp (auto-determined via server-driven-content-negotiation, based on agent-declared capabilities)
  • quality => 65
  • width => 1024
SecurityNone or Bearer
Request
path Parameters
assetId
required
string (AssetId) non-empty

ID of the asset

Example: 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.

Responses
200

Web-optimized version of the 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

get/{assetId}
Request samples
Response samples
application/problem+json
{}

Returns the originally uploaded binary for the asset

The Original Asset Delivery API accepts an asset ID corresponding to the asset and delivers the bitstream as-is (as it was uploaded). This is a convenience API for /adobe/assets/{assetId}/renditions/{renditionName}/as/{seoname} with renditionName defaulting to original.

SecurityNone or Bearer
Request
path Parameters
assetId
required
string (AssetId) non-empty

ID of the asset

Example: urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
seoName
required
string([%.\w-]+)

any url-encoded or alphanumeric, non-whitespace set of characters. may contain hyphens and dots

Examples:
banner
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

Original binary of the 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

get/{assetId}/original/as/{seoName}
Request samples
Response samples
application/problem+json
{}

Returns a pre-generated (on AEM Assets authoring environment) rendition of the asset

The Asset Rendition Delivery API accepts an asset ID corresponding to the asset and the rendition name, and delivers the selected asset's specified rendition's bitstream as-is (as present on AEM Assets authoring environment).

SecurityNone or Bearer
Request
path Parameters
assetId
required
string (AssetId) non-empty

ID of the asset

Example: urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
renditionName
required
string([%.\w-]+)

any url-encoded or alphanumeric, non-whitespace set of characters that need to match one of the renditions uploaded/created for the specified asset. may contain hyphens and dots

Examples:
banner
seoName
required
string([%.\w-]+)

any url-encoded or alphanumeric, non-whitespace set of characters. may contain hyphens and dots

Examples:
banner
query Parameters
attachment
string

use content-disposition header to force download prompt, if true

Enum: "true" "1" "false" "0"
Example: attachment=true
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

Binary of the specified rendition for the selected 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

get/{assetId}/renditions/{renditionName}/as/{seoName}
Request samples
Response samples
application/problem+json
{}

Returns a list of static renditions of an asset

The List Renditions API accepts an asset ID and returns the static renditions associated with the asset. A success response includes list of available renditions and their attributes.

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

ID of the asset

Example: 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.

Responses
200

List of available renditions

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

get/{assetId}/renditions
Request samples
Response samples
application/json
{
  • "assetId": "urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75",
  • "repo:name": "string",
  • "items": [
    ]
}

Head request for list of static renditions of an asset

Returns headers, including an ETag for the specified asset, which can be a lighter method of checking for the change in list of static renditions, without sending a full GET request.

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

ID of the asset

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

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

Returns the originally uploaded binary for the asset.Deprecated

The Original Asset Delivery API accepts an asset ID corresponding to the asset and delivers the bitstream as-is (as it was uploaded).

This API is deprecated, please use /adobe/assets/{assetId}/original/as/{seo-name}

SecurityNone or Bearer
Request
path Parameters
assetId
required
string (AssetId) non-empty

ID of the asset

Example: urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
seoName
required
string([%.\w-]+)

any url-encoded or alphanumeric, non-whitespace set of characters. may contain hyphens and dots

Examples:
banner
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

Original binary of the 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

get/deliver/{assetId}/{seoName}
Request samples
Response samples
application/problem+json
{}

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.

SecurityNone or Bearer
Request
path Parameters
assetId
required
string non-empty

ID of the asset to access

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

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.

SecurityNone or Bearer
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.

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

get/{assetId}/metadata
Request samples
Response samples
application/json
{
  • "value": {
    }
}

Videos

APIs for working with videos

Delivers the Player container for specified Video asset.

The Delivery API accepts an assetId, and if the ID corresponds to a video asset, delivers Player for video streaming. The asset ID is an opaque string defined by the content repository. The entity composing the Delivery URLs must know them apriori.

SecurityNone or Bearer
Request
path Parameters
assetId
required
string (AssetId) non-empty

ID of the asset

Example: urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
Responses
200

Response Video in Player.

400

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

401

Unauthorized

403

Forbidden

404

Not Found

get/{assetId}/play
Request samples
Response samples
application/problem+json
{}

Delivers the playback manifests for specified Video asset in the selected output format.

The Delivery API accepts an asset ID, and if the ID corresponds to a video asset, delivers the playback manifest in the requested protocol. The asset ID is an opaque string defined by the content repository. The entity composing the Delivery URLs must know them apriori. If the asset is not a video asset, client gets a 404 response.

SecurityNone or Bearer
Request
path Parameters
assetId
required
string (AssetId) non-empty

ID of the asset

Example: urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
format
required
string (VideoManifestFormatParam)

Desired Playback manifest format

Enum: "m3u8" "mpd"
Example: m3u8
Responses
200

Response Video Manifests in selected format

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

get/{assetId}/manifest.{format}
Request samples
Response samples
application/problem+json
{}

Collections

APIs for working with asset collections

Create a collection

Creates a collection that represents a group of Asset(s) and/or Collection(s).

SecurityBearer
Request
Request Body schema: application/json
required
title
required
string non-empty

Title of the Collection

description
string

A short description of the Collection

required
Array of objects

The items in the Collection

Responses
201

Returns information on the recently created collection, including its metadata.

202

Accepted

400

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

401

Unauthorized

403

Forbidden

post/collections
Request samples
application/json
{
  • "title": "Product Images",
  • "description": "Images approved for use in the product catalog",
  • "items": [
    ]
}
Response samples
application/json
{
  • "id": "urn:cid:aem:1a034bee-ebda-4787-bad3-f924d0772b75",
  • "repositoryMetadata": {
    },
  • "collectionMetadata": {
    }
}

List all Collections

Retrieves all the Collections available in the repository.

SecurityBearer
Request
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

A cursor is an opaque string that can be used in API calls which support paginating the response. A non-existent cursor signifies that the returned list does not have more elements.

Responses
200

Collections retrieved successfully

400

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

401

Unauthorized

403

Forbidden

get/collections
Request samples
Response samples
application/json
{
  • "cursor": "string",
  • "items": [
    ]
}

Retrieve a Collection's Metadata

Retrieves collection metadata for a given collection id along with Etag representing the current state of the collection.

SecurityBearer
Request
path Parameters
collectionId
required
string (CollectionId) non-empty

ID of the collection

Example: urn:cid: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

The X-Adobe-Accept-Experimental request header is required when a client wants to opt-in into using an experimental API endpoint. Not providing this header to an endpoint that requires it will make the server answer with a 400 status code.

Value: 1
Responses
200

Collection Metadata Retrieved successfully

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

get/collections/{collectionId}
Request samples
Response samples
application/json
{
  • "id": "urn:cid:aem:1a034bee-ebda-4787-bad3-f924d0772b75",
  • "repositoryMetadata": {
    },
  • "collectionMetadata": {
    }
}

Head request for a collection metadata

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

SecurityNone or Bearer
Request
path Parameters
collectionId
required
string (CollectionId) non-empty

ID of the collection

Example: urn:cid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
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

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

Delete a Collection

Deletes a collection for a given collection id. If the delete operation requires more than a few seconds to complete, a status link with the jobId is returned in the response header that can be used to check the status.

SecurityBearer
Request
path Parameters
collectionId
required
string (CollectionId) non-empty

ID of the collection

Example: urn:cid: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.

Responses
202

Accepted

204

Collection deleted successfully.

400

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

401

Unauthorized

403

Forbidden

404

Not Found

412

Precondition Failed

428

Precondition Required

delete/collections/{collectionId}
Request samples
Response samples
application/problem+json
{}

Update a collection's metadata

Updates the metadata for a given collection id.

SecurityBearer
Request
path Parameters
collectionId
required
string (CollectionId) non-empty

ID of the Collection

Example: urn:cid: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.

Request Body schema: application/json-patch+json
title
string non-empty

Title of the Collection

description
string

A short description of the Collection

Responses
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

412

Precondition Failed

428

Precondition Required

post/collections/{collectionId}
Request samples
application/json-patch+json
{
  • "title": "New Title",
  • "description": "New Description"
}
Response samples
application/problem+json
{}

Get collection items

Retrieve a paginated list of the items in the specified collection.

SecurityBearer
Request
path Parameters
collectionId
required
string (CollectionId) non-empty

ID of the collection

Example: urn:cid: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

A cursor is an opaque string that can be used in API calls which support paginating the response. A non-existent cursor signifies that the returned list does not have more elements.

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

The X-Adobe-Accept-Experimental request header is required when a client wants to opt-in into using an experimental API endpoint. Not providing this header to an endpoint that requires it will make the server answer with a 400 status code.

Value: 1
Responses
200

Collection Retrieved successfully

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

get/collections/{collectionId}/items
Request samples
Response samples
application/json
{
  • "cursor": "string",
  • "self": [
    ],
  • "items": [
    ]
}

Head request for collection items

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

SecurityNone or Bearer
Request
path Parameters
collectionId
required
string (CollectionId) non-empty

ID of the collection

Example: urn:cid: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

A cursor is an opaque string that can be used in API calls which support paginating the response. A non-existent cursor signifies that the returned list does not have more elements.

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

head/collections/{collectionId}/items
Request samples
Response samples
application/problem+json
{}

Update collection items

If the update operation requires more than a few seconds to complete, response includes a Location header which contains the URL to poll for status of this operation.

SecurityBearer
Request
path Parameters
collectionId
required
string (CollectionId) non-empty

ID of the Collection

Example: urn:cid: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.

Request Body schema: application/json
Array
Any of:

Adds or removes an item from the collection.

op
required
string >= 3 characters

Identifies this operation as an add or remove operation

Enum: "add" "remove"
id
required
string non-empty

The ID of the item to add or remove. The ID can specify an asset or a collection.

type
required
string >= 5 characters

The type of item that is referenced by the id. Valid values are asset or collection.

Enum: "asset" "collection"
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

412

Precondition Failed

428

Precondition Required

post/collections/{collectionId}/items
Request samples
application/json
[
  • {
    },
  • {
    }
]
Response samples
application/problem+json
{}

Retrieve a collection's job async status

Retrieves the current job's status for a collection.

SecurityBearer
Request
path Parameters
jobId
required
string non-empty
header Parameters
X-Adobe-Accept-Experimental
required
integer

The X-Adobe-Accept-Experimental request header is required when a client wants to opt-in into using an experimental API endpoint. Not providing this header to an endpoint that requires it will make the server answer with a 400 status code.

Value: 1
Responses
200

Status of a task being processed

400

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

401

Unauthorized

403

Forbidden

404

Not Found

get/collections/jobs/{jobId}/status
Request samples
Response samples
application/json
{
  • "operation": "aem.assets.collections.deleteCollection",
  • "status": 200,
  • "description": "Collection deleted successfully",
  • "data": {
    },
  • "errors": [ ],
  • "warnings": []
}

Events

Events generated by assets delivery tier

Asset delivery disabled eventWebhook

Event triggered when an asset can no longer be rendered through new DM APIs. This is used by applications when processing of asset(s) in delivery tier takes a long time, for example, video assets or assets going through any ML pipeline.

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.removed_from_delivery"
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 delivery disabled event data is received successfully

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

Asset delivery ready eventWebhook

Event triggered when an asset is ready for delivery through new DM APIs. This is used by applications when processing of asset(s) in delivery tier takes a long time, for example, video assets or assets going through any ML pipeline.

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.ready_for_delivery"
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 delivery ready event data is received successfully

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

Archives

APIs for generating archives containing binaries (one or more assets, with one or more renditions) in one of the supported archival formats (e.g., zip).

Archival Request API

Request creation of an archive for the asset references specified in the request payload. The response contains an identifier and metadata pertaining to the archive request. The result of the operation will be one or more archives. The API may use various factors to determine the number of archives required to complete the operation. For example, very large archive request might be split into multiple files. Consumers of this API should use the response Location header to poll for the status of the archive creation request. The polling interval should be determined by the Retry-After header value. Invalid assets specified for inclusion in the archive will not fail the overall creation process. Instead, the API will create a archive containing the assets it could find, with invalid asset references appearing as warnings in the final status response.

SecurityBearer or ApiKeyAuth
Request
Request Body schema: application/json
required
required
Array of objects non-empty

Assets to be included in the archive. By default, any custom renditions generated via Processing Profiles and original rendition can optionally specify renditions that MUST be included-in or excluded-from the archive being requested.

format
string (ArchiveFormat)
Default: "zip"

The output format of the archive

Value: "zip"
namePrefix
string

The name to use for the created archive file(s). Note that the API will treat this as a suggestion, and reserves the right to change the final archive name as needed. If not provided, the API will assign its own file name according to any logic it deems fit.

Responses
202

Accepted

400

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

401

Unauthorized

403

Forbidden

415

Unsupported Media Type. When provided as a response to a PATCH request, the response will provide an Accept-Patch response header to notify the client what patch document media types are supported.

500

The server encountered an unexpected error. Retrying the request after a certain time could help.

post/archives
Request samples
application/json
{
  • "items": [
    ],
  • "format": "zip",
  • "namePrefix": "assets"
}
Response samples
application/json
{
  • "id": "1a034bee-ebda-4787-bad3-f924d0772b75",
  • "format": "zip",
  • "submittedBy": "person@company.com",
  • "submittedDate": "2024-02-28T21:39:02.417-0800"
}

Archival Request Status API

Get the status of the archive creation request

SecurityBearer or ApiKeyAuth
Request
path Parameters
archiveId
required
string (ArchiveId) non-empty

Identifier for the archive under-process/processed by the service

Example: 1a034bee-ebda-4787-bad3-f924d0772b75
Responses
200

Ok

401

Unauthorized

403

Forbidden

404

Not Found

500

The server encountered an unexpected error. Retrying the request after a certain time could help.

get/archives/{archiveId}/status
Request samples
Response samples
application/json
{}

Archive File Download API

For a given archiveId, one or more archive files can be created. Archival Request Status API provides the list of archive files available for the archiveId. This API enables download of any/all of those files.

SecurityNone or Bearer or ApiKeyAuth
Request
path Parameters
archiveId
required
string (ArchiveId) non-empty

Identifier for the archive under-process/processed by the service

Example: 1a034bee-ebda-4787-bad3-f924d0772b75
fileName
required
string

The name of the archive file to retrieve. Archive files available for download against this archiveId can be retrieved through the Archival Request Status API.

Example: assets.zip
query Parameters
token
string

a time limited token allowing anonymous retrieval of the archive file. The token will be included in the URLs presented in Archival Request Status API response for requests that have their status as COMPLETED.

Responses
302

Found

404

Not Found

500

The server encountered an unexpected error. Retrying the request after a certain time could help.

get/archives/{archiveId}/files/{fileName}
Request samples
Response samples
application/problem+json
{}