---
title: "Get Interaction Analytics"
method: GET
path: "/interactions/{interactionId}/analytics"
tags: ["Analytics", "Interactions"]
---

# Get Interaction Analytics

`GET /interactions/{interactionId}/analytics`

Understand what happened in a specific conversation with AI-powered analysis. See sentiment shifts, detect frustration, identify commercial intent, and get actionable insights.

**⚠️ Requires Growth+ plan or higher**

**Two modes available:**

- **simple mode**: Get just the numbers—sentiment scores, frustration levels, and key metrics. Perfect for dashboards and quick checks. No rate limiting.
- **insights mode** (default): Dive deeper with detailed keywords, insights, and AI-generated suggestions for improvement. Rate limited based on your plan's `maxAnalysesPerHour`.

Returns 404 if the conversation doesn't exist or hasn't been analyzed yet.

## Path parameters

- `interactionId` string, uuid, required — The interaction ID to get analytics for

## Query parameters

- `mode` 'simple' | 'insights' — Analysis mode: "simple" returns only numeric aggregates (no rate limiting), "insights" includes topics, keywords, and recommendations (rate limited per tenant plan).

## Response `200`

Interaction analytics retrieved successfully

- GetInteractionAnalysisResponse
  - `messageCount` number, required — Number of messages in the interaction.
  - `summary` string, required — Summary of the interaction.
  - `topic` string, required — Main topic discussed.
  - `conversationQualityIndex` number, nullable, required — Quality index score for the interaction.
  - `averageUserSentiment` object, required — Average sentiment across user messages.
    - `label` string, required
    - `score` number, required
  - `changeInUserSentiment` object, required — How sentiment changed during the interaction.
    - `label` string, required
    - `score` number, required
  - `mostCommonUserEmotion` string, required — Most common emotion expressed by user.
  - `frustration` object, required — Frustration level detected.
    - `score` number, required
    - `label` string, required
  - `struggle` object, required — Struggle level detected.
    - `score` number, required
    - `label` string, required
  - `commercialIntent` object, required — Commercial intent detected.
    - `score` number, required
    - `primarySignal` string, required
  - `rating` number, nullable, required — User rating for this interaction.
  - `keywords` string[] — Keywords extracted (insights mode only).

## Other responses

- `404` — Interaction not found or not analyzed
- `429` — Rate limit exceeded (insights mode only)
- `500` — Server error

## Changes

- **2025-11-24** `c1998d918478` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/greenflash-ai/apis/greenflash-api-reference/changes/interactions/:interactionId/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)
