Reporting API

Use the Customer Journey Analytics Reporting API to create and retrieve reporting data programmatically.

The Customer Journey Analytics Reporting API operates on Adobe Experience Platform datasets combined through CJA connections and dataviews. Because CJA reporting uses the Experience Data Model (XDM), you can report on any XDM field as a metric or dimension (strings, numbers, arrays, objects, etc.). The Reporting API uses the same data and methods that Adobe uses inside the product UI. See Reports for more information.This provides the following advantages:

Responses with dataview-level logic

Your report request is bound to a dataview over AEP datasets, so the same API surface can query web events, call‑center events, CRM records, in‑store purchases, etc., all stitched together. Also, this allows the inclusion of session definitions, attribution rules, and inclusion or exclusion of datasets with a report request. Transformation logic, such as derived fields, can be defined in the dataview and applied dynamically to reports. Changing derived fields, filters, or session rules in the same API request returns updated data by using a different dataview--all without re-ingesting data.

Cross‑Channel, cross‑dataset journeys in a single query

Because CJA connects multiple datasets in a single connection and exposes them through a dataview, the CJA Reporting API can return metrics that are:

Multi-column sorting

Reporting API requests allow you to sort multiple columns of both dimensions and metrics. You can also mix dimensions and metrics in the same sort definition, or sort array. Each sort object is referenced by componentType and columnId. For the ascending parameter, specify a boolean true to sort by ascending values and false to sort by descending values. The example request fragment below shows two dimensions--one to be sorted in ascending order and another to be sorted in descending order.


"settings": {
    "countRepeatInstances": true,
    "includeAnnotations": true,
    "limit": 50,
    "page": 0,
    "sort": [
        {
            "componentType": "dimension",
            "columnId": "a111ef1",
            "ascending": true
        },
        {
            "componentType": "dimension",
            "columnId": "a222kl2",
            "ascending": false
        }
    ]
}

Reporting API best practices

For more information on CJA Reports APIs, see the CJA API reference.

Rate limiting

The Reporting API enforces rate limits to ensure optimal performance:

Report execution limits

HTTP status codes for Reporting API

The CJA Reporting API follows standard Adobe Experience Platform patterns for HTTP responses, as shown below:

HTTP status
Meaning (high level)
Typical causes
200
OK
Valid request, report executed successfully.
400
Bad Request
Invalid JSON payload, invalid metric/dimension ID, invalid date range, or range too large.
401
Unauthorized
Missing or invalid access token.
403
Forbidden
Token does not have access to the org, sandbox, or data view.
404
Not Found
Incorrect URL, or referenced resource (e.g., dataview) does not exist.
429
Too Many Requests
Rate limits or reporting capacity exceeded; caller must back off and retry.
500
Internal Server Error
Unexpected server-side failure while processing the request.
503
Service Unavailable
Temporary outage or maintenance window; retry with exponential backoff.
504
Gateway Timeout
Query timed out in the backend or upstream dependency.

More information

Refer to the following Reporting API documentation for additional instruction: