v1

latestOpenAPI 3.0.32026-07-22238629559.2 KB
TriageService

Bulk triage

Bulk triage your findings. You can select the findings to triage by passing in a list of finding IDs as issue_ids, or by passing in filter query parameters. You must specify the issue_type of the findings you want to bulk triage. One of new_triage_state or new_note is required. If specifying a new_triage_reason, you must also use new_triage_state=ignored. Some filters only apply for findings associated with a given product.

post/api/v1/deployments/{deploymentSlug}/triage

Path parameters

deploymentSlugstring required

Deployment slug. Can be found at /deployments, or in your Settings in the web UI.

Request body

autotriage_verdict'true_positive' | 'false_positive'

The autotriage verdict to filter by

categoriesstring[]

List of categories to filter by

component_tagsstring[]

List of component tags to filter by

confidence'low' | 'medium' | 'high'

List of confidence levels to filter by

dependenciesstring[]

Filter by dependency name. Only applies for sca findings.

epss_probabilitystring[]

Filter by EPSS probability (likelihood of exploit). Only applies for sca findings.

exposuresstring[]

Filter by exposure (reachability type). Only applies for sca findings. Reachability is the ability of an attacker to access a vulnerability in a system.

include_historicalboolean

Whether to include historical findings. Only applies for secrets findings. Defaults to true.

issue_idsinteger[]

An array of issue IDs to act on. If this is not provided, an issue filter should be provided.

issue_type'sast' | 'sca' | 'secrets' required

Type of findings to bulk triage.

limitinteger

Max number of issues to triage. Must be an integer between 1 and 3000. Defaults to 3000. When selecting findings to triage, Semgrep will also triage findings with the same fingerprint on other branches. As a result, the list of triaged issue_ids returned in the response may be higher than the specified limit.

new_notestring

The note to attach to the bulk triaged findings. Maximum 3000 characters.

new_triage_reason'acceptable_risk' | 'false_positive' | 'no_time' | 'no_triage_reason' | 'duplicate'

The reason for triaging to a given triage state.

new_triage_state'ignored' | 'reviewing' | 'fixing' | 'reopened' | 'provisionally_ignored'

The triage state you would like to bulk triage your findings to.

policiesstring[]

List of policy modes to filter by

policy_modestring[]

List of policy modes to filter by

pro_onlyboolean

Filter by whether a finding is only available with Semgrep Pro features.

project_tagsstring[]

List of project tags to filter by

refstring

Branch reference to filter by

reposstring[]

List of repository names to filter by

repository_visibilitystring[]

Filter by repository visibility. Only applies for secrets findings.

rulesstring[]

List of rule names to filter by

rulesetstring[]

List of Semgrep Registry rulesets to filter by

secret_typesstring[]

Filter by type of secret (typically provider-related). Only applies for secrets findings.

severitiesstring[]

List of severities to filter by

sincestring

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).

status'open' | 'fixed' | 'ignored' | 'reviewing' | 'fixing' | 'provisionally_ignored'

The status to filter by

transitivitiesstring[]

Filter by transitivity of a dependency. Only applies for sca findings.

triage_reasonsstring[]

List of triage reasons to filter by

validation_statestring[]

Filter by whether a secret could be validated. Only applies for secrets findings.

Example request

{
  "autotriage_verdict": "true_positive",
  "categories": [
    "security",
    "performance"
  ],
  "component_tags": [
    "user authentication",
    "user data"
  ],
  "confidence": "high",
  "dependencies": [
    "lodash",
    "express"
  ],
  "epss_probability": [
    "high",
    "medium"
  ],
  "exposures": [
    "reachable",
    "always_reachable"
  ],
  "include_historical": true,
  "issue_ids": [
    123,
    456
  ],
  "issue_type": "sca",
  "limit": 100,
  "new_note": "some note here",
  "new_triage_reason": "acceptable_risk",
  "new_triage_state": "reopened",
  "policies": [
    "rule-board-block",
    "rule-board-pr-comments",
    "rule-board-audit"
  ],
  "policy_mode": [
    "monitor",
    "block"
  ],
  "pro_only": true,
  "project_tags": [
    "my_project_tag_1",
    "my_project_tag_2"
  ],
  "ref": "refs/pull/1234/merge",
  "repos": [
    "myorg/repo1",
    "myorg/repo2"
  ],
  "repository_visibility": [
    "public",
    "private"
  ],
  "rules": [
    "typescript.react.security.audit.react-no-refs.react-no-refs",
    "ajinabraham.njsscan.hardcoded_secrets.node_username"
  ],
  "ruleset": [
    "owasp-top-ten",
    "default"
  ],
  "secret_types": [
    "Github",
    "Heroku",
    "AWS"
  ],
  "severities": [
    "low",
    "high"
  ],
  "status": "open",
  "transitivities": [
    "transitive",
    "direct"
  ],
  "triage_reasons": [
    "acceptable_risk",
    "false_positive"
  ],
  "validation_state": [
    "valid",
    "invalid"
  ]
}

Response

OK

num_triagedinteger required

Number of items updated

triaged_issuesinteger[] required

List of triaged issue IDs