---
title: "Get a report document"
method: GET
path: "/v1/live-report/{reportId}/document/{documentId}"
tags: ["Live Report"]
---

# Get a report document

`GET /v1/live-report/{reportId}/document/{documentId}`

## Request

- Base URL: `https://api.roark.ai`
- URL: `https://api.roark.ai/v1/live-report/{reportId}/document/{documentId}`
- Auth: HTTP bearer

Returns one written report. `document` is null until `status` is READY. Theme excerpts and grader quotes (call transcript text) are included only for keys with transcript:read.

## Path parameters

- `reportId` string, uuid, required
- `documentId` string, uuid, required

## Response `200`

The document

- object
  - `data` LiveReportDocument, required: One written report over one period. `document` is null until `status` is READY; every number in it comes from the analytics engine (the same reads GET /v1/dashboard/{dashboardId}/data makes over the same window and filters).
    - `id` string, uuid, required
    - `projectId` string, uuid, required
    - `liveReportId` string, uuid, nullable, required
    - `periodStart` string, required
    - `periodEnd` string, required
    - `timezone` string, required
    - `cadence` 'DAILY' | 'WEEKLY' | 'MONTHLY', nullable, required
    - `trigger` 'SCHEDULED' | 'MANUAL', required
    - `definition` object, required
      - `name` string, required
      - `description` string, nullable, required
      - `agentId` string, uuid, nullable, required
      - `agentName` string, nullable, required
      - `filters` object[], required
        - `type` 'METRIC_PROPERTY' | 'CALL_PROPERTY' | 'AGENT_PROPERTY' | 'CALL_ID' | 'MODALITY' | 'DATASET' | 'METRIC_VALUE', required: What the filter narrows on. GET /v1/analytics/schema lists each type.
        - `property` string: The property to compare. Required for CALL_PROPERTY and METRIC_PROPERTY; may be omitted for AGENT_PROPERTY, DATASET, MODALITY and CALL_ID.
        - `operator` 'EQUALS' | 'NOT_EQUALS' | 'GREATER_THAN' | 'GREATER_THAN_OR_EQUAL_TO' | 'LESS_THAN' | 'LESS_THAN_OR_EQUAL_TO' | 'CONTAINS' | 'STARTS_WITH' | 'IS_SET' | 'IS_NOT_SET': Defaults to EQUALS. IS_SET / IS_NOT_SET (CALL_PROPERTY only) keep conversations where the property is set, whatever the value, or missing (never sent, sent as null, or removed); they take no value.
        - `value` union: The value to compare against (an agent id, "call" / "chat", a property value). Required except with IS_SET / IS_NOT_SET.
          - string
          - number
          - boolean
      - `targets` object[], required
        - `metric` string, required: The metric's slug (e.g. `task_completion`) or id.
        - `aggregation` 'PASS_RATE' | 'AVG' | 'MEDIAN' | 'PERCENTILE' | 'MIN' | 'MAX': Defaults to PASS_RATE for thresholds and booleans, AVG for anything numeric.
        - `percentile` integer: Required with PERCENTILE, e.g. 95.
        - `passOperator` 'EQUALS' | 'NOT_EQUALS' | 'GREATER_THAN' | 'GREATER_THAN_OR_EQUAL_TO' | 'LESS_THAN' | 'LESS_THAN_OR_EQUAL_TO': PASS_RATE on a metric that isn't a threshold: the per-call condition a call passes on.
        - `passValue` union
          - string
          - number
          - boolean
        - `comparator` 'AT_LEAST' | 'AT_MOST': AT_LEAST (default for PASS_RATE) or AT_MOST (default for every other aggregation).
        - `value` number, required: The bar, in display units. A PASS_RATE bar is a percentage, 0-100.
        - `label` string: Shown instead of the metric's name.
      - `dashboardId` string, uuid, nullable, required
      - `includeTranscriptExcerpts` boolean, required
    - `status` 'PENDING' | 'GENERATING' | 'READY' | 'FAILED', required
    - `document` object, nullable, required
      - `version` 1, required
      - `generatedAtIso` string, required
      - `model` string, required
      - `liveReportId` string, nullable, required
      - `headline` object, required
        - `reportName` string, required
        - `periodLabel` string, required
        - `periodStartIso` string, required
        - `periodEndIso` string, required
        - `timezone` string, required
        - `cadence` 'DAILY' | 'WEEKLY' | 'MONTHLY', nullable, required
        - `agentName` string, nullable, required
        - `verdict` 'ON_TARGET' | 'OFF_TARGET' | 'NO_TARGETS' | 'NO_DATA', required
        - `verdictProse` string, required
        - `statTiles` object[], required
          - `label` string, required
          - `value` string, required
          - `sub` string, nullable, required
          - `deltaDirection` 'POSITIVE' | 'NEGATIVE' | 'NEUTRAL', nullable, required
      - `executiveSummary` object, required
        - `paragraphs` string[], required
        - `sections` object[]
          - `heading` string, nullable, required
          - `body` string, required
        - `keyFindings` object[], required
          - `title` string, required
          - `body` string, required
          - `calls` object[]
            - `conversationId` string, required
            - `callId` string, nullable, required
            - `personaName` string, nullable, required
            - `cueMs` integer, nullable, required
      - `targets` object[], required
        - `key` string, required
        - `label` string, required
        - `metricName` string, required
        - `metricSlug` string, required
        - `metricDefinitionId` string, nullable, required
        - `aggregation` 'PASS_RATE' | 'AVG' | 'MEDIAN' | 'PERCENTILE' | 'MIN' | 'MAX', required
        - `percentile` integer, nullable, required
        - `comparator` 'AT_LEAST' | 'AT_MOST', required
        - `unit` 'PERCENT' | 'VALUE', required
        - `targetValue` number, required
        - `targetLabel` string, required
        - `actual` number, nullable, required
        - `actualLabel` string, nullable, required
        - `previous` number, nullable, required
        - `previousLabel` string, nullable, required
        - `deltaLabel` string, nullable, required
        - `deltaDirection` 'POSITIVE' | 'NEGATIVE' | 'NEUTRAL', nullable, required
        - `sampleSize` integer, required
        - `status` 'MET' | 'MISSED' | 'NO_DATA', required
        - `lifecycle` 'NEW_MISS' | 'STILL_MISSED' | 'RECOVERED' | 'HOLDING', nullable, required
        - `failingConversationCount` integer, nullable, required
        - `series` object[], required
          - `date` string, required
          - `value` number, nullable, required
          - `sampleSize` integer, nullable, required
        - `error` string, nullable, required
      - `checks` object[], required
        - `metricDefinitionId` string, required
        - `metricSlug` string, required
        - `checkName` string, required
        - `passRatePct` number, nullable, required
        - `previousPassRatePct` number, nullable, required
        - `deltaPts` number, nullable, required
        - `evaluatedCount` integer, required
        - `failedCount` integer, required
        - `comparable` boolean, required
        - `isTarget` boolean, required
      - `volume` object, required
        - `conversationCount` integer, required
        - `previousConversationCount` integer, nullable, required
        - `deltaPct` number, nullable, required
        - `series` object[], required
          - `date` string, required
          - `value` number, nullable, required
          - `sampleSize` integer, nullable, required
        - `endings` object[], required
          - `value` string, required
          - `label` string, required
          - `count` integer, required
          - `sharePct` number, required
      - `agents` object[], required
        - `agentId` string, required
        - `agentName` string, required
        - `conversationCount` integer, required
        - `sharePct` number, required
        - `targets` object[], required
          - `key` string, required
          - `actual` number, nullable, required
          - `actualLabel` string, nullable, required
          - `status` 'MET' | 'MISSED' | 'NO_DATA', required
      - `themes` object[], required
        - `slug` string, required
        - `title` string, required
        - `severity` 'HIGH' | 'MEDIUM' | 'LOW', required
        - `impact` 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW', nullable, required
        - `impactReason` string, nullable, required
        - `prevalence` 'WIDESPREAD' | 'RECURRING' | 'ISOLATED', nullable, required
        - `flaggedForImpact` boolean, required
        - `lifecycle` 'NEW' | 'PERSISTENT' | 'IMPROVING' | 'FIXED', nullable, required
        - `affectedConversationCount` integer, required
        - `totalConversationCount` integer, required
        - `checkNames` string[], required
        - `metricDefinitionIds` string[], required
        - `memberCalls` object[]
          - `conversationId` string, required
          - `callId` string, nullable, required
          - `personaName` string, nullable, required
          - `cueMs` integer, nullable, required
        - `rootCauseChannel` 'PROMPT' | 'VOICE_CONFIG' | 'STT' | 'SPEECH_MODEL' | 'LLM_MODEL' | 'INFRA' | 'EXTERNAL', nullable, required
        - `analysis` string, required
        - `memberConversationIds` string[], required
        - `excerpts` object[], required
          - `conversationId` string, required
          - `callId` string, nullable, required
          - `personaName` string, nullable, required
          - `scenarioName` string, nullable, required
          - `caption` string, nullable, required
          - `turns` object[], required
            - `role` 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER', required
            - `offsetMs` integer, nullable, required
            - `text` string, required
            - `flagged` boolean, required
            - `flagNote` string, nullable, required
        - `collectorQuote` object, nullable, required
          - `conversationId` string, required
          - `metricName` string, required
          - `quote` string, required
        - `estimatedAffectedConversationCount` integer, nullable, required
        - `issue` object, nullable, required
          - `id` string, required
          - `title` string, required
          - `status` string, required
          - `firstSeenAtIso` string, nullable, required
      - `recommendations` object[], required
        - `order` integer, required
        - `title` string, required
        - `body` string, required
        - `source` 'PROMPT_OPTIMIZER' | 'DEBRIEF', required
        - `channel` 'PROMPT' | 'VOICE_CONFIG' | 'STT' | 'SPEECH_MODEL' | 'LLM_MODEL' | 'INFRA' | 'EXTERNAL', nullable, required
        - `severity` 'HIGH' | 'MEDIUM' | 'LOW', nullable, required
        - `promptOptimizationFindingId` string, nullable, required
        - `beforeText` string, nullable, required
        - `afterText` string, nullable, required
        - `themeSlugs` string[], required
      - `charts` object[], required
        - `name` string, required
        - `description` string, nullable, required
        - `display` 'LINE' | 'NUMBER' | 'RADAR' | 'STACKED_BAR' | 'TABLE', required
        - `interval` 'HOUR' | 'DAY' | 'WEEK' | 'MONTH', required
        - `series` object[], required
          - `measureIndex` integer, required
          - `type` 'METRIC' | 'CONVERSATION' | 'UPTIME', required
          - `metric` string, nullable, required
          - `aggregation` 'COUNT' | 'AVG' | 'MIN' | 'MAX' | 'SUM' | 'MEDIAN' | 'PERCENTILE' | 'PASS_RATE', required
          - `breakdownValue` string, nullable, required
          - `comparisonGroup` string, nullable, required
          - `value` number, required
          - `sampleSize` number, nullable, required
          - `comparisonValue` number, nullable, required
          - `percentageOfBaseline` number, nullable, required
          - `buckets` object[], required
            - `date` string, required
            - `value` number, required
            - `passed` number
            - `sampleSize` number
            - `comparisonDate` string
            - `comparisonValue` number
            - `percentageOfBaseline` number
        - `omittedSeries` integer, required
        - `blocked` boolean, required
        - `error` string, nullable, required
      - `evidence` object, required
        - `failingConversationCount` integer, required
        - `readConversationCount` integer, required
        - `sampled` boolean, required
        - `failingCountIsLowerBound` boolean, required
      - `appendix` object, required
        - `methodology` string, required
        - `notes` string[], required
    - `errorMessage` string, nullable, required
    - `announcedAt` string, nullable, required
    - `completedAt` string, nullable, required
    - `createdAt` string, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Report or document not found
- `429`: Too Many Requests
- `500`: Internal Server Error

## Changes

> 188 revisions in range; 1 not diffed.

- **2026-11-03** `1a91a5c90e44`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/roarkhq/apis/roark-analytics-api/changes/v1/live-report/:reportId/document/:documentId/get.md)

---

[API](https://skmtc.dev/roarkhq/apis/roark-analytics-api.md) - [All operations](https://skmtc.dev/roarkhq/apis/roark-analytics-api/llms.txt) - [OpenAPI document](https://skmtc.dev/roarkhq/apis/roark-analytics-api/revisions/efc3377249d1?raw)
