Sites API (2026.10)

Download OpenAPI specification:Download

Fragment Management

List all Content Fragments

This operation provides support for retrieving all the Content Fragments accessible to the current user, determined via the applied request authorization. By default this call will return a maximum of 50 items.

The caller can define other limits suited to their application (see the limit query parameter), but the limit cannot be higher than 50. To ask for the next set of items pass the value of the cursor provided in the response to the cursor query parameter.

SecuritybearerAuth
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.

includeMetadata
boolean
Default: false

When true, includes all metadata properties with the schema identifier. The schema identifier is resolved from the fragment itself or its parent folder hierarchy.

path
string

Optional UTF-8 encoded parameter to specify a path where to start looking for content fragments.

Examples:
Get exactly one '/aem-cloud-service-from-a-developer-perspective' content fragment.
path=/content/dam/adaptto/presentations/aem-cloud-service-from-a-developer-perspective
Get all child content fragments under '/presentations' folder.
path=/content/dam/adaptto/presentations
references
string (References)
Default: "direct-hydrated"

When the path query parameter identifies a Content Fragment, this parameter allows controlling the way the references are retrieved for that fragment. When this parameter is missing, the references will not be populated.

The following options are available:

  • direct - only direct references will be collected; they will not be hydrated;
  • direct-hydrated - only direct references will be collected; they will be fully hydrated;
  • all - all references up to the maximum allowed depth will be collected; they will not be hydrated;
  • all-hydrated - all references up to the maximum allowed depth will be collected; they will be fully hydrated
  • none - no references will be collected

Non-hydrated responses will only include the properties defined by the BaseReference type when embedding references. Hydrated responses are defined by each implementation of the BaseReference type. In particular, for Content Fragment references the response will include the fragment's fields, variations, tags.

Enum: "direct" "direct-hydrated" "all" "all-hydrated" "none"
projection
string (Projection)
Default: "full"

If this optional parameter is provided and its value is 'summary', the fragments in the response will contain only the required properties.

Enum: "minimal" "summary" "full"
Responses
200

A response containing a potentially paginated list of content fragments.

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

406

Not Acceptable. 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

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

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

Create a Content Fragment

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

The title of the new Content Fragment.

description
string

The description of the new Content Fragment.

modelId
required
string (Base64URLId) non-empty

Defines a base64url with no padding encoded ID.

parentPath
required
string^/?.*$

The folder path where the new Content Fragment will be created, relative to /content/dam.

Examples:

  • /wknd-shared/en/adventures creates fragment at /content/dam/wknd-shared/en/adventures
  • /my-site/content creates fragment at /content/dam/my-site/content
name
string

Optional parameter that represents the name used when storing the new Content Fragment. When missing, the value will be derived by the server from the title value.

Array of objects (ContentFragmentField)

Data needed for populating the content fragment fields defined in the model

Responses
201

The Content Fragment was successfully created.

400

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

403

Forbidden. Indicates that the server understood the request but refuses to fulfil it.

406

Not Acceptable. 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. Indicates that the request could not be completed due to a conflict with the current state of the target resource.

415

Unsupported Media Type. Indicates that the origin server is refusing to service the request because the content is in a format not supported by this method on the target resource.

500

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

post/cf/fragments
Request samples
application/json
{
  • "title": "Snowboarding",
  • "name": "snowboarding-cf",
  • "description": "This new CF is created with the new POST endpoint",
  • "modelId": "L2NvbmYvZ2xvYmFsL3NldHRpbmdzL2RhbS9jZm0vbW9kZWxzL3NpbXBsZS1jZg",
  • "parentPath": "/wknd-shared/en/adventures",
  • "fields": [
    ]
}
Response samples
application/json
{
  • "path": "/content/dam/wknd-shared/en/adventures/snowboarding-cf",
  • "title": "Snowboarding",
  • "description": "This new CF is created with the new POST endpoint",
  • "id": "04dbb683-a63c-4144-9a27-7d019bd3e50e",
  • "created": {
    },
  • "modified": { },
  • "status": "NEW",
  • "fields": [
    ],
  • "variations": [ ],
  • "tags": [ ],
  • "references": [ ],
  • "model": {
    },
  • "validationStatus": [ ],
  • "fieldTags": [ ]
}

Get a Content Fragment

SecuritybearerAuth
Request
path Parameters
fragmentId
required
string <uuid> (UUID)

Content Fragment unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
query Parameters
references
string (References)
Default: "direct-hydrated"

This parameter defines how references will be retrieved for Content Fragments. The following options are available:

  • direct - only direct references will be collected; they will not be hydrated;
  • direct-hydrated - only direct references will be collected; they will be fully hydrated;
  • all - all references up to the maximum allowed depth will be collected; they will not be hydrated;
  • all-hydrated - all references up to the maximum allowed depth will be collected; they will be fully hydrated
  • none - no references will be collected

