Data elements
Data elements are reusable values within a property. They are extension-backed resources, so most real workflows pair this page with Extensions.
Data elements
| Attribute | Data type | Description |
|---|---|---|
| list_for_property(property_id) | Array<DataElement> | Lists property data elements. |
| create(property_id:, name:, delegate_descriptor_id:, settings:, extension_id:, enabled: true) | DataElement | Creates a data element. The extension relationship is required. |
| update(data_element_id, attributes) | DataElement | Updates an existing data element. |
| revise(data_element_id) | DataElement | Revises the data element for library workflows. |
| upstream_chain(data_element_or_id, library_id:, property_id:) | UpstreamChain | Resolves the data element across the upstream library chain for a specific library context. |
| find_comprehensive(data_element_id, library_id:, property_id:) | ComprehensiveDataElement | Returns the data element from a library-context review snapshot together with referenced data elements, impacted rules, and normalized review payload. |
| comprehensive_upstream_chain(data_element_or_id, library_id:, property_id:) | ComprehensiveUpstreamChain | Resolves the data element upstream with snapshot-aware impact analysis and normalized JSON. |
Comprehensive review
Data element review object
# DE123 = data element ID.
# LB_DEV = library ID.
# PR123 = property ID.
review_element = client.data_elements.find_comprehensive(
"DE123",
library_id: "LB_DEV",
property_id: "PR123"
)
# Data elements referenced directly by this data element.
puts review_element.referenced_data_elements.map(&:name).inspect
# Rules impacted inside the same library snapshot, including transitive usage.
puts review_element.impacted_rules.map(&:name).inspect
# Pretty JSON intended for code review or diff tooling.
puts review_element.normalized_json
Create a data element
Sample: create a data element
POST /properties/:property_id/data_elements
# PR... = property ID.
# EX... = extension ID.
# Create one data element and attach it to an installed extension.
curl -s "https://reactor.adobe.io/properties/PR1234567890abcdef1234567890abcd/data_elements" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "x-api-key: YOUR_ADOBE_CLIENT_ID" \
-H "x-gw-ims-org-id: YOUR_IMS_ORG_ID" \
-H "Accept: application/vnd.api+json;revision=1" \
-H "Content-Type: application/vnd.api+json" \
--data '{
"data": {
"type": "data_elements",
"attributes": {
"name": "Page Title",
"delegate_descriptor_id": "core::dataElements::custom-code",
"settings": "{\"source\":\"return document.title;\"}",
"enabled": true
},
"relationships": {
"extension": {
"data": {
"id": "EX1234567890abcdef1234567890abcd",
"type": "extensions"
}
}
}
}
}'
Sample response
{
"data": {
// DE... = data element ID.
"id": "DE1234567890abcdef1234567890abcd",
"type": "data_elements",
"attributes": {
// Human-readable data element name.
"name": "Page Title",
// Whether the data element is enabled.
"enabled": true,
// Whether Adobe should normalize whitespace.
"clean_text": false,
// Whether Adobe should force lowercase output.
"force_lower_case": false,
// Default value if resolution fails.
"default_value": null,
// Storage strategy for the value.
"storage_duration": "none",
// Delegate that defines how the data element resolves.
"delegate_descriptor_id": "core::dataElements::custom-code",
// Serialized settings stored by Adobe.
"settings": "{\"source\":\"return document.title;\"}",
// Adobe creation timestamp.
"created_at": "2026-03-26T10:22:11.000Z",
// Adobe last-update timestamp.
"updated_at": "2026-03-26T10:22:11.000Z",
// Publish timestamp, or null when unpublished.
"published_at": null
}
}
}
Read Extensions alongside this page when you need to discover the installed extension instance that supplies the delegate.