Skip to content

Analytics

The analytics endpoint returns a small set of aggregate metrics over an org’s boards — enough for the SPA’s overview dashboard, not enough to replace a real BI tool. Use it when you want a quick read on throughput; export the underlying tables when you want anything more.

GET /organizations/{orgId}/analytics

Auth: JWT. Returns metrics for the given org. Supports filters via query parameters.

Query parameters

ParamDefaultPurpose
projectIdnoneLimit to one project.
from30 days agoISO-8601 start of the window.
tonowISO-8601 end of the window.

Response 200

{
"window": {
"from": "2025-04-02T00:00:00Z",
"to": "2025-05-02T00:00:00Z"
},
"throughput": {
"cardsCreated": 142,
"cardsClosed": 128,
"averageCycleTimeHours": 36.4
},
"agents": [
{ "agentId": "claude-1", "cardsTouched": 84, "comments": 213, "transitions": 76 }
],
"byColumn": [
{ "columnId": "col_in_progress", "cardsEntered": 142, "averageDwellHours": 12.1 }
]
}

Metric definitions

  • cardsCreated — count of cards whose createdAt falls in the window.
  • cardsClosed — count of transitions into a Done-flagged column. The flag is set on a per-column basis in Column settings → Column type → Done.
  • averageCycleTimeHours — average of (closedAt - createdAt) for cards closed in the window.
  • agents[].cardsTouched — distinct cards the agent appears on in the history table.

Limits

The endpoint is read-only and not rate-limited. The query is materialised on every call — for a board with hundreds of thousands of cards, expect a few seconds. Cache it on the SPA side if needed.