---
title: "List Findings"
method: GET
path: "/v1/findings"
tags: ["Findings"]
---

# List Findings

`GET /v1/findings`

## Request

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

Lists security findings across your organization, optionally filtered by target and lifecycle status. Defaults to ACTIVE findings. Results include the current retest status, timestamps, and customer-visible failure reason when a retest could not execute. Results use offset pagination and include a total count.

## Query parameters

- `target_id` string, uuid
- `assessment_id` string, uuid
- `exclude_secured` boolean
- `severity` 'critical' | 'high' | 'medium' | 'low' | 'secured' | 'info'
- `status` 'ACTIVE' | 'RESOLVED' | 'ARCHIVED'
- `sort_by` 'severity' | 'created_at'
- `order_direction` 'asc' | 'desc'
- `search` string
- `status_filter` 'vulnerable' | 'secured' | 'all'
- `active_only` boolean
- `org_wide` boolean
- `assigned_to_me` boolean
- `assigned_to` string
- `unassigned` boolean
- `finding_type` 'red-team'
- `limit` integer
- `offset` integer

## Response `200`

Findings returned successfully

- PublicFindingsList
  - `findings` PublicFindingSummary[], required
    - `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
    - `resolve_reason` string, nullable: Lifecycle decision classification. FALSE_POSITIVE distinguishes a customer-corrected archive from other archived findings.
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `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.
  - `total` integer, required
  - `limit` integer, required
  - `offset` integer, required
  - `next_cursor` string, nullable, required

## Other responses

- `400`: Invalid target_id, assessment_id, exclude_secured, severity, status, sort_by, limit, or offset
- `401`: Unauthorized – missing or invalid API key
- `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)
