AEM APIs overview aem-apis-overview

Learn about the different types of APIs in Adobe Experience Manager (AEM) and understand which API to choose for your integration.

To create, read, update, and delete content, assets, and forms in AEM, developers can use a wide range of APIs. These APIs enable developers to create custom applications that interact with AEM.

Let’s explore the different types of APIs in AEM and understand which API to choose for your integration.

Types of AEM APIs types-of-aem-apis

AEM offers following APIs for interacting with its author and publish service types.

AEM API Type
Description
Availability
Use Case
API Examples
OpenAPI-based AEM APIs
Standardized, machine-readable APIs for Assets, Sites, and Forms.
AEM as a Cloud Service only
API-first development, modern applications
Assets Author API, Folders API, AEM Sites API, Forms Document Services API and others
RESTful APIs
Traditional REST endpoints for interacting with AEM resources.
AEM 6.X, AEM as a Cloud Service
CRUD operations, modern applications
Assets HTTP API, Workflow REST API, JSON Exporter for Content Services and others
GraphQL APIs
Optimized for retrieving structured content efficiently with flexible queries.
AEM 6.X, AEM as a Cloud Service
Headless CMS, SPAs, mobile apps
GraphQL API
Traditional (Non-RESTful) APIs
Older APIs like JCR, Sling Models, Query Builder, and others.
AEM 6.X, AEM as a Cloud Service
Legacy integrations, backward compatibility
Query Builder API and others

For more details, see the Adobe Experience Manager as a Cloud Service APIs page.

Which API to choose which-api-to-choose

When selecting an API for your integration, consider the following factors:

  • Use Case: Determine whether the AEM API supports your use case. Whenever possible, use OpenAPI-based AEM APIs, as they provide a standardized, modern approach to interacting with AEM. If OpenAPI-based APIs are not available, consider using RESTful APIs or GraphQL APIs and as a last resort, traditional APIs.

  • Compatibility: Ensure that the selected API is compatible with your AEM version. For instance, OpenAPI-based AEM APIs are exclusive to AEM as a Cloud Service and are unavailable in AEM 6.X.

  • AEM Service Type: Author vs. Publish: The choice of API also depends on whether it runs on the Author or Publish service, as their access models are different. The AEM Author service is used for content creation and always requires authentication. The AEM Publish service is used for content delivery and may not require authentication, depending on the use case.

  • Authentication: Verify that the API supports the authentication method you plan to use. For example:

    • OpenAPI-based AEM APIs: support OAuth 2.0 authentication, including Client Credentials (Server-to-Server), Authorization Code (Web App), and Proof Key for Code Exchange (Single Page App) grant types. Other AEM APIs do not support OAuth 2.0 authentication.
    • RESTful APIs: support JSON Web Token (JWT) authentication, also knows as token-based authentication.

Difference between JSON Web Token (JWT) and OAuth 2.0 difference-between-jwt-and-oauth

Let’s compare JSON Web Token (JWT) and OAuth 2.0, two common authentication mechanisms used in AEM APIs:

Feature
JSON Web Token (JWT)
OAuth 2.0
Used In
RESTful APIs
OpenAPI-based AEM APIs (not supported in RESTful or other APIs)
Purpose
Service authentication
User or service authentication
User Interaction
No user interaction required
User interaction required for Authorization Code and Single Page App grant types
Best Suited For
Server-to-server API calls
Secure, permitted access for apps and users
Required Information
Private key for signing JWT
Client ID and Client Secret for OAuth 2.0
Token Expiry
Short-lived, often needs refresh
The access-token is short-lived. The refresh-token is long-lived and used to get a new access-token
Credentials Management
AEM Developer Console
Adobe Developer Console

OpenAPI-based AEM APIs

Learn more about the OpenAPI-based AEM APIs and the important concepts of accessing Adobe APIs in the OpenAPI-based AEM APIs guide.

Use Cases

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

Invoke API using OAuth Single Page App

Invoke API using OAuth Single Page App

Learn how to invoke OpenAPI-based AEM APIs from a custom Single Page App (SPA) using OAuth 2.0 PKCE flow.

Learn more

GraphQL APIs - Examples

Learn more about the GraphQL APIs and how to use them in the Getting Started with AEM Headless - GraphQL

Use Cases

Single Page Application (SPA)

Single Page Application (SPA)

Learn how to build a Single Page Application (SPA) that fetches content from AEM using GraphQL APIs.

Learn more

Mobile App

Mobile App

Learn how to build a mobile app that fetches content from AEM using GraphQL APIs.

Learn more

Web Component

Web Component

Learn how to build a web component that fetches content from AEM using GraphQL APIs.

Learn more

RESTful APIs - Examples

Learn more about the RESTful APIs, such as Assets HTTP API and JSON Exporter.

Use Cases

Using Content Services for Headless App

Using Content Services for Headless App

Learn how to build a native mobile app that fetches content from AEM using Content Services RESTful APIs.

Learn more

Token-based Authentication for RESTful APIs

Token-based Authentication for RESTful APIs

Learn how to invoke RESTful APIs using JSON Web Token (JWT) authentication.

Learn more

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