---
title: "Get Model Analytics"
method: GET
path: "/models/{modelId}/analytics"
tags: ["Analytics", "Models"]
---

# Get Model Analytics

`GET /models/{modelId}/analytics`

Get comprehensive analytics for a specific model including quality scores, sentiment analysis, safety metrics, LLM-generated recommendations, and time-series data.

**Requires Growth+ plan or higher.**

Rate limited based on your plan's `maxAnalysesPerHour`.

## Path parameters

- `modelId` string, uuid, required — The model ID to get analytics for

## Query parameters

- `period` '7d' | '30d' | '90d' — Time period for analytics data: 7d, 30d (default), or 90d.

## Response `200`

Model analytics retrieved successfully

- GetModelAnalyticsResponse
  - `avgConversationQualityIndex` number, nullable, required — Average conversation quality index.
  - `avgSatisfactionScore` number, nullable, required — Average satisfaction score.
  - `avgGrowthScore` number, nullable, required — Average growth score.
  - `avgFrictionScore` number, nullable, required — Average friction score.
  - `avgSafetyScore` number, nullable, required — Average safety score.
  - `averageUserSentiment` object, nullable, required — Average user sentiment.
    - `label` string, required
    - `score` number, required
  - `averageChangeInUserSentiment` object, nullable, required — Average change in user sentiment.
    - `label` string, required
    - `score` number, required
  - `averageFrustration` object, nullable, required — Average frustration level.
    - `label` string, required
    - `score` number, required
  - `averageStruggle` object, nullable, required — Average struggle level.
    - `label` string, required
    - `score` number, required
  - `averageCommercialIntent` object, nullable, required — Average commercial intent.
    - `label` string, required
    - `score` number, required
  - `hallucinationCount` object, nullable, required — Hallucination detection counts.
    - `total` number, required
    - `percentage` number, required
  - `jailbreakCount` object, nullable, required — Jailbreak detection counts.
    - `total` number, required
    - `percentage` number, required
  - `userBiasCount` object, nullable, required — User bias detection counts.
    - `total` number, required
    - `percentage` number, required
  - `modelBiasCount` object, nullable, required — Model bias detection counts.
    - `total` number, required
    - `percentage` number, required
  - `userToxicityCount` object, nullable, required — User toxicity detection counts.
    - `total` number, required
    - `percentage` number, required
  - `modelToxicityCount` object, nullable, required — Model toxicity detection counts.
    - `total` number, required
    - `percentage` number, required
  - `recommendations` object, nullable, required — LLM-generated recommendations and health assessment.
    - `summary` string, required — Overall summary of model health.
    - `healthLevel` 'healthy' | 'needs_attention' | 'critical', required — Overall health level.
    - `strengths` string[], required — Identified model strengths.
    - `recommendations` object[], required — Actionable recommendations.
      - `title` string, required
      - `action` string, required
      - `rationale` object, required
        - `whyThisMatters` string, required
        - `observedPattern` string, required
        - `tradeoff` string
      - `evidence` object, required
        - `exampleSnippets` string[], required
      - `expectedImpact` string[], required
      - `priority` 'high' | 'medium' | 'low', required
      - `category` 'model_switch' | 'cost_optimization' | 'use_case_fit' | 'prompt_optimization_link', required
    - `detectedIssues` object[], required — Issues detected via rules-based analysis.
      - `id` string, required
      - `severity` 'critical' | 'warning' | 'info', required
      - `title` string, required
  - `conversationCount` number, required — Total conversation count.
  - `messageCount` number, required — Total message count.
  - `averageConversationRating` number, nullable, required — Average conversation rating.
  - `dataPoints` object[], required — Time-series data points for the requested period.
    - `date` string, date-time, required — Data point date.
    - `avgConversationQualityIndex` number, nullable, required — Average conversation quality index.
    - `avgSatisfactionScore` number, nullable, required — Average satisfaction score.
    - `avgGrowthScore` number, nullable, required — Average growth score.
    - `avgFrictionScore` number, nullable, required — Average friction score.
    - `avgSafetyScore` number, nullable, required — Average safety score.
    - `conversationCount` number, required — Number of conversations.
    - `messageCount` number, required — Number of messages.

## Other responses

- `403` — Requires paid plan
- `404` — Model not found
- `429` — Rate limit exceeded
- `500` — Server error

## Changes

- **2026-05-01** `f52e699d4abf` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/greenflash-ai/apis/greenflash-api-reference/changes/models/:modelId/analytics/get.md)

---

[API](https://skmtc.dev/greenflash-ai/apis/greenflash-api-reference.md) · [All operations](https://skmtc.dev/greenflash-ai/apis/greenflash-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/greenflash-ai/greenflash-api-reference/revisions/c566e560677d/schema)
