---
title: "Get scan issues"
method: GET
path: "/v1/code-audit/scans/{scanId}/issues"
tags: ["Code Audit"]
---

# Get scan issues

`GET /v1/code-audit/scans/{scanId}/issues`

## Request

- Base URL: `https://api.inth.com`
- URL: `https://api.inth.com/v1/code-audit/scans/{scanId}/issues`
- Auth: HTTP bearer

The findings of a scan. A free preview returns the visible subset with `lockedCount` and `unlockCredits`; a locked report returns counts only. Requires code-audit.read.

## Path parameters

- `scanId` string, required

## Query parameters

- `detail` 'summary' | 'full'

## Response `200`

Scan findings.

- object
  - `success` true, required
  - `data` CodeAuditReport, required
    - `access` 'full' | 'free-preview' | 'locked', required
    - `coverageGaps` object
      - `abandonedFileCount` integer, required
    - `contextQuestions` object[]
      - `answerKind` 'approval-status' | 'control-status' | 'duration' | 'evidence-reference' | 'policy-selection' | 'review-decision', required
      - `claimIds` string[], required
      - `priority` 'urgent' | 'high' | 'normal' | 'low', required
      - `prompt` string, required
      - `questionId` string, required
      - `requirementKind` string, required
      - `status` 'missing' | 'conflicting', required
      - `subjectRefs` string[], required
    - `decisions` object[]
      - `decisionId` string, required
      - `decisionRevisionId` string, required
      - `facts` object
        - `dataCategories` string[], required
        - `dominantFixCluster` object
          - `faultSlug` string, required
          - `sinkFamily` string, required
          - `primaryMemberCount` integer, required
          - `share` union, required
            - number
            - 'Infinity' | '-Infinity' | 'NaN'
        - `issueGroupCount` integer, required
        - `primaryMemberCount` integer, required
        - `serviceCount` integer, required
        - `topServices` string[], required
        - `unclassifiedFindingCount` integer, required
      - `memberRefs` string[], required
      - `plan` object
        - `fallbackReason` string
        - `narrative` string
        - `narrativeFallbackReason` string
        - `narrativeSource` 'reconciled' | 'fallback'
        - `source` 'reconciled' | 'fallback', required
        - `steps` object[], required
          - `detail` string
          - `fix` string, required
          - `paths` object[], required
            - `line` integer
            - `note` string
            - `path` string, required
        - `summary` string
        - `summaryFallbackReason` string
        - `summarySource` 'reconciled' | 'fallback'
      - `priority` 'P0' | 'P1' | 'P2' | 'P3'
      - `questionKeys` string[], required
      - `rationale` string, required
      - `recommendation` string, required
      - `state` 'proposed' | 'needs-context', required
      - `statement` string, required
      - `title` string, required
    - `decisionCount` integer
    - `quote` object, nullable, required
      - `expiresAt` string, required
      - `plannedFileCount` integer, required
      - `repositoryName` string, required
      - `sourceHeadCommitSha` string, required
      - `totalCredits` integer, required
    - `issues` object[], required
      - `assumptions` object[]
        - `materiality` 'changes-evidence-verdict' | 'changes-presentation' | 'changes-priority' | 'context-only', required
        - `resolutionQuestion` string
        - `statement` string, required
        - `status` 'unresolved' | 'supported' | 'refuted', required
      - `claimSummary` object
        - `confirmed` integer, required
        - `dissenting` integer, required
        - `notEvidenced` integer, required
        - `total` integer, required
        - `unassessed` integer, required
        - `uncertain` integer, required
      - `actions` object[]
        - `blockers` string[], required
        - `eligible` boolean, required
        - `kind` 'draft-fix-pr' | 'accept-risk' | 'mark-known-non-issue', required
      - `closedByRunId` string, nullable
      - `contextFreshness` 'current' | 'stale' | 'unknown'
      - `controlAreas` string[]
      - `description` string, nullable, required
      - `disposition` 'accepted-risk' | 'known-non-issue', nullable
      - `dispositionReason` string, nullable
      - `evidence` object, nullable, required
        - `filePath` string, required
        - `lineNumbers` integer[], required
        - `snippet` string
        - `snippetEndLine` integer
        - `snippetStartLine` integer
        - `source` 'backfilled' | 'model'
      - `evidenceBlocks` object[]
        - `filePath` string, required
        - `lineNumbers` integer[], required
        - `snippet` string
        - `snippetEndLine` integer
        - `snippetStartLine` integer
        - `source` 'backfilled' | 'model'
      - `files` string[], required
      - `faultSlug` string
      - `groupingConfidence` 'high' | 'medium' | 'low', nullable
      - `id` string, required
      - `origin` 'group' | 'unclassified'
      - `potentialImpact` 'critical' | 'high' | 'medium' | 'low', nullable, required
      - `presentationState` string, nullable, required
      - `priority` string, required
      - `reachability` 'reachable' | 'exported-surface' | 'not-reachable', nullable
      - `reachabilitySearchScope` string, nullable
      - `recommendation` string, nullable, required
      - `resolutionState` 'active' | 'fixed' | 'superseded', nullable
      - `reviewPriority` 'urgent' | 'high' | 'normal' | 'low', nullable, required
      - `sinkFamily` string
      - `title` string, required
      - `verification` object
        - `status` 'complete' | 'not-required' | 'partial', required
        - `totalClaimCount` integer, required
        - `verifiedClaimCount` integer, required
      - `feedbackTarget` object, nullable
        - `expectedAssessmentHeads` object[], required
          - `assessmentSubjectId` string, required
          - `version` integer, required
        - `expectedContextHeadVersion` integer
        - `expectedProjectionHeadVersion` integer, required
        - `groupRevisionId` string, required
        - `scanId` string, required
      - `category` string, nullable, required
      - `resolution` 'active' | 'fixed' | 'superseded', nullable, required
    - `lockedCount` integer, required
    - `notYetClassified` string[]
    - `priorityCounts` object, nullable, required
      - `P0` integer, required
      - `P1` integer, required
      - `P2` integer, required
      - `P3` integer, required
    - `projectionKind` 'authoritative' | 'provisional', nullable, required
    - `totalCount` integer, required
    - `unlockQuote` object, nullable, required
      - `plannedFileCount` integer, required
      - `rateCardVersion` string
      - `requiredCredits` integer, required
    - `scanId` string, required
    - `detail` 'summary' | 'full', required
    - `unlockCredits` union, required
      - number
      - 'Infinity' | '-Infinity' | 'NaN'

