Assets Author API (2025.04-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

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
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. This event will be sent whenever an asset is published directly. Additionally, if an asset is moved using the Assets View UI or the OpenAPI, an asset unpublished event will be sent, followed by an asset published event. We do not support this behavior when assets are moved from the Admin View UI (aka Touch UI) or from other APIs, such as Java APIs running in-process in the AEM environment.

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. This event will be sent whenever an asset is unpublished directly. Additionally, if an asset is moved or deleted using the Assets View UI or the OpenAPI, an asset unpublished event will be sent. We do not support this behavior when assets are moved or deleted from the Admin View UI (aka Touch UI) or from other APIs, such as Java APIs running in-process in the AEM environment.

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": {
    }
}

Asset import completed eventWebhook

Event triggered when an asset import operation is completed in 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.import.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 import completed event data is received successfully

Request samples
application/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.

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

Import

APIs for importing assets into AEM Assets

Import From Url

Imports the binary found at the specified URL into AEM as an Asset. While we have successfully tested imports with file sizes up to 20GB from common cloud storage providers, your results may vary based on the throughput provided by the source from which the assets are being imported.

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. Client should use the assetMetadata properties as exposed by the metadata API endpoints.

folder
required
string (ImportTargetFolder) non-empty

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/fromUrl
Request samples
application/json
{
  • "assetMetadata": {
    },
  • "folder": "urn:aaid:aem:8964ca64-b302-5abe-88db-e1729385287b",
  • "files": [
    ]
}
Response samples
application/json
{
  • "id": "c82f6f05-07e3-5d13-b6bf-be0ac408fddf",
  • "operation": "aem.assets.import.fromurl",
  • "data": {
    },
  • "errors": [ ],
  • "warnings": [ ],
  • "state": "PROCESSING"
}

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 (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 (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.fromurl",
  • "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 (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 (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": [
    ]
}

Relations

Get the asset relations for an asset

Get a paginated list of all relations for an asset, optionally filtered by relation types. If the relationTypes parameter is provided, only relations for the provided type name(s) will be returned. By default, the response will contain a maximum of 50 items per page. The caller may pass the limit query parameter to override this default with a lower limit. To request the next page of items, pass the cursor value provided in the response to the cursor query parameter.

SecurityBearer
Request
path Parameters
assetId
required
string non-empty

ID of the asset to access

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

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

cursor
string (Cursor) non-empty

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

relationTypes
Array of strings

Comma-delimited list of relation types to filter the asset relations to include only the specified types.

Example: relationTypes=sources,derived,others
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

Paginated list of relations for the given asset or an empty list if the asset has no relations.

304

Not Modified

400

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

401

Unauthorized

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.

500

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

get/{assetId}/relations
Request samples
Response samples
application/json
{
  • "items": [
    ],
  • "cursor": "wqeaszrdxtgfcyguiohfgytdrsewq"
}

Create new asset relations for an asset

Create new asset relations for the given asset. Each asset relation object in the request must include the ID of the related asset and the relation type.

SecurityBearer
Request
path Parameters
assetId
required
string non-empty

ID of the asset to access

Examples:
urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
Request Body schema: application/json
required
required
Array of objects

Related assets to be added to the asset

Responses
204

Asset relations created successfully.

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.

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/{assetId}/relations
Request samples
application/json
{
  • "items": [
    ]
}
Response samples
application/problem+json
{}

Get the asset relations for an asset filtered by relation type

Get a paginated list of relations for an asset filtered by a relation type. Only relations for the provided type name will be returned. By default, the response will contain a maximum of 50 items per page. The caller may pass the limit query parameter to override this default with a lower limit. To request the next page of items, pass the cursor value provided in the response to the cursor query parameter.

SecurityBearer
Request
path Parameters
assetId
required
string non-empty

ID of the asset to access

Examples:
urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
relationType
required
string

Name of relation type

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

Paginated list of relations for the given asset and relation type or an empty list if the asset has no relations for the relation type.

304

Not Modified

400

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

401

Unauthorized

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.

500

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

get/{assetId}/relations/{relationType}
Request samples
Response samples
application/json
{
  • "items": [
    ],
  • "cursor": "wqeaszrdxtgfcyguiohfgytdrsewq"
}

Delete all asset relations of the given relation type for an asset

Delete all asset relations of type relationType for the asset corresponding to the given assetId parameter.

SecurityBearer
Request
path Parameters
assetId
required
string non-empty

ID of the asset to access

Examples:
urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
relationType
required
string

Name of relation type

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

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.

500

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

delete/{assetId}/relations/{relationType}
Request samples
Response samples
application/problem+json
{}

Delete an asset relation for an asset

Delete an asset relation for the asset corresponding to the given assetId parameter. The relationType and relatedAssetId parameters must correspond to values from an existing asset relation returned by the getAssetRelations operation for the asset.

SecurityBearer
Request
path Parameters
assetId
required
string non-empty

ID of the asset to access

Examples:
urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
relationType
required
string

Name of relation type for asset relation to be deleted.

relatedAssetId
required
string (AssetId) non-empty

ID of the related asset to be deleted.

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

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.

500

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

delete/{assetId}/relations/{relationType}/{relatedAssetId}
Request samples
Response samples
application/problem+json
{}

Get the relation types for an asset

Get a paginated list of relation type names that exist for the given asset. The values returned in this response can be used in the relationTypes parameter for the getAssetRelations operation. By default, the response will contain a maximum of 50 items per page. The caller may pass the limit query parameter to override this default with a lower limit. To request the next page of items, pass the cursor value provided in the response to the cursor query parameter.

SecurityBearer
Request
path Parameters
assetId
required
string non-empty

ID of the asset to access

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

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

cursor
string (Cursor) non-empty

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

header Parameters
If-None-Match
string

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

For more details, please head over to RFC9110.

Responses
200

Paginated list of relation type names for the given asset or an empty list if the asset has no relations.

304

Not Modified

400

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

401

Unauthorized

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.

500

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

get/{assetId}/relationTypes
Request samples
Response samples
application/json
{
  • "items": [
    ],
  • "cursor": "wqeaszrdxtgfcyguiohfgytdrsewq"
}