Extensions

Extensions provide the delegates behind conditions, actions, and data elements. This page focuses on installed extension instances inside a property. Use Extension packages & authorizations when you are working with packaged distribution rather than installed instances.

Familyclient.extensions

Extensions

AttributeData typeDescription
list_for_property(property_id)
Array<Extension>

Lists extensions installed in the property.

create(property_id:, attributes:, relationships:)
Extension

Creates an extension instance in the property.

revise(extension_id)
Extension

Revises the extension for library workflows.

upstream_chain(extension_or_id, library_id:, property_id:)
UpstreamChain

Resolves the extension across the upstream library chain for a specific library context.

find_comprehensive(extension_id, library_id:, property_id:)
ComprehensiveExtension

Returns the extension from a library-context review snapshot together with dependent data elements, rule components, rules, and normalized review payload.

comprehensive_upstream_chain(extension_or_id, library_id:, property_id:)
ComprehensiveUpstreamChain

Resolves the extension upstream with snapshot-aware dependent records and normalized JSON.

extension_package(extension_id)
ExtensionPackage

Traverses from an installed extension to its backing extension package.

Comprehensive review

Extension review object

# EX123 = extension ID.
# LB_DEV = library ID.
# PR123 = property ID.
review_extension = client.extensions.find_comprehensive(
  "EX123",
  library_id: "LB_DEV",
  property_id: "PR123"
)

# Dependent resources from the same library snapshot.
puts review_extension.data_elements.map(&:name).inspect
puts review_extension.rule_components.map(&:name).inspect
puts review_extension.rules.map(&:name).inspect
# Pretty JSON intended for code review or diff tooling.
puts review_extension.normalized_json

Upstream lookup

Use client.extensions.comprehensive_upstream_chain(...) when you need the dependent resources and normalized JSON, not just the lean upstream revision lookup.

Raw API mapping

Sample: list installed extensions for a property

GET /properties/:property_id/extensions

# PR... = property ID.
# Request all installed extension instances for the property.
curl -s "https://reactor.adobe.io/properties/PR1234567890abcdef1234567890abcd/extensions" \
  -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"

Sample response

{
  // Collection response for installed extension instances.
  "data": [
    {
      // EX... = extension instance ID.
      "id": "EX1234567890abcdef1234567890abcd",
      "type": "extensions",
      "attributes": {
        // Human-readable extension name.
        "name": "Core",
        // Delegate that identifies the extension configuration type.
        "delegate_descriptor_id": "core::extensionConfiguration::config",
        // Serialized extension settings.
        "settings": "{}",
        // Adobe creation timestamp.
        "created_at": "2026-03-26T09:58:22.000Z",
        // Adobe last-update timestamp.
        "updated_at": "2026-03-26T09:58:22.000Z",
        // Publish timestamp, or null while unpublished.
        "published_at": null
      }
    }
  ]
}

Was this page helpful?