---
title: "Get Dismissed Risk Label Queue"
method: GET
path: "/internal/risk-labeling/queue"
tags: ["internal"]
---

# Get Dismissed Risk Label Queue

`GET /internal/risk-labeling/queue`

Unlabeled dismissed marketing risks, most recently dismissed first.

A batch rather than a single row so the client can prefetch the next
document and step backwards without a round trip. Already-labeled risks are
excluded, so two people working the queue only collide on the row they are
both holding — which the create route resolves with a 409.

``exclude_risk_ids`` is what makes skipping work. A skip writes nothing, so
the row stays eligible and every later request would return it again — a
labeler who skipped a whole batch would cycle those rows forever and never
reach the rest of the backlog. The caller therefore has to say what it has
already passed over. Bounded by ``MAX_EXCLUDED_RISK_IDS`` because it travels
in the URL; past that the client drops its oldest entries, so a session with
more skips than the cap may be offered its earliest ones again.

## Query parameters

- `company_id` string, uuid, nullable — Restrict to one company; omit for every company
- `exclude_risk_ids` string[], nullable — Risks the caller has passed over this session; repeat the param per id. Skipping labels nothing, so without this the next batch is the same batch.
- `limit` integer

## Response `200`

Successful Response

- DismissedRiskToLabel[]
  - `risk_id` string, uuid, required
  - `run_id` string, uuid, required
  - `upload_id` string, uuid, required
  - `file_id` string, uuid, required
  - `company_id` string, uuid, required
  - `company_name` string, required
  - `filename` string, required
  - `is_video` boolean, required
  - `short_text` string, required
  - `severity` 'low' | 'medium' | 'high', required
  - `explanation` string, required
  - `remediation` string, nullable, required
  - `document_clause` string, nullable, required
  - `source_clause` string, nullable, required
  - `citations` DocumentRiskCitation[], required
    - `cited_text` string, required
    - `start_page_number` integer, required
    - `end_page_number` integer, required
    - `bounding_boxes` BoundingBox[]
      - `x0` number, required
      - `y0` number, required
      - `x1` number, required
      - `y1` number, required
  - `status` 'reject' | 'allow' | 'flag' | 'dismissed', required
  - `dismiss_reason` 'valid_ok' | 'already_met' | 'incorrect' | 'out_of_scope' | 'pre_approved' | 'other', required — Why a reviewer dismissed a marketing risk (status=dismissed).
  - `dismiss_note` string, nullable, required
  - `ignore_comment` string, nullable, required
  - `notes_text` string, nullable, required
  - `run_time` string, date-time, required
  - `actioned_at` string, date-time, nullable, required
  - `is_disclosure_related` boolean
  - `disclosure_id` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/kobaltlabs/apis/fastapi.md) · [All operations](https://skmtc.dev/kobaltlabs/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kobaltlabs/fastapi/revisions/3ff4c0bd276b/schema)
