BackAPI reference
- Overview
- Authentication
- Errors and limits
- Code examples
- Moving from Classic
- KPIs
- KPI Categories
- KPI Categories / KPIs
- Breakdown Items
- KPI Entries
- KPI Frequencies
- KPI Icons
- KPI Units
- Reports
- Users
SimpleKPI AI › API reference
Reports
One endpoint returning actuals and targets for a set of KPIs over a date range, already aggregated to each KPI's own frequency. It is the read path for pulling SimpleKPI data into a warehouse or a spreadsheet.
For raw, unaggregated rows use KPI Entries.
Base URL https://api.simplekpi.com/v1
Endpoints
- Report on actuals and targets —
GET /v1/reports/alldataentries
Report row
| Name | Type | Read Only | Mandatory | Max Len. | Notes |
|---|---|---|---|---|---|
kpi_id | integer | yes | no | The KPI this row belongs to. | |
kpi_name | string | yes | no | Nullable. The KPI's name. | |
kpi_description | string | yes | no | Nullable. The KPI's description. | |
item_id | integer | yes | no | Nullable. The source the row is broken down by. Null on a KPI with no breakdown. | |
item_name | string | yes | no | Nullable. The source's name. | |
period_id | string | yes | no | Nullable. The frequency the row is aggregated to, matching the KPI's frequency_id. | |
period | string | yes | no | Nullable. The frequency's display name. | |
label_format | string | yes | no | Nullable. The unit's display format, so a client can render the value the way the app does. | |
is_percentage | boolean | yes | no | True when the KPI's unit is a percentage. | |
has_target | boolean | yes | no | True when the KPI is tracking a target. | |
direction | string | yes | no | Nullable. The KPI's value direction. U Up is good, D Down is good, N Neither. | |
direction_name | string | yes | no | Nullable. The value direction spelled out, e.g. Up. | |
entry_date | date | yes | no | Nullable. The start of the period the row covers. | |
actual | decimal | yes | no | Nullable. The aggregated actual for the period. | |
target | decimal | yes | no | Nullable. The aggregated target for the period. | |
notes | string | yes | no | Nullable. Notes recorded against the period. |
Report on actuals and targets
GET /v1/reports/alldataentries
Returns one row per KPI, per breakdown source, per period, aggregated using each KPI's own frequency and aggregate function. The id parameters take comma-separated lists.
Requires entries:read on the API key.
Parameters
| Name | Type | Required | Default | Notes |
|---|---|---|---|---|
kpiIDs | string | no | Comma-separated KPI ids to report on, e.g. 1,2,3. | |
dateFrom | datetime | no | Start of the range to report on. | |
dateTo | datetime | no | End of the range to report on. | |
groupItemIDs | string | no | Comma-separated source ids to restrict the report to. | |
userIDs | string | no | Comma-separated user ids to restrict the report to. |
Using curl
curl https://api.simplekpi.com/v1/reports/alldataentries \ -H "Authorization: Bearer skpi_your_api_key"
Example response
Status: 200 OK
[
{
"kpi_id": 1234,
"kpi_name": "New Sales",
"kpi_description": "Closed-won deals per week",
"item_id": 0,
"item_name": "Global",
"period_id": "W",
"period": "Weekly",
"label_format": "#,##0",
"is_percentage": false,
"has_target": true,
"direction": "U",
"direction_name": "Up",
"entry_date": "2026-08-03",
"actual": 42,
"target": 50,
"notes": null
}
]Status codes
| Code | Meaning |
|---|---|
200 | OK |
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
429 | Too Many Requests |