Dynamic Media URL format inconsistency across AEM delivery methods  | Community
Skip to main content
Pankaj_Datt
Level 1
May 15, 2026
Question

Dynamic Media URL format inconsistency across AEM delivery methods 

  • May 15, 2026
  • 3 replies
  • 88 views

Hi Everyone,

I am working on Dynamic Media integration in AEM as a Cloud Service using the AssetDelivery API.

Currently, my Sling Model generates URLs like:

/adobe/dynamicmedia/deliver/dm-aid--e3ba909d-36de-46ea-ba72-bd8737f9c61f/OIP.jpeg.webp?preferwebp=true

using:

assetDelivery.getDeliveryURL(assetResource, options);

However, from the AEM Assets Console, I can see URLs in the following format:

/adobe/assets/urn:aaid:aem:20c84486-5512-4ac8-b8f7-a8ba2c735155/as/OIP.avif?width=1024&quality=65&assetName=OIP.jpeg

My understanding is:

  • /adobe/dynamicmedia/deliver/... → Scene7 / Dynamic Media Deliver URLs
  • /adobe/assets/urn:aaid:aem:... → Dynamic Media with OpenAPI (Next-Gen DM) URLs

I want to understand:

  1. Can AssetDelivery#getDeliveryURL() generate the OpenAPI-style /adobe/assets/urn:aaid:aem:... URLs?
  2. If not, what is the recommended API/service to generate those URLs programmatically inside Sling Models?
  3. Is additional OpenAPI configuration required in AEM Cloud Service to expose asset URNs/asset IDs?
  4. Is there any metadata/property available on the Asset object that maps to the urn:aaid:aem: identifier?
  5. How can we determine programmatically whether an asset is configured for Scene7 delivery vs OpenAPI delivery?

Currently:

  • Assets are approved and published
  • Dynamic Media is enabled
  • AssetDelivery service is available and working
  • No hardcoded URLs are being used

Any guidance or documentation references would be really helpful.

Thanks!

3 replies

Adobe Employee
May 18, 2026

Hi ​@Pankaj_Datt ,

 

1. Can AssetDelivery#getDeliveryURL() generate the OpenAPI-style /adobe/assets/urn:aaid:aem:... URLs?
Answer: No, AssetDelivery#getDeliveryURL(...) comes from the Sites web‑optimized image delivery feature and intentionally generates URLs in this form:/adobe/dynamicmedia/deliver/dm-aid--<uuid>/<seoName>.<ext>?preferwebp=true ...

2. If not, what is the recommended API/service to generate those URLs programmatically inside Sling Models?
Answer: Use the DM‑OpenAPI delivery contract directly:
https://delivery-<tenant>.adobeaemcloud.com
  /adobe/assets/urn:aaid:aem:<uuid>/as/<seoName>.<format>?width=...&quality=...

3. Is additional OpenAPI configuration required in AEM Cloud Service to expose asset URNs/asset IDs?
Answer: To actually deliver approved assets via DM‑OpenAPI (i.e. make URLs like /adobe/assets/urn:aaid:aem:... work), you must have Dynamic Media with OpenAPI licensed and enabled for the environment and ensure assets are Approved with target = Delivery (not just plain published).

4. Is there any metadata/property available on the Asset object that maps to the urn:aaid:aem: identifier?
Answer: There are two key pieces:
jcr:uuid (or implementation equivalent) → the bare UUID.
ID in UI / APIs → effectively the same UUID, and the URN is: urn:aaid:aem:<uuid>

5. How can we determine programmatically whether an asset is configured for Scene7 delivery vs OpenAPI delivery?
Answer: Use configuration, discovery, or simply inspect URL patterns and/or GraphQL fields.

Pankaj_Datt
Level 1
June 5, 2026

Thanks ​@goels 

Level 4
June 8, 2026

Hi ​@Pankaj_Datt, building on ​@goels  answer, a few additions that should unblock you:


Q1–2: AssetDelivery won’t produce OpenAPI URLs, build them manually
AssetDelivery#getDeliveryURL() is Sites web-optimized delivery only. For OpenAPI URLs, construct them yourself in your Sling Model:

 

String uuid = assetResource.getValueMap().get("jcr:uuid", String.class);
String url = String.format("https://%s/adobe/assets/urn:aaid:aem:%s/as/%s.%s?width=%d&quality=%d", deliveryHost, uuid, seoName, format, width, quality);

 

Keep deliveryHost (delivery-pXXXX-eXXXXXX.adobeaemcloud.com) in an OSGi config so DEV/STAGE/PROD stay portable.

 

Q3: Three prereqs people miss

    •    DM with OpenAPI must be in ready state in Cloud Manager
    •    Requires Dynamic Media Ultimate license (not Standard)
    •    The integration/user must be on the AEM Assets DMOpenAPI Users delivery product profile in Admin Console, without this, URLs silently fail even when everything else is correct

 

Q4: UUID mapping
jcr:uuid = the bare UUID. urn:aaid:aem:<jcr:uuid> = your asset ID. Via the OpenAPI schema it also surfaces as repo:assetId (pre-formatted) alongside repo:repositoryId (the delivery host).

 

Q5: Scene7 vs OpenAPI detection
Drive it via OSGi config per environment rather than runtime guessing. URL pattern is also a reliable signal: /adobe/dynamicmedia/deliver/ = Scene7, /adobe/assets/urn:aaid:aem: = OpenAPI.

 

Also note: OpenAPI CDN has a ~10 min TTL, so newly approved assets take a few minutes to resolve.

 

Hope this helps!