---
title: "Get Requirement Coverage"
method: GET
path: "/marketing/requirement-coverage/requirements/{requirement_id}"
tags: ["marketing-requirement-coverage"]
---

# Get Requirement Coverage

`GET /marketing/requirement-coverage/requirements/{requirement_id}`

## Request

- Base URL: `https://api.kobaltlabs.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kobaltlabs.com/marketing/requirement-coverage/requirements/{requirement_id}`
- Auth: none declared

Every piece of collateral this requirement has been checked against, and what came of it.

The pass/fail split says how often the rule fires. The verdicts say whether it was right to:
a flag is a reviewer agreeing, a dismissal bucketed as over-flagged is one telling us the rule
produced a false positive. Those two ratios together are what "correctly or incorrectly scanned"
means, and they are the argument for keeping a rule, rewording it, or switching it off.

## Path parameters

- `requirement_id` string, uuid, required

## Response `200`

Successful Response

- RequirementCoverage: How one requirement has fared across every piece of collateral it has been applied to.
  - `requirement_id` string, uuid, required
  - `revision_id` string, uuid, nullable
  - `requirement_text` string, nullable
  - `guideline_file_id` string, uuid, nullable
  - `guideline_filename` string, nullable
  - `collateral_checked` integer
  - `counts` CoverageOutcomeCounts: The three ways a checked requirement can come out, never folded into two. `not_determined` is on the wire beside the other two rather than added into either, because a panel that reports "31 passed" while ten of them were rules the model could not judge from what the collateral shows is making a claim nobody measured — and the whole point of this surface is to be believable.
    - `passed` integer
    - `failed` integer
    - `not_determined` integer
  - `verdicts` object
  - `collateral` RequirementCoverageCollateral[]
    - `run_id` string, uuid, required
    - `file_id` string, uuid, required
    - `filename` string, nullable
    - `checked_at` string, date-time, required
    - `outcome` 'passed' | 'failed' | 'not_determined', required: What happened when one requirement met one piece of collateral. Stored rather than derived. "We checked 34 requirements and 3 failed" cannot be reconstructed from the risks alone: a requirement that produced no finding is indistinguishable in `document_risks` from one that was never evaluated, and that difference is the whole feature. **`NOT_DETERMINED` is why the model is asked to answer for every rule** rather than only to report failures. Silence has two meanings — "the collateral satisfies this" and "I cannot tell from what the collateral shows" — and a panel that reads the first from the absence of a finding claims a pass the model never gave. The judging contract therefore makes each rule land in exactly one of these three, and a rule the model omits altogether lands here too.
    - `verdicts` ProductionRiskVerdict[]
    - `risk_ids` string[]

## Other responses

- `422`: Validation Error

---

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