OpenAPI-based AEM APIs

IMPORTANT
The OpenAPI-based AEM APIs are only available in AEM as a Cloud Service and are not compatible with AEM 6.X.

Learn about the OpenAPI-based AEM APIs, including authentication support, key concepts, and how to access Adobe APIs.

The OpenAPI Specification (formerly known as Swagger) is a widely used standard for defining RESTful APIs. AEM as a Cloud Service provides several OpenAPI Specification based APIs (or simply OpenAPI-based AEM APIs), making it easier to create custom applications that interact with AEM’s author or publish service types. Below are some examples:

Sites

  • Sites API: APIs for working with Content Fragments.

Assets

  • Folders API: APIs for working with folders such as create, list and delete folders.

  • Assets Author API: APIs for working with assets and its metadata.

Forms

In future releases, more OpenAPI-based AEM APIs will be added to support additional use cases.

AVAILABILITY
OpenAPI-based AEM APIs are available as part of an early access program. If you are interested in accessing them, we encourage you to email aem-apis@adobe.com with a description of your use case.

Authentication support authentication-support

The OpenAPI-based AEM APIs supports OAuth 2.0 authentication, including the following grant types:

  • OAuth Server-to-Server credential: Ideal for backend services needing API access without user interaction. It uses the client_credentials grant type, enabling secure access management at the server level. For more information, see OAuth Server-to-Server credential.

  • OAuth Web App credential: Suitable for web applications with frontend and backend components accessing AEM APIs on behalf of users. It uses the authorization_code grant type, where the backend server securely manages secrets and tokens. For more information, see OAuth Web App credential.

  • OAuth Single Page App credential: Designed for SPAs running in the browser, which needs to access APIs on behalf of a user without a backend server. It uses the authorization_code grant type and relies on client-side security mechanisms using PKCE (Proof Key for Code Exchange) to secure the authorization code flow. For more information, see OAuth Single Page App credential.

Difference between OAuth Server-to-Server and OAuth Web App/Single Page App credentials difference-between-oauth-server-to-server-and-oauth-web-app-single-page-app-credentials

OAuth server-to-server
OAuth user authentication (web-app)
Authentication Purpose
Designed for machine-to-machine interactions.
Designed for user-driven interactions.
Token Behavior
Issues access tokens that represent the client application itself.
Issues access tokens on behalf of an authenticated user.
Use Cases
Backend services needing API access without user interaction.
Web applications with frontend and backend components accessing APIs on behalf of users.
Security Considerations
Securely store sensitive credentials (client_id, client_secret) in backend systems.
User’s authenticate and are granted their own temporary access token. Securely store sensitive credentials (client_id, client_secret) in backend systems.
Grant Type
client_credentials
authorization_code

Before accessing Adobe APIs, it’s essential to understand these key constructs:

  • Adobe Developer Console: The developer hub for accessing Adobe APIs, SDKs, real-time events, serverless functions, and more. Note that it is different from the AEM Developer Console, which is used for debugging AEM applications.

  • Adobe Developer Console Project: Central place for managing API integrations, events, and runtime functions. Here, you configure APIs, set authentication, and generate required credentials.

  • Product Profiles: Product Profiles provide a permission preset that allows you to control user or application access to Adobe products such as AEM, Adobe Target, Adobe Analytics, and others. Every Adobe product has predefined product profiles associated with it.

  • Services: Services define the actual permissions and are associated with the Product Profile. To reduce or increase the permissions preset, you can deselect or select the services associated with the Product Profile. Thus, allowing you to control the level of access to the product and its APIs. In AEM as a Cloud Service, services represent user groups with predefined Access Control Lists (ACLs) for repository nodes, allowing granular permission management.

Get started

Learn how to set up your AEM as a Cloud Service environment and an Adobe Developer Console project to enable access to the OpenAPI-based AEM APIs. Also access AEM API using brower to verify the setup and review the request and response.

Set up OpenAPI-based AEM APIs

Set up OpenAPI-based AEM APIs

Learn how to set up your AEM as a Cloud Service environment to enable access to the OpenAPI-based AEM APIs.

Learn more

API tutorials

Learn how to use the OpenAPI-based AEM APIs using different OAuth authentication methods:

Invoke API using Server-to-Server authentication

Invoke API using Server-to-Server authentication

Learn how to invoke OpenAPI-based AEM APIs from a custom NodeJS application using OAuth Server-to-Server authentication.

Learn more

Invoke API using Web App authentication

Invoke API using Web App authentication

Learn how to invoke OpenAPI-based AEM APIs from a custom web application using OAuth Web App authentication.

Learn more

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69