---
title: "Get AI insights for a viral video"
method: GET
path: "/library/viral-videos/{videoId}/ai-insights"
tags: ["Viral Video Library"]
---

# Get AI insights for a viral video

`GET /library/viral-videos/{videoId}/ai-insights`

## Request

- Base URL: `https://viral.app/api/v1`
- URL: `https://viral.app/api/v1/library/viral-videos/{videoId}/ai-insights`
- Auth: API key in header `x-api-key`

Returns the latest AI enrichment facet statuses and extracted outputs for a viral video.

## Path parameters

- `videoId` string, required

## Response `200`

OK

- object
  - `videoId` string, required
  - `ugc` object, required
    - `status` 'missing' | 'succeeded', required
    - `confidence` number, nullable
    - `updatedAt` string, date-time, nullable, required
    - `result` object, nullable, required
      - `isUgc` boolean, nullable, required
      - `ugcConfidence` number, nullable, required
      - `ugcRationale` string, nullable
  - `insights` object, required
    - `status` 'missing' | 'succeeded', required
    - `confidence` number, nullable
    - `updatedAt` string, date-time, nullable, required
    - `result` object, nullable, required
      - `productTldr` string, nullable, required
      - `whyItWorked` string, nullable, required
      - `replicationTip` string, nullable, required
      - `ctaMechanic` string, nullable, required
      - `isSponsored` string, nullable, required
      - `trendLeveraged` string, nullable, required
      - `onScreenIdentity` string, nullable, required
      - `identityConfidence` number, nullable, required
  - `forensic` object, required
    - `status` 'missing' | 'succeeded', required
    - `confidence` number, nullable
    - `updatedAt` string, date-time, nullable, required
    - `result` object, nullable, required
      - `vertical` string, nullable, required
      - `formatPrimary` string, nullable, required
      - `hookVisual` string, nullable, required
      - `hookTextOverlay` string, nullable, required
      - `hookAudio` string, nullable, required
      - `hookArchetype` string, nullable, required
      - `hookTimestampSeconds` number, nullable, required
      - `primaryPsychTrigger` string, nullable, required
      - `retentionPattern` string, nullable, required
      - `shareDriver` string, nullable, required
      - `saveDriver` string, nullable, required
  - `commercial` object, required
    - `status` 'missing' | 'succeeded', required
    - `confidence` number, nullable
    - `updatedAt` string, date-time, nullable, required
    - `result` object, nullable, required
      - `productShown` boolean, nullable, required
      - `productShownTimestampSeconds` number, nullable, required
      - `productNameRaw` string, nullable, required
      - `productType` string, nullable, required
      - `productTypeOther` string, nullable, required
      - `productId` string, nullable, required
      - `resolvedProduct` object, nullable, required
        - `id` string, required
        - `name` string, required
        - `productUrl` string, nullable, required
        - `appStoreUrl` string, nullable, required
        - `playStoreUrl` string, nullable, required
      - `brandShown` boolean, nullable, required
      - `brandShownTimestampSeconds` number, nullable, required
      - `brandRaw` string, nullable, required
      - `brandId` string, nullable, required
      - `resolvedBrand` object, nullable, required
        - `id` string, required
        - `name` string, required
        - `websiteUrl` string, nullable, required
        - `logoUrl` string, nullable, required
        - `domain` string, nullable, required
      - `entityResearchedAt` string, date-time, nullable, required
      - `entityResearchError` string, nullable, required
  - `persona` object, required
    - `status` 'missing' | 'succeeded', required
    - `confidence` number, nullable
    - `updatedAt` string, date-time, nullable, required
    - `result` object, nullable, required
      - `creatorGroupType` string, nullable, required
      - `creatorGenderPresentation` string, nullable, required
      - `creatorAgeCategory` string, nullable, required
  - `scenes` object, required
    - `status` 'missing' | 'succeeded', required
    - `confidence` number, nullable
    - `updatedAt` string, date-time, nullable, required
    - `result` object, nullable, required
      - `sceneCount` integer, required
      - `musicSoundDescription` string, nullable, required
      - `scenes` object[], required
        - `id` string, required
        - `sceneIndex` integer, required
        - `startSeconds` number, nullable, required
        - `endSeconds` number, nullable, required
        - `durationSeconds` number, nullable, required
        - `sceneDescription` string, nullable, required
        - `subject` string, nullable, required
        - `environmentSetting` string, nullable, required
        - `action` string, nullable, required
        - `lightingStyle` string, nullable, required
        - `cameraAngleMovement` string, nullable, required
        - `soundDescription` string, nullable, required

## Other responses

- `400`: 400
- `401`: 401
- `402`: 402
- `404`: 404
- `408`: 408
- `429`: 429
- `500`: 500

---

[API](https://skmtc.dev/viral/apis/viral-app-api.md) · [All operations](https://skmtc.dev/viral/apis/viral-app-api/llms.txt) · [OpenAPI document](https://skmtc.dev/viral/apis/viral-app-api/revisions/31e97fa79ef1?raw)
