Current source preview reference
GET /v1/scans/{scan_id}/findings
List findings. Permissions, parameters, responses and examples.
Read pinned handler: apps/api/kodesec_api/main.py:5418
List findings
List findings through GET /v1/scans/{scan_id}/findings. 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 or exact IDE capability with finding:read. Route-specific ownership and generation checks also apply.
Parameters and headers
| Name | Location | Contract |
|---|---|---|
scan_id | path Required | integer Schema |
limit | query Conditional / optional | integer Schema |
cursor | query Conditional / optional | string | null Schema |
anchor_scan_finding_number | query Conditional / optional | integer | null Schema |
file_path | query Conditional / optional | string | null Schema |
severity | query Conditional / optional | string | null Schema |
scanner | query Conditional / optional | string | null Schema |
lifecycle_status | query Conditional / optional | string | null Schema |
expected_revision | query Conditional / optional | integer | null Schema |
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
| Status | Meaning and declared shape |
|---|---|
200 | Successful Response application/json · FindingPageOut |
400 | Exact host, malformed request or URL credential refusal application/json · object |
401 | Missing or invalid membership application/json · object |
403 | Exact origin, CSRF or route authority refusal application/json · object |
404 | Refresh the collection and verify the resource identity before retrying. See source-linked error catalog. |
409 | Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog. |
422 | Validation Error application/json · HTTPValidationError |
429 | Authentication rate or connection limit application/json · 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.
10 source error observations
| Status | Source detail | Recovery |
|---|---|---|
| 404 ↗ | scan not found | Refresh the collection and verify the resource identity before retrying. |
| 422 ↗ | cursor and anchor_scan_finding_number are mutually exclusive | Correct the field or semantic validation error. Input values are omitted from control validation errors. |
| 409 ↗ | Dynamic detail; inspect source | Refresh current revision and identity. A conflicting command must not be blindly repeated. |
| 404 ↗ | anchor finding is not present under the active filters | Refresh the collection and verify the resource identity before retrying. |
| 400 ↗ | Dynamic detail; inspect source | Review the request shape, exact Host and cursor format. Never put credentials in a URL. |
| 409 ↗ | Dynamic detail; inspect source | Refresh current revision and identity. A conflicting command must not be blindly repeated. |
| 422 ↗ | file_path must be an exact canonical project-relative POSIX path | Correct the field or semantic validation error. Input values are omitted from control validation errors. |
| 422 ↗ | severity filter is invalid | Correct the field or semantic validation error. Input values are omitted from control validation errors. |
| 422 ↗ | scanner filter is invalid | Correct the field or semantic validation error. Input values are omitted from control validation errors. |
| 422 ↗ | lifecycle_status filter is invalid | Correct the field or semantic validation error. Input values are omitted from control validation errors. |
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
{
"items": [],
"next_cursor": "synthetic",
"revision": 1,
"total": 1,
"truncated": false
}All referenced models remain in its components section. Browse control model definitions.