## Other responses

- `400`: The request payload or parameters are invalid.
- `401`: Authentication is missing, invalid, or expired.
- `403`: The credential is valid but may not perform the operation. `INSUFFICIENT_SCOPE`: the credential was never granted the capability the operation needs. `details.requiredScope` names it, and the `WWW-Authenticate` header carries `Bearer error="insufficient_scope"`. An OAuth client fixes this by requesting the scope; an organization API key cannot gain it. `FORBIDDEN`: the capability is present but the membership behind the credential lacks the role, or the resource belongs to another organization.
- `404`: The requested resource was not found.
- `429`: The rate limit was exceeded. API key limits are set by plan tier (Starter 600/min, Pro 1500/min, Enterprise 3000/min). Check the Retry-After header before retrying.
- `500`: An unexpected internal error occurred.

## Changes

- **2026-10-31** `a3f4100e14c9`: 47 info
  - added the new optional `query` request parameter `detail`
  - added the optional property `data/contextQuestions` to the response with the `200` status
  - added the optional property `data/coverageGaps` to the response with the `200` status
  - added the optional property `data/decisionCount` to the response with the `200` status
  - …43 more
- **2026-09-08** `66c8f6ac2730`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/inth/apis/inth-api/changes/v1/code-audit/scans/:scanId/issues/get.md)

---

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