> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mindfort.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List Findings

> 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.



## OpenAPI

````yaml /openapi.json get /v1/findings
openapi: 3.1.0
info:
  title: MindFort API
  version: 1.0.0
  description: >-
    The MindFort Public API supports targets, Discovery, assessments, finding
    lifecycle and analytics, and reports. Informational probe results are
    labeled `secured`.
servers:
  - url: https://api.mindfort.app
    description: Production
security:
  - bearerAuth: []
paths:
  /v1/findings:
    get:
      tags:
        - Findings
      summary: List Findings
      description: >-
        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.
      operationId: listFindings
      parameters:
        - name: target_id
          in: query
          required: false
          description: Optional target UUID to filter findings
          schema:
            type: string
            format: uuid
        - name: assessment_id
          in: query
          required: false
          description: Filter findings to a specific assessment run
          schema:
            type: string
            format: uuid
        - name: exclude_secured
          in: query
          required: false
          description: When true, omit secured probe findings
          schema:
            type: boolean
            default: false
        - name: severity
          in: query
          required: false
          description: >-
            Filter by severity. `info` is accepted as a deprecated alias for
            `secured`.
          schema:
            type: string
            enum:
              - critical
              - high
              - medium
              - low
              - secured
              - info
        - name: status
          in: query
          required: false
          description: Filter by finding lifecycle status
          schema:
            type: string
            enum:
              - ACTIVE
              - RESOLVED
              - ARCHIVED
            default: ACTIVE
        - name: sort_by
          in: query
          required: false
          description: Sort mode for results
          schema:
            type: string
            enum:
              - severity
              - created_at
            default: severity
        - name: order_direction
          in: query
          required: false
          description: Sort direction
          schema:
            type: string
            enum:
              - asc
              - desc
            default: desc
        - name: search
          in: query
          required: false
          description: Search finding ID, title, description, endpoint, or impact
          schema:
            type: string
            maxLength: 500
        - name: status_filter
          in: query
          required: false
          description: Filter by vulnerability status
          schema:
            type: string
            enum:
              - vulnerable
              - secured
              - all
        - name: active_only
          in: query
          required: false
          description: When true, return only active findings
          schema:
            type: boolean
            default: false
        - name: org_wide
          in: query
          required: false
          description: >-
            Compatibility parameter. Results are organization-wide when
            target_id and assessment_id are omitted.
          schema:
            type: boolean
            default: false
        - name: assigned_to_me
          in: query
          required: false
          description: When true, return only findings assigned to the current user
          schema:
            type: boolean
            default: false
        - name: assigned_to
          in: query
          required: false
          description: Filter by assignee user ID
          schema:
            type: string
        - name: unassigned
          in: query
          required: false
          description: When true, return only findings without an assignee
          schema:
            type: boolean
            default: false
        - name: finding_type
          in: query
          required: false
          description: >-
            Finding type. Only red-team findings are available through the
            public API.
          schema:
            type: string
            enum:
              - red-team
        - name: limit
          in: query
          required: false
          description: Maximum number of findings to return
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
        - name: offset
          in: query
          required: false
          description: Number of records to skip for offset pagination
          schema:
            type: integer
            minimum: 0
            default: 0
      responses:
        '200':
          description: Findings returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicFindingsList'
        '400':
          description: >-
            Invalid target_id, assessment_id, exclude_secured, severity, status,
            sort_by, limit, or offset
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized – missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    PublicFindingsList:
      properties:
        findings:
          items:
            $ref: '#/components/schemas/PublicFindingSummary'
          type: array
          title: Findings
        total:
          type: integer
          title: Total
        limit:
          type: integer
          title: Limit
        offset:
          type: integer
          title: Offset
        next_cursor:
          type:
            - string
            - 'null'
          title: Next Cursor
      type: object
      required:
        - findings
        - total
        - limit
        - offset
        - next_cursor
      title: PublicFindingsList
      additionalProperties: false
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Human-readable error message
        code:
          type: string
          description: Stable machine-readable error code when one is available
        request_id:
          type: string
          description: Unique request identifier for debugging
    PublicFindingSummary:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        assessment_id:
          title: Assessment Id
          type:
            - string
            - 'null'
          format: uuid
        target_id:
          title: Target Id
          type:
            - string
            - 'null'
          format: uuid
        target_name:
          title: Target Name
          type:
            - string
            - 'null'
        finding_type:
          type: string
          const: red-team
          title: Finding Type
          default: red-team
        title:
          title: Title
          type:
            - string
            - 'null'
        severity:
          title: Severity
          type:
            - string
            - 'null'
          enum:
            - secured
            - low
            - medium
            - high
            - critical
            - null
        severity_score:
          title: Severity Score
          type:
            - number
            - 'null'
        overridden_severity:
          title: Overridden Severity
          type:
            - string
            - 'null'
          enum:
            - secured
            - low
            - medium
            - high
            - critical
            - null
        overridden_severity_score:
          title: Overridden Severity Score
          type:
            - number
            - 'null'
        status:
          type: string
          title: Status
        resolve_reason:
          title: Resolve Reason
          description: >-
            Lifecycle decision classification. FALSE_POSITIVE distinguishes a
            customer-corrected archive from other archived findings.
          type:
            - string
            - 'null'
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        retest_status:
          title: Retest Status
          description: >-
            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.
          type:
            - string
            - 'null'
        retest_failure_reason:
          title: Retest Failure Reason
          description: >-
            Customer-visible reason the current retest could not execute.
            Populated when retest_status is FAILED; null otherwise.
          type:
            - string
            - 'null'
        retest_failure_code:
          title: Retest Failure Code
          description: >-
            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.
          type:
            - string
            - 'null'
        retest_started_at:
          title: Retest Started At
          description: When execution of the current retest started.
          type:
            - string
            - 'null'
          format: date-time
        retest_completed_at:
          title: Retest Completed At
          description: When the current retest reached COMPLETED or FAILED.
          type:
            - string
            - 'null'
          format: date-time
        retest_in_progress:
          type: boolean
          title: Retest In Progress
          description: True while the current retest is queued or running.
          default: false
      type: object
      required:
        - id
        - status
        - created_at
        - updated_at
      title: PublicFindingSummary
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key generated from the MindFort dashboard. Pass as `Authorization:
        Bearer <your-api-key>`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.