Reporting API first calls
This guide walks you through your first calls to the Customer Journey Analytics Reporting API.
The Customer Journey Analytics (CJA) Reporting API lets you create and retrieve report data programmatically, using the same data and methods available in Analysis Workspace. This guide covers what you need before you start, the base URL and required headers, and a single minimal POST /reports request so you can confirm your setup end to end. For the concepts behind CJA reporting—dataviews, cross-dataset journeys, and multi-column sorting—see the Reporting API overview.
data-variant=info
data-slots=text
Before you begin
To make a request, you need credentials from a project with access to the Customer Journey Analytics API. For instructions on creating a project and generating credentials, see Getting started with the CJA APIs.
Have the following values ready before you build your first request:
- API key (Client ID) — supplied in the
x-api-keyheader. - Access token — a bearer token supplied in the
Authorizationheader. - IMS Organization ID — supplied in the
x-gw-ims-org-idheader. - Dataview ID — the dataview you want to report on (for example,
dv_example_dataview_id).
Base URL
The Reporting API is routed through cja.adobe.io. To create a report, send a POST request to the following endpoint:
POST https://cja.adobe.io/reports
Required headers
Every request to the Reporting API includes the following headers:
acceptapplication/json.Content-Typeapplication/json.x-api-keyx-gw-ims-org-idAuthorizationBearer {ACCESS_TOKEN}.data-variant=info
data-slots=text
rsid field. This field is named rsid for legacy reasons; in Customer Journey Analytics, set its value to your dataview ID (for example, dv_example_dataview_id). Send the value in rsid exactly as shown—renaming it will cause the request to fail.Make your first report request
The following example is a minimal report request: it returns the visits metric broken down by the page dimension for a single month, limited to the top five pages. Start here to confirm that your credentials, headers, and dataview ID work together before building larger requests.
Click the Request tab in the following example to see a cURL request for this endpoint. Click the Response tab to see a successful JSON response for the request.
data-slots=heading, code
data-repeat=2
data-languages=CURL,JSON
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": "DATE_RANGE",
"dateRange": "2026-07-01T00:00:00.000/2026-08-01T00:00:00.000"
}
],
"metricContainer": {
"metrics": [
{
"columnId": "0",
"id": "metrics/visits"
}
]
},
"dimension": "variables/page",
"settings": {
"limit": 5,
"page": 0
}
}'
Response
{
"totalPages": 175,
"firstPage": true,
"lastPage": false,
"numberOfElements": 5,
"number": 0,
"totalElements": 874,
"columns": {
"dimension": {
"id": "variables/page",
"type": "STRING"
},
"columnIds": [
"0"
]
},
"rows": [
{
"itemId": "3306266643",
"value": "home",
"data": [
151478
]
},
{
"itemId": "2796092754",
"value": "category 5",
"data": [
71248
]
},
{
"itemId": "1738577623",
"value": "category 2",
"data": [
69067
]
},
{
"itemId": "3553521723",
"value": "category 4",
"data": [
67272
]
},
{
"itemId": "3455114909",
"value": "category 3",
"data": [
66950
]
}
],
"summaryData": {
"totals": [
424407
]
}
}
Request example details
The example request asks for the following:
- The
visitsmetric, assigned to column0. - Results broken down by the
pagedimension. - Data for the period July 1, 2026 00:00:00.000 – August 1, 2026 00:00:00.000, interpreted in the dataview time zone.
- A
limitof five items on the first page (page0).
Response example details
The response shows the top five pages by visits:
- Each object in
rowsis one page. Thevalueproperty holds the dimension value, anddataholds the metric values for that row, in column order. totalElementsreports how many items match the request (874), whilenumberOfElements(5) reflects thelimitapplied.summaryData.totalsholds the report total for each metric column across all matching items.
Request parameters
The example request includes the following parameters in the payload:
rsidrsid for legacy reasons; supply your dataview ID (for example, dv_example_dataview_id) as the value.globalFilterstype and dateRange.typeDATE_RANGE, BREAKDOWN, SEGMENT, or EXCLUDE_ITEM_IDS.dateRangemetricContainermetrics array.metricscolumnId and id.columnId0.idmetrics/visits.dimensionvariables/page. If omitted, the report returns totals only.settingslimitpage0.Response parameters
The example response includes the following parameters:
totalPagesfirstPagelastPagenumberOfElementsnumber0.totalElementscolumnsdimension and columnIds for the report.dimensionid and type.idtypecolumnIdsrowsitemId, value, and data.itemIdvaluedatasummaryDatatotalsStatus codes
Each request returns an HTTP status code that reflects the result, as follows:
Next steps
Now that you have made your first call, see the following guides for fuller report requests:
- Create dataview reports — a complete
POST /reportsrequest with global filters, multiple metrics, sorting, and statistics. - Reporting multiple dimensions in a single request — request up to five dimensions, dimension-level search, and multi-column sorting.
- Top Items Report — retrieve the top-ranked items for a dimension with a single GET request.
- View API calls in the Analysis Workspace Debugger — copy ready-made request payloads from Analysis Workspace.
- CJA API reference — complete data models for the CJA APIs.