---
title: "POST /v1/internal/classification-result"
method: POST
path: "/v1/internal/classification-result"
---

# POST /v1/internal/classification-result

`POST /v1/internal/classification-result`

## Request body

- union
  - object
    - `schema_version` unknown, required
    - `dispatch_id` string, uuid, required
    - `stage_run_id` string, uuid, required
    - `status` 'completed' | 'failed', required
    - `result` object
      - `model_id` string, required
      - `model_sha256` string, required
      - `contract_id` 'item-ranker-current-scan-v1' | 'item-ranker-current-scan-007-v1', required
      - `release_sha256` string, required
      - `scanner_present` unknown, required
      - `confidence` number, nullable, required
      - `gap` unknown, required
      - `selection_status` 'selected' | 'no_selection', required
      - `is_measurable` boolean, required
      - `best_frame` 'pre_3' | 'pre_2' | 'pre' | 'scan' | 'post' | 'post_2' | 'post_3', required
      - `review_flags` string[], required
      - `signals` object, required
      - `alternatives` object[]
        - `rank` integer, required
        - `candidate_index` integer, required
        - `person_track_id` integer, nullable
        - `best_frame` 'pre_3' | 'pre_2' | 'pre' | 'scan' | 'post' | 'post_2' | 'post_3', required
    - `error` string
  - object
    - `schema_version` unknown, required
    - `dispatch_id` string, uuid, required
    - `stage_run_id` string, uuid, required
    - `status` 'completed' | 'failed', required
    - `result` object
      - `scanner_present` boolean, required
      - `is_measurable` boolean, nullable
      - `confidence` number, nullable, required
      - `gap` number, nullable, required
      - `best_frame` string, nullable
      - `review_flags` string[], nullable
      - `signals` object, nullable
      - `segmentation` unknown
    - `error` string

## Response `200`

Default Response

## Changes

- **2026-09-16** `c5284fb49979` — 2 breaking, 3 info
  - the `oneOf[subschema #1]/result/confidence` request property type changed from no type to `number`
  - the `oneOf[subschema #1]/result/contract_id` request property type changed from no type to `string`
  - the request property `oneOf[subschema #1]/result/confidence` became nullable
  - the request property `oneOf[subschema #1]/result/alternatives/items/person_track_id` became optional
  - …1 more
- **2026-09-12** `2b6a0e9e7ae1` — 1 info
  - added the new optional request property `oneOf[subschema #1]/result/alternatives`
- **2026-09-09** `b1ef8e4719b4` — 22 breaking, 2 warning, 7 info
  - added the new required request property `oneOf[subschema #2 -> subschema #1]/dispatch_id`
  - added the new required request property `oneOf[subschema #2 -> subschema #1]/result/contract_id`
  - added the new required request property `oneOf[subschema #2 -> subschema #1]/result/model_id`
  - added the new required request property `oneOf[subschema #2 -> subschema #1]/result/model_sha256`
  - …27 more
- **2026-09-01** `f74c464947b1` — 1 breaking, 4 warning, 1 info
  - the request's body type changed from `object` to no type
  - removed the request property `error`
  - removed the request property `job_id`
  - removed the request property `result`
  - …2 more

[Change history](https://skmtc.dev/transload/apis/pipeline-backend/changes/v1/internal/classification-result/post.md)

---

[API](https://skmtc.dev/transload/apis/pipeline-backend.md) · [All operations](https://skmtc.dev/transload/apis/pipeline-backend/llms.txt) · [OpenAPI document](https://skmtc.dev/transload/apis/pipeline-backend/revisions/5260c627c7e6?raw)