Non-hydrated responses will only include the properties defined by the BaseReference type when embedding references. Hydrated responses are defined by each implementation of the BaseReference type. In particular, for Content Fragment references the response will include the fragment's fields, variations, tags.

Enum: "direct" "direct-hydrated" "all" "all-hydrated" "none"
locale
string (Locale) >= 2 characters

An optional parameter that specifies the locale of the Content Fragment, using a language and country code (e.g. en_us). If provided, the corresponding language copy of the Content Fragment will be returned if available. If not available, a 404 error will be returned.

partial
string

Optional UTF-8 encoded parameter that filters the response to include only a specific composite field or nested structure within a composite field.

Syntax: Uses path-like syntax with these formats:

  • '/fieldName/index' - Access specific instance of a named composite field
  • '/fieldIndex/index' - Access specific instance using field position instead of name

Where:

  • fieldName: The name of the composite field to filter
  • fieldIndex: Zero-based position of the field in the fragment's field list
  • index: Zero-based index of the specific instance within a multi-value composite field

Behavior:

  • Transforms the targeted composite field's nested structure into a flat field list
  • Excludes all other fields from the response
  • Useful for focused operations like partial updates, validation, or when working with large fragments where only specific composite data is needed
Examples:
Filters output to show only the first instance (index 0) of the 'companyAddress' composite field. Result: Returns only the nested fields within the companyAddress composite (street, city, number), excluding all other top-level fields. Fragment structure before filtering: { "fields": [ {"name": "companyName", "values": ["Adobe"]}, {"name": "companyAddress", "values": [{"street": "Main St", "city": "San Jose", "number": 345}]}, {"name": "numberOfEmployees", "values": [25000]} ] } Fragment structure after filtering with /companyAddress/0: { "fields": [ {"name": "street", "values": ["Main St"]}, {"name": "city", "values": ["San Jose"]}, {"name": "number", "values": [345]} ] }
partial=/companyAddress/0
Filters output using positional indexing where the first number (1) refers to the second field in the fragment's field list (0-based indexing), and the second number (0) refers to the first instance of that composite field. Use case: When you know the field position but not the field name, or when working with dynamically generated field structures. Example: If a fragment has fields in order [textField, compositeField, numberField], then '/1/0' targets the first instance of the composite field at position 1.
partial=/1/0
includeMetadata
boolean
Default: false

When true, includes all metadata properties with the schema identifier. The schema identifier is resolved from the fragment itself or its parent folder hierarchy.

header Parameters
If-None-Match
string

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

For more details, please head over to RFC9110.

Responses
200

OK

304

Not Modified

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

403

Forbidden. Indicates that the server understood the request but refuses to fulfil it.

404

Not Found. Indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

406

Not Acceptable. 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

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

get/cf/fragments/{fragmentId}
Request samples
Response samples
application/json
{
  • "path": "/content/dam/wknd-shared/en/contributors/ian-provo",
  • "title": "Ian Provo",
  • "description": "",
  • "id": "6d980e6a-c9e7-444b-af43-5503c46a061c",
  • "created": {
    },
  • "modified": {
    },
  • "status": "DRAFT",
  • "fields": [
    ],
  • "variations": [
    ],
  • "tags": [
    ],
  • "references": [
    ],
  • "model": {
    },
  • "checkedOutBy": "user",
  • "validationStatus": [ ],
  • "fieldTags": [ ],
  • "metadata": {
    }
}

Edit a Content Fragment

This operation allows editing a Content Fragment. The changes are passed as JSON Patch documents.

Save conflicts are detected by leveraging conditional HTTP requests. When a conflict occurs, the server will reply with a 412 response. It becomes the caller's responsibility to resolve the conflict, either by accepting the values from the server, or by overwriting them.

SecuritybearerAuth
Request
path Parameters
fragmentId
required
string <uuid> (UUID)

Content Fragment unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
query Parameters
references
string (PatchReferences)
Default: "direct-hydrated"

An optional parameter that defines how references should be handled when patching the Content Fragment.

Enum: "none" "direct" "direct-hydrated"
partial
string

Optional UTF-8 encoded parameter that filters the response to include only a specific composite field or nested structure within a composite field.

Syntax: Uses path-like syntax with these formats:

  • '/fieldName/index' - Access specific instance of a named composite field
  • '/fieldIndex/index' - Access specific instance using field position instead of name

Where:

  • fieldName: The name of the composite field to filter
  • fieldIndex: Zero-based position of the field in the fragment's field list
  • index: Zero-based index of the specific instance within a multi-value composite field

Behavior:

  • Transforms the targeted composite field's nested structure into a flat field list
  • Excludes all other fields from the response
  • Useful for focused operations like partial updates, validation, or when working with large fragments where only specific composite data is needed
