Assets Import API (2025.04-experimental)

Download OpenAPI specification:Download

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

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/assets/{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
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/assets/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
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/assets/{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.

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/assets/{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.

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/assets/{assetId}/metadata
Request samples
application/json-patch+json
[
  • {
    },
  • {
    },
  • {
    }
]
Response samples
application/json
{
  • "value": {
    }
}

Import

APIs for executing and managing the import of assets into AEM Assets

List Import Sources

Lists the available import sources. Each source contains a configuration including suitable authorization to allow the Import API to import on behalf of a user from the specified cloud provider or source.

SecurityBearer and ApiKeyAuth
Request
query Parameters
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.

limit
integer <int32> (Limit) [ 1 .. 50 ]

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

Responses
200

List of the import sources

400

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

401

Unauthorized

403

Forbidden

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

Create Import Source

Creates a new source import source with the specified configuration

SecurityBearer and ApiKeyAuth
Request
Request Body schema: application/json
required

The request body for creating an import source. Updating the type of the source will reset the authentication for the source.

name
required
string (ImportSourceName) non-empty ^(?!(authentication|import|items)).*$

A user-readable identifier for an instance of an import source

title
required
string (ImportSourceTitle) non-empty

A user-friendly display name given to an import source

type
required
string (ImportSourceType) >= 6 characters

The type of the import source. Each type corresponds with a supported cloud provider from which assets can be imported.

Enum: "dropbox" "onedrive"
Responses
201

The newly created source

400

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

401

Unauthorized

403

Forbidden

409

Conflict

post/import/sources
Request samples
application/json
{
  • "title": "Marketing Dropbox",
  • "name": "marketing-dropbox",
  • "type": "dropbox"
}
Response samples
application/json
{
  • "authenticated": true,
  • "title": "Marketing Dropbox",
  • "name": "marketing-dropbox",
  • "type": "dropbox"
}

Get Import Source

Returns the requested import source instance

SecurityBearer and ApiKeyAuth
Request
path Parameters
importSourceName
required
string (ImportSourceName) non-empty ^(?!(authentication|import|items)).*$

A user-readable identifier for an instance of an import source

Example: my-dropbox
Responses
200

The requested import source instance.

400

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

401

Unauthorized

403

Forbidden

404

Not Found

get/import/sources/{importSourceName}
Request samples
Response samples
application/json
{
  • "authenticated": true,
  • "title": "Marketing Dropbox",
  • "name": "marketing-dropbox",
  • "type": "dropbox"
}

Delete Import Source

Deletes the specified import source

SecurityBearer and ApiKeyAuth
Request
path Parameters
importSourceName
required
string (ImportSourceName) non-empty ^(?!(authentication|import|items)).*$

A user-readable identifier for an instance of an import source

Example: my-dropbox
Responses
204

OK

400

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

401

Unauthorized

403

Forbidden

404

Not Found

delete/import/sources/{importSourceName}
Request samples
Response samples
application/problem+json
{}

Get Import Source OAuth URL

Gets the OAuth authentication URL from the specified source. The user should be taken to this URL in order to authenticate with the source.

By granting authorization, the Import API will store a credential to allow the Import API access to read the source repository on behalf of that user.

The authorization will only be available for requesting user, in the current tenant and will not be shared with any other users in the organization. The authorization will not be used for any other purposes besides to service API requests made by the user.

The authorization can be removed by deleting the source.

SecurityBearer and ApiKeyAuth
Request
path Parameters
importSourceName
required
string (ImportSourceName) non-empty ^(?!(authentication|import|items)).*$

A user-readable identifier for an instance of an import source

Example: my-dropbox
Responses
200

A URL to take the user to authorize access to the source

400

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

401

Unauthorized

403

Forbidden

404

Not Found

get/import/sources/{importSourceName}/authentication/oauth
Request samples

Start Import from Source

Imports the assets found in the source based on the specified request

SecurityBearer and ApiKeyAuth
Request
path Parameters
importSourceName
required
string (ImportSourceName) non-empty ^(?!(authentication|import|items)).*$

A user-readable identifier for an instance of an import source

Example: my-dropbox
Request Body schema: application/json
required

The request body for importing from the source. Includes the list of source paths, the metadata for the assets to be imported and the target folder into which to import the assets

object (ImportAssetMetadata)

Metadata properties and values that should be applied to assets that are part of the import.

folder
required
string (ImportTargetFolder) non-empty ^(\/content\/dam|urn:aaid).*

The ID or path for the folder into which to import the assets in AEM

required
Array of ImportSourceItemId (string) or ImportSourceItem (object) [ 1 .. 1000 ] items
Responses
202

The response for an accepted import request. The path provided in the Location header can be followed to monitor the import's progress.

400

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

401

Unauthorized

403

Forbidden

404

Not Found

post/import/sources/{importSourceName}/start
Request samples
application/json
{
  • "items": [
    ],
  • "folder": "urn:aaid:aem:408646b2-a34d-4656-bf1a-b5a06cc9362f",
  • "assetMetadata": {
    }
}
Response samples
application/json
{
  • "operation": "aem.assets.import.fromsource",
  • "status": 200,
  • "description": "OK",
  • "data": {
    }
}

List Import Source Items

Returns a page of folders and files from the import source using the specified parameters

SecurityBearer and ApiKeyAuth
Request
path Parameters
importSourceName
required
string (ImportSourceName) non-empty ^(?!(authentication|import|items)).*$

A user-readable identifier for an instance of an import source

Example: my-dropbox
query Parameters
id
string (ImportSourceItemId) non-empty

The identifier of the item in the source to list. If not specified, the root of the source will be listed.

Example: id=id:E1Eeu457IcQAAAXAAAAJcA
recursive
boolean

Whether or not to recursively list the contents of the specified item

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.

limit
integer <int32> (Limit) [ 1 .. 50 ]

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

Responses
200

A list of items from the source

400

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

401

Unauthorized

403

Forbidden

404

Not Found

get/import/sources/{importSourceName}/items
Request samples
Response samples
application/json
{
  • "cursor": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtc2ciOiJZb3UgdGhvdWdodCB0aGlzIG1pZ2h0IGJlIHNvbWV0aGluZyBzZWNyZXQsIHJpZ2h0PyJ9.7xLHh_QS1f6oNd5oy5pXUBjDSQ-brOjBXxLbRDzOXAs",
  • "hasMore": false,
  • "items": [
    ]
}

Start Item Import

Imports the assets found in the source based on the specified request

SecurityBearer and ApiKeyAuth
Request
path Parameters
importSourceName
required
string (ImportSourceName) non-empty ^(?!(authentication|import|items)).*$

A user-readable identifier for an instance of an import source

Example: my-dropbox
itemId
required
string (ImportSourceItemId) non-empty

The identifier of the item in the source

Example: id:E1Eeu457IcQAAAXAAAAJcA
Request Body schema: application/json
required

The request body for importing an item from the source containing the metadata for the asset(s) to be imported and the path into which to import the asset(s).

If the resolved item is to a folder, the contents of the folder (recursively) will be imported.

object (ImportAssetMetadata)

Metadata properties and values that should be applied to assets that are part of the import.

folder
required
string (ImportTargetFolder) non-empty ^(\/content\/dam|urn:aaid).*

The ID or path for the folder into which to import the assets in AEM

Responses
202

The response for an accepted import request. The path provided in the Location header can be followed to monitor the import's progress.

400

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

401

Unauthorized

403

Forbidden

404

Not Found

post/import/sources/{importSourceName}/{itemId}/start
Request samples
application/json
{
  • "folder": "urn:aaid:aem:408646b2-a34d-4656-bf1a-b5a06cc9362f",
  • "assetMetadata": {
    }
}
Response samples
application/json
{
  • "operation": "aem.assets.import.fromsource",
  • "status": 200,
  • "description": "OK",
  • "data": {
    }
}

Get Import Source Item Thumbnail

Returns a thumbnail for the specified item in the import source. The size and format of the thumbnail will be determined by the source.

SecurityBearer and ApiKeyAuth
Request
path Parameters
importSourceName
required
string (ImportSourceName) non-empty ^(?!(authentication|import|items)).*$

A user-readable identifier for an instance of an import source

Example: my-dropbox
itemId
required
string (ImportSourceItemId) non-empty

The identifier of the item in the source

Example: id:E1Eeu457IcQAAAXAAAAJcA
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

the thumbnail for the specified item

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/import/sources/{importSourceName}/items/{itemId}/thumbnail
Request samples
Response samples
application/problem+json
{}

Import From Url

Imports the binary found at the specified URL into AEM as an Asset

SecurityBearer and ApiKeyAuth
Request
Request Body schema: application/json
required

The request body for importing one or more Assets from a URL. The request body contains the metadata for the assets to be imported and the URLs and descriptive data for the URLs to import.

object (ImportAssetMetadata)

Metadata properties and values that should be applied to assets that are part of the import.

folder
required
string (ImportTargetFolder) non-empty ^(\/content\/dam|urn:aaid).*

The ID or path for the folder into which to import the assets in AEM

required
Array of objects [ 1 .. 300 ] items
sourceName
string

A user-friendly display name for the source of the assets

Responses
202

The response for an accepted import request. The path provided in the Location header can be followed to monitor the import's progress.

400

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

401

Unauthorized

403

Forbidden

post/import/from-url
Request samples
application/json
{
  • "assetMetadata": {
    },
  • "folder": "urn:aaid:aem:8964ca64-b302-5abe-88db-e1729385287b",
  • "files": [
    ]
}
Response samples
application/json
{
  • "operation": "aem.assets.import.fromurl",
  • "status": 200,
  • "description": "OK",
  • "data": {
    }
}

List Import Jobs

Lists the available import jobs

SecurityBearer and ApiKeyAuth
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

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.

operation
string (ImportOperation)

The type of operation by which to filter

Enum: "aem.assets.import.fromsource" "aem.assets.import.fromurl"
Responses
200

List of the import jobs

400

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

401

Unauthorized

403

Forbidden

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

Head request for import job status

Returns headers, including an ETag for the specified import job status, which can be used to check for the existence of, or validate a cached version of the import job status without sending a full GET request.

SecurityBearer and ApiKeyAuth
Request
path Parameters
importJobId
required
string <uuid> (ImportJobId)

The identifier for an import job

Example: B79F5F05-06E2-4D12-A5AE-AD9BC308FCCF
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/import/jobs/{importJobId}/status
Request samples
Response samples
application/problem+json
{}

Get Import Job Status

Retrieves the status of the specified import job. If the job is in progress, the response will have a status of 200 and include a Retry-After header with the number of seconds to wait before checking the status again. If the job is complete, the response will have a status of 200 and the response body will include the final status of the job.

SecurityBearer and ApiKeyAuth
Request
path Parameters
importJobId
required
string <uuid> (ImportJobId)

The identifier for an import job

Example: B79F5F05-06E2-4D12-A5AE-AD9BC308FCCF
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

A response describing the status of an import job

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/import/jobs/{importJobId}/status
Request samples
Response samples
application/json
{
  • "id": "B79F5F05-06E2-4D12-A5AE-AD9BC308FCCF",
  • "description": "OK",
  • "operation": "aem.assets.import.fromsource",
  • "status": 200,
  • "state": "PROCESSING",
  • "progress": {
    },
  • "errors": [ ],
  • "warnings": [ ]
}

Head request for import job result

Returns headers, including an ETag for the specified import job result, which can be used to check for the existence of, or validate a cached version of the import job result without sending a full GET request.

SecurityBearer and ApiKeyAuth
Request
path Parameters
importJobId
required
string <uuid> (ImportJobId)

The identifier for an import job

Example: B79F5F05-06E2-4D12-A5AE-AD9BC308FCCF
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.

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/import/jobs/{importJobId}/result
Request samples
Response samples
application/problem+json
{}

Get Import Job Result

Retrieves the Result of the specified import job.

SecurityBearer and ApiKeyAuth
Request
path Parameters
importJobId
required
string <uuid> (ImportJobId)

The identifier for an import job

Example: B79F5F05-06E2-4D12-A5AE-AD9BC308FCCF
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

A response describing the result of an import job

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/import/jobs/{importJobId}/result
Request samples
Response samples
application/json
{
  • "cursor": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtc2ciOiJZb3UgdGhvdWdodCB0aGlzIG1pZ2h0IGJlIHNvbWV0aGluZyBzZWNyZXQsIHJpZ2h0PyJ9.7xLHh_QS1f6oNd5oy5pXUBjDSQ-brOjBXxLbRDzOXAs",
  • "items": [
    ]
}