DAM Wiki

Adobe Experience Manager Assets API

Adobe Inc. · San Jose, California, USA · Founded 1982 · public (NASDAQ: ADBE)Verified 2026-10-13 · 113 sources
  • SaaS
  • Private cloud
  • On-premise
  • Enterprise
  • REST API
  • Partial OpenAPI
  • Webhooks
  • SAML SSO
  • MCP: AEM MCP Server
Complete · 7 of 7 pages
113sources
6API specs
10-13verified 2026
Official website ↗AEM Assets alternatives →

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 styles
Three generations coexist S1 S17: (1) OpenAPI-based REST APIs (OpenAPI 3.0.3; JSON; RFC 7807 errors; ETag concurrency; async jobs) S2 S8; (2) legacy Assets HTTP API (/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 S17
Base URL(s)
Author tier (Assets Author, Folders): https://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 S41
Current version(s) & deprecations
Specs versioned by release (2026.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) S37
Auth methods
OAuth 2.0 via Adobe IMS, credentials created in Adobe Developer Console: Server-to-Server (client_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 S4
Token lifetime / refresh
IMS access tokens "usually" expire in 24 h (expires_in in seconds); cache and reuse, Adobe may throttle excessive token generation S15; JWT-derived and local-dev tokens also 24 h S16. Refresh-token rules for Web App/SPA credentials: see Adobe IMS docs — Unknown here
Scopes / permission model
Scopes are assigned by the Developer Console credential (exact scope strings not given in the tutorials) S14. Real permissions = AEM product profiles → services → AEM user groups with ACLs; the "AEM Assets API Users" service must be added to a product profile; the S2S technical account becomes a member of e.g. AEM Assets Collaborator Users – Service S11 S13 S14. Client IDs must be allow-listed per environment/tier in an api.yaml (kind: API) deployed by a Cloud Manager config pipeline S11
Official spec
OpenAPI 3.0.3 YAML per API, rendered with Redoc on developer.adobe.com and served from the Redocly registry S1–S6; 6 files (Assets Author stable + experimental, Dynamic Media with OpenAPI stable + experimental, Folders, Tag Author experimental) — archived copy on DAM Wiki: API spec downloads S113. No spec for Assets HTTP API, direct binary upload or Query Builder (prose only) S17 S18. No official Postman collection found
Rate limits
Not public for the Assets OpenAPIs (no 429 response declared in the specs S2). Platform rule: AEM returns 429 when request rates exceed healthy levels (503 before mid-Aug 2023); use exponential backoff; thresholds via support ticket S25 S26. For comparison, the separate Content Fragment Delivery OpenAPI documents 200 req/s per environment S27
Pagination
Cursor-based: limit (1–50) + opaque cursor returned while more items exist S2 S4 S6 S8; Folders listing sortable with `orderBy=field asc
Webhooks / events
AEM Events (Cloud Service only) routed to Adobe I/O Events: webhook (single or batch), Journaling API (pull, 7-day journal), I/O Runtime actions, Amazon EventBridge S9 S28. Event types defined as x-webhooks in the specs (e.g. aem.assets.asset.processing_completed, …metadata_updated, …published) S2 S4. No SLA; delivery completeness not guaranteed S9
Official SDKs
No generated SDK for the OpenAPIs. Official Node.js libs: @adobe/aem-upload 2.0.5 (direct binary upload, 2026-06-10) S85, @adobe/aio-lib-events 4.1.1 S85, aio-cli-plugin-aem S86; Java AEM SDK (javadoc) S1
Sandbox / trial access
No public sandbox. Customers use their Cloud Manager dev/stage/RDE environments (Assets Prime: production only) S33; the API reference pages include a playground that calls your own environment with a Developer Console token S11

Authentication

One-time environment setup (OpenAPI-based APIs) S11 S13

  1. Modernize the environment: update to AEM release 2024.10.18459 or later and, for environments created earlier, run Add Product Profiles in Cloud Manager.
  2. 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.
  3. 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.
  4. Register the client ID in AEM: api.yaml with kind: "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

CredentialGrantNotes
OAuth Server-to-ServerPOSThttps://ims-na1.adobelogin.com/ims/token/v3 form body client_id, client_secret, grant_type=client_credentials, scopeToken represents the technical account; Adobe recommends user flows whenever an AEM user context matters (S2S bypasses per-user attribution) S12 S15
OAuth Web Appauthorization_code (backend holds the secret)Acts on behalf of the signed-in user S12
OAuth Single-Page Appauthorization_code + PKCE, no secretBrowser-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 IMSMax 10 technical accounts per environment (deleted ones count); sample code adobe/aemcs-api-client-lib (reference only) S16 S86
Local development tokenGenerated 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.

ResourceEndpointsNotes
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/unpublishStable 21 ops / Exp. 37 ops S2 S3
MetadataHEAD/GET/PATCH/adobe/assets/{assetId}/metadataPATCH = 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
RelationsGET/POST/adobe/assets/{assetId}/relations, GET/DELETE…/relations/{relationType}[/{relatedAssetId}], GET…/relationTypesTyped asset-to-asset links (e.g. sources) S2
Import from URLPOST/adobe/assets/import/fromUrl (≤ 300 files per request, target folder + metadata) → 202 + Location; HEAD/`GET /adobe/assets/import/jobs/{id}/statusresult`
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 assetExp. only S3
JobsGET/adobe/assets/jobs/{jobId}/status; Exp.: …/result, `…/result/successeswarnings
Tasks (workflow)Exp.: POST/{assetId}/tasks, HEAD/GET/PATCH/DELETE/tasks/{taskId}Review/approval tasks on assets S3
FoldersGET/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}/statusresult`
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}/statusresult; 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/imagePresetsOnly approved assets; anonymous unless restricted S4 S21
Delivery: videoGET/adobe/assets/{assetId}/play (player container), GET…/manifest.{format} (HLS/DASH)Long-form video up to 50 GB / 2 h S4 S21
Delivery: metadata & searchGET/HEAD/adobe/assets/{assetId}/metadata; POST/adobe/assets/search (Bearer + X-Api-Key)Searches activated (approved) assets only S4 S20
CollectionsPOST/GET/adobe/assets/collections, GET/HEAD/POST/DELETE…/collections/{id}, GET/HEAD/POST…/{id}/items, GET…/collections/jobs/{jobId}/statusOn 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 sharesExp.: POST/GET/adobe/…/assets/linkshares, GET/DELETE…/linkshares/{linkId} S5
Conversational searchExp.: POST…/assets/conversation, POST…/assets/search/token S5
Content AI searchPOST/adobe/contentAI/content-sources/search, …/gensearch[/stream], content-source managementSeparate "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 searchRelease 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 APIGET/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, DELETEBinary 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 / permissionsNo Assets OpenAPI; managed in Admin Console (product profiles, User Management API) and AEM user groups/ACLs S68 S13
Rights / expirationNo dedicated endpoint; expiry and licence data are asset metadata (e.g. prism:expirationDate, pur:expirationDate in spec examples) S2 S4 S56
WorkflowsExp. 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 flags isPublishedToAemPublish / isPublishedToDynamicMedia, aem:assetState, Scene7 fields…) + assetMetadata (editable XMP-style namespaces: dc:, xmp:, tiff:, exif:, photoshop:, custom) S2.
  • Tags: xcm:keywords entries carry tagId, ancestorIds, path and language; AI tags are in xcm:machineKeywords with confidence and localeCode S2. Taxonomy itself is AEM tag namespaces, managed in AEM or through the experimental Tag Author API (tag ID, name, title, description, parent tag, per-locale i18n titles) 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:assetStatus approved/rejected) gates Dynamic Media with OpenAPI and Content Hub S2 S24.
  • Legacy namespace quirk: jcr:title/jcr:description/jcr:language are exposed as dc: in the Assets HTTP API; updates to dc: update jcr: but the two are not kept in sync S18.

Search & querying

MechanismSyntaxLimits / notes
Assets Author API searchPOST/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/notTop-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) searchSame DSL on delivery-…/adobe/assets/search; facets of type CATEGORY and STAT with scope sub-queries and sort: COUNT_DESCApproved assets only; orderBy deprecated in favour of sort S4 S20
Content AIPOST/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 totalsJCR/Oak index-dependent S95
  • Sorting without sort = relevance order S2. Deep pagination = follow cursor; maximum total result window: Unknown.
  • Field naming in queries follows the response schema: repositoryMetadata.repo:name, assetMetadata.dc:title S2.

Uploads & binaries

Direct binary upload (Cloud Service standard, HTTP) S17

  1. POSThttps://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}]}.
  2. PUT the bytes to the returned cloud-storage URIs (CDN-accelerated); split in parts of exactly maxPartSize (last part smaller); do not size parts by the number of URIs.
  3. POST{completeURI} (form: fileName, mimeType, uploadToken, optional createVersion, versionLabel, versionComment, replace, uploadDuration, fileSize) → 200; processing starts only after complete. Without createVersion/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) and aio aem:upload S17 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=true S2.
  • 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

TierEvent typeNotes
Authoraem.assets.asset.processing_completedRecommended instead of an "asset created" trigger (metadata is available, avoids contention)
Authoraem.assets.asset.metadata_updatedOnly for changes through Assets view UI or Assets OpenAPI — not Touch UI (Admin view) or other AEM APIs
Authoraem.assets.asset.deletedSame restriction as above
Authoraem.assets.asset.published / aem.assets.asset.unpublishedMoves via Assets view/OpenAPI emit unpublish + publish
Authoraem.assets.import.completedImport-from-URL jobs
Author + Deliveryasset downloaded (assets, folders, collections)
Deliveryaem.assets.asset.ready_for_delivery / aem.assets.asset.removed_from_deliveryLong-running processing (video, ML)
Deliveryaem.assets.asset.delivery_ingestion_failedAdded 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
Deliveryaem.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 movesRelease 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 from static.adobeioevents.com via x-adobe-public-key{1,2}-path S28.
  • 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

TopicDetail
Rate limitsNot documented for Assets OpenAPIs; 429 + backoff is the platform rule; ask support for thresholds S25 S26 Unverified (absence)
Page sizelimit max 50 on search, folders, collections, presets S2 S4 S6
Folder creation≤ 10 folder paths per POST/adobe/folders S6
Folders API: hidden foldersBehaviour 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 versioningSpec 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 scopemetadata_updated / deleted not emitted for Admin view (Touch UI) or legacy API changes — integrations mixing UIs can miss events S2
No SLA on eventsTransport to I/O Events is not transactional S9
Experimental path datesExperimental 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 deliveryDelivery search/URLs only return approved assets; newly approved assets and changes can take up to ~10 min (CDN TTL) S19 S21
Environment allow-listingTokens from an unregistered client ID fail until api.yaml is deployed through a config pipeline S11
Legacy HTTP API404 when the asset's On Time is in the future or Off Time passed; only a subset of metadata namespaces returned S18
Eventual consistency404s on initiate/complete upload after folder creation — retry S17
Metadata extractionFails for files above ~15 GB S46
Duplicate detectionDisabled by default; notifies only the first 100 duplicates per upload S58
IMS discoveryIMS's OpenID configuration does not list client_credentials, although S2S uses it on the same token endpoint S29 S15

SDKs, tools & code samples

Library / toolLanguageMaintainerStatus
@adobe/aem-upload (adobe/aem-upload)Node.js (module + CLI)Adobe2.0.5, 2026-06-10; Apache-2.0; 69 GitHub stars S85 S86
aio-cli-plugin-aem (aio aem:upload)Node.js CLIAdobe1.2.0 (npm 2023-08); repo last push 2024-04 S85 S86
@adobe/aio-lib-eventsNode.jsAdobe4.1.1 (2026-09); I/O Events client incl. signature verification S85 S28
aemcs-api-client-libNode.js sampleAdobeReference code for service-credential token exchange, "not maintained as a production library" S16 S86
AEM SDK / Java APIs (com.day.cq.dam.api)JavaAdobeJavadoc on javadoc.io S1
Asset Selectors / Content Advisor MFE examples (adobe/aem-assets-selectors-mfe-examples)JS (React, Vanilla)AdobeLast push 2026-08-25 S87
Assets view UI extension templates (aem-assets-*-ext-tpl)App Builder (JS)AdobeActive 2026 S87
Asset Share CommonsJava/HTL (AEM project)Adobe (open source)Reference asset-share portal, last push 2026-09-15 S87
aem-assets-plugin (Edge Delivery Services blocks)JSAdobe R&DLast push 2026-09-22 S86
Python / .NET / Java OpenAPI clients——None official; generate from specsUnverified (absence check)

Changelog of the API

DateChange
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-28Final 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-13Dynamic 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-242026.9.0: DM with OpenAPI multi-caption/multi-audio, AI captions, attribute-based secure delivery (Limited Availability) S37
2026-07Unified AEM MCP Server (content incl. asset upload/download/move/publish, metadata edit, DM renditions); domain-specific MCP servers now "recommended against" S41
2026.07Current 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-31Release 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
UnknownBinary upload via Assets HTTP API / AssetManager deprecated in the Cloud Service (direct binary upload instead) S17 S38
UnknownContent Fragments via Assets HTTP API superseded by CF OpenAPIs S18
UnknownGET/deliver/{assetId}/{seoName} and delivery-search orderBy deprecated S4

Stored API specs

6 files · 974 KB · verbatim copies of public vendor filesSpecs README & provenance
FileFormatSizeDownload
aem_openapi_assets-author_experimental-metaall_2026.07.yamlOpenAPI236 KBDownload
aem_openapi_assets-author_stable_2026.07.yamlOpenAPI144 KBDownload
aem_openapi_assets-delivery-dm_experimental-advancemodifiers_2026.07.yamlOpenAPI226 KBDownload
aem_openapi_assets-delivery-dm_stable_2026.07.yamlOpenAPI255 KBDownload
aem_openapi_folders_stable_2026.07.yamlOpenAPI52 KBDownload
aem_openapi_tags-author_experimental-tags_2026.07.yamlOpenAPI60 KBDownload
Search the wiki