Examples:
Filters output to show only the first instance (index 0) of the 'companyAddress' composite field. Result: Returns only the nested fields within the companyAddress composite (street, city, number), excluding all other top-level fields. Fragment structure before filtering: { "fields": [ {"name": "companyName", "values": ["Adobe"]}, {"name": "companyAddress", "values": [{"street": "Main St", "city": "San Jose", "number": 345}]}, {"name": "numberOfEmployees", "values": [25000]} ] } Fragment structure after filtering with /companyAddress/0: { "fields": [ {"name": "street", "values": ["Main St"]}, {"name": "city", "values": ["San Jose"]}, {"name": "number", "values": [345]} ] }
partial=/companyAddress/0
Filters output using positional indexing where the first number (1) refers to the second field in the fragment's field list (0-based indexing), and the second number (0) refers to the first instance of that composite field. Use case: When you know the field position but not the field name, or when working with dynamically generated field structures. Example: If a fragment has fields in order [textField, compositeField, numberField], then '/1/0' targets the first instance of the composite field at position 1.
partial=/1/0
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
required
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 or boolean (PatchValue)

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

Responses
200

OK

400

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

403

Forbidden. Indicates that the server understood the request but refuses to fulfil it.

404

Not Found. Indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

406

Not Acceptable. 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. Indicates that the request could not be completed due to a conflict with the current state of the target resource.

412

Precondition Failed. Indicates that one or more conditions given in the request header fields evaluated to false when tested on the server.

415

Unsupported Media Type. Indicates that the origin server is refusing to service the request because the content is in a format not supported by this method on the target resource.

428

Precondition Required. Indicates that the origin server requires the request to be conditional.

500

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

patch/cf/fragments/{fragmentId}
Request samples
application/json-patch+json
[
  • {
    }
]
Response samples
application/json
{
  • "path": "/content/dam/wknd-shared/en/contributors/ian-provo",
  • "title": "Title has been replaced",
  • "description": "",
  • "id": "6d980e6a-c9e7-444b-af43-5503c46a061c",
  • "created": {
    },
  • "modified": {
    },
  • "status": "DRAFT",
  • "fields": [
    ],
  • "variations": [
    ],
  • "tags": [
    ],
  • "references": [
    ],
  • "model": {
    },
  • "validationStatus": [ ],
  • "fieldTags": [ ]
}

Update all mutable properties of a Content Fragment

This operation allows fully updating mutable properties of a Content Fragment. The changes are passed as JSON.

Update requests should pass the most recent ETag value received from the server for a representation with fully hydrated direct references.

SecuritybearerAuth
Request
path Parameters
fragmentId
required
string <uuid> (UUID)

Content Fragment unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
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
required
title
required
string non-empty

Updated title of the Content Fragment.

description
string

Updated description of the Content Fragment.

Array of objects (ContentFragmentField)

Updated fields on the Content Fragment.

Responses
200

OK

400

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

403

Forbidden. Indicates that the server understood the request but refuses to fulfil it.

404

Not Found. Indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

406

Not Acceptable. 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.

412

Precondition Failed. Indicates that one or more conditions given in the request header fields evaluated to false when tested on the server.

415

Unsupported Media Type. Indicates that the origin server is refusing to service the request because the content is in a format not supported by this method on the target resource.

428

Precondition Required. Indicates that the origin server requires the request to be conditional.

500

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

put/cf/fragments/{fragmentId}
Request samples
application/json
{
  • "title": "Snowboarding",
  • "description": "This new CF is created with the new PUT endpoint",
  • "fields": [
    ]
}
Response samples
application/json
{
  • "path": "/content/dam/wknd-shared/en/contributors/ian-provo",
  • "title": "Title has been replaced",
  • "description": "",
  • "id": "6d980e6a-c9e7-444b-af43-5503c46a061c",
  • "created": {
    },
  • "modified": {
    },
  • "status": "DRAFT",
  • "fields": [
    ],
  • "variations": [
    ],
  • "tags": [
    ],
  • "references": [
    ],
  • "model": {
    },
  • "validationStatus": [ ],
  • "fieldTags": [ ]
}

Delete a Content Fragment

This operation deletes a Content Fragment.

Deletes are based on conditional HTTP requests. When a conflict occurs, the server will reply with a 412 response.

Delete requests should pass the most recent ETag value received from the server for a representation with fully hydrated direct references.

Content Fragments in PUBLISHED or MODIFIED status cannot be deleted. Additionally, deletion is prevented if any Content Fragments it references are in MODIFIED status or if the fragment is referenced by other Content Fragments and the unlinkReferences parameter is set to false.

SecuritybearerAuth
Request
path Parameters
fragmentId
required
string <uuid> (UUID)

Content Fragment unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
query Parameters
unlinkReferences
boolean
Default: false

Optional boolean parameter, if set to true, the references to the deleted fragment will be removed from the referencing fragments. By default, the value of this query parameter is false.

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
204

No Content

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

403

Forbidden. Indicates that the server understood the request but refuses to fulfil it.

404

Not Found. Indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

409

Conflict. Indicates that the request could not be completed due to a conflict with the current state of the target resource.

412

Precondition Failed. Indicates that one or more conditions given in the request header fields evaluated to false when tested on the server.

