---
title: "Prove reachability for a batch of scanner findings (snapshot-cached)"
method: POST
path: "/v1/repositories/{repository_id}/security-analyses"
tags: ["Repository Intelligence"]
---

# Prove reachability for a batch of scanner findings (snapshot-cached)

`POST /v1/repositories/{repository_id}/security-analyses`

## Request

- Base URL: `https://api.algenta.ai`
- URL: `https://api.algenta.ai/v1/repositories/{repository_id}/security-analyses`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

## Path parameters

- `repository_id` string, uuid, required

## Query parameters

- `async_execution` boolean

## Request body

- SecurityAnalysisRequest
  - `snapshot_id` string, required
  - `sarif_digest` string, required
  - `scanner` SecurityAnalysisScanner, required
    - `name` string, required
    - `version` string, nullable
    - `rules_digest` string, nullable
    - `configuration_digest` string, nullable
  - `policy_digest` string, nullable
  - `model_pack_digest` string, nullable
  - `findings` SecurityFinding[]
    - `canonical_id` string, required
    - `rule_id` string, required
    - `finding_kind` string, required
    - `severity` string, nullable
    - `primary_location` SecurityFindingLocation
      - `uri` string, required
      - `start_line` integer, nullable
      - `start_column` integer, nullable
      - `logical` string, nullable
    - `code_flows` array[]
      - SecurityFindingLocation[]
        - `uri` string, required
        - `start_line` integer, nullable
        - `start_column` integer, nullable
        - `logical` string, nullable

## Response `200`

Successful Response

- SecurityAnalysisResponse
  - `analysis_id` string, required
  - `snapshot` SecuritySnapshotRef, required
    - `id` string, required
    - `commit` string, nullable
    - `tree_digest` string, nullable
  - `sarif_digest` string, required
  - `engine` SecurityEngineRef, required
    - `version` string, required
    - `model_pack_digest` string, nullable
  - `proofs` SecurityProof[]
    - `canonical_finding_id` string, required
    - `finding_kind` string, required
    - `classification` 'exploitable' | 'production-reachable' | 'unreachable' | 'unknown', required
    - `proof_type` 'dataflow' | 'entrypoint_reachability' | 'absence_proof' | 'off_matrix' | 'no_evidence', required
    - `analysis_envelope` AnalysisEnvelope, required
      - `is_complete_sound` boolean, required
      - `language` string, nullable
      - `framework` string, nullable
      - `build_mode` string, nullable
      - `route_kind` string, nullable
      - `on_matrix` boolean
      - `sound_language` boolean
      - `all_edges_resolved` boolean
      - `node_budget_exhausted` boolean
      - `incomplete_reasons` string[]
    - `entrypoints` ProofLocation[]
      - `uri` string, required
      - `start_line` integer, nullable
      - `logical` string, nullable
      - `symbol_id` string, nullable
    - `sinks` ProofLocation[]
      - `uri` string, required
      - `start_line` integer, nullable
      - `logical` string, nullable
      - `symbol_id` string, nullable
    - `propagation_paths` array[]
      - PropagationEdge[]
        - `from_file` string, required
        - `to_file` string, required
        - `edge_type` string, required
    - `sanitizers` ProofLocation[]
      - `uri` string, required
      - `start_line` integer, nullable
      - `logical` string, nullable
      - `symbol_id` string, nullable
    - `assumptions` string[]
    - `unresolved_edges` PropagationEdge[]
      - `from_file` string, required
      - `to_file` string, required
      - `edge_type` string, required
    - `scanner_flow_validation` ScannerFlowValidation
      - `provided` boolean, required
      - `corroborates_engine_path` boolean
      - `note` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/codna/apis/algenta-api.md) · [All operations](https://skmtc.dev/codna/apis/algenta-api/llms.txt) · [OpenAPI document](https://skmtc.dev/codna/apis/algenta-api/revisions/35d30f84a5df?raw)
