SimpleKPI Logo

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

  1. Report on actuals and targetsGET /v1/reports/alldataentries

Report row

NameTypeRead OnlyMandatoryMax Len.Notes
kpi_idintegeryesno The KPI this row belongs to.
kpi_namestringyesno Nullable. The KPI's name.
kpi_descriptionstringyesno Nullable. The KPI's description.
item_idintegeryesno Nullable. The source the row is broken down by. Null on a KPI with no breakdown.
item_namestringyesno Nullable. The source's name.
period_idstringyesno Nullable. The frequency the row is aggregated to, matching the KPI's frequency_id.
periodstringyesno Nullable. The frequency's display name.
label_formatstringyesno Nullable. The unit's display format, so a client can render the value the way the app does.
is_percentagebooleanyesno True when the KPI's unit is a percentage.
has_targetbooleanyesno True when the KPI is tracking a target.
directionstringyesno Nullable. The KPI's value direction. U Up is good, D Down is good, N Neither.
direction_namestringyesno Nullable. The value direction spelled out, e.g. Up.
entry_datedateyesno Nullable. The start of the period the row covers.
actualdecimalyesno Nullable. The aggregated actual for the period.
targetdecimalyesno Nullable. The aggregated target for the period.
notesstringyesno 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

NameTypeRequiredDefaultNotes
kpiIDsstringno Comma-separated KPI ids to report on, e.g. 1,2,3.
dateFromdatetimeno Start of the range to report on.
dateTodatetimeno End of the range to report on.
groupItemIDsstringno Comma-separated source ids to restrict the report to.
userIDsstringno 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

CodeMeaning
200OK
400Bad Request
401Unauthorized
403Forbidden
429Too Many Requests