curl --request GET \
--url https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/v2/{issueId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/v2/{issueId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/v2/{issueId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/v2/{issueId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/v2/{issueId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/v2/{issueId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/v2/{issueId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"ref": "<string>",
"syntacticId": "<string>",
"matchBasedId": "<string>",
"ruleId": "<string>",
"status": "ISSUE_STATUS_FIXED",
"repository": {
"name": "<string>",
"id": "<string>",
"type": "SCM_TYPE_GITHUB",
"primaryRef": {
"id": "<string>",
"ref": "<string>"
}
},
"firstSeenScan": {
"id": "<string>",
"meta": {}
},
"triageState": "FINDING_TRIAGE_STATE_UNTRIAGED",
"triageReason": "FINDING_TRIAGE_REASON_FALSE_POSITIVE",
"relevantSince": "2023-11-07T05:31:56Z",
"aggregateState": "AGGREGATE_ISSUE_STATE_OPEN",
"note": "<string>",
"externalTicket": {
"url": "<string>",
"externalSlug": "<string>",
"id": "<string>",
"linkedIssueIds": [
"<string>"
]
},
"vulnGroupKey": "<string>",
"isBlocking": true,
"autotriage": {
"id": "<string>",
"issueId": "<string>",
"verdict": "VERDICT_TRUE_POSITIVE",
"reason": "<string>",
"feedback": {
"autotriageId": "<string>",
"rating": "RATING_GOOD",
"note": "<string>"
},
"matchBasedId": "<string>",
"memoryIdsReferenced": [
"<string>"
],
"memoryIdsRendered": [
"<string>"
]
},
"aiTags": {
"id": "<string>",
"path": "<string>",
"tags": "<string>",
"sensitivity": "SENSITIVITY_HIGH_SENSITIVITY"
},
"lineOfCodeUrl": "<string>",
"codeSnippet": "<string>",
"dataflowTrace": {
"taintSource": [
{
"path": "<string>",
"start": {
"line": "<string>",
"col": "<string>",
"offset": "<string>"
},
"end": {
"line": "<string>",
"col": "<string>",
"offset": "<string>"
},
"locationUrl": "<string>"
}
],
"intermediateVars": [
{
"path": "<string>",
"start": {
"line": "<string>",
"col": "<string>",
"offset": "<string>"
},
"end": {
"line": "<string>",
"col": "<string>",
"offset": "<string>"
},
"locationUrl": "<string>"
}
],
"taintSink": [
{
"path": "<string>",
"start": {
"line": "<string>",
"col": "<string>",
"offset": "<string>"
},
"end": {
"line": "<string>",
"col": "<string>",
"offset": "<string>"
},
"locationUrl": "<string>"
}
]
},
"commitUrl": "<string>",
"activityHistory": [
{
"date": "2023-11-07T05:31:56Z",
"title": "<string>",
"triageReason": "<string>",
"note": "<string>",
"actor": "<string>",
"historyType": "HISTORY_TYPE_STATUS",
"exceptionRequestDetails": {
"actionSource": "FINDING_EXCEPTION_REQUEST_SOURCE_SCM_COMMENT"
}
}
],
"relatedIssues": [
{
"id": "<string>",
"ref": "<string>",
"pullRequestId": "<string>",
"aggregateState": "AGGREGATE_ISSUE_STATE_OPEN",
"createdAt": "2023-11-07T05:31:56Z"
}
],
"remediation": {
"issueId": "<string>",
"matchBasedId": "<string>",
"autofix": {
"id": "<string>",
"fixCode": "<string>",
"fixDiff": "<string>",
"explanation": "<string>",
"url": "<string>"
},
"guidance": {
"id": "<string>",
"summary": "<string>",
"guidanceText": "<string>",
"memoryIdsUsed": [
"<string>"
]
}
},
"lastSeenScan": {
"id": "<string>",
"meta": {}
},
"filePath": "<string>",
"line": 123,
"endLine": 123,
"column": 123,
"endColumn": 123,
"severity": "SEVERITY_HIGH",
"message": "<string>",
"rulePath": "<string>",
"confidence": "CONFIDENCE_HIGH",
"ruleUrl": "<string>",
"ruleReferences": [
"<string>"
],
"ruleOrigin": "RULE_ORIGIN_CUSTOM",
"ruleHashId": "<string>",
"ruleCweNames": [
"<string>"
],
"ruleOwaspNames": [
"<string>"
],
"ruleset": "<string>",
"policySlug": "<string>",
"category": "<string>",
"ruleSupersededBy": [
{
"product": "RULE_TYPE_SAST",
"rulePath": "<string>"
}
],
"issueType": "ISSUE_TYPE_SAST",
"issueParentId": "<string>",
"ticketAttempts": [
{
"attemptedAt": "2023-11-07T05:31:56Z",
"responseMessage": "<string>"
}
],
"sastAttributes": {},
"scaAttributes": {
"severity": "SEVERITY_HIGH",
"vulnDatabaseIdentifier": "<string>",
"reachability": "REACHABILITY_CONDITIONALLY_REACHABLE",
"reachableCondition": "<string>",
"cwes": [
"<string>"
],
"foundDependency": {
"package": "<string>",
"version": "<string>",
"transitivity": "UNKNOWN_TRANSITIVITY",
"lockfileLineUrl": "<string>",
"filePath": "<string>",
"ecosystem": "no_package_manager",
"manifestFilePath": "<string>"
},
"fixRecommendations": [
{
"package": "<string>",
"version": "<string>"
}
],
"bestFix": {
"package": "<string>",
"version": "<string>"
},
"epssScore": {
"score": 123,
"percentile": 123,
"updatedAt": "2023-11-07T05:31:56Z",
"categorization": "EPSS_PROBABILITY_LOW"
},
"rulePublishDate": "2023-11-07T05:31:56Z",
"scaRuleKind": "SCA_RULE_KIND_REACHABLE",
"scaMatchInfo": {
"matchKind": "SCA_MATCH_KIND_LOCKFILE_ONLY",
"analyzedPackages": [
{
"package": "<string>",
"version": "<string>",
"transitivity": "UNKNOWN_TRANSITIVITY",
"lockfileLineUrl": "<string>",
"filePath": "<string>",
"ecosystem": "no_package_manager",
"manifestFilePath": "<string>"
}
],
"transitiveMatches": [
{
"dependency": {
"package": "<string>",
"version": "<string>",
"transitivity": "UNKNOWN_TRANSITIVITY",
"lockfileLineUrl": "<string>",
"filePath": "<string>",
"ecosystem": "no_package_manager",
"manifestFilePath": "<string>"
},
"path": "<string>",
"line": "<string>"
}
]
},
"introducedBy": [
{
"package": "<string>",
"version": "<string>"
}
]
},
"secretsAttributes": {
"validationState": "VALIDATION_STATE_CONFIRMED_VALID",
"secretType": "<string>",
"historicalInfo": {
"gitCommit": "<string>",
"gitCommitTimestamp": "2023-11-07T05:31:56Z",
"gitBlob": "<string>"
}
},
"subcategories": [
"<string>"
],
"refUrl": "<string>",
"codeowners": [
{
"id": "<string>",
"name": "<string>",
"isTeam": true,
"members": "<array>"
}
],
"codeSnippets": [
{
"path": "<string>",
"content": "<string>"
}
],
"ruleExplanation": {
"id": "<string>",
"summary": "<string>",
"explanation": "<string>"
},
"ruleDisplayName": "<string>",
"clickToFixPrUrl": "<string>",
"aiImpact": "<string>",
"aiExploitConditions": [
{
"description": "<string>",
"confirmed": true
}
],
"clickToFixCommitMsg": "<string>",
"exceptionRequest": {
"exceptionState": "FINDING_EXCEPTION_REQUEST_STATE_REQUESTED",
"requesterLogin": "<string>",
"requesterName": "<string>",
"requesterNote": "<string>",
"requesterTriageReason": "FINDING_TRIAGE_REASON_FALSE_POSITIVE",
"requesterActionSource": "FINDING_EXCEPTION_REQUEST_SOURCE_SCM_COMMENT",
"reviewerLogin": "<string>",
"reviewerName": "<string>",
"requestId": "<string>",
"reviewId": "<string>",
"issueId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"reviewedAt": "2023-11-07T05:31:56Z"
},
"clickToFixPrId": "<string>",
"triagePermission": "TRIAGE_PERMISSION_IGNORE",
"isArchived": true,
"firstDetectedAt": "2023-11-07T05:31:56Z"
}Get issue
Get a single issue by ID with details
curl --request GET \
--url https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/v2/{issueId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/v2/{issueId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/v2/{issueId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/v2/{issueId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/v2/{issueId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/v2/{issueId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://semgrep.dev/api/agent/deployments/{deploymentId}/issues/v2/{issueId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"ref": "<string>",
"syntacticId": "<string>",
"matchBasedId": "<string>",
"ruleId": "<string>",
"status": "ISSUE_STATUS_FIXED",
"repository": {
"name": "<string>",
"id": "<string>",
"type": "SCM_TYPE_GITHUB",
"primaryRef": {
"id": "<string>",
"ref": "<string>"
}
},
"firstSeenScan": {
"id": "<string>",
"meta": {}
},
"triageState": "FINDING_TRIAGE_STATE_UNTRIAGED",
"triageReason": "FINDING_TRIAGE_REASON_FALSE_POSITIVE",
"relevantSince": "2023-11-07T05:31:56Z",
"aggregateState": "AGGREGATE_ISSUE_STATE_OPEN",
"note": "<string>",
"externalTicket": {
"url": "<string>",
"externalSlug": "<string>",
"id": "<string>",
"linkedIssueIds": [
"<string>"
]
},
"vulnGroupKey": "<string>",
"isBlocking": true,
"autotriage": {
"id": "<string>",
"issueId": "<string>",
"verdict": "VERDICT_TRUE_POSITIVE",
"reason": "<string>",
"feedback": {
"autotriageId": "<string>",
"rating": "RATING_GOOD",
"note": "<string>"
},
"matchBasedId": "<string>",
"memoryIdsReferenced": [
"<string>"
],
"memoryIdsRendered": [
"<string>"
]
},
"aiTags": {
"id": "<string>",
"path": "<string>",
"tags": "<string>",
"sensitivity": "SENSITIVITY_HIGH_SENSITIVITY"
},
"lineOfCodeUrl": "<string>",
"codeSnippet": "<string>",
"dataflowTrace": {
"taintSource": [
{
"path": "<string>",
"start": {
"line": "<string>",
"col": "<string>",
"offset": "<string>"
},
"end": {
"line": "<string>",
"col": "<string>",
"offset": "<string>"
},
"locationUrl": "<string>"
}
],
"intermediateVars": [
{
"path": "<string>",
"start": {
"line": "<string>",
"col": "<string>",
"offset": "<string>"
},
"end": {
"line": "<string>",
"col": "<string>",
"offset": "<string>"
},
"locationUrl": "<string>"
}
],
"taintSink": [
{
"path": "<string>",
"start": {
"line": "<string>",
"col": "<string>",
"offset": "<string>"
},
"end": {
"line": "<string>",
"col": "<string>",
"offset": "<string>"
},
"locationUrl": "<string>"
}
]
},
"commitUrl": "<string>",
"activityHistory": [
{
"date": "2023-11-07T05:31:56Z",
"title": "<string>",
"triageReason": "<string>",
"note": "<string>",
"actor": "<string>",
"historyType": "HISTORY_TYPE_STATUS",
"exceptionRequestDetails": {
"actionSource": "FINDING_EXCEPTION_REQUEST_SOURCE_SCM_COMMENT"
}
}
],
"relatedIssues": [
{
"id": "<string>",
"ref": "<string>",
"pullRequestId": "<string>",
"aggregateState": "AGGREGATE_ISSUE_STATE_OPEN",
"createdAt": "2023-11-07T05:31:56Z"
}
],
"remediation": {
"issueId": "<string>",
"matchBasedId": "<string>",
"autofix": {
"id": "<string>",
"fixCode": "<string>",
"fixDiff": "<string>",
"explanation": "<string>",
"url": "<string>"
},
"guidance": {
"id": "<string>",
"summary": "<string>",
"guidanceText": "<string>",
"memoryIdsUsed": [
"<string>"
]
}
},
"lastSeenScan": {
"id": "<string>",
"meta": {}
},
"filePath": "<string>",
"line": 123,
"endLine": 123,
"column": 123,
"endColumn": 123,
"severity": "SEVERITY_HIGH",
"message": "<string>",
"rulePath": "<string>",
"confidence": "CONFIDENCE_HIGH",
"ruleUrl": "<string>",
"ruleReferences": [
"<string>"
],
"ruleOrigin": "RULE_ORIGIN_CUSTOM",
"ruleHashId": "<string>",
"ruleCweNames": [
"<string>"
],
"ruleOwaspNames": [
"<string>"
],
"ruleset": "<string>",
"policySlug": "<string>",
"category": "<string>",
"ruleSupersededBy": [
{
"product": "RULE_TYPE_SAST",
"rulePath": "<string>"
}
],
"issueType": "ISSUE_TYPE_SAST",
"issueParentId": "<string>",
"ticketAttempts": [
{
"attemptedAt": "2023-11-07T05:31:56Z",
"responseMessage": "<string>"
}
],
"sastAttributes": {},
"scaAttributes": {
"severity": "SEVERITY_HIGH",
"vulnDatabaseIdentifier": "<string>",
"reachability": "REACHABILITY_CONDITIONALLY_REACHABLE",
"reachableCondition": "<string>",
"cwes": [
"<string>"
],
"foundDependency": {
"package": "<string>",
"version": "<string>",
"transitivity": "UNKNOWN_TRANSITIVITY",
"lockfileLineUrl": "<string>",
"filePath": "<string>",
"ecosystem": "no_package_manager",
"manifestFilePath": "<string>"
},
"fixRecommendations": [
{
"package": "<string>",
"version": "<string>"
}
],
"bestFix": {
"package": "<string>",
"version": "<string>"
},
"epssScore": {
"score": 123,
"percentile": 123,
"updatedAt": "2023-11-07T05:31:56Z",
"categorization": "EPSS_PROBABILITY_LOW"
},
"rulePublishDate": "2023-11-07T05:31:56Z",
"scaRuleKind": "SCA_RULE_KIND_REACHABLE",
"scaMatchInfo": {
"matchKind": "SCA_MATCH_KIND_LOCKFILE_ONLY",
"analyzedPackages": [
{
"package": "<string>",
"version": "<string>",
"transitivity": "UNKNOWN_TRANSITIVITY",
"lockfileLineUrl": "<string>",
"filePath": "<string>",
"ecosystem": "no_package_manager",
"manifestFilePath": "<string>"
}
],
"transitiveMatches": [
{
"dependency": {
"package": "<string>",
"version": "<string>",
"transitivity": "UNKNOWN_TRANSITIVITY",
"lockfileLineUrl": "<string>",
"filePath": "<string>",
"ecosystem": "no_package_manager",
"manifestFilePath": "<string>"
},
"path": "<string>",
"line": "<string>"
}
]
},
"introducedBy": [
{
"package": "<string>",
"version": "<string>"
}
]
},
"secretsAttributes": {
"validationState": "VALIDATION_STATE_CONFIRMED_VALID",
"secretType": "<string>",
"historicalInfo": {
"gitCommit": "<string>",
"gitCommitTimestamp": "2023-11-07T05:31:56Z",
"gitBlob": "<string>"
}
},
"subcategories": [
"<string>"
],
"refUrl": "<string>",
"codeowners": [
{
"id": "<string>",
"name": "<string>",
"isTeam": true,
"members": "<array>"
}
],
"codeSnippets": [
{
"path": "<string>",
"content": "<string>"
}
],
"ruleExplanation": {
"id": "<string>",
"summary": "<string>",
"explanation": "<string>"
},
"ruleDisplayName": "<string>",
"clickToFixPrUrl": "<string>",
"aiImpact": "<string>",
"aiExploitConditions": [
{
"description": "<string>",
"confirmed": true
}
],
"clickToFixCommitMsg": "<string>",
"exceptionRequest": {
"exceptionState": "FINDING_EXCEPTION_REQUEST_STATE_REQUESTED",
"requesterLogin": "<string>",
"requesterName": "<string>",
"requesterNote": "<string>",
"requesterTriageReason": "FINDING_TRIAGE_REASON_FALSE_POSITIVE",
"requesterActionSource": "FINDING_EXCEPTION_REQUEST_SOURCE_SCM_COMMENT",
"reviewerLogin": "<string>",
"reviewerName": "<string>",
"requestId": "<string>",
"reviewId": "<string>",
"issueId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"reviewedAt": "2023-11-07T05:31:56Z"
},
"clickToFixPrId": "<string>",
"triagePermission": "TRIAGE_PERMISSION_IGNORE",
"isArchived": true,
"firstDetectedAt": "2023-11-07T05:31:56Z"
}Authorizations
Get access to data with your API token. Example header:
Authorization: Bearer 2991e2fb4b540fe75b8f90677b0b892b6314e4961cb001fe6eb452eee248a628
The token can be provisioned from the Tokens section in your Settings, and requires explicitly enabling Web API access.
Query Parameters
When true, include code snippets in the response. Defaults to true for non-secrets when unset. Does not apply to secrets: this option has no effect for secret issues—snippets are never returned for secrets (security; no masking yet).
When true, populate the isArchived field on the response. Defaults to false.
Response
OK
ID of the finding
Creation timestamp
Branch where the finding was detected
Semi-unique hash of a check consisting of: Line Numbers, File Path, Rule ID, Index of finding in file, and Matched code
Semi-unique hash of a check consisting of: File Path, Rule ID, Index of finding in file, and Rule Formula with metavariable bindings substituted in
The ID of the associated semgrep rule
The issue's scan-controlled status, before triage is taken into account. Prefer aggregateState, which combines this field with triageState into the single state shown in Semgrep AppSec Platform.
| value | description |
|---|---|
| ISSUE_STATUS_FIXED | The most recent scan no longer detected the issue. |
| ISSUE_STATUS_MUTED | The most recent scan detected the issue, but a nosemgrep comment in the scanned code suppresses it. |
| ISSUE_STATUS_REMOVED | The most recent scan no longer detected the issue. Typically: the file was not scanned, the rule did not run, the rule's pattern changed, or the pull request was closed. |
| ISSUE_STATUS_UNRESOLVED | The most recent scan detected the issue. |
ISSUE_STATUS_FIXED, ISSUE_STATUS_MUTED, ISSUE_STATUS_REMOVED, ISSUE_STATUS_UNRESOLVED The repository in which this issue was found
Show child attributes
Show child attributes
The first scan in which this issue was found
Show child attributes
Show child attributes
The issue's current triage state. Prefer aggregateState, which combines this field with status into the single state shown in Semgrep AppSec Platform.
| value | description |
|---|---|
| FINDING_TRIAGE_STATE_UNTRIAGED | The finding has not been triaged. |
| FINDING_TRIAGE_STATE_IGNORED | The finding was triaged as ignored. |
| FINDING_TRIAGE_STATE_REOPENED | The finding was previously ignored and has been triaged back to open. |
| FINDING_TRIAGE_STATE_UNKNOWN | |
| FINDING_TRIAGE_STATE_REVIEWING | The finding was triaged as being reviewed. |
| FINDING_TRIAGE_STATE_FIXING | The finding was triaged as needing to be fixed. |
| FINDING_TRIAGE_STATE_PROVISIONALLY_IGNORED | Semgrep determined the finding is very likely safe to ignore. Triage it to ignored to confirm, or reopen it. |
FINDING_TRIAGE_STATE_UNTRIAGED, FINDING_TRIAGE_STATE_IGNORED, FINDING_TRIAGE_STATE_REOPENED, FINDING_TRIAGE_STATE_UNKNOWN, FINDING_TRIAGE_STATE_REVIEWING, FINDING_TRIAGE_STATE_FIXING, FINDING_TRIAGE_STATE_PROVISIONALLY_IGNORED The reason the issue was triaged.
| value | description |
|---|---|
| FINDING_TRIAGE_REASON_FALSE_POSITIVE | |
| FINDING_TRIAGE_REASON_NO_TIME | |
| FINDING_TRIAGE_REASON_ACCEPTABLE_RISK | |
| FINDING_TRIAGE_REASON_NO_TRIAGE_REASON | |
| FINDING_TRIAGE_REASON_UNKNOWN | |
| FINDING_TRIAGE_REASON_DUPLICATE |
FINDING_TRIAGE_REASON_FALSE_POSITIVE, FINDING_TRIAGE_REASON_NO_TIME, FINDING_TRIAGE_REASON_ACCEPTABLE_RISK, FINDING_TRIAGE_REASON_NO_TRIAGE_REASON, FINDING_TRIAGE_REASON_UNKNOWN, FINDING_TRIAGE_REASON_DUPLICATE The timestamp from which this issue was relevant
The overall state of the issue, accounting for status (controlled by scans), triaging, external events like PR closes, etc. TODO: use the AggregateState enum instead of raw strings.
| value | description |
|---|---|
| AGGREGATE_ISSUE_STATE_OPEN | The issue is still detected and has not been triaged into another state. |
| AGGREGATE_ISSUE_STATE_FIXED | The issue is no longer detected. |
| AGGREGATE_ISSUE_STATE_REMOVED | The issue is no longer detected; typically the file was not scanned, the rule did not run, the rule's pattern changed, or the pull request was closed. Removed issues are excluded from issue lists unless you filter for this value explicitly. |
| AGGREGATE_ISSUE_STATE_IGNORED_APP | The issue was triaged as ignored in Semgrep AppSec Platform, through the API, or by an automation. |
| AGGREGATE_ISSUE_STATE_IGNORED_CODE | The issue is suppressed by a nosemgrep comment in the scanned code. Shown as "Ignored via nosemgrep" in Semgrep AppSec Platform. |
| AGGREGATE_ISSUE_STATE_UNKNOWN | |
| AGGREGATE_ISSUE_STATE_REVIEWING | The issue was triaged as being reviewed. |
| AGGREGATE_ISSUE_STATE_FIXING | The issue was triaged as needing to be fixed. Shown as "To fix" in Semgrep AppSec Platform. |
| AGGREGATE_ISSUE_STATE_PROVISIONALLY_IGNORED_APP | Semgrep determined the issue is very likely safe to ignore. Triage it to ignored to confirm, or reopen it to undo. |
AGGREGATE_ISSUE_STATE_OPEN, AGGREGATE_ISSUE_STATE_FIXED, AGGREGATE_ISSUE_STATE_REMOVED, AGGREGATE_ISSUE_STATE_IGNORED_APP, AGGREGATE_ISSUE_STATE_IGNORED_CODE, AGGREGATE_ISSUE_STATE_UNKNOWN, AGGREGATE_ISSUE_STATE_REVIEWING, AGGREGATE_ISSUE_STATE_FIXING, AGGREGATE_ISSUE_STATE_PROVISIONALLY_IGNORED_APP Comment left when triaged
The external ticket reference
Show child attributes
Show child attributes
The key used to group supply chain vulns (deprecated)
True if this issue is a blocking issue.
The autotriage info related to this issue.
Show child attributes
Show child attributes
The autotriage tags associated with this issue
Show child attributes
Show child attributes
The URL to the specific line of code causing this issue
The code snippet causing this issue. Only available when fetching a single issue at a time via the GetIssue RPC. Deprecated in favor of codeSnippets for multi-file support.
A call trace order of code locations leading to the site of the issue. Only available when fetching a single issue at a time via the GetIssue RPC.
Show child attributes
Show child attributes
The URL of the specific commit which introduced this issue. Only available when fetching a single issue at a time via the GetIssue RPC.
A chronologically-ordered list of events related to this issue (status change, ai tags, triage events). Always populated by the GetIssue RPC; populated by ListIssues only when includeActivityHistory is true.
Show child attributes
Show child attributes
A list of related issues (with the same match based ID). Only available when fetching a single issue at a time via the GetIssue RPC.
Show child attributes
Show child attributes
AI remediation info for this issue (guidance and autofix).
Available in the GetIssue RPC and in list responses when includeRemediation is set to true.
Show child attributes
Show child attributes
The last scan in which this issue was found
Show child attributes
Show child attributes
The path to the file in which this issue was found.
The first line number in which this issue was found.
The end line number in which this issue was found (if the offending code spans several lines).
The start column number within the line in which this issue was found.
The end column number within the last line in which this issue was found (if applicable).
The severity ("seriousness") of the issue.
| value | description |
|---|---|
| SEVERITY_HIGH | |
| SEVERITY_MEDIUM | |
| SEVERITY_LOW | |
| SEVERITY_CRITICAL |
SEVERITY_HIGH, SEVERITY_MEDIUM, SEVERITY_LOW, SEVERITY_CRITICAL An optional message that helps describe the issue in more detail.
The full path of the rule used to generate this issue.
The confidence in false-positive rate of an issue.
| value | description |
|---|---|
| CONFIDENCE_HIGH | |
| CONFIDENCE_MEDIUM | |
| CONFIDENCE_LOW |
CONFIDENCE_HIGH, CONFIDENCE_MEDIUM, CONFIDENCE_LOW The url of the rule used to generate this issue.
A list of external references (URLs) which help describe or provide context for the rule used to generate this issue.
The origin of the rule (pro rules, semgrep community, or a custom rule)
| value | description |
|---|---|
| RULE_ORIGIN_CUSTOM | |
| RULE_ORIGIN_COMMUNITY | |
| RULE_ORIGIN_PRO_RULES |
RULE_ORIGIN_CUSTOM, RULE_ORIGIN_COMMUNITY, RULE_ORIGIN_PRO_RULES The hash of the associated rule.
The names of the CWEs associated with this issue's rule.
The names of the OWASP categories associated with this issue's rule.
The ruleset to which this issue's rule belongs (if applicable).
A slugified version of the associated rule's policy.
The issue's category (or "other" if none).
A list of rules which supersede this issue's rule.
Show child attributes
Show child attributes
The product which owns this issue, e.g. SAST (code), SCA (supply chain), etc.
| value | description |
|---|---|
| ISSUE_TYPE_SAST | Detected by Code rules |
| ISSUE_TYPE_SCA | Detected by Supply Chain rules |
| ISSUE_TYPE_SECRETS | Detected by Secrets rules |
| ISSUE_TYPE_RESEARCH | Detected by research rules or scanners |
| ISSUE_TYPE_AI_SAST | Detected by AI detection code scanning |
ISSUE_TYPE_SAST, ISSUE_TYPE_SCA, ISSUE_TYPE_SECRETS, ISSUE_TYPE_RESEARCH, ISSUE_TYPE_AI_SAST Parent ID of the finding. Present for all types.
The failed attempts at ticket creation
Show child attributes
Show child attributes
Only set for code issues (i.e. if issueType == SAST)
Only set for supply chain issues (i.e. if issueType == SCA)
Show child attributes
Show child attributes
Only set for secrets issues (i.e. if issueType == SECRETS)
Show child attributes
Show child attributes
The issue's subcategories
The URL of the specific commit which introduced this issue. Only available when fetching a single issue at a time via the GetIssue RPC.
Show child attributes
Show child attributes
The content of files involved in this issue. Only available when fetching a single issue at a time via the GetIssue RPC.
Show child attributes
Show child attributes
AI-generated explanation for true positive autotriage cases. Only available when fetching a single issue at a time via the GetIssue RPC.
Show child attributes
Show child attributes
The human-readable display name of the rule (e.g., "Hardcoded secret"). Only available when fetching a single issue at a time via the GetIssue RPC.
The URL of the Click-to-Fix PR that was opened to fix this issue (if any). Available in the GetIssue RPC and in list responses that opt into it.
AI Detection only: LLM-generated description of the vulnerability's impact. Only available when fetching a single issue at a time via the GetIssue RPC.
Deprecated: AI exploit conditions were only tested internally and are no longer returned by the Issues API.
Show child attributes
Show child attributes
The commit message for the Click-to-Fix PR (if any). Only available when fetching a single issue at a time via the GetIssue RPC.
A summary of the exception request for this issue, shaped for the findings
list UI. Only returned if includeExceptionRequestInfo was true in the request.
Show child attributes
Show child attributes
The SCM-agnostic PR identifier for the Click-to-Fix PR (if any).
Available in the GetIssue RPC and in list responses that opt into it.
Prefer this over parsing the PR number from clickToFixPrUrl.
The triage permission for this issue: whether a developer may ignore it themselves, must request an exception, or cannot triage it at all. Only defined when the developer approvals feature is enabled.
| value | description |
|---|---|
| TRIAGE_PERMISSION_IGNORE | |
| TRIAGE_PERMISSION_REQUEST | |
| TRIAGE_PERMISSION_NONE |
TRIAGE_PERMISSION_IGNORE, TRIAGE_PERMISSION_REQUEST, TRIAGE_PERMISSION_NONE True if this finding's project is archived (Semgrep-initiated via isSemgrepArchived, or SCM-archived).
The timestamp when the issue was first detected in the project on any ref. Always populated by the GetIssue RPC; populated by ListIssues only when includeFirstDetectedAt is true.
Was this page helpful?