428

Precondition Required. Indicates that the origin server requires the request to be conditional.

500

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

delete/cf/fragments/{fragmentId}
Request samples
Response samples
application/problem+json
{}

Update checkout state of a Content Fragment

This operation updates the checkout state of a Content Fragment, either checking it out or checking it in.

Checking Out (checkedOut: true):

  • Creates an exclusive lock on the fragment for the current user
  • Prevents other users from editing or checking out the fragment
  • If already checked out by the current user, the operation is idempotent
  • If checked out by another user, returns a 409 Conflict response

Checking In (checkedOut: false):

  • Removes the exclusive lock on the fragment
  • Allows other users to check out and edit the fragment
  • If not checked out, the operation is idempotent
  • Non-admin users can only check in fragments they have checked out
  • Admin users can check in any fragment

Conditional Requests: This operation requires the If-Match header with the current ETag of the fragment to ensure the operation is performed on the expected state of the resource. This prevents race conditions where multiple users might attempt to change the checkout state simultaneously.

The ETag should be obtained from a previous GET request to the fragment. When a conflict occurs (ETag mismatch), the server will reply with a 412 Precondition Failed response.

SecuritybearerAuth
Request
path Parameters
fragmentId
required
string <uuid> (UUID)

Content Fragment unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
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
required
checkedOut
required
boolean

Indicates whether the fragment should be checked out (true) or checked in (false).

  • true: Checks out the fragment, creating an exclusive lock for the current user
  • false: Checks in the fragment, removing the exclusive lock
Responses
204

No Content

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

403

Forbidden. Indicates that the server understood the request but refuses to fulfil it.

404

Not Found. Indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

409

Conflict. Indicates that the request could not be completed due to a conflict with the current state of the target resource.

412

Precondition Failed. Indicates that one or more conditions given in the request header fields evaluated to false when tested on the server.

415

Unsupported Media Type. Indicates that the origin server is refusing to service the request because the content is in a format not supported by this method on the target resource.

428

Precondition Required. Indicates that the origin server requires the request to be conditional.

500

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

patch/cf/fragments/{fragmentId}/checkoutState
Request samples
application/json
{
  • "checkedOut": true
}
Response samples
application/problem+json
{}

Delete and unpublish Content Fragment

This operation deletes a Content Fragment and also starts the unpublish process.

Deletes are based on conditional HTTP requests. When a conflict occurs, the server will reply with a 412 response.

Delete requests should pass the most recent ETag value received from the server for a representation with fully hydrated direct references.

Deletion is prevented if the fragment is referenced by other Content Fragments and the unlinkReferences parameter is set to false.

SecuritybearerAuth
Request
path Parameters
fragmentId
required
string <uuid> (UUID)

Content Fragment unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
query Parameters
unlinkReferences
boolean
Default: true

An optional boolean parameter. When set to true, the references to the deleted fragment are removed from all referencing fragments. By default, the value of this query parameter is true.

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

The request was accepted for processing and it will be executed asynchronously.

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

403

Forbidden. Indicates that the server understood the request but refuses to fulfil it.

404

Not Found. Indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

409

Conflict. Indicates that the request could not be completed due to a conflict with the current state of the target resource.

412

Precondition Failed. Indicates that one or more conditions given in the request header fields evaluated to false when tested on the server.

428

Precondition Required. Indicates that the origin server requires the request to be conditional.

500

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

delete/cf/fragments/{fragmentId}/deleteAndUnpublish
Request samples
Response samples
application/json
{
  • "workflowInstanceId": "string"
}

Get the preview URLs for a Content Fragment

SecuritybearerAuth
Request
path Parameters
fragmentId
required
string <uuid> (UUID)

Content Fragment unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
Responses
200

OK

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

404

Not Found. Indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

406

Not Acceptable. 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

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

get/cf/fragments/{fragmentId}/previewUrl
Request samples
Response samples
application/json
{}

Get the scheduled publication status for a Content Fragment

SecuritybearerAuth
Request
path Parameters
fragmentId
required
string <uuid> (UUID)

Resource unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
Responses
200

OK

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

403

Forbidden. Indicates that the server understood the request but refuses to fulfil it.

404

Not Found. Indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

406

Not Acceptable. 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

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

get/cf/fragments/{fragmentId}/scheduledPublicationStatus
Request samples
Response samples
application/json
{
  • "action": "PUBLISH",
  • "status": "PENDING",
  • "scheduledBy": "admin",
  • "scheduledDate": "2023-08-04T12:11:09.120Z"
}

Get the UI schema associated with the Content Fragment Model of a Content Fragment

This operation allows retrieving the Model UI Schema of a Content Fragment.

This operation is an alias for models/retrieveUISchema.

SecuritybearerAuth
Request
path Parameters
fragmentId
required
string <uuid> (UUID)

Content Fragment unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
query Parameters
partial
string

Optional UTF-8 encoded parameter that filters the response to include only a specific composite field or nested structure within a composite field.

