v1
latestOpenAPI 3.0.32026-07-22238629559.2 KBList code, supply chain, or AI-powered scan findings
Request the list of code, supply chain, or AI-powered scan findings in an organization, paginated in pages of 100 entries and limited by the since timestamp. Findings are returned by relevant_since descending (see since in the Query Parameters list). Examples: List SAST findings with pagination, List SCA findings since timestamp, List AI-powered scan findings, List findings with filters.
Path parameters
Slug of the deployment name. Can be found at /deployments, or in your Settings in the web UI.
Query parameters
Type of findings to return. If not specified, returns sast (Code) findings. Can be sast (Code), sca (Supply Chain), or ai_sast (AI-powered scan). Valid values: sast, sca, ai_sast
What timestamp should the results start at? If not specified, returns results from all timestamps. Provide epoch timestamp in seconds. Filters using the relevant_since field: the timestamp when this finding was detected by Semgrep (the first time, or when reintroduced).
Which page of the results do you require? If not specified, returns first page. Pages are numbered from zero (0).
Deduplicates findings across all your refs/branches if true. If not specified, returns all findings across all refs/branches without deduplicating them. Set this to true if you are not filtering for a particular set of refs/branches in order to match the counts listed in the Semgrep UI.
Maximum number of records per returned page. If not specified, defaults to 100 records. Minimum: 100, Maximum: 3000
Which repositories (by name) do you want to include? If not specified, includes all.
[ "myorg/repo1", "myorg/repo2" ]
Which repositories (by ID) do you want to include? If not specified, includes all.
[ 1, 2, 3 ]
Which status do you want to include? If not specified, includes all statuses. Findings in the removed state are always excluded from this endpoint. Valid values: open, fixed, ignored, reviewing, fixing, provisionally_ignored
Which triage reasons do you want to include? If not specified, includes all. This filter is applicable when status is ignored. Valid values: acceptable_risk, false_positive, no_time, no_triage_reason, duplicate
[ "acceptable_risk", "false_positive" ]
What severities of issues do you want to include? If not specified, returns all. Valid values: low, medium, high, critical
[ "low", "high" ]
Which ref (branch) do you want to filter for?
Which policy modes do you want to include? If not specified, includes all. Monitor: rule-board-audit, Comment: rule-board-pr-comments, Block: rule-board-block. This filter is applicable when issue_type is sast or unspecified.
[ "rule-board-block", "rule-board-pr-comments", "rule-board-audit" ]
Which rule names do you want to include? If not specified, includes all. This filter is applicable when issue_type is sast or unspecified.
[ "typescript.react.security.audit.react-no-refs.react-no-refs", "ajinabraham.njsscan.hardcoded_secrets.node_username" ]
Which categories of findings do you want to include? If not specified, includes all. This filter is applicable when issue_type is sast or unspecified.
[ "security", "correctness", "caching" ]
Which rule confidence level do you want to include? If not specified, includes all. This filter is applicable when issue_type is sast or unspecified. Valid values: low, medium, high
Which autotriage verdict do you want to include? If not specified, includes all. This filter is applicable when issue_type is sast or unspecified. Valid values: true_positive, false_positive
Which component tags do you want to include? If not specified, includes all.
[ "user authentication", "user data" ]
List of exposures or reachability types to filter by. If not specified, returns findings across all exposures. This filter is applicable when issue_type=sca is specified. Valid values: reachable, always_reachable, conditionally_reachable, unreachable, unknown
[ "reachable", "always_reachable" ]
List of transitivities to filter by. If not specified, returns all transitivities. This filter is applicable when issue_type=sca is specified. Valid values: direct, transitive, unknown
[ "transitive" ]
Filter SCA findings by whether they are from malicious dependencies. If not specified, returns all SCA findings. This filter is only applicable when issue_type=sca is specified.
- true: Returns only findings from malicious dependencies
- false: Returns only findings from all other reachabilities (reachable in code, always reachable, conditionally reachable, etc.)
Filter findings by Click-to-Fix PR state. If not specified, returns all findings regardless of autofix PR status. This filter applies to both sast and sca issue types. Valid values: open, merged
[ "open", "merged" ]
Response
OK
Example response
{
"findings": [
{
"assistant": {
"autofix": {
"fix_code": "cookie.setHttpOnly(true);\\nresponse.addCookie(cookie);"
},
"autotriage": {
"reason": "The matched code is used for a non-security related feature.",
"verdict": "false_positive"
},
"component": {
"risk": "high",
"tag": "user data"
},
"guidance": {
"summary": "Use a template rendering engine such as EJS instead of string concatenation."
},
"rule_explanation": {
"explanation": "This code is vulnerable to SQL injection because user input from the `username` parameter is directly concatenated into the SQL query string without sanitization or parameterization.",
"summary": "User input directly concatenated into SQL query"
}
},
"categories": [
"security"
],
"click_to_fix_failures": [
{
"created_at": "2024-01-15T10:30:00.000Z",
"reason": "merge conflict in target branch"
}
],
"click_to_fix_prs": [
{
"created_at": "2024-01-15T10:30:00.000Z",
"url": "https://github.com/myorg/myrepo/pull/123"
}
],
"confidence": "medium",
"created_at": "2020-11-18T23:28:12.391Z",
"external_ticket": {
"external_slug": "OPS-158"
},
"first_seen_scan_id": 1234,
"id": 1234567,
"line_of_code_url": "https://github.com/semgrep/semgrep/blob/39f95450a7d4d70e54c9edbd109bed8210a36889/src/core_cli/Core_CLI.ml#L1",
"location": {
"column": 8,
"end_column": 16,
"end_line": 124,
"file_path": "frontend/src/corpComponents/Code.tsx",
"line": 120
},
"match_based_id": "0f8c79a6f7e0ff2f908ff5bc366ae1548465069bae8892088051e1c3b4b12c6b8df37d5bcbb181eb868aa79f81f239d14bf2336d552786ab8ccdc7279adf07a6_1",
"ref": "refs/pull/1234/merge",
"relevant_since": "2020-11-18T23:28:12.391Z",
"repository": {
"name": "semgrep",
"url": "https://github.com/semgrep/semgrep"
},
"review_comments": [
{
"external_discussion_id": "af04762b69acfb74c8f9"
}
],
"rule": {
"category": "security",
"confidence": "high",
"cwe_names": [
"CWE-319: Cleartext Transmission of Sensitive Information"
],
"message": "This link points to a plaintext HTTP URL. Prefer an encrypted HTTPS URL if possible.",
"name": "html.security.plaintext-http-link.plaintext-http-link",
"owasp_names": [
"A03:2017 - Sensitive Data Exposure",
"A02:2021 - Cryptographic Failures"
],
"subcategories": [
"vuln"
],
"vulnerability_classes": [
"Mishandled Sensitive Information"
]
},
"rule_name": "typescript.react.security.audit.react-no-refs.react-no-refs",
"severity": "medium",
"sourcing_policy": {
"id": 120,
"name": "Default Policy",
"slug": "default-policy"
},
"state": "unresolved",
"state_updated_at": "2020-11-19T23:28:12.391Z",
"status": "open",
"syntactic_id": "440eeface888e78afceac3dc7d4cc2cf",
"triage_comment": "This finding is from the test repo",
"triage_reason": "acceptable_risk",
"triage_state": "untriaged",
"triaged_at": "2020-11-19T23:28:12.391Z"
}
]
}