KPI Platform API

One read-only endpoint returns your whole KPI framework as JSON: KPIs with targets, the organisation, meetings and dashboards. Use it to feed Power BI, Excel or your own scripts.

Authentication

Create a personal token in the app under KPI Platform › API access and send it in the Authorization header. Both Bearer <token> and Token <token> work. The token acts as you, so keep it secret; regenerate or revoke it on the same page. Your company needs the KPI Platform module.

Endpoint

GET /api/performance/export/?type=all&since=2026-01-01T00:00:00Z
ParameterMeaning
typeall (default), definitions (structure without targets and units) or data (compact, with this year's targets)
sinceISO 8601 timestamp. If nothing changed after it, the response has "changed": false and "data": null, so you can poll cheaply.

Response

{
  "meta": {
    "exportedAt": "2026-10-10T12:00:00Z", "companyId": "42", "type": "all",
    "version": "1.0", "lastUpdated": "2026-10-09T15:31:07Z",
    "counts": {"kpis": 85, "orgNodes": 16, "overleggen": 9, "dashboards": 2}
  },
  "data": {
    "kpis": [{
      "id": "7", "level": "Theme", "name": "Profitable Growth", "description": "...",
      "owner": "Group CEO", "targetValue": "", "unit": "%",
      "orgNodeIds": ["1"], "dashboardIds": [], "parentKpiId": null,
      "targets": {"2026": "15"},
      "targetHistory": [{"year": 2026, "from": "12", "to": "15", "at": "...", "by": "Group CEO"}],
      "children": [ ... ]
    }],
    "orgNodes": [{"id": "1", "name": "Insurance Group", "owner": "Group CEO", "nodeType": "Division",
                  "parentId": null, "orientation": null, "description": "..."}],
    "overleggen": [{"id": "3", "name": "Group Strategy Board", "frequency": "Quarterly", "level": "Strategic",
                    "chair": "Group CEO", "kpiIds": ["8"], "orgNodeIds": ["1"], "description": "..."}],
    "dashboards": [{"id": "1", "name": "Group Performance Dashboard", "url": "https://...", "type": "Power BI",
                    "kpiIds": ["8"], "description": "..."}]
  }
}

KPIs are nested through children; targetValue is the target for the current year. Ids are strings. Meetings are under overleggen for compatibility with the original KPI Platform API, so existing integrations only need the new URL and a new token.

Power BI / Excel

let
    Source = Json.Document(Web.Contents("https://matso.nl/api/performance/export/?type=data",
        [Headers = [Authorization = "Bearer YOUR_TOKEN"]])),
    Kpis = Source[data][kpis],
    Table = Table.FromRecords(Kpis)
in
    Table

This gives the top-level KPIs; expand the children column for the levels below.

Errors

StatusWhen
400Invalid type or since; the body has an error message.
401Missing or invalid token.
403Your company does not have the KPI Platform module.