Re-run a finding's attacks to confirm a fix
Re-runs every attack under the finding against the live target and drives its verification status. Call AFTER marking the finding fixed (PATCH …/close status=fixed) — validating a finding that is not marked fixed returns verdict=‘not_eligible’. Returns the terminal verdict when the re-run finishes quickly; otherwise returns verdict=‘validating’ with a replay_run_id — re-read the finding’s status via the findings list. Cross-workspace ids resolve to 404.
Headers
Bearer token with API key
Path Parameters
Response
Successful Response
Outcome of POST /api/v1/findings/{finding_id}/validate.
Ships one derived convenience field, verdict, alongside the
embedded finding. The finding carries the durable truth -- its
fine-grained status and every attack's last_replay_status --
while verdict collapses that into the single signal a remediation
loop acts on.
The finding that was validated.
The replay run that re-ran the finding's attacks. Empty when the finding was not eligible and no run was spent.
resolved: every attack no longer reproduces (finding FIXED_VERIFIED). still_broken: at least one attack still reproduces or could not be judged. not_eligible: mark the finding fixed before validating -- it was not in a verifiable state. validating: still running -- re-read the finding's status via the findings list.
resolved, still_broken, not_eligible, validating Post-validate finding, incl. status and per-attack last_replay_status.