The API reference is in English.

Immutable source snapshot

GET /v1/findings/{finding_id}

Get finding. Permissions, parameters, responses and examples.

0.1.0 · source bccff29 · Current reference · Download OpenAPI specification

This address preserves one reviewed source snapshot. Use the current entry point for the selected documentation version.

Get finding

Get finding through GET /v1/findings/{finding_id}. The parameters and declared response shapes below come from this exact source snapshot.

Source preview; no stable third-party integration promise. This page makes no request to a local installation.

Authority

Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.

Inspect the authority source · Authentication guide

Parameters and headers

NameLocationContract
finding_idpath
Required

integer

Schema
{
  "title": "Finding Id",
  "type": "integer"
}

Request body

No typed JSON body is declared by this handler. That does not rule out source-level request parsing; inspect the pinned implementation, especially for internal connector protocols.

Responses

StatusMeaning and declared shape
200

Successful Response

application/json · FindingOut
{
  "properties": {
    "ai_confidence": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ai Confidence"
    },
    "ai_fix": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ai Fix"
    },
    "ai_reasoning": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ai Reasoning"
    },
    "ai_verdict": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ai Verdict"
    },
    "code_snippet": {
      "anyOf": [
        {
          "maxLength": 20000,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Code Snippet"
    },
    "created_at": {
      "format": "date-time",
      "title": "Created At",
      "type": "string"
    },
    "display_id": {
      "title": "Display Id",
      "type": "string"
    },
    "end_column": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "End Column"
    },
    "end_line": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "End Line"
    },
    "file_path": {
      "maxLength": 4096,
      "title": "File Path",
      "type": "string"
    },
    "fingerprint": {
      "title": "Fingerprint",
      "type": "string"
    },
    "first_seen_display_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "First Seen Display Id"
    },
    "first_seen_scan_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "First Seen Scan Id"
    },
    "gate_effect": {
      "enum": [
        "blocking",
        "non_blocking",
        "excluded"
      ],
      "title": "Gate Effect",
      "type": "string"
    },
    "gate_exempt": {
      "default": false,
      "title": "Gate Exempt",
      "type": "boolean"
    },
    "gate_exempt_reason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Gate Exempt Reason"
    },
    "id": {
      "title": "Id",
      "type": "integer"
    },
    "is_repeat": {
      "default": false,
      "title": "Is Repeat",
      "type": "boolean"
    },
    "lifecycle_reason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Lifecycle Reason"
    },
    "lifecycle_status": {
      "default": "open",
      "title": "Lifecycle Status",
      "type": "string"
    },
    "lifecycle_updated_at": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Lifecycle Updated At"
    },
    "message": {
      "maxLength": 4000,
      "title": "Message",
      "type": "string"
    },
    "metadata_json": {
      "additionalProperties": true,
      "title": "Metadata Json",
      "type": "object"
    },
    "occurrence_count": {
      "default": 1,
      "title": "Occurrence Count",
      "type": "integer"
    },
    "revision": {
      "default": 1,
      "title": "Revision",
      "type": "integer"
    },
    "rule_id": {
      "title": "Rule Id",
      "type": "string"
    },
    "scan_finding_number": {
      "title": "Scan Finding Number",
      "type": "integer"
    },
    "scan_id": {
      "title": "Scan Id",
      "type": "integer"
    },
    "scanner": {
      "title": "Scanner",
      "type": "string"
    },
    "severity": {
      "title": "Severity",
      "type": "string"
    },
    "start_column": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Start Column"
    },
    "start_line": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Start Line"
    },
    "suppressed": {
      "title": "Suppressed",
      "type": "boolean"
    },
    "suppression_reason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Suppression Reason"
    }
  },
  "required": [
    "id",
    "scan_id",
    "scan_finding_number",
    "display_id",
    "scanner",
    "rule_id",
    "severity",
    "file_path",
    "start_line",
    "start_column",
    "end_line",
    "end_column",
    "message",
    "code_snippet",
    "fingerprint",
    "metadata_json",
    "ai_verdict",
    "ai_confidence",
    "ai_reasoning",
    "ai_fix",
    "suppressed",
    "suppression_reason",
    "gate_effect",
    "created_at"
  ],
  "title": "FindingOut",
  "type": "object"
}
400

Exact host, malformed request or URL credential refusal

application/json · object
{
  "properties": {
    "detail": {
      "type": "string"
    }
  },
  "required": [
    "detail"
  ],
  "type": "object"
}
401

Missing or invalid membership

application/json · object
{
  "properties": {
    "detail": {
      "type": "string"
    }
  },
  "required": [
    "detail"
  ],
  "type": "object"
}
403

Exact origin, CSRF or route authority refusal

application/json · object
{
  "properties": {
    "detail": {
      "type": "string"
    }
  },
  "required": [
    "detail"
  ],
  "type": "object"
}
404

Refresh the collection and verify the resource identity before retrying. See source-linked error catalog.

422

Validation Error

application/json · HTTPValidationError
{
  "properties": {
    "detail": {
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "title": "Detail",
      "type": "array"
    }
  },
  "title": "HTTPValidationError",
  "type": "object"
}
429

Authentication rate or connection limit

application/json · object
{
  "properties": {
    "detail": {
      "type": "string"
    }
  },
  "required": [
    "detail"
  ],
  "type": "object"
}

An empty or broad schema preserves the source contract. It is not a promise of an empty response.

Source-linked errors

Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.

1 source error observations
StatusSource detailRecovery
404 ↗finding not foundRefresh the collection and verify the resource identity before retrying.

Read the recovery guide

Synthetic examples

These examples validate declared JSON shapes and formats. They contain no real installation data and do not prove runtime admission, cross-field validation, authority or successful work.

Response 200 JSON
{
  "ai_confidence": 1,
  "ai_fix": "synthetic",
  "ai_reasoning": "synthetic",
  "ai_verdict": "synthetic",
  "code_snippet": "synthetic",
  "created_at": "2026-01-01T00:00:00Z",
  "display_id": "synthetic",
  "end_column": 1,
  "end_line": 1,
  "file_path": "/workspace/synthetic-demo",
  "fingerprint": "synthetic",
  "gate_effect": "blocking",
  "id": 1,
  "message": "synthetic",
  "metadata_json": {},
  "rule_id": "synthetic",
  "scan_finding_number": 1,
  "scan_id": 1,
  "scanner": "synthetic",
  "severity": "synthetic",
  "start_column": 1,
  "start_line": 1,
  "suppressed": false,
  "suppression_reason": "synthetic"
}
Download this service's complete OpenAPI

All referenced models remain in its components section. Browse control model definitions.