---
title: "Get customer insights"
method: POST
path: "/insights"
---

# Get customer insights

`POST /insights`

Retrieve customer insights (paginated response)

## Request body

- GetVocQueryDto
  - `category` string, nullable — Filter by category name
  - `status` 'all' | 'unresolved' | 'resolved' | 'archived', nullable
  - `sentiment` 'angry' | 'happy' | 'neutral', nullable — Filter by sentiment
  - `sortBy` 'occurrence_count' | 'last_seen_at' | 'first_seen_at' | 'created_at', nullable
  - `sortOrder` 'asc' | 'desc', nullable
  - `minSessions` integer, nullable — Minimum occurrence count
  - `search` string, nullable — Search in insight content
  - `teamId` union — Filter by specific team ID or none for unassigned insights
    - string, uuid
    - 'not_assigned'
  - `insightNumber` integer, nullable — Filter by insight number
  - `sessionLanguage` 'az' | 'el' | 'de' | 'fr' | 'it' | 'es' | 'pt' | 'nl' | 'da' | 'sv' | 'no' | 'fi' | 'et' | 'is' | 'pl' | 'cs' | 'sk' | 'hu' | 'ro' | 'bg' | 'hr' | 'sr' | 'uk' | 'ru' | 'tr' | 'en' | 'zh' | 'ja' | 'ko' | 'hi' | 'bn' | 'id' | 'ms' | 'th' | 'vi' | 'tl' | 'ar' | 'he' | 'fa' | 'ur' | 'af' | 'sw' | 'ku' | 'ckb' | 'kmr', nullable — Filter by language
  - `ticketSentiment` 'angry' | 'happy' | 'neutral', nullable — Filter by sentiment
  - `channel` 'web' | 'email' | 'phone_voice' | 'slack' | 'sms' | 'whatsapp' | 'instagram' | 'messenger' | 'api' | 'web_voice'
  - `sessionFromDate` string, nullable — Filter sessions created from this date (ISO 8601)
  - `sessionToDate` string, nullable — Filter sessions created to this date (ISO 8601)
  - `sessionStatus` 'closed_resolved' | 'closed_unresolved' | 'open', nullable — Filter by session status
  - `sessionContactId` string, uuid, nullable — Filter by session contact ID
  - `ticketCustomData` object[], nullable — A list of objects with key-value pairs to filter by. Relationship is OR between objects, and AND between the values in each object
  - `contactCustomData` object[], nullable — Filter by contact custom data key-value pairs
  - `page` integer

## Response `200`

Default Response

- PublicPaginatedInsightsDto
  - `data` PublicInsight[], required
    - `id` string, uuid, required
    - `insight_number` integer, required
    - `content` string, required
    - `sentiment` 'angry' | 'happy' | 'neutral', required
    - `occurrence_count` integer, required
    - `category` object, nullable, required
      - `id` string, uuid, required
      - `name` string, required
      - `description` string, nullable, required
    - `team` object, nullable, required
      - `id` string, uuid, required
      - `name` string, required
    - `resolved_by` object, nullable, required
      - `name` string, nullable, required
      - `avatar_url` string, nullable, required
    - `resolved_at` string, date-time, nullable, required
    - `archived_by` object, nullable, required
      - `name` string, nullable, required
      - `avatar_url` string, nullable, required
      - `reason` string, nullable, required
    - `archived_at` string, date-time, nullable, required
    - `archive_policy` 'forever' | 'until_count' | 'until_escalating', nullable, required
    - `resurface_progress` object, nullable, required
      - `current` integer, required
      - `target` integer, required
    - `deep_research` string, nullable, required
    - `deep_research_completed_at` string, date-time, nullable, required
    - `first_seen_at` string, date-time, required
    - `last_seen_at` string, date-time, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `page` integer, required
  - `total` integer, required
  - `totalPages` integer, required

## Other responses

- `500` — Internal Server Error

---

[API](https://skmtc.net/open/apis/opencx-api.md) · [All operations](https://skmtc.net/open/apis/opencx-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/open/opencx-api/versions/57b06b52302d/schema)