Syntax: Uses path-like syntax with these formats:

  • '/fieldName/index' - Access specific instance of a named composite field
  • '/fieldIndex/index' - Access specific instance using field position instead of name

Where:

  • fieldName: The name of the composite field to filter
  • fieldIndex: Zero-based position of the field in the fragment's field list
  • index: Zero-based index of the specific instance within a multi-value composite field

Behavior:

  • Transforms the targeted composite field's nested structure into a flat field list
  • Excludes all other fields from the response
  • Useful for focused operations like partial updates, validation, or when working with large fragments where only specific composite data is needed
Examples:
Filters output to show only the first instance (index 0) of the 'companyAddress' composite field. Result: Returns only the nested fields within the companyAddress composite (street, city, number), excluding all other top-level fields. Fragment structure before filtering: { "fields": [ {"name": "companyName", "values": ["Adobe"]}, {"name": "companyAddress", "values": [{"street": "Main St", "city": "San Jose", "number": 345}]}, {"name": "numberOfEmployees", "values": [25000]} ] } Fragment structure after filtering with /companyAddress/0: { "fields": [ {"name": "street", "values": ["Main St"]}, {"name": "city", "values": ["San Jose"]}, {"name": "number", "values": [345]} ] }
partial=/companyAddress/0
Filters output using positional indexing where the first number (1) refers to the second field in the fragment's field list (0-based indexing), and the second number (0) refers to the first instance of that composite field. Use case: When you know the field position but not the field name, or when working with dynamically generated field structures. Example: If a fragment has fields in order [textField, compositeField, numberField], then '/1/0' targets the first instance of the composite field at position 1.
partial=/1/0
variation
string

Optional variation name. When used together with partial, the composite fragment view is resolved in the context of the given variation instead of the master. Ignored when partial is not provided.

Example: variation=variation_2026
header Parameters
X-Adobe-Accept-Unsupported-API
required
integer

The X-Adobe-Accept-Unsupported-API request header is required when a client wants to opt-in into using a product-only API, not designed for public consumption. Not providing this header to an endpoint that requires it will make the server answer with a 400 status code.

Value: 1
Responses
200

A response containing a UI schema

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

404

Not Found. Indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

406

Not Acceptable. 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

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

get/cf/fragments/{fragmentId}/model/uiSchema
Request samples
Response samples
application/json
{
  • "uiSchema": {
    },
  • "staticSchema": {
    }
}

Get the current's user permissions on a list of resources

This operation returns the list of permissions the user has over a list of resources. The resources have to be either Content Fragments or Folders and be stored under /content/dam.

SecuritybearerAuth
Request
Request Body schema: application/json

Request parameters to retrieve permissions.

paths
required
Array of strings non-empty

The list of resource paths - Content Fragments, Content Fragment Models and Folder - for which the system has to return the list of permissions for a user. The Content Fragments are expected to be within the /content/dam directory, the Content Fragment Models within the /conf directory, and the Folders could be within the /content/dam, the /conf or the /content/launches directory. For folders within /content/launches, the permissions returned describe whether the user can read and create launches in that folder.

preferredPermissions
Array of strings (Permission)

The preferred list of permissions to return.

Items Enum: "READ" "EDIT" "RENAME" "DELETE" "PUBLISH" "CREATE_CONTENT_FRAGMENT" "CREATE_CONTENT_FRAGMENT_MODEL" "CREATE_LAUNCH" "CHECKIN" "CHECKOUT"
Responses
200

OK

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

406

Not Acceptable. 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.

413

Content Too Large. Indicates that the server is refusing to process a request because the request content is larger than the server is willing or able to process.

415

Unsupported Media Type. Indicates that the origin server is refusing to service the request because the content is in a format not supported by this method on the target resource.

500

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

post/cf/fragments/permissions
Request samples
application/json
{
  • "paths": [
    ],
  • "preferredPermissions": [
    ]
}
Response samples
application/json
{
  • "items": [
    ]
}

Publish Content Fragments

This operation starts an AEM workflow for publishing Content Fragments.

SecuritybearerAuth
Request
Request Body schema: application/json

Request parameters to publish content fragments.

ids
Array of strings <uuid> (UUID) <= 50 items unique

The list of content fragment IDs.

paths
Array of strings (Path) <= 50 items unique

The list of content fragment paths.

agentId
string
Default: "publish"

The agent id used for publishing the content fragments.

filterReferencesByStatus
Array of any <= 3 items

Provides the option to select which references should be included in the publication based on their status. When a status is selected (e.g., DRAFT), references with that status will be published along with the content fragment. Multiple statuses can be selected to include references with any of those statuses. If no option is selected, no references will be published regardless of their status.

Items Enum: "DRAFT" "UNPUBLISHED" "MODIFIED"
workflowModelId
string
Default: "/etc/workflow/models/scheduled_activation_with_references"

