---
title: "Get User Analytics"
method: GET
path: "/api/admin/users/{user_id}/analytics"
tags: ["Admin"]
---

# Get User Analytics

`GET /api/admin/users/{user_id}/analytics`

Get comprehensive analytics for a specific user.

## Path parameters

- `user_id` string, required

## Response `200`

Successful Response

- UserAnalyticsResponse
  - `success` boolean
  - `user_id` string, required
  - `email` string, nullable
  - `full_name` string, nullable
  - `company_name` string, nullable
  - `country` string, nullable
  - `tier` 'tier1' | 'tier2' | 'tier3' | 'tier4' | 'tier5'
  - `role` 'user' | 'admin' | 'support'
  - `account_type` 'user' | 'enterprise' — Account type: determines billing mode and allowed API key scopes. - USER: Prepaid wallet billing, can create user-scope keys - ENTERPRISE: Postpaid invoice billing, can create enterprise-scope keys
  - `created_at` string, nullable
  - `last_login` string, nullable
  - `prepaid_added` number
  - `prepaid_spent` number
  - `prepaid_balance` number
  - `monthly_budget` number, nullable
  - `spend_this_month` number
  - `postpaid_paid` number
  - `postpaid_unpaid` number
  - `postpaid_current_month` number
  - `total_requests` integer
  - `api_calls_this_month` integer
  - `total_input_tokens` integer
  - `total_output_tokens` integer
  - `total_tokens_saved` integer
  - `avg_compression_ratio` number, nullable
  - `avg_latency_ms` number, nullable
  - `median_latency_ms` number, nullable
  - `api_keys` UserAPIKeyInfo[]
    - `id` string, required
    - `name` string, required
    - `scope` 'demo' | 'user' | 'enterprise', required
    - `status` 'pending' | 'active' | 'expired' | 'declined' | 'revoked', required
    - `key_preview` string, nullable
    - `total_requests` integer
    - `last_used_at` string, nullable
    - `created_at` string, nullable
    - `daily_limit` integer, nullable
    - `daily_requests_remaining` integer, nullable
    - `budget_limit` number, nullable
    - `budget_used_this_month` number, nullable
  - `active_api_keys` integer
  - `usage_by_model` UsageBreakdown[]
    - `name` string, required
    - `count` integer
    - `tokens` integer
    - `cost_usd` number
  - `usage_by_type` UsageBreakdown[]
    - `name` string, required
    - `count` integer
    - `tokens` integer
    - `cost_usd` number
  - `usage_by_source` UsageBreakdown[]
    - `name` string, required
    - `count` integer
    - `tokens` integer
    - `cost_usd` number
  - `last_request_at` string, nullable
  - `outcomes_30d` object
  - `requests_succeeded_30d` integer
  - `requests_skipped_30d` integer
  - `requests_rejected_30d` integer
  - `requests_errored_30d` integer

## Other responses

- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/compresr/apis/compresr-platform-api.md) · [All operations](https://skmtc.net/compresr/apis/compresr-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/compresr/compresr-platform-api/versions/93ee959dfa51/schema)
