---
title: "List screening runs, newest first"
method: GET
path: "/api/v1/screening/runs"
tags: ["Screening"]
---

# List screening runs, newest first

`GET /api/v1/screening/runs`

## Request

- Base URL: `https://api.korala.ai`
- URL: `https://api.korala.ai/api/v1/screening/runs`
- Auth: one of:
  - API key in header `X-API-Key`
  - `bearer` (a scheme the document does not define)

## Query parameters

- `status` 'clear' | 'possible_match' | 'match' | 'incomplete' | 'error'
- `sessionId` string, uuid
- `riskSubjectId` string, uuid
- `page` number
- `limit` number

## Headers

- `X-Korala-Mode` 'live' | 'test'

## Response `200`

- PaginatedScreeningRunsDto
  - `data` ScreeningRunSummaryDto[], required
    - `id` string, uuid, required
    - `status` 'clear' | 'possible_match' | 'match' | 'incomplete' | 'error', required
    - `incomplete` boolean, required: The screening was not complete (see incompleteReasons). Nothing found in an incomplete run is status incomplete, never clear.
    - `incompleteReasons` string[], required: source_missing, source_stale, source_attention, source_dropped_entries, source_reindex_pending, candidates_capped (the sanctions pool), pep_candidates_capped (the PEP pool), pep_lookback_beyond_list (the PEP look-back is longer than a PEP list goes back), name_terms_capped, name_without_tokens.
    - `errorCode` string, nullable, required
    - `trigger` 'check_step' | 'api', required
    - `sandbox` boolean, required
    - `sessionId` string, uuid, nullable, required
    - `participantId` string, uuid, nullable, required
    - `riskSubjectId` string, uuid, nullable, required
    - `workflowRunId` string, uuid, nullable, required
    - `sources` ScreeningRunSourceDto[], required
      - `key` string, required
      - `sourceId` string, uuid, nullable, required
      - `versionId` string, uuid, nullable, required: The list version searched; null when there was none.
      - `publishedAt` string, date-time, nullable, required
      - `missing` boolean, required: Not searched: unknown, off, or never loaded.
      - `droppedEntries` number, required: Entries the list version dropped because its parser could not read them. Any makes the run incomplete.
      - `droppedTerms` number, required: Terms over 300 characters the searched version did not index, counted over the entries that version indexed itself: those it added or changed, or every listed entry when it rebuilt the list's terms for a new term builder. Terms left out of an entry an earlier version indexed, and this one kept unchanged, are not counted. Recorded only: no name a subject can be screened under is that long.
      - `termBuilderVersion` number, nullable: The term builder that indexed the list version searched: from 3 the index finds names within one letter. Null when the list was not searched; absent on runs recorded before the field was added.
      - `reindexPending` boolean: The version searched was indexed by an older term builder and its index has not been rebuilt yet: names one letter off were not searched on it, and the run is incomplete (source_reindex_pending). Absent on runs recorded before the field was added.
      - `stale` boolean, required
      - `staleReasons` string[], required
      - `attention` string, nullable, required
    - `policy` ScreeningRunPolicyDto, required
      - `reviewScore` number, required
      - `matchScore` number, required
      - `scorerVersion` string, required
      - `pepLookbackMonths` number: Runs that screened the PEP list: the months after leaving office a person still counted as a PEP.
    - `listKinds` string[], required: The kinds of list screened: sanctions, pep, or both.
    - `riskSource` string, required: The risk source of the first kind screened (sanctions when screened, otherwise pep); riskSources has each.
    - `riskSources` ScreeningRiskSourceDto[], required: Each kind of list as the evidence it records: screening.sanctions and screening.pep, each under its own source.
      - `fact` 'screening.sanctions' | 'screening.pep', required
      - `riskSource` string, required: Accept it in a policy input for this fact.
    - `candidateCount` number, required: Listed entries scored, at most 200. Entries whose kind, dates of birth or nationalities keep them below reviewScore are set aside unscored and not counted.
    - `topScore` number, nullable, required: The highest score of the scored entries, or null when none was scored. Entries set aside as unable to reach review are not in it.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `total` number, required
  - `page` number, required
  - `limit` number, required
  - `totalPages` number, required

---

[API](https://skmtc.dev/korala/apis/korala-public-api.md) · [All operations](https://skmtc.dev/korala/apis/korala-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/korala/apis/korala-public-api/revisions/5c4d7810c507?raw)