The workflow model id used for initiating the workflow instance to handle the publication. AEM provides the designated model /etc/workflow/models/scheduled_activation_with_references for publishing content fragments including their references.

workflowTitle
string

A freely defined non-empty string used to identify the workflow when it executes.

scheduledTime
integer <int64>

The scheduled time as an epoch timestamp.

preValidationSeconds
integer <int32> [ 1 .. 5 ]

If this property is provided, a validation of all the fragments contained in the payload together with all their references will be attempted. This validation only applies when filterReferencesByStatus is populated, as it validates the complete references tree based on the selected reference statuses. Without filterReferencesByStatus, there are no references to validate, making this property ineffective. The cutoff limit for this validation will be the provided value in seconds. The fragments from the payload which will be found invalid in the allocated interval will be removed from the publish operation and their status will be returned as such in the response. In case there are no valid fragments in the payload after the validation, the workflow will not be started.

Responses
200

OK

400

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

406

Not Acceptable. 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.

413

Content Too Large. Indicates that the server is refusing to process a request because the request content is larger than the server is willing or able to process.

415

Unsupported Media Type. Indicates that the origin server is refusing to service the request because the content is in a format not supported by this method on the target resource.

500

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

post/cf/fragments/publish
Request samples
application/json
{
  • "ids": [
    ],
  • "filterReferencesByStatus": [
    ],
  • "workflowModelId": "/etc/workflow/models/scheduled_activation_with_references",
  • "workflowTitle": "Workflow Title",
  • "scheduledTime": 1635244063701
}
Response samples
application/json
{
  • "workflowInstanceId": "/var/workflow/instances/server0/2022-01-21/scheduled_activation_with_references_23",
  • "items": [
    ]
}

Copy a Content Fragment

This operation copies a Content Fragment from one location to another.

SecuritybearerAuth
Request
path Parameters
fragmentId
required
string <uuid> (UUID)

The unique identifier of the Content Fragment to be copied.

Example: 49af775d-0e7a-46c3-913d-00f762528373
Request Body schema: application/json
required
parentPath
required
string^(\/content\/dam.*?)$|^((?!\/).*)$

The folder to which the Content Fragment should be copied. The provided destination path should already exist. If the destination path does not exist, the copy operation will not be performed and the system will return an error.

This path should start with /content/dam or should be relative to the /content/dam folder.

name
string

This property allows you to specify a new name for the resource being copied.

When a value is not provided the original name of the resource will be used. In case of resource conflicts in the destination folder, the server will automatically generate an alternative resource name based on the provided value.

When a value is provided and a conflict exists in the destination folder, the caller will have to explicitly solve the conflict.

Responses
201

The Content Fragment was successfully copied.

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

403

Forbidden. Indicates that the server understood the request but refuses to fulfil it.

404

Not Found. Indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

406

Not Acceptable. 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. Indicates that the request could not be completed due to a conflict with the current state of the target resource.

415

Unsupported Media Type. Indicates that the origin server is refusing to service the request because the content is in a format not supported by this method on the target resource.

500

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

post/cf/fragments/{fragmentId}/copy
Request samples
application/json
{
  • "parentPath": "string",
  • "name": "string"
}
Response samples
application/json
{
  • "path": "/content/dam/wknd-shared/en/contributors/ian-provo",
  • "title": "Ian Provo",
  • "description": "",
  • "id": "6d980e6a-c9e7-444b-af43-5503c46a061c",
  • "created": {
    },
  • "modified": {
    },
  • "status": "DRAFT",
  • "fields": [
    ],
  • "variations": [
    ],
  • "tags": [
    ],
  • "references": [
    ],
  • "model": {
    },
  • "checkedOutBy": "user",
  • "validationStatus": [ ],
  • "fieldTags": [ ],
  • "metadata": {
    }
}

Get the scheduled publication status for a list of Content Fragment IDs

SecuritybearerAuth
Request
Request Body schema: application/json
required

Request parameters to retrieve scheduled publication status of Content Fragments.

ids
Array of strings <uuid> (UUID) <= 50 items unique

The list of Content Fragment IDs.

Responses
200

OK

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

406

Not Acceptable. 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. Indicates that the origin server is refusing to service the request because the content is in a format not supported by this method on the target resource.

500

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

post/cf/fragments/scheduledPublicationStatus
Request samples
application/json
{
  • "ids": [
    ]
}
Response samples
application/json
{
  • "items": [
    ]
}

Find and replace text in Content Fragments

This operation provides support for bulk editing the selected content fragments in the sense of replacing text occurrences for all fields of type text and long-text. This operation executes synchronously. For performance considerations, the operation applies on a batch of selected CFs identified by a list of their paths.

SecuritybearerAuth
Request
Request Body schema: application/json

Request payload for Content Fragments Bulk Edit Find and Replace

paths
required
Array of strings (ContentFragmentPath) <= 20 items

The list of Content Fragments paths on which Find And Replace operation is performed.

find
required
string^[^<>]*$

String we want to replace in all TEXT fields in selected Content Fragments

