Skip to content

Get transaction analytics (Admin only)

Request

Returns aggregated transaction data with flexible grouping and metrics. Supports complex filtering by date range, business, token, status, and more. Requires admin authentication.

Security
authJWT
Bodyapplication/jsonrequired

Analytics configuration with filters, grouping, and metrics

filtersobject(TransactionAnalyticsFiltersDTO)

Dynamic filters based on TransactionDTO fields - all transaction fields available. Note: tokenType uses native blockchain types (ERC721, ERC20, ERC1155), not friendly names.

Example:
{ "status": "SUCCEEDED", "tokenType": "ERC721", "triggerProcessType": "MINT", "tenantId": "tenant-123", "chainId": 1 }
groupByArray of strings

Fields to group by - any TransactionDTO field plus computed time fields. Note: tokenType values are ERC721/ERC20/ERC1155.

Example:
[ "tokenType", "month", "status", "chainId" ]
groupByExpressionsArray of objects(GroupByExpressionDTO)

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" } ]
metricsstring

Metrics to calculate

Enum:"count""sum""avg""min""max"
Example:
[ "count" ]
sortBystring or any
Example:"count"
One of:

Field to order results by (supports expression aliases)

string
sortOrderstring

Order direction

Enum:"ASC""DESC"
Example:"DESC"
limitnumber, [ 1 .. 100 ]

Maximum number of results to return

Example:10
startDatestring, (date-time)

Start date for analytics (ISO format)

Example:"2024-01-01T00:00:00.000Z"
endDatestring, (date-time)

End date for analytics (ISO format)

Example:"2024-12-31T23:59:59.999Z"
curl -i -X POST \
  https://docs.pers.ninja/_mock/swagger/analytics/transactions \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "filters": {
      "status": "SUCCEEDED",
      "tokenType": "ERC721"
    },
    "groupBy": [
      "month"
    ],
    "metrics": [
      "count"
    ],
    "sortBy": "count",
    "sortOrder": "DESC",
    "limit": 12
  }'

Responses

Analytics data successfully retrieved

Bodyapplication/json
resultsArray of anyrequired

Analytics results array with dynamic fields and expression aliases. Note: tokenType values are ERC721/ERC20/ERC1155, not friendly names.

Example:
[ { "userId": "user-123", "count": 45 }, { "userAddress": "0xabc...def", "count": 32 }, { "tokenType": "ERC721", "count": 150, "month": "2024-01-01T00:00:00.000Z" } ]
totalGroupsnumberrequired

Total number of result groups

Example:3
metadataobjectrequired

Query metadata showing applied date range and totals

Example:
{ "dateRange": { "startDate": "2024-01-01T00:00:00.000Z", "endDate": "2024-12-31T23:59:59.999Z" }, "totalCount": 440 }
Response
{ "results": [ { … }, { … }, { … } ], "totalGroups": 3, "metadata": { "dateRange": { … }, "totalCount": 440 } }