Decision Management API developer guide

This developer guide provides steps to help you start using the Offer Library API. The guide then provides sample API calls for performing key operations using the decisioning engine.

➡️ Learn more on the components of Decision Management in this video


This guide requires a working understanding of the following components of Adobe Experience Platform:

  • Experience Data Model (XDM) System: The standardized framework by which Experience Platform organizes customer experience data.
  • Decision Management: Explains the concepts and components used for Experience Decisioning in general and decision management in particular. Illustrates the strategies used for choosing the best option to present during a customer’s experience.
  • Profile Query Language (PQL): PQL is a powerful language to write expressions over XDM instances. PQL is used to define decision rules.

Reading sample API calls

This guide provides example API calls to demonstrate how to format your requests. These include paths, required headers, and properly formatted request payloads. Sample JSON returned in API responses is also provided. For information on the conventions used in documentation for sample API calls, see the section on how to read example API calls in the Experience Platform troubleshooting guide.

Gather values for required headers

In order to make calls to Adobe Experience Platform APIs, you must first complete the authentication tutorial. Completing the authentication tutorial provides the values for each of the required headers in all Experience Platform API calls, as shown below:

  • Authorization: Bearer {ACCESS_TOKEN}
  • x-api-key: {API_KEY}
  • x-gw-ims-org-id: {IMS_ORG}

All requests that contain a payload (POST, PUT, PATCH) require an additional header:

  • Content-Type: application/json

Manage access to a container

A container is an isolation mechanism to keep different concerns apart. The container ID is the first path element for all repository APIs. All decisioning objects reside within a container.

An administrator can group similar principals, resources, and access permissions into profiles. This reduces the management burden and is supported by Adobe Admin Console. You must be a product administrator for Adobe Experience Platform in your organization to create profiles and assign users to them. It is sufficient to create product profiles that match certain permissions in a one-time step and then simply add users to those profiles. Profiles act as groups that have been granted permissions and every real user or technical user in that group inherits those permissions.

Given administrator privileges, you can grant or withdraw permissions to users through the Adobe Admin Console. For more information, see the Access control overview.

List containers accessible to users and integrations

API format

GET /{ENDPOINT_PATH}?product={PRODUCT_CONTEXT}&property={PROPERTY}==decisioning
Parameter Description Example
{ENDPOINT_PATH} The endpoint path for repository APIs.
{PRODUCT_CONTEXT} Filters the list of containers by their association to product contexts. acp
{PROPERTY} Filters the type of container that is returned. _instance.containerType==decisioning


curl -X GET \
  '' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}'


A successful response returns information regarding decision management containers. This includes an instanceId attribute, the value of which is your container ID.

    "_embedded": {
        "": [
                "instanceId": "{INSTANCE_ID}",
                "schemas": [
                "productContexts": [
                "repo:etag": 2,
                "repo:createdDate": "2020-09-16T07:54:28.319959Z",
                "repo:lastModifiedDate": "2020-09-16T07:54:32.098139Z",
                "repo:createdBy": "{CREATED_BY}",
                "repo:lastModifiedBy": "{MODIFIED_BY}",
                "repo:createdByClientId": "{CREATED_CLIENT_ID}",
                "repo:lastModifiedByClientId": "{MODIFIED_CLIENT_ID}",
                "_instance": {
                    "containerType": "decisioning",
                    "repo:name": "{REPO_NAME}",
                    "dataCenter": "{DATA_CENTER}",
                    "parentName": "{PARENT_NAME}",
                    "parentId": "{PARENT_ID}"
                "_links": {
                    "self": {
                        "href": "/containers/{INSTANCE_ID}"
    "_links": {
        "self": {
            "href": "/?product=acp&property=_instance.containerType==decisioning",
            "@type": ""

Next steps

This document covered the prerequisite knowledge required to make calls to the Offer Library API, including acquiring your container ID. You can now proceed to the sample calls provided in this developer guide and follow along with their instructions.

How-to video

The following video is intended to support your understanding of the components of Decision Management.

On this page