Aggregation Query Builder
API Contract
REST
/api/v1/aggregation-queries
6 endpoints
GET
/api/v1/aggregation-queries/api/v1/aggregation-queries
List saved/named query definitions for an organization
Public
Response Example
{
"data": [
{
"id": "qry-001",
"org_id": "org-bufdir-42",
"query_type": "activity_count",
"period_id": "rp-2024-q4",
"activity_type": "peer_support_group",
"created_at": "2025-01-04T10:00:00Z"
},
{
"id": "qry-002",
"org_id": "org-bufdir-42",
"query_type": "participant_sum",
"period_id": "rp-2024-q4",
"activity_type": null,
"created_at": "2025-01-04T10:05:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 8
}
}
GET
/api/v1/aggregation-queries/api/v1/aggregation-queries/:id
Get a specific query definition and its last result
Public
Response Example
{
"id": "qry-001",
"org_id": "org-bufdir-42",
"query_type": "activity_count",
"period_id": "rp-2024-q4",
"activity_type": "peer_support_group",
"sql_preview": "SELECT COUNT(*) FROM activities WHERE org_id = 'org-bufdir-42' AND activity_type = 'peer_support_group' AND period_id = 'rp-2024-q4'",
"last_result": {
"count": 82
},
"last_executed_at": "2025-01-05T08:01:00Z"
}
POST
/api/v1/aggregation-queries/api/v1/aggregation-queries
Build and execute an aggregation query
Public
Request Example
{
"org_id": "org-bufdir-42",
"period_id": "rp-2025-q1",
"query_type": "hours_delivered",
"activity_type": null
}
Response Example
{
"id": "qry-019",
"org_id": "org-bufdir-42",
"period_id": "rp-2025-q1",
"query_type": "hours_delivered",
"result": {
"total_hours": 1840.5
},
"executed_at": "2025-03-26T09:00:00Z",
"duration_ms": 185
}
PUT
/api/v1/aggregation-queries/api/v1/aggregation-queries/:id
Re-execute an existing query with updated parameters
Public
Request Example
{
"period_id": "rp-2025-q1",
"activity_type": "family_workshop"
}
Response Example
{
"id": "qry-001",
"org_id": "org-bufdir-42",
"query_type": "activity_count",
"period_id": "rp-2025-q1",
"activity_type": "family_workshop",
"result": {
"count": 27
},
"executed_at": "2025-03-26T09:15:00Z"
}
DELETE
/api/v1/aggregation-queries/api/v1/aggregation-queries/:id
Delete a saved query definition
Public
Response Example
{
"deleted": true,
"id": "qry-001"
}
GET
/api/v1/aggregation-queries/api/v1/aggregation-queries/geographic-breakdown
Build and return a geographic breakdown query result
Public
Response Example
{
"org_id": "org-bufdir-42",
"period_id": "rp-2025-q1",
"query_type": "geographic_breakdown",
"result": [
{
"region": "Oslo",
"participant_count": 204
},
{
"region": "Viken",
"participant_count": 312
}
],
"executed_at": "2025-03-26T09:01:00Z"
}