---
title: "Get metric values produced by a metric collection job"
method: GET
path: "/v1/metric/collection-jobs/{jobId}/metric-values"
tags: ["Metric Collection Job"]
---

# Get metric values produced by a metric collection job

`GET /v1/metric/collection-jobs/{jobId}/metric-values`

## Request

- Base URL: `https://api.roark.ai`
- URL: `https://api.roark.ai/v1/metric/collection-jobs/{jobId}/metric-values`
- Auth: HTTP bearer

Returns the metric values produced by the specified job, grouped by metric definition. Unlike `GET /v1/call/:callId/metrics` (which returns the latest values on a call, regardless of which job computed them), this endpoint returns exactly the values *this* job produced — including for calls whose live values have since been overwritten by a later job. By default returns only SUCCESS rows; pass `?status=all` to also include NOT_APPLICABLE / DATA_MISSING / ERROR.

## Path parameters

- `jobId` string, required

## Query parameters

- `status` 'success' | 'all': Filter metrics by capture status. `success` (default) returns only successfully computed metrics; `all` also returns NOT_APPLICABLE / DATA_MISSING / ERROR rows with the `value` field omitted.

## Response `200`

Metric values produced by the job, grouped by metric definition

- object
  - `data` object[], required: Metric values produced by a specific metric collection job. Grouped by metric definition, same shape as the per-call metrics endpoint.
    - `metricDefinitionId` string, uuid, required: Unique identifier for the metric definition
    - `slug` string, required: Stable metric slug
    - `metricId` string, required: Alias of `slug` retained for backwards compatibility. Same value as `slug`.
    - `name` string, required: Name of the metric
    - `description` string, required: Description of what the metric measures
    - `type` 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET', required: Type of value this metric produces
    - `scope` 'GLOBAL' | 'PER_PARTICIPANT', required: Whether metric is global or per-participant
    - `unit` object: Unit information if applicable
      - `name` string, required: Name of the unit
      - `symbol` string, nullable, required: Symbol for the unit
    - `values` union[], required: Array of metric values (multiple for PER_PARTICIPANT metrics, or multiple segments/turns)
      - union
        - object: A metric value entry. Applies to every metric.
          - `value` union: The metric value (type depends on outputType). Present only on SUCCESS rows; omitted for NOT_APPLICABLE / DATA_MISSING / ERROR.
            - number
            - boolean
            - string
          - `callId` string, uuid: ID of the call this value was computed on. Only set when the response spans multiple conversations (e.g. job-scoped metric values).
          - `chatId` string, uuid: ID of the chat this value was computed on. Only set when the response spans multiple conversations (e.g. job-scoped metric values).
          - `captureStatus` 'SUCCESS' | 'NOT_APPLICABLE' | 'DATA_MISSING' | 'ERROR', required: Result state of this metric computation. SUCCESS carries a real `value`; NOT_APPLICABLE / DATA_MISSING / ERROR do not (the `value` field is omitted). Non-SUCCESS rows only appear when the request includes ?status=all.
          - `errorMessage` string: Error detail when captureStatus is ERROR — e.g. provider down, LLM timeout. Undefined for other statuses.
          - `context` 'CALL' | 'SEGMENT' | 'SEGMENT_RANGE', required: Context level: CALL (entire conversation), SEGMENT (single segment), SEGMENT_RANGE (between/across segments)
          - `participantRole` 'agent' | 'customer': Role of participant (only for PER_PARTICIPANT metrics)
          - `valueReasoning` string: Explanation for the metric value (especially useful for AI-computed metrics)
          - `confidence` number: Confidence score (0-1) for the computed value. Defaults to 1.0 for deterministic metrics. Omitted on non-SUCCESS rows.
          - `computedAt` string, date-time, required: ISO 8601 timestamp when the metric was computed
          - `policyIds` string[]: IDs of metric policies that triggered this metric computation
          - `segment` object: Segment information (for SEGMENT context metrics)
            - `id` string, uuid, required: Segment ID
            - `text` string, required: Segment text content
            - `startOffsetMs` number, required: Start time offset in milliseconds
            - `endOffsetMs` number, required: End time offset in milliseconds
          - `fromSegment` object: Starting segment information (for SEGMENT_RANGE context metrics)
            - `id` string, uuid, required: Segment ID
            - `text` string, required: Segment text content
            - `startOffsetMs` number, required: Start time offset in milliseconds
            - `endOffsetMs` number, required: End time offset in milliseconds
          - `toSegment` object: Ending segment information (for SEGMENT_RANGE context metrics)
            - `id` string, uuid, required: Segment ID
            - `text` string, required: Segment text content
            - `startOffsetMs` number, required: Start time offset in milliseconds
            - `endOffsetMs` number, required: End time offset in milliseconds
          - `evidenceSpans` object[]: For CALL-context values of LLM judge metrics that cited where their evidence is: the transcript spans that decided the value, most decisive first. Omitted otherwise.
            - `fromSegment` object, required: First segment of the span
              - …
            - `toSegment` object, required: Last segment of the span (the same as fromSegment for one line)
              - …
            - `reason` string: The judge's one-line account of what happens here
        - object: Returned for the Property Mismatch metric (`property_transcript_mismatch`): the standard entry plus the per-property verdict breakdown.
          - `value` union: The metric value (type depends on outputType). Present only on SUCCESS rows; omitted for NOT_APPLICABLE / DATA_MISSING / ERROR.
            - number
            - boolean
            - string
          - `callId` string, uuid: ID of the call this value was computed on. Only set when the response spans multiple conversations (e.g. job-scoped metric values).
          - `chatId` string, uuid: ID of the chat this value was computed on. Only set when the response spans multiple conversations (e.g. job-scoped metric values).
          - `captureStatus` 'SUCCESS' | 'NOT_APPLICABLE' | 'DATA_MISSING' | 'ERROR', required: Result state of this metric computation. SUCCESS carries a real `value`; NOT_APPLICABLE / DATA_MISSING / ERROR do not (the `value` field is omitted). Non-SUCCESS rows only appear when the request includes ?status=all.
          - `errorMessage` string: Error detail when captureStatus is ERROR — e.g. provider down, LLM timeout. Undefined for other statuses.
          - `context` 'CALL' | 'SEGMENT' | 'SEGMENT_RANGE', required: Context level: CALL (entire conversation), SEGMENT (single segment), SEGMENT_RANGE (between/across segments)
          - `participantRole` 'agent' | 'customer': Role of participant (only for PER_PARTICIPANT metrics)
          - `valueReasoning` string: Explanation for the metric value (especially useful for AI-computed metrics)
          - `confidence` number: Confidence score (0-1) for the computed value. Defaults to 1.0 for deterministic metrics. Omitted on non-SUCCESS rows.
          - `computedAt` string, date-time, required: ISO 8601 timestamp when the metric was computed
          - `policyIds` string[]: IDs of metric policies that triggered this metric computation
          - `segment` object: Segment information (for SEGMENT context metrics)
            - `id` string, uuid, required: Segment ID
            - `text` string, required: Segment text content
            - `startOffsetMs` number, required: Start time offset in milliseconds
            - `endOffsetMs` number, required: End time offset in milliseconds
          - `fromSegment` object: Starting segment information (for SEGMENT_RANGE context metrics)
            - `id` string, uuid, required: Segment ID
            - `text` string, required: Segment text content
            - `startOffsetMs` number, required: Start time offset in milliseconds
            - `endOffsetMs` number, required: End time offset in milliseconds
          - `toSegment` object: Ending segment information (for SEGMENT_RANGE context metrics)
            - `id` string, uuid, required: Segment ID
            - `text` string, required: Segment text content
            - `startOffsetMs` number, required: Start time offset in milliseconds
            - `endOffsetMs` number, required: End time offset in milliseconds
          - `evidenceSpans` object[]: For CALL-context values of LLM judge metrics that cited where their evidence is: the transcript spans that decided the value, most decisive first. Omitted otherwise.
            - `fromSegment` object, required: First segment of the span
              - …
            - `toSegment` object, required: Last segment of the span (the same as fromSegment for one line)
              - …
            - `reason` string: The judge's one-line account of what happens here
          - `propertyVerdicts` object[]: Per-property verdicts for the Property Mismatch metric, in the order the properties were checked. Omitted for every other metric.
            - `propertyName` string, required: The call property checked, as sent at ingest
            - `expectedValue` string, required: The value supplied at ingest, frozen at scoring time
            - `observedValue` string: What the transcript said instead. Only present when verdict is MISMATCH.
            - `verdict` 'MATCH' | 'MISMATCH' | 'TRANSCRIPTION_ERROR' | 'NOT_MENTIONED', required: How this property resolved against the transcript. NOT_MENTIONED means the subject never came up and is not a mismatch.
            - `reasoning` string: Judge reasoning for this verdict
            - `segment` object: The transcript segment this property was referred to in: the conflicting value for MISMATCH, the confirming reference for MATCH. Omitted for NOT_MENTIONED and when the verdict could not be anchored.
              - …

## Other responses

- `401`: Unauthorized
- `404`: Not Found
- `429`: Too Many Requests
- `500`: Internal Server Error

## Changes

> 187 revisions in range; 1 not diffed.

- **2026-10-02** `e32b31fc8f98`: 2 info
  - added the optional property `data/items/values/items/anyOf[subschema #1: Standard metric value]/evidenceSpans` to the response with the `200` status
  - added the optional property `data/items/values/items/anyOf[subschema #2: Property verification metric value]/evidenceSpans` to the response with the `200` status
- **2026-09-09** `7ea77678cced`: 1 warning
  - added the new `TRANSCRIPTION_ERROR` enum value to the `data/items/values/items/anyOf[subschema #2: Property verification metric value]/propertyVerdicts/items/verdict` response property for the response status `200`
- **2026-08-17** `887b091b3d81`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/roarkhq/apis/roark-analytics-api/changes/v1/metric/collection-jobs/:jobId/metric-values/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/1a91a5c90e44?raw)
