---
title: "Get user coin transactions analytics"
method: GET
path: "/admin/users/{id}/coin-transactions"
tags: ["Admin Users"]
---

# Get user coin transactions analytics

`GET /admin/users/{id}/coin-transactions`

Retrieve analytics about user coin transactions including amount deposited, amount spent, number of purchases, and current balance

## Path parameters

- `id` string, required

## Response `200`

User coin transactions analytics retrieved successfully

- UserCoinTransactionsResponseDto
  - `userId` string, required — User ID
  - `amountDeposited` number, required — Total amount deposited
  - `amountSpent` number, required — Total amount spent
  - `numberOfPurchases` number, required — Number of purchases (IN direction with PURCHASE reason)
  - `purchasedCoinsTotal` number, required — Coins bought via in-app/coin-pack purchases (reason PURCHASE, IN), isolated from subscription grants / welcome bonus / admin deposits
  - `refundAmount` number, required — Total amount refunded (any direction with REFUND reason)
  - `currentBalance` number, required — Current user balance
  - `spentByFeature` object, required — Amount spent by feature (TEXT_MESSAGE, IMAGE_REQUEST, VIDEO_REQUEST, MODEL_CREATE, LIVE_ACTION, GIFT, CALL)
  - `spentFromMonthly` number, required — Spend (reason SPENDING) drawn from the monthly quota bucket (v2)
  - `spentFromBonus` number, required — Spend (reason SPENDING) drawn from the purchased/bonus bucket (v2)
  - `quotaExpired` number, required — Quota coins that expired at monthly resets (reason QUOTA_RESET, v2). Not counted in amountSpent.
  - `v2Balance` V2BalanceBreakdownDto
    - `monthlyLeft` number, required — Monthly subscription coins remaining (quota bucket)
    - `monthlyLimit` number, required — Monthly subscription coin allowance for the current plan
    - `bonusLeft` number, required — Bonus / purchased coins remaining (never expire)
    - `total` number, required — monthlyLeft + bonusLeft (matches currentBalance in v2)
    - `quotaResetAt` string, nullable, required — When the monthly quota next resets (ISO), or null

## Other responses

- `404` — User not found

---

[API](https://skmtc.dev/miaai/apis/backend-template-api.md) · [All operations](https://skmtc.dev/miaai/apis/backend-template-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/miaai/backend-template-api/revisions/2a8d88a5124f/schema)
