Basic Date-Trended Report
The Customer Journey Analytics Reporting API enables creation and retrieval of basic and advanced date-trended KPI reports. This guide demonstrates a programmatically-recurring report using the same data and methods employed in the Customer Journey Analytics UI.
This guide provides instructions for a basic KPI report of Visits, Orders, and Revenue metrics for the Day dimension.
data-variant=info
data-slots=text
The report endpoint is routed through cja.adobe.io. To use it, you must first have a client with access to the Customer Journey Analytics Reporting API and a data view that exposes the metrics and dimension you want to report on. For more information, see Getting started.
Report features
This guide shows an example for reporting key metrics over the past 30 days. You can use the requests and responses to produce similar reports for the following purposes:
- Populating dashboards
- Exporting data to CSV files
- Feeding business-intelligence tools
- Connecting to cloud data warehouses
- Scheduling automated KPI updates
Example visualization
In Customer Journey Analytics Workspace, this example KPI report might include a free-form table of the Day dimension trended against the Visits, Orders, and Revenue metrics, along with a line graph and number-summary visualizations of the same data.
data-variant=info
data-slots=text
Report APIs provide data, not visualizations
When you design reports with the Reporting API, you interact with the data foundation used by Customer Journey Analytics Workspace or another intelligence tool. API structures do not specify the presentation layers built on top of the data. You will not see a visualization parameter type in the JSON request or response.
Request the date-trended data
To request the data:
- Use the following URI for your POST HTTP call:
POST https://cja.adobe.io/reports. - Set the
rsidparameter to the ID of the data view you want to report on (for example,dv_5f4df2...). To find a data view ID, use the Data Views API or copy it from the Customer Journey Analytics UI. - Use the example request JSON below as a template for requesting the data. Provide your desired date range along with any other modifications to the dimension or example key metrics.
data-variant=info
data-slots=text
x-gw-ims-org-id header, and the target data view is supplied in the rsid request-body parameter. For a full comparison, see CJA vs. 2.0 API.Example request
data-slots=heading, code
data-repeat=1
data-languages=CURL
Request
curl -X POST "https://cja.adobe.io/reports" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "x-api-key: {API_KEY}" \
-H "x-gw-ims-org-id: {ORG_ID}" \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-d '{
"rsid": "dv_example_dataview_id",
"globalFilters": [
{
"type": "dateRange",
"dateRange": "2025-11-01T00:00:00.000/2025-12-01T00:00:00.000",
"dateRangeId": "thisMonth"
}
],
"metricContainer": {
"metrics": [
{
"columnId": "0",
"id": "metrics/visits"
},
{
"columnId": "1",
"id": "metrics/orders"
},
{
"columnId": "2",
"id": "metrics/revenue",
"sort": "desc"
}
]
},
"dimension": "variables/daterangeday",
"settings": {
"countRepeatInstances": true,
"includeAnnotations": true,
"nonesBehavior": "return-nones",
"limit": 10,
"page": 0
},
"statistics": {
"functions": [
"col-max",
"col-min"
]
}
}'
Example response
data-slots=heading, code
data-repeat=1
data-languages=JSON
Response
{
"totalPages": 3,
"firstPage": true,
"lastPage": false,
"numberOfElements": 10,
"number": 0,
"totalElements": 30,
"columns": {
"dimension": {
"id": "variables/daterangeday",
"type": "time"
},
"columnIds": [
"0",
"1",
"2"
]
},
"rows": [
{
"itemId": "1251028",
"value": "Nov 28, 2025",
"data": [
1401842,
73535,
7643632.88
]
},
{
"itemId": "1251029",
"value": "Nov 29, 2025",
"data": [
917334,
40395,
4180090.28
]
},
{
"itemId": "1251030",
"value": "Nov 30, 2025",
"data": [
976312,
38887,
4030894.64
]
},
{
"itemId": "1251027",
"value": "Nov 27, 2025",
"data": [
743753,
25640,
2626938.60
]
},
{
"itemId": "1251026",
"value": "Nov 26, 2025",
"data": [
639525,
21653,
2459653.53
]
}
],
"summaryData": {
"filteredTotals": [
18832278,
538135,
65657124.02
],
"totals": [
18832278,
538135,
65657124.02
],
"col-max": [
1401842,
73535,
7643632.88
],
"col-min": [
385434,
7788,
1058036.96
]
}
}
Example request details
The JSON example requests data for the top ten days of November 2025 in descending order, according to revenue. Note the following details:
- The
rsidparameter holds the data view IDdv_example_dataview_id. In Customer Journey Analytics, this parameter carries a data view ID rather than a report suite ID. - The
dateRangeis specified as November 1, 2025 to December 1, 2025. - The metrics are specified as
visits,orders, andrevenuefor columns0,1, and2, respectively. These metric IDs must exist in the target data view. - A
sortin descending order is specified for the values in column2(revenue). This enables the ranking feature for the top days according to revenue. - The
dimensionis specified asdaterangeday. - A
limitof10days is specified for the response. nonesBehavioris set toreturn-nonesso that days with no data are still returned in the trend.
Request parameters
The example request includes the following parameters in the payload:
rsidglobalFilterstype, dateRange, and dateRangeIdtypedateRangedateRangeIdthisMonthmetricContainermetrics arraymetricscolumnId, id, and sortcolumnId0idmetricsortasc or descdimensionsettingscountRepeatInstancesincludeAnnotationsnonesBehavior0 if set to exclude-nones; use return-nones to include themlimitpagestatisticsfunctions arrayfunctionscol-max and col-mincol-maxcol-minExample response details
The response shows the data for the top ranked days according to revenue. Note the following for the first three days returned:
- November 28, 2025 (occurring on "Black Friday") had
1401842Visits,73535Orders, and7643632.88dollars forRevenue. - November 29, 2025 (occurring during "Black Friday" weekend) had
917334Visits,40395Orders, and4180090.28dollars forRevenue. - November 30, 2025 (occurring during "Black Friday" weekend) had
976312Visits,38887Orders, and4030894.64dollars forRevenue.
Although the metrics data is rounded in the visualizations, it matches the data in the examples above.
Response parameters
The example response includes the following parameters:
totalPagesfirstPagelastPagenumberOfElementsnumber0totalElementscolumnsdimension datadimensionid and typeidtypedimension ID data type; time for date-trended dimensions such as daterangedaycolumnIds0rowsitemId, value, and dataitemIddaterangeday), the itemId deterministically encodes the calendar date and is independent of the data view calendar configuration. For more information, see How the itemId encodes the date.valueitemId. This is a localized, calendar-aware label intended for display, not for date parsing. For a data view that uses a custom calendar (for example, Modified Gregorian/fiscal), value can read as 2022 (Jun 1-May 31).datasummaryDatafilteredTotalstotalscol-maxcol-minHow the itemId encodes the date
For time dimensions such as variables/daterangeday, the itemId is not an arbitrary key. It deterministically encodes the underlying Gregorian date, regardless of whether the data view uses a standard or a custom (fiscal) calendar. Because of this, itemId is the reliable field to read when you need the actual date: the value field is a display label whose format changes with the data view calendar, while the itemId for a given date does not.
The itemId is built by concatenating the following segments, left to right:
00, December = 11)daterangehour and daterangeminute onlydaterangeminute onlyThe hour segment is appended for daterangehour and daterangeminute; the minute segment is appended only for daterangeminute. Date-only dimensions such as daterangeday end after the day segment.
Examples
daterangeday)12510281251028daterangeday)11200011120001daterangehour)112000119112000119daterangeminute)1120001190211200011902daterangeday; custom fiscal calendar, value = 2022 (Jun 1-May 31))12205011220501To decode an itemId back to a date, read the segments from the right: the last two digits are the day and the two before that are the zero-indexed month; the remaining leading digits are the year offset, so add 1900. For time dimensions, the rightmost four digits are the hour and minute, with the day and month shifted left accordingly.
Partial responses (206 status code)
A 206 status code indicates a partial response. This status code means that some columns in the reporting response have errors. These errors can include any of the following:
- Unauthorized Metric: The user does not have access to the requested metric
- Metric Not Enabled: The requested metric is not enabled in this data view
- Unauthorized Dimension: The user does not have access to the requested dimension
- Dimension Not Enabled: The requested dimension is not enabled in this data view
- Unauthorized Global Dimension: The user does not have access to the global dimension for this request
- Global Dimension Not Enabled: The global dimension for this request is not enabled in this data view
More information
- For an API report example that uses a page dimension and page metrics instead of date-trended data, see Create dataview reports.
- For reporting across up to five dimensions in a single request, see Multiple dimension reporting.
- For general information on the Customer Journey Analytics Reporting API, see the Reporting API overview.
- For complete data models of the CJA APIs, see the CJA API reference.