---
title: "Cancel a model comparison"
method: POST
path: "/v3/model-comparisons/{comparisonID}/cancel"
tags: ["Function Accuracy"]
---

# Cancel a model comparison

`POST /v3/model-comparisons/{comparisonID}/cancel`

**Cancel a comparison.**

Cancels every entry's still-running scoring run. Entries that already finished
keep their results; the comparison's status becomes `cancelled`. Returns the
updated comparison.

## Path parameters

- `comparisonID` string, required

## Response `200`

The request has succeeded.

- ModelComparisonResponseV3 — Returned by `GET /v3/model-comparisons/{comparisonID}`.
  - `comparisonID` string, required
  - `name` string
  - `status` 'pending' | 'running' | 'complete' | 'partial' | 'cancelled' | 'error', required — Rolled-up status of a comparison, derived from its entries' scoring runs.
  - `entries` ModelComparisonEntryResultV3[], required
    - `label` string, required
    - `functionName` string, required
    - `functionVersionNum` integer, required
    - `scoreRunID` string, required — The underlying eval-score run (`evalrun_…`).
    - `status` 'pending' | 'running' | 'complete' | 'partial' | 'cancelled' | 'error', required — Rolled-up status of a comparison, derived from its entries' scoring runs.
    - `isBaseline` boolean, required — True for the baseline entry (the first one), which others report lift against.
    - `coverage` ModelComparisonCoverageV3, required — Completed / total scored calls for an entry.
      - `completed` integer, required
      - `total` integer, required
    - `metrics` ModelComparisonMetricsV3 — Accuracy metrics for one scored entry (aggregate + per-field).
      - `aggregateMetrics` ModelComparisonAggregateV3, required — Aggregate confusion-matrix accuracy metrics.
        - `accuracy` number, double
        - `precision` number, double
        - `recall` number, double
        - `f1Score` number, double
        - `tp` integer, required
        - `fp` integer, required
        - `fn` integer, required
        - `tn` integer, required
      - `fieldMetrics` unknown[], required — Per-field metrics (same shape as the lab metrics `fieldMetrics`).
        - unknown
    - `latencyPercentiles` ModelComparisonLatencyV3 — End-to-end latency percentiles, in seconds.
      - `latencyP50` number, double, required
      - `latencyP90` number, double, required
      - `latencyP95` number, double, required
    - `baselineMetrics` ModelComparisonMetricsV3 — Accuracy metrics for one scored entry (aggregate + per-field).
      - `aggregateMetrics` ModelComparisonAggregateV3, required — Aggregate confusion-matrix accuracy metrics.
        - `accuracy` number, double
        - `precision` number, double
        - `recall` number, double
        - `f1Score` number, double
        - `tp` integer, required
        - `fp` integer, required
        - `fn` integer, required
        - `tn` integer, required
      - `fieldMetrics` unknown[], required — Per-field metrics (same shape as the lab metrics `fieldMetrics`).
        - unknown
    - `lift` ModelComparisonLiftV3 — Lift of an entry's aggregate metrics against the baseline entry.
      - `accuracy` ModelComparisonMetricDeltaV3, required — One metric's baseline vs comparison value, absolute diff, and percent lift.
        - `baselineValue` number, double
        - `comparisonValue` number, double
        - `difference` number, double
        - `liftPercent` number, double
      - `precision` ModelComparisonMetricDeltaV3, required — One metric's baseline vs comparison value, absolute diff, and percent lift.
        - `baselineValue` number, double
        - `comparisonValue` number, double
        - `difference` number, double
        - `liftPercent` number, double
      - `recall` ModelComparisonMetricDeltaV3, required — One metric's baseline vs comparison value, absolute diff, and percent lift.
        - `baselineValue` number, double
        - `comparisonValue` number, double
        - `difference` number, double
        - `liftPercent` number, double
      - `f1Score` ModelComparisonMetricDeltaV3, required — One metric's baseline vs comparison value, absolute diff, and percent lift.
        - `baselineValue` number, double
        - `comparisonValue` number, double
        - `difference` number, double
        - `liftPercent` number, double
    - `rowResults` ModelComparisonRowResultV3[] — Per-row, per-field comparison detail (this entry's value vs the label, re-matched under `matchMode`). Present only when the request passes `includeRowResults=true`. Powers mislabel detection.
      - `rowKey` string, required
      - `fields` ModelComparisonFieldResultV3[], required
        - `path` string, required — JSON Pointer to the field.
        - `category` string, required — `match` | `mismatch` | `missing` | `extra`.
        - `expected` unknown
        - `actual` unknown

## Other responses

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

## Changes

- **2026-08-04** `643398900e5d` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/bem-team/apis/bem-api/changes/v3/model-comparisons/:comparisonID/cancel/post.md)

---

[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)
