---
title: "List Training Samples"
method: GET
path: "/training/samples"
tags: ["training"]
---

# List Training Samples

`GET /training/samples`

## Request

- Base URL: `https://api.verdun.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.verdun.ai/training/samples`
- Auth: HTTP bearer

## Query parameters

- `limit` integer
- `cursor` string, nullable: Keyset cursor from the previous page's next_cursor; omit for the first page
- `disagreement` string
- `actor` string
- `incident_type` string, nullable
- `operator_disposition` string, nullable: Enum member name, e.g. FALSE_ALARM
- `prompt_version` string, nullable
- `date_from` string, date-time, nullable
- `date_to` string, date-time, nullable
- `include_demo` boolean

## Response `200`

Successful Response

- GetTrainingSamplesResponse
  - `samples` TrainingSampleListItemModel[], required: Training samples, newest first
    - `id` string, uuid, required: UUID of the training sample
    - `event_id` string, uuid, nullable: Drill-back to the live event; null once that event is deleted
    - `source_event_id` string, uuid, required: Permanent provenance key: the event this sample snapshotted
    - `created_at` string, date-time, required: When the sample was captured
    - `occurred_at` string, date-time, required: Motion time (ingestor-reported, falling back to event creation)
    - `evaluated_at` string, date-time, required: When the disposition was written
    - `ai_incident_type` string, nullable: AI incident classification snapshot
    - `ai_severity` string, nullable: AI severity snapshot
    - `ai_confidence_band` string, nullable: AI self-reported confidence band snapshot
    - `ai_recommended_action` string, nullable: AI operator-aligned recommendation snapshot; null when the eval carried none
    - `operator_disposition` string, required: Enum member name (stable across display-label renames)
    - `expected_action` string, nullable: The operator disposition crosswalked into the recommendation's 4-class space
    - `is_disagreement` boolean, nullable: Three-state: true/false when AI and operator are comparable; null when the AI carried no recommendation
    - `actor` string, required: Who authored the disposition; only 'operator' rows are ground truth
    - `llm_prompt_version` string, nullable: Prompt version the original eval ran under
    - `llm_model` string, nullable: Model that served the original eval
    - `clip_copy_status` string, required: Whether the clip was durably copied into the training prefix
    - `kvs_stream_name` string, nullable: Source camera stream
    - `zone` string, nullable: Camera zone label
    - `is_demo` boolean, required: Sample originated from an owner-uploaded demo clip
    - `rerun_count` integer, required: Number of rerun experiments recorded for this sample
  - `total` integer, required: Total matching samples (for pagination)
  - `limit` integer, required: Page size used for this response
  - `next_cursor` string, nullable: Keyset cursor for the next page; null when this page is the last

## Other responses

- `422`: Validation Error

---

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