replace
required
string^[^<>]*$

Replacement string.

dryRun
required
boolean

When enabled, the operation runs in simulation mode — only simulated results are returned and no changes are persisted.

ignoreErrors
required
boolean

True means that we want replacement taking place for all cases when Replacement would be successful and do nothing for cases in error.

isCaseSensitive
boolean
Default: true

True means that we want to perform case sensitive search.

matchExactWord
boolean
Default: false

A flag indicating whether to only consider the exact matches of the find String When set to true (optional), the replacement will occur only for occurrences of the find String that are entire words, excluding parts of compound words. When set to false (default), the replacement will happen for any occurrence of the find String, including within compound words.

fieldNames
Array of strings <= 10 items unique

An optional list of text and long text field names. If provided, it will be used to restrict the Find And Replace operation to those specific fields within the Content Fragments. If not provided, the operation will be performed on all text and long text fields.

Responses
200

A response containing s result for FindAndReplace operation for each of the selected Content Fragment.

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

403

Forbidden. Indicates that the server understood the request but refuses to fulfil it.

406

Not Acceptable. 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. Indicates that the origin server is refusing to service the request because the content is in a format not supported by this method on the target resource.

500

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

post/cf/fragments/findAndReplace
Request samples
application/json
{
  • "paths": [
    ],
  • "find": "adventure",
  • "replace": "fun",
  • "dryRun": true,
  • "ignoreErrors": true
}
Response samples
application/json
{
  • "items": [
    ]
}

Get the domain URL matching the AEM tier environment provided.

This operation returns the domain URL based on the AEM tier provided: author, publish or preview.

SecuritybearerAuth
Responses
200

OK

406

Not Acceptable. 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

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

get/cf/domains
Request samples
Response samples
application/json
{
  • "items": [
    ]
}

Get the model of a Content Fragment

This operation allows a caller to get the Content Fragment Model belonging to a specific Content Fragment. It is an alias for the endpoint /cf/models/{id}.

SecuritybearerAuth
Request
path Parameters
fragmentId
required
string <uuid> (UUID)

Content Fragment unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
query Parameters
partial
string

Optional UTF-8 encoded parameter that filters the response to include only a specific composite field or nested structure within a composite field.

Syntax: Uses path-like syntax with these formats:

  • '/fieldName/index' - Access specific instance of a named composite field
  • '/fieldIndex/index' - Access specific instance using field position instead of name

Where:

  • fieldName: The name of the composite field to filter
  • fieldIndex: Zero-based position of the field in the fragment's field list
  • index: Zero-based index of the specific instance within a multi-value composite field

Behavior:

  • Transforms the targeted composite field's nested structure into a flat field list
  • Excludes all other fields from the response
  • Useful for focused operations like partial updates, validation, or when working with large fragments where only specific composite data is needed
Examples:
Filters output to show only the first instance (index 0) of the 'companyAddress' composite field. Result: Returns only the nested fields within the companyAddress composite (street, city, number), excluding all other top-level fields. Fragment structure before filtering: { "fields": [ {"name": "companyName", "values": ["Adobe"]}, {"name": "companyAddress", "values": [{"street": "Main St", "city": "San Jose", "number": 345}]}, {"name": "numberOfEmployees", "values": [25000]} ] } Fragment structure after filtering with /companyAddress/0: { "fields": [ {"name": "street", "values": ["Main St"]}, {"name": "city", "values": ["San Jose"]}, {"name": "number", "values": [345]} ] }
partial=/companyAddress/0
Filters output using positional indexing where the first number (1) refers to the second field in the fragment's field list (0-based indexing), and the second number (0) refers to the first instance of that composite field. Use case: When you know the field position but not the field name, or when working with dynamically generated field structures. Example: If a fragment has fields in order [textField, compositeField, numberField], then '/1/0' targets the first instance of the composite field at position 1.
partial=/1/0
variation
string

Optional variation name. When used together with partial, the composite fragment view is resolved in the context of the given variation instead of the master. Ignored when partial is not provided.

Example: variation=variation_2026
Responses
200

OK

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

404

Not Found. Indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

406

Not Acceptable. 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

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

get/cf/fragments/{fragmentId}/model
Request samples
Response samples
application/json
{
  • "id": "L2NvbmYvd2tuZC1zaGFyZWQvc2V0dGluZ3MvZGFtL2NmbS9tb2RlbHMvYWR2ZW50dXJl",
  • "path": "/conf/wknd-shared/settings/dam/cfm/models/adventure",
  • "name": "Adventure",
  • "etag": "eddd95e986a7aff0500f0649bcf6604c",
  • "description": "",
  • "created": {
    },
  • "modified": {
    },
  • "locked": false,
  • "status": "enabled",
  • "previewStatus": "IN_SYNC",
  • "fields": [
    ],
  • "tags": [
    ],
}

Change the model of a Content Fragment

