Scope: APIs of AEM Assets as a Cloud Service — the new OpenAPI-based APIs (Assets Author API, Folders API, Dynamic Media with OpenAPI / Assets Delivery API), the legacy Assets HTTP API and direct binary upload protocol, AEM Events via Adobe I/O Events, and the AEM MCP Server. AEM 6.5 / Managed Services differences are noted where relevant. Java/Sling in-process APIs are only listed. No authenticated call was made; host names use {program} / {env} placeholders.
At a glance
/api/assets, Siren JSON, includes WebDAV-like COPY/MOVE verbs) and Sling GET/POST servlets, Query Builder JSON servlet S18 S95; (3) in-process Java APIs (AEM SDK, com.day.cq.dam.api) S1. GraphQL exists only for Content Fragments, not binary assets S17https://author-p{program}-e{env}.adobeaemcloud.com/adobe/assets and /adobe/folders S2 S6. Delivery tier (Dynamic Media with OpenAPI): https://delivery-p{program}-e{env}.adobeaemcloud.com/adobe/assets/… (same host pattern as author, author → delivery; custom domain configurable) S20 S21 S19. Legacy: https://author-p{program}-e{env}.adobeaemcloud.com/api/assets/…, /content/dam/… S17 S18. Experimental variants: /adobe/experimental/{name}-expires-{YYYYMMDD}/assets S3 S5. IMS: https://ims-na1.adobelogin.com/ims/token/v3 S15 S29. MCP: https://mcp.adobeaemcloud.com/adobe/mcp/aem S412026.07), each API with a stable and an experimental channel S2 S3; still 2026.07 on 2026-10-13, but the Dynamic Media with OpenAPI stable spec changed content without a version bump between 2026-09-30 and 2026-10-13 S4. Maintenance release 28871 (notes updated 2026-10-10, day not yet fixed) announces new Assets OpenAPI capabilities that are not yet in the published specs — see Announced, not yet in public specs below S112. Versioning is additive only; removals of whole endpoints announced with a Sunset header S8. Experimental APIs may change or be removed without warning; opt-in header X-Adobe-Accept-Experimental: 1 S8 S5. Deprecated: binary create/update via Assets HTTP API and AssetManager Java methods (use direct binary upload) S17 S18; Content Fragments via Assets HTTP API (migrate to CF OpenAPI) S18; GET/deliver/{assetId}/{seoName} and orderBy in delivery search S4. In-process Java APIs: a first batch of deprecated packages (Sling Commons Auth, Jetty, MongoDB, Logback, slf4j SPI/event, log4j 1.x, Guava, Felix web console…) hit its final deadline on 2026-09-28; next batch (e.g. org.bson, Tika, Commons FileUpload, com.adobe.cq.smartcontent) targeted 2027-03-31 S38. Java runtime: Java 21 decommissioned June 2027 (all environments move to Java 25) S37client_credentials), Web App (authorization_code), Single-Page App (authorization_code + PKCE) S12; Authorization: Bearer + X-Api-Key: {client_id} S14 S20. Legacy: per-environment service credentials (JWT exchanged at IMS; ≤ 10 technical accounts) and 24 h local development tokens S16. Delivery of approved, unrestricted assets needs no token S4api.yaml (kind: API) deployed by a Cloud Manager config pipeline S11x-webhooks in the specs (e.g. aem.assets.asset.processing_completed, …metadata_updated, …published) S2 S4. No SLA; delivery completeness not guaranteed S9Authentication
One-time environment setup (OpenAPI-based APIs) S11 S13
- Modernize the environment: update to AEM release 2024.10.18459 or later and, for environments created earlier, run Add Product Profiles in Cloud Manager.
- In Admin Console, associate the AEM Assets API Users service with a product profile (e.g. AEM Assets Collaborator Users – author – Program X – Environment Y); for S2S, the person configuring the integration must be a system admin or a Developer on that product profile.
- In Adobe Developer Console create a project → Add API → AEM Assets Author API (or Folders API, Sites API…) → choose the credential type (Server-to-Server, Web App, SPA) and the product profile. A disabled card with "License required" usually means the environment is not modernized S13.
- Register the client ID in AEM:
api.yamlwithkind: "API",version: "1",data.allowedClientIDs.{author|publish|preview}: [...], deployed via a Cloud Manager config pipeline (full-stack pipelines do not deploy it; RDEs use CLI) S11.
Token flows
| Credential | Grant | Notes |
|---|---|---|
| OAuth Server-to-Server | POSThttps://ims-na1.adobelogin.com/ims/token/v3 form body client_id, client_secret, grant_type=client_credentials, scope | Token represents the technical account; Adobe recommends user flows whenever an AEM user context matters (S2S bypasses per-user attribution) S12 S15 |
| OAuth Web App | authorization_code (backend holds the secret) | Acts on behalf of the signed-in user S12 |
| OAuth Single-Page App | authorization_code + PKCE, no secret | Browser-only apps S12; IMS advertises S256 S29 |
| AEM service credentials (legacy) | JWT signed with the private key from Developer Console → Integrations → Generate Service Credentials, exchanged at IMS | Max 10 technical accounts per environment (deleted ones count); sample code adobe/aemcs-api-client-lib (reference only) S16 S86 |
| Local development token | Generated in the environment's Developer Console | ≤ 24 h, for development only S16 |
Request headers: Authorization: Bearer {token} and X-Api-Key: {client_id} (search, metadata, import…) S14 S20; X-Adobe-Accept-Experimental: 1 for experimental endpoints S5 S20; optional X-Adobe-Subject-Token on delivery search/collections carries user attributes for authorization S4.
Dynamic Media with OpenAPI enablement: licences for AEM Assets + AEM Dynamic Media, then an Adobe Support ticket (program/environment IDs, use case, downstream apps and domains to allow-list); Adobe returns an IMS client ID S19.
Core resources
Paths relative to the base URLs above. "Stable" / "Exp." = channel in the 2026.07 specs.
| Resource | Endpoints | Notes |
|---|---|---|
| Asset (author) | GET/adobe/assets/{assetId} (web-optimized binary), DELETE/adobe/assets/{assetId}; Exp.: POST/adobe/assets/move (move/rename), POST/adobe/assets/publish, POST/adobe/assets/unpublish | Stable 21 ops / Exp. 37 ops S2 S3 |
| Metadata | HEAD/GET/PATCH/adobe/assets/{assetId}/metadata | PATCH = JSON Patch (RFC 6902) with If-Match; only assetMetadata is editable, repositoryMetadata → 400 S2. Exp.: POST/adobe/assets/metadata/import (bulk) S3 |
| Search (author) | POST/adobe/assets/search (allowUnindexedSearch query flag) | JSON query DSL; optional multipart PDF (≤ 50 MB) for similarity/content search S2 |
| Renditions & originals (author) | GET/adobe/assets/{assetId}/renditions, …/renditions/{renditionName}/as/{seoName}, …/original/as/{seoName} (attachment=true forces download) | S2 |
| Relations | GET/POST/adobe/assets/{assetId}/relations, GET/DELETE…/relations/{relationType}[/{relatedAssetId}], GET…/relationTypes | Typed asset-to-asset links (e.g. sources) S2 |
| Import from URL | POST/adobe/assets/import/fromUrl (≤ 300 files per request, target folder + metadata) → 202 + Location; HEAD/`GET /adobe/assets/import/jobs/{id}/status | result` |
| Upload (OpenAPI, experimental) | POST/adobe/experimental/…/assets (initiate, returns pre-signed URLs + asset IDs) → PUT parts → POST…/{assetId}/completeUpload; POST…/{assetId} for a new binary on an existing asset | Exp. only S3 |
| Jobs | GET/adobe/assets/jobs/{jobId}/status; Exp.: …/result, `…/result/successes | warnings |
| Tasks (workflow) | Exp.: POST/{assetId}/tasks, HEAD/GET/PATCH/DELETE/tasks/{taskId} | Review/approval tasks on assets S3 |
| Folders | GET/HEAD/adobe/folders?path=…&types=…&orderBy=…, POST/adobe/folders (≤ 10 paths per call, creates intermediates), POST/adobe/folders/delete, GET/HEAD/DELETE/adobe/folders/{folderId} (recursive, force), `GET /adobe/folders/jobs/{jobId}/status | result` |
| Tags (experimental) | Tag Author API: GET/ (root tags), POST/ (create 1–100 tags in one batch; Prefer header lets the server run it asynchronously → 202 + Location), HEAD/GET/PATCH/DELETE/{tagId}, GET/{tagId}/items (children), `GET /jobs/{jobId}/status | result; base path /adobe/experimental/tags-expires-20261130/tags` |
| Delivery: binaries (Dynamic Media with OpenAPI) | GET/adobe/assets/{assetId}/as/{seoName}.{format} (gif, png, jpg, jpeg, webp, avif + modifiers), GET/adobe/assets/{assetId} (defaults JPEG/WebP, quality 65, width 1024), …/original/as/{seoName}, …/renditions[/{name}/as/{seoName}], …/smartCrops, GET/adobe/assets/imagePresets | Only approved assets; anonymous unless restricted S4 S21 |
| Delivery: video | GET/adobe/assets/{assetId}/play (player container), GET…/manifest.{format} (HLS/DASH) | Long-form video up to 50 GB / 2 h S4 S21 |
| Delivery: metadata & search | GET/HEAD/adobe/assets/{assetId}/metadata; POST/adobe/assets/search (Bearer + X-Api-Key) | Searches activated (approved) assets only S4 S20 |
| Collections | POST/GET/adobe/assets/collections, GET/HEAD/POST/DELETE…/collections/{id}, GET/HEAD/POST…/{id}/items, GET…/collections/jobs/{jobId}/status | On the delivery API S4 |
| Archives (zip) | POST/adobe/assets/archives, GET…/archives/{id}/status, GET…/archives/{id}/files/{fileName}?token=… | Multi-asset/rendition downloads S4 |
| Link shares | Exp.: POST/GET/adobe/…/assets/linkshares, GET/DELETE…/linkshares/{linkId} | S5 |
| Conversational search | Exp.: POST…/assets/conversation, POST…/assets/search/token | S5 |
| Content AI search | POST/adobe/contentAI/content-sources/search, …/gensearch[/stream], content-source management | Separate "Content AI APIs" spec (not stored) S7 |
| Announced, not yet in public specs (release 28871) | Async asset copy; async metadata export (nested properties and arrays of objects; import gained the same support); task search; collection item update, collection delete, collection search (usable as a smart-collection source), smart collections and collection metadata; download job status and retrieval of completed downloads; deletion of named renditions; an API for metadata-driven permissions on AI prompts; relative date ranges in search | Release notes give no paths or methods and say the full feature set arrives with the 2026.10.0 feature activation; as of 2026-10-13 the Assets Author (stable, experimental) and Folders specs are unchanged since 2026-09-30 and contain none of these operations S112 S2 S3 Unverified (paths, channel and author vs delivery tier unknown) |
| Legacy Assets HTTP API | GET/api/assets/{path}.json (Siren listing), POST/api/assets/{path} (folder), PUT/api/assets/{path} (metadata), POST/PUT…/renditions/{name}, POST…/comments/*, COPY/MOVE with X-Destination, X-Depth, X-Overwrite, DELETE | Binary create/update not supported in the Cloud Service; returns only a hard-coded subset of metadata namespaces (full: …/jcr_content/metadata.json) S18 |
| Search (legacy) | GET/bin/querybuilder.json?path=…&property=…&p.limit=… | JCR queries S95 |
| Users / groups / permissions | No Assets OpenAPI; managed in Admin Console (product profiles, User Management API) and AEM user groups/ACLs | S68 S13 |
| Rights / expiration | No dedicated endpoint; expiry and licence data are asset metadata (e.g. prism:expirationDate, pur:expirationDate in spec examples) | S2 S4 S56 |
| Workflows | Exp. Tasks API above; AEM workflow engine via Java/HTTP (post-processing workflows) | S3 S17 |
Data model
- Asset ID: opaque URN
urn:aaid:aem:{uuid}; folders also have IDs; legacy APIs address assets by JCR path under/content/dam/…S2 S18. - Metadata envelope (OpenAPI):
assetId+repositoryMetadata(read-only system data:repo:name,repo:path,repo:size,dc:format,dam:sha1,repo:createDate, publish flagsisPublishedToAemPublish/isPublishedToDynamicMedia,aem:assetState, Scene7 fields…) +assetMetadata(editable XMP-style namespaces:dc:,xmp:,tiff:,exif:,photoshop:, custom) S2. - Tags:
xcm:keywordsentries carrytagId,ancestorIds, path and language; AI tags are inxcm:machineKeywordswithconfidenceandlocaleCodeS2. Taxonomy itself is AEM tag namespaces, managed in AEM or through the experimental Tag Author API (tag ID, name, title, description, parent tag, per-localei18ntitles) S1 S113. - Renditions: static renditions generated by asset microservices per processing profile (stored with backward-compatible names) plus dynamic renditions from Dynamic Media S39 S44 S21.
- Approval status (
dam:assetStatusapproved/rejected) gates Dynamic Media with OpenAPI and Content Hub S2 S24. - Legacy namespace quirk:
jcr:title/jcr:description/jcr:languageare exposed asdc:in the Assets HTTP API; updates todc:updatejcr:but the two are not kept in sync S18.
Search & querying
| Mechanism | Syntax | Limits / notes |
|---|---|---|
| Assets Author API search | POST/adobe/assets/search {query:[…], sort:[{field, order}], limit, cursor, facets, projectedFields}; clauses match (text, fields, mode = FULLTEXT | HYBRID | NATURAL_LANGUAGE), term, range (gt/gte/lt/lte; numbers, ISO dates), exists, boolean and/or/not | Top-level query list ≤ 5 elements (ANDed); limit ≤ 50; ≤ 2 facets (CATEGORY on dc:format / dam:assetStatus in the stable spec); projectedFields include/exclude ≤ 20 fields; unindexed properties → 400 unless allowUnindexedSearch=true S2 |
| Delivery (DM with OpenAPI) search | Same DSL on delivery-…/adobe/assets/search; facets of type CATEGORY and STAT with scope sub-queries and sort: COUNT_DESC | Approved assets only; orderBy deprecated in favour of sort S4 S20 |
| Content AI | POST/adobe/contentAI/content-sources/search and generative search (streaming) | S7 |
| Query Builder (legacy) | Predicates as query-string params; p.limit=-1 returns all; p.guessTotal for fast approximate totals | JCR/Oak index-dependent S95 |
Uploads & binaries
Direct binary upload (Cloud Service standard, HTTP) S17
- POST
https://author-p{program}-e{env}.adobeaemcloud.com/content/dam/{folder}.initiateUpload.json(form:fileName,fileSize; several files per request) →201{completeURI, folderPath, files:[{fileName, mimeType, uploadToken, uploadURIs[], minPartSize, maxPartSize}]}. PUTthe bytes to the returned cloud-storage URIs (CDN-accelerated); split in parts of exactlymaxPartSize(last part smaller); do not size parts by the number of URIs.- POST
{completeURI}(form:fileName,mimeType,uploadToken, optionalcreateVersion,versionLabel,versionComment,replace,uploadDuration,fileSize) →200; processing starts only after complete. WithoutcreateVersion/replace, an existing asset's current version is overwritten.
- Eventual consistency: initiate/complete may return 404 if folder creation has not propagated — retry with back-off S17.
- Reference client:
@adobe/aem-upload(Node.js, CLI + module) andaio aem:uploadS17 S85. - JCR package uploads do not trigger asset processing S17.
Other ingestion paths: OpenAPI Import from URL (server-side pull, async job) S2; experimental OpenAPI upload with pre-signed URLs S3; Bulk Import tool from Azure Blob / S3 (Admin view; more sources in Assets view) S47 S30.
Downloads & delivery
- Author:
…/original/as/{seoName}, rendition endpoints,attachment=trueS2. - Delivery URLs (DM with OpenAPI): SEO name + format in the path, image modifiers as query params (width — default max 2048 px, height, quality 1–100,
max-quality, crop, smartcrop, preset, rotate, flip, blur, sharpen, dpr, background colour, layers…); Smart Imaging may return AVIF/WebP regardless of the requested format; CDN TTL 10 min so changes propagate in < 10 min S4 S19 S21. Advanced modifiers are trialled on the experimental path S5 S21. - Restricted delivery: roles/groups set as asset metadata (with optional time window) → delivery requires an IMS bearer token; unauthorised users get 404 S22 S37.
Events & webhooks
Event types (from the 2026.07 specs, x-webhooks) S2 S4
| Tier | Event type | Notes |
|---|---|---|
| Author | aem.assets.asset.processing_completed | Recommended instead of an "asset created" trigger (metadata is available, avoids contention) |
| Author | aem.assets.asset.metadata_updated | Only for changes through Assets view UI or Assets OpenAPI — not Touch UI (Admin view) or other AEM APIs |
| Author | aem.assets.asset.deleted | Same restriction as above |
| Author | aem.assets.asset.published / aem.assets.asset.unpublished | Moves via Assets view/OpenAPI emit unpublish + publish |
| Author | aem.assets.import.completed | Import-from-URL jobs |
| Author + Delivery | asset downloaded (assets, folders, collections) | |
| Delivery | aem.assets.asset.ready_for_delivery / aem.assets.asset.removed_from_delivery | Long-running processing (video, ML) |
| Delivery | aem.assets.asset.delivery_ingestion_failed | Added to the stable spec between 2026-09-30 and 2026-10-13 (no version bump): asset registered for delivery could not be ingested; reason.category = VALIDATION_FAILURE (fix at source, re-register) or INTERNAL_SERVER_ERROR; optional assetId / correlationId (e.g. a gs:// object URI); transient faults retried silently S4 |
| Delivery | aem.assets.search (asset search executed) | Added with Summit 2026 announcements (search summary); in the stable spec S4 |
| Author (announced) | search events for author OpenAPI searches; asset events for metadata updates, deletions and moves | Release 28871; no event-type names published and not yet in the author spec; whether this lifts the Assets view/OpenAPI-only scope of metadata_updated / deleted is not stated S112 Unverified |
- Envelope: CloudEvents (
id,source,specversion,type,time,datacontenttype,data={assetId, repositoryMetadata, assetMetadata}) S2. - Subscription: Admin Console (enable the product profile) → Developer Console project → Add Event → AEM Assets → environment → event types → OAuth S2S credential → consumption method S9.
- Delivery options: I/O Events webhook (individual or batch), Journaling API (events retained 7 days), I/O Runtime (App Builder) actions, Amazon EventBridge S9 S28.
- Webhook security: challenge-based registration (async validation URL valid 5 min); payloads signed with two RSA-SHA256 signatures in
x-adobe-digital-signature-1/-2, public keys fetched fromstatic.adobeioevents.comviax-adobe-public-key{1,2}-pathS28. - Retries: failed deliveries retried within a 24-hour window per event; registrations can move to Unstable then Disabled; re-enabling does not recreate expired retries — use the Journal to backfill S28.
- Not on 6.5/AMS: cloud-native AEM Events are Cloud-Service-only; 6.5 relies on the older AEM add-on module for I/O Events or in-process listeners S9.
Limits & quirks
| Topic | Detail | |
|---|---|---|
| Rate limits | Not documented for Assets OpenAPIs; 429 + backoff is the platform rule; ask support for thresholds | S25 S26 Unverified (absence) |
| Page size | limit max 50 on search, folders, collections, presets | S2 S4 S6 |
| Folder creation | ≤ 10 folder paths per POST/adobe/folders | S6 |
| Folders API: hidden folders | Behaviour change (release 28871): hidden folders are now excluded from Folders API results. Adobe files it as a fixed issue (ASSETS-76949), but integrations that walked the tree via GET/adobe/folders and relied on seeing hidden folders will get fewer results; the published Folders spec does not mention it and does not define "hidden" | S112 S6 Unverified (definition of hidden not documented) |
| Tag creation | ≤ 100 tags per POST on the Tag Author API; experimental base path expires 2026-11-30 | S113 |
| Spec versioning | Spec content can change without an info.version bump (Dynamic Media with OpenAPI stable, observed 2026-10-13) — diff the files, not only the version | S4 |
| Import from URL | ≤ 300 files per request; ≥ 10 GB requires Range support (206 on bytes=0-0) | S2 |
| Events scope | metadata_updated / deleted not emitted for Admin view (Touch UI) or legacy API changes — integrations mixing UIs can miss events | S2 |
| No SLA on events | Transport to I/O Events is not transactional | S9 |
| Experimental path dates | Experimental base paths embed an expiry date; the published advanced-modifiers spec still uses advancemodifiers-expires-20251201 although that date has passed | S5 Unverified (status of that channel unclear) |
| Author vs delivery | Delivery search/URLs only return approved assets; newly approved assets and changes can take up to ~10 min (CDN TTL) | S19 S21 |
| Environment allow-listing | Tokens from an unregistered client ID fail until api.yaml is deployed through a config pipeline | S11 |
| Legacy HTTP API | 404 when the asset's On Time is in the future or Off Time passed; only a subset of metadata namespaces returned | S18 |
| Eventual consistency | 404s on initiate/complete upload after folder creation — retry | S17 |
| Metadata extraction | Fails for files above ~15 GB | S46 |
| Duplicate detection | Disabled by default; notifies only the first 100 duplicates per upload | S58 |
| IMS discovery | IMS's OpenID configuration does not list client_credentials, although S2S uses it on the same token endpoint | S29 S15 |
SDKs, tools & code samples
| Library / tool | Language | Maintainer | Status | |
|---|---|---|---|---|
@adobe/aem-upload (adobe/aem-upload) | Node.js (module + CLI) | Adobe | 2.0.5, 2026-06-10; Apache-2.0; 69 GitHub stars | S85 S86 |
aio-cli-plugin-aem (aio aem:upload) | Node.js CLI | Adobe | 1.2.0 (npm 2023-08); repo last push 2024-04 | S85 S86 |
@adobe/aio-lib-events | Node.js | Adobe | 4.1.1 (2026-09); I/O Events client incl. signature verification | S85 S28 |
aemcs-api-client-lib | Node.js sample | Adobe | Reference code for service-credential token exchange, "not maintained as a production library" | S16 S86 |
AEM SDK / Java APIs (com.day.cq.dam.api) | Java | Adobe | Javadoc on javadoc.io | S1 |
Asset Selectors / Content Advisor MFE examples (adobe/aem-assets-selectors-mfe-examples) | JS (React, Vanilla) | Adobe | Last push 2026-08-25 | S87 |
Assets view UI extension templates (aem-assets-*-ext-tpl) | App Builder (JS) | Adobe | Active 2026 | S87 |
| Asset Share Commons | Java/HTL (AEM project) | Adobe (open source) | Reference asset-share portal, last push 2026-09-15 | S87 |
aem-assets-plugin (Edge Delivery Services blocks) | JS | Adobe R&D | Last push 2026-09-22 | S86 |
| Python / .NET / Java OpenAPI clients | — | — | None official; generate from specs | Unverified (absence check) |
Changelog of the API
| Date | Change | |
|---|---|---|
| 2027-06 (planned) | Java runtime: all environments (incl. staging/production) migrate to Java 25; Java 21 runtime decommissioned and no longer supported by the AEM SDK. Customer code may still be compiled with Java 11/17/21. Earlier milestones: SDK Java 25 support mid-October 2026, optional opt-in November 2026, gradual RDE/Dev migration February–May 2027 (temporary rollback to 21 possible) | S37 |
| 2027-03-31 (target) | Removal of a second batch of deprecated Java APIs, incl. org.bson, com.adobe.granite.xss, Apache Tika, Commons FileUpload, OpenNLP, com.adobe.cq.smartcontent (deprecated 2026-06-30, relevant to Assets smart-tag customisations); Commons Lang 2 / Collections 3, org.json, org.apache.sling.commons.json tentatively 2027-12-31 | S38 |
| 2026-09-28 | Final deadline for the first batch of deprecated Java APIs (org.apache.sling.commons.auth[.spi], org.eclipse.jetty.*, com.mongodb.*, ch.qos.logback.*, org.slf4j.spi/event, org.apache.log4j.*, com.google.common.* (Guava), org.apache.felix.webconsole.*, Abdera, Felix HTTP whiteboard…): environments still using them stop receiving critical release updates and lose Adobe's standard performance/availability commitments. Prior steps: reminder e-mails from 2026-01-26, Code Quality pipeline pause (overridable) from 2026-02-26, deployment blocked from 2026-04-14 | S38 S37 |
| 2026-10 ("October X, 2026") | Maintenance release 28871: Assets OpenAPI tagging (incl. async bulk tag creation), async asset copy and metadata export, task search, collection item update / delete / search / smart collections / collection metadata, download job status, named-rendition deletion, prompt-permission API; author search events and events on metadata update, delete, move; Folders API excludes hidden folders. Full set delivered with the 2026.10.0 feature activation | S112 |
| 2026-09-30 → 2026-10-13 | Dynamic Media with OpenAPI stable spec updated without version bump: new aem.assets.asset.delivery_ingestion_failed event; link-share password minimum relaxed from 8 characters with mixed case + digit to 1 character; delivery-search term values may now be JSON booleans | S4 |
| 2026-09-24 | 2026.9.0: DM with OpenAPI multi-caption/multi-audio, AI captions, attribute-based secure delivery (Limited Availability) | S37 |
| 2026-07 | Unified AEM MCP Server (content incl. asset upload/download/move/publish, metadata edit, DM renditions); domain-specific MCP servers now "recommended against" | S41 |
| 2026.07 | Current spec version of Assets Author, Folders and DM with OpenAPI APIs | S2 S4 S6 |
| 2026 (Summit, 2026-04) | Delivery APIs emit asset search and download events | search summary; spec confirms events S4 |
| 2024-10-31 | Release 2024.10.18459 required ("modernization") for OpenAPI-based APIs; AEM Assets API Users product-profile service | S13 S17 |
| 2023-08 (mid) | Overload responses change from 503 to 429 | S25 |
| Unknown | Binary upload via Assets HTTP API / AssetManager deprecated in the Cloud Service (direct binary upload instead) | S17 S38 |
| Unknown | Content Fragments via Assets HTTP API superseded by CF OpenAPIs | S18 |
| Unknown | GET/deliver/{assetId}/{seoName} and delivery-search orderBy deprecated | S4 |
| File | Format | Size | Download |
|---|---|---|---|
aem_openapi_assets-author_experimental-metaall_2026.07.yaml | OpenAPI | 236 KB | Download |
aem_openapi_assets-author_stable_2026.07.yaml | OpenAPI | 144 KB | Download |
aem_openapi_assets-delivery-dm_experimental-advancemodifiers_2026.07.yaml | OpenAPI | 226 KB | Download |
aem_openapi_assets-delivery-dm_stable_2026.07.yaml | OpenAPI | 255 KB | Download |
aem_openapi_folders_stable_2026.07.yaml | OpenAPI | 52 KB | Download |
aem_openapi_tags-author_experimental-tags_2026.07.yaml | OpenAPI | 60 KB | Download |