View report run data
Request to retrieve the data of a report run:
GET /api/v2/reports/<report-id>/runs/<run-id>/data.json
To get the data of the most recent run, use latest as the run ID:
GET /api/v2/reports/<report-id>/runs/latest/data.json
Example of response:
{
"headers": [
{"name": "group_id", "header": "Group - ID", "super_header": null, "hidden": true, "type": "uuid"},
{"name": "group_name", "header": "Group - Name", "super_header": null, "hidden": false, "type": "str"},
{"name": "count_calls", "header": "Calls - Total Calls", "super_header": null, "hidden": false, "type": "int"},
{"name": "minutes_total", "header": "Calls - Total Minutes", "super_header": null, "hidden": false, "type": "float"}
],
"summary": {
"count_calls": 230,
"minutes_total": 1200.5
},
"data": [
["28d20df6-b84f-11ed-ac6d-1207ffee24c3", "Administrators", 4, 20.0],
["aa1f91a8-b84f-11ed-ac6d-1207ffee24c3", "Claims & Warranty Operations", 146, 758.25],
["ad1185f6-b84f-11ed-bf7f-1207ffee24c3", "Dealer Support and Customer Care", 48, 252.0],
["afef22c4-b84f-11ed-ac6d-1207ffee24c3", "Home Office", 14, 75.0],
["b39e05de-b84f-11ed-bf7f-1207ffee24c3", "Performance Centre", 18, 95.25]
]
}
Response format
| Attribute | Type | Description |
|---|---|---|
| headers | list | Columns of the report, in order. Includes hidden helper columns (for example, IDs) that the web portal does not display. |
| summary | dictionary | Summary values keyed by column name. Empty when the template has no summary. |
| data | list | Rows. Each row is a list of values in the same order as headers. |
Each header has:
| Attribute | Type | Description |
|---|---|---|
| name | string | Internal column name. See the Column reference. |
| header | string | Human-readable column header. |
super_header |
string or null | Group heading for grouped columns. |
| hidden | boolean | Whether the web portal hides the column. |
| type | string | Value type: str, int, float, bool, uuid, date, datetime, time, or timedelta. |
Values are serialized as JSON strings, numbers, booleans, or null. UUIDs are strings, dates and
times are ISO 8601 strings, and durations (timedelta) are numbers of seconds.
The response contains at most 10,000 rows. For larger reports, narrow the period or the filters of the template, or export the report to a file from the web portal (see Export report data).
Response contains HTTP status code as shown in the following table.
| Response | Description |
|---|---|
| 200 OK | The report data is returned in the response body |
| 400 Bad Request | The run uses a column that is no longer available. Edit the template to replace the column, then rebuild the report ({"error": "InvalidGeneral", "explanation": "This report run uses columns that are no longer available. ..."}) |
| 403 Forbidden | The request cannot be completed because API user has no permission to view reports |
| 404 Not Found | The report template or the run does not exist, or it is outside the access scope of the API user |
Changed format
Before release 2026-06-13, this endpoint returned a rows list of objects with a row_type
attribute and accepted a parent_row_id parameter. Integrations that read the old format must
be updated.