Fragment Variations

List a Content Fragment's Variations

This operation provides support for retrieving all the Variations of a Content Fragment. 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
path Parameters
fragmentId
required
string <uuid> (UUID)

Content Fragment unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
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. 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}/variations
Request samples
Response samples
application/json
{
  • "items": [
    ],
  • "cursor": "string"
}

Create a Content Fragment Variation

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

Content Fragment unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
Request Body schema: application/json
required
title
required
string non-empty

Variation title

description
string

Variation description.

Responses
201

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.

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}/variations
Request samples
application/json
{
  • "title": "Summit 2023",
  • "description": "The Summit 2023 variation"
}
Response samples
application/json
{
  • "name": "another",
  • "title": "Summit 2023",
  • "description": "The Summit 2023 variation",
  • "fields": [
    ],
  • "tags": [ ],
  • "validationStatus": [ ],
  • "references": [
    ],
  • "fieldTags": [ ]
}

Get a Variation for a Content Fragment

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

Content Fragment unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
name
required
string

The name of the Variation

Example: summit_2023
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
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"
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}/variations/{name}
Request samples
Response samples
application/json
{
  • "name": "another",
  • "title": "Summit 2023",
  • "description": "The Summit 2023 variation",
  • "fields": [
    ],
  • "tags": [ ],
  • "validationStatus": [ ],
  • "references": [
    ],
  • "fieldTags": [ ]
}

Edit a Content Fragment Variation

This operation allows editing a Content Fragment Variation. 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
name
required
string

The name of the Variation

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

412

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

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.

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}/variations/{name}
Request samples
application/json-patch+json
[
  • {
    },
  • {
    },
  • {
    }
]
Response samples
application/json
{
  • "name": "another",
  • "title": "Title has been replaced",
  • "description": "The Summit 2023 variation",
  • "fields": [
    ],
  • "tags": [ ]
}

Delete a Content Fragment Variation

This operation deletes a Content Fragment Variation.

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

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

Content Fragment unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
name
required
string

The name of the Variation

Example: summit_2023
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}/variations/{name}
Request samples
Response samples
application/problem+json
{}

Get the tree of references contained in a Content Fragment Variation

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

Resource unique identifier

Example: 49af775d-0e7a-46c3-913d-00f762528373
name
required
string

The name of the variation

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}/variations/{name}/references
Request samples
Response samples
application/json
{
  • "items": [
    ]
}