This operation allows a caller to change the Content Fragment Model for a Content Fragment. As a result of this operation, the Content Fragment can become invalid if the new Model does not match the existing content. To edit the Content Fragment's fields after a Content Fragment Model change, use a partial or a full update operation on the Fragment.

SecuritybearerAuth
Request
path Parameters
fragmentId
required
string <uuid> (UUID)

Content Fragment unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
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
required
modelId
required
string (Base64URLId) non-empty

Defines a base64url with no padding encoded ID.

Responses
204

No Content

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

403

Forbidden. Indicates that the server understood the request but refuses to fulfil it.

404

Not Found. Indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

406

Not Acceptable. 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.

412

Precondition Failed. Indicates that one or more conditions given in the request header fields evaluated to false when tested on the server.

415

Unsupported Media Type. Indicates that the origin server is refusing to service the request because the content is in a format not supported by this method on the target resource.

428

Precondition Required. Indicates that the origin server requires the request to be conditional.

500

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

put/cf/fragments/{fragmentId}/model
Request samples
application/json
{
  • "modelId": "string"
}
Response samples
application/problem+json
{}

Create a Content Fragment

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

The title of the new Content Fragment.

description
string

The description of the new Content Fragment.

modelId
required
string (Base64URLId) non-empty

Defines a base64url with no padding encoded ID.

parentPath
required
string^/?.*$

The folder path where the new Content Fragment will be created, relative to /content/dam.

Examples:

  • /wknd-shared/en/adventures creates fragment at /content/dam/wknd-shared/en/adventures
  • /my-site/content creates fragment at /content/dam/my-site/content
name
string

Optional parameter that represents the name used when storing the new Content Fragment. When missing, the value will be derived by the server from the title value.

Array of objects (ContentFragmentField)

Data needed for populating the content fragment fields defined in the model

Responses
201

The Content Fragment was successfully created.

400

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

403

Forbidden. Indicates that the server understood the request but refuses to fulfil it.

406

Not Acceptable. 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. Indicates that the request could not be completed due to a conflict with the current state of the target resource.

415

Unsupported Media Type. Indicates that the origin server is refusing to service the request because the content is in a format not supported by this method on the target resource.

500

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

post/cf/fragments/create
Request samples
application/json
{
  • "title": "Snowboarding",
  • "name": "snowboarding-cf",
  • "description": "This new CF is created with the new POST endpoint",
  • "modelId": "L2NvbmYvZ2xvYmFsL3NldHRpbmdzL2RhbS9jZm0vbW9kZWxzL3NpbXBsZS1jZg",
  • "parentPath": "/wknd-shared/en/adventures",
  • "fields": [
    ]
}
Response samples
application/problem+json
{
  • "type": "string",
  • "title": "Bad Request",
  • "status": 400,
  • "detail": "string",
  • "requestId": "string",
  • "validationStatus": [
    ]
}

Copy a Content Fragment

This operation asynchronously creates a copy of a Content Fragment and its Content Fragment references. By default, references will be copied under their original folders and their names will automatically be adjusted by the server. Optionally, references can also be copied into the same folder as the main Content Fragment. The limit of references that can be handled is configurable server-side, with a default value of 1000.

SecuritybearerAuth
Request
path Parameters
fragmentId
required
string <uuid> (UUID)

The unique identifier of the Content Fragment to be copied.

Example: 49af775d-0e7a-46c3-913d-00f762528373
Request Body schema: application/json
required
parentPath
required
string^(\/content\/dam.*?)$|^((?!\/).*)$

The folder to which the Content Fragment should be copied. The provided destination path should already exist. If the destination path does not exist, the copy operation will not be performed and the system will return an error.

This path should start with /content/dam or should be relative to the /content/dam folder.

name
string

This property allows you to specify a new name for the resource being copied.

When a value is not provided the original name of the resource will be used. In case of resource conflicts in the destination folder, the server will automatically generate an alternative resource name based on the provided value.

When a value is provided and a conflict exists in the destination folder, the caller will have to explicitly solve the conflict.

copyReferencesToMainFolder
boolean
Default: false

If set to true, the references of the Content Fragment will be copied under the same folder as the main Content Fragment. If set to false, the references will be copied under their original folders.

Responses
202

The request was accepted for processing and it will be executed asynchronously.

400

Bad Request. Indicates that the server cannot or will not process the request due to something that is perceived to be a client error. The Problem Details object will provide more information about the exact cause.

403

Forbidden. Indicates that the server understood the request but refuses to fulfil it.

404

Not Found. Indicates that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

406

Not Acceptable. 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. Indicates that the request could not be completed due to a conflict with the current state of the target resource.

415

Unsupported Media Type. Indicates that the origin server is refusing to service the request because the content is in a format not supported by this method on the target resource.

500

Internal Server Error. Indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

post/cf/fragments/{fragmentId}/copyTree
Request samples
application/json
{
  • "parentPath": "string",
  • "name": "string",
  • "copyReferencesToMainFolder": false
}
Response samples
application/problem+json
{}