---
title: "Get Finding"
method: GET
path: "/v1/findings/{finding_id}"
tags: ["Findings"]
---

# Get Finding

`GET /v1/findings/{finding_id}`

## Request

- Base URL: `https://api.mindfort.app`
- URL: `https://api.mindfort.app/v1/findings/{finding_id}`
- Auth: HTTP bearer

Retrieve full details for a single security finding, including its description, impact, evidence, reproduction approach, remediation advice, current status, and retest decision context such as why execution failed.

## Path parameters

- `finding_id` string, uuid, required

## Response `200`

Finding returned successfully

- PublicFinding
  - `id` string, uuid, required
  - `assessment_id` string, uuid, nullable
  - `target_id` string, uuid, nullable
  - `target_name` string, nullable
  - `finding_type` 'red-team'
  - `title` string, nullable
  - `severity` 'secured' | 'low' | 'medium' | 'high' | 'critical' | 'null', nullable
  - `severity_score` number, nullable
  - `overridden_severity` 'secured' | 'low' | 'medium' | 'high' | 'critical' | 'null', nullable
  - `overridden_severity_score` number, nullable
  - `status` string, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `status_updated_at` string, date-time, nullable
  - `resolve_reason` string, nullable
  - `resolve_context` string, nullable
  - `endpoint` string, required
  - `description` string, required
  - `impact` string, required
  - `evidence` string, required
  - `approach` string, required
  - `remediation_advice` string, nullable
  - `vulnerability_tags` string[], nullable
  - `owasp_category` string, nullable
  - `retest_status` string, nullable: Execution state: QUEUED, RUNNING, COMPLETED, or FAILED. FAILED means the retest could not execute; COMPLETED means validation finished and applied the result to the finding lifecycle.
  - `retest_failure_reason` string, nullable: Customer-visible reason the current retest could not execute. Populated when retest_status is FAILED; null otherwise.
  - `retest_failure_code` string, nullable: Safe machine-readable reason the current retest could not execute. AUTHENTICATION_FAILED and CREDENTIAL_UNAVAILABLE allow a replacement target credential for the next retest. BLOCKED_BY_GUARDRAIL means the target's configured restrictions prevented the retest; INCONCLUSIVE means it could not determine an outcome.
  - `retest_started_at` string, date-time, nullable: When execution of the current retest started.
  - `retest_completed_at` string, date-time, nullable: When the current retest reached COMPLETED or FAILED.
  - `retest_in_progress` boolean: True while the current retest is queued or running.

## Other responses

- `400`: Invalid finding_id
- `401`: Unauthorized – missing or invalid API key
- `404`: Finding not found
- `429`: Rate limit exceeded
- `500`: Internal server error

---

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