# Get transaction analytics Get transaction analytics with dynamic filtering, grouping, and metrics. Optimized for dashboard modules: stamps count, rewards analysis, top users, etc. RLS ensures tenant isolation automatically. Endpoint: POST /transactions/analytics Version: 2.0.2 Security: tenantAdminJWT ## Request fields (application/json): - `filters` (object) Dynamic filters based on TransactionDTO fields - all transaction fields available Example: {"status":"SUCCEEDED","tokenType":"STAMP","triggerProcessType":"MINT","tenantId":"tenant-123","chainId":1} - `groupBy` (array) Fields to group by - any TransactionDTO field plus computed time fields Example: ["tokenType","month","status","chainId"] - `groupByExpressions` (array) Complex CASE WHEN expressions for advanced grouping scenarios Example: [{"expression":"CASE WHEN senderOwnerType = user THEN senderId WHEN recipientOwnerType = user THEN recipientId END","alias":"userId","label":"User ID"}] - `groupByExpressions.expression` (string, required) SQL CASE WHEN expression for complex grouping logic Example: "CASE WHEN senderOwnerType = user THEN senderId WHEN recipientOwnerType = user THEN recipientId END" - `groupByExpressions.alias` (string, required) Alias name for the expression result in SELECT clause Example: "userId" - `groupByExpressions.label` (string) Human-readable label for frontend display Example: "User ID" - `metrics` (string) Metrics to calculate Enum: "count", "sum", "avg", "min", "max" - `sortBy` (string) Field to order results by (supports expression aliases) Enum: "count", "sum", "avg", "min", "max", "createdAt" - `sortOrder` (number) Order direction Enum: {"ASC":"ASC","DESC":"DESC"} - `limit` (number) Maximum number of results to return Example: 10 - `startDate` (string) Start date for analytics (ISO format) Example: "2024-01-01T00:00:00.000Z" - `endDate` (string) End date for analytics (ISO format) Example: "2024-12-31T23:59:59.999Z" ## Response 200 fields (application/json): - `results` (array, required) Analytics results array with dynamic fields and expression aliases Example: [{"userId":"user-123","count":45},{"userAddress":"0xabc...def","count":32},{"tokenType":"STAMP","count":150,"month":"2024-01-01T00:00:00.000Z"}] - `totalGroups` (number, required) Total number of result groups Example: 3 - `metadata` (object, required) Query execution metadata Example: {"executionTime":"45ms"}