---
title: "Get Score Run"
method: GET
path: "/v3/eval/score/{scoreRunID}"
tags: ["Function Accuracy"]
---

# Get Score Run

`GET /v3/eval/score/{scoreRunID}`

**Get the status and per-pair results of a score run.**

The comparison happens here, not in the run: the function's output is compared
against the expected value on every read, under the configuration supplied below.
Re-reading the same run with different settings returns different metrics and
costs nothing — no model calls are repeated.

Comparison is exact and takes no configuration: a value matches the expected one
or it is a miss. It is still redone on every read, so the numbers reflect the
stored data as it is now.

Returns `aggregate` once `status` reaches `completed` or `error`. `perPair` is
populated incrementally — each pair's `fieldResults` appears as its underlying
function call terminates.

## Path parameters

- `scoreRunID` string, required

## Response `200`

The request has succeeded.

- EvalScoreRunResponseV3 — Full status payload returned by `GET /v3/eval/score/{scoreRunID}`. Scoring takes no configuration: a value matches the expected one or it is a miss. The comparison is still recomputed on every read from the stored JSON, so the numbers reflect the data as it is now rather than as it was when the run executed.
  - `scoreRunID` string, required
  - `status` 'pending' | 'initializing' | 'running' | 'completed' | 'error' | 'cancelled', required — Status values for an eval-score run.
  - `functionName` string, required
  - `functionVersionNum` integer, required
  - `progress` EvalScoreProgressV3, required — Counts across all pairs.
    - `total` integer, required
    - `completed` integer, required
    - `failed` integer, required
  - `aggregate` EvalScoreAggregateV3 — Aggregate accuracy metrics.
    - `precision` number, double, required
    - `recall` number, double, required
    - `f1` number, double, required
    - `matches` integer, required
    - `mismatches` integer, required
    - `missing` integer, required
    - `extras` integer, required
    - `totalFieldsExpected` integer, required
    - `totalFieldsActual` integer, required
  - `perPair` EvalScorePairResultV3[], required — Per-pair results. `fieldResults` appears once a pair has an output to compare.
    - `pairIndex` integer, required
    - `callID` string — The function call that produced the actual output, if any.
    - `status` 'pending' | 'running' | 'completed' | 'failed', required — Per-pair status.
    - `fieldResults` EvalScoreFieldResultV3[] — Per-leaf comparator output. Present only after the pair has been compared.
      - `path` string, required — JSON Pointer to the leaf.
      - `match` 'match' | 'mismatch' | 'missing' | 'extra', required — Classification, in the same vocabulary the model-comparison endpoint reports. Comparison is exact — a value matches or it does not: - `match`: both present and deep-equal - `mismatch`: both present, different - `missing`: expected present, actual absent - `extra`: actual present, expected absent
      - `expected` unknown
      - `actual` unknown
      - `delta` number, double — Populated for every non-identical numeric pair; `actual - expected`. Reported as evidence only — numbers have no threshold, so a delta tells you how far off a value was without ever excusing it.
      - `similarity` number, double — Populated for every non-identical string pair; the Levenshtein ratio in `[0, 1]`. Reported as evidence: it says how close a wrong value was, which never makes it right.
    - `errorMessage` string — Error message if the underlying function call failed.

## Other responses

- `404` — The server cannot find the requested resource.

---

[API](https://skmtc.dev/bem-team/apis/bem-api.md) · [All operations](https://skmtc.dev/bem-team/apis/bem-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/bem-team/bem-api/revisions/a6e4624117c6/schema)
