curl --request GET \
--url https://www.corgea.app/api/v1/issue/{issue_id} \
--header 'CORGEA-TOKEN: <api-key>'import requests
url = "https://www.corgea.app/api/v1/issue/{issue_id}"
headers = {"CORGEA-TOKEN": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'CORGEA-TOKEN': '<api-key>'}};
fetch('https://www.corgea.app/api/v1/issue/{issue_id}', 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://www.corgea.app/api/v1/issue/{issue_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"CORGEA-TOKEN: <api-key>"
],
]);
$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://www.corgea.app/api/v1/issue/{issue_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("CORGEA-TOKEN", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.corgea.app/api/v1/issue/{issue_id}")
.header("CORGEA-TOKEN", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.corgea.app/api/v1/issue/{issue_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["CORGEA-TOKEN"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": "ok",
"issue": {
"finding_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"scan_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "open",
"urgency": "CR",
"created_at": "2023-11-07T05:31:56Z",
"first_detection_date": "2023-11-07T05:31:56Z",
"classification": {
"id": "CWE-123",
"name": "Vulnerability Name",
"description": "<string>"
},
"location": {
"file": {
"name": "<string>",
"language": "<string>",
"path": "<string>",
"git_hash": "<string>"
},
"project": {
"name": "<string>",
"branch": "<string>",
"git_sha": "<string>"
},
"line_number": 123,
"sink_line_number": 123
},
"details": {
"explanation": "<string>",
"policy_guidance": {
"policy": "<string>",
"text": "<string>"
},
"full_code": "<string>"
},
"auto_triage": {
"false_positive_detection": {
"status": "valid",
"reasoning": "<string>"
}
},
"auto_fix_suggestion": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "fix_available",
"patch": {
"diff": "<string>",
"explanation": "<string>",
"full_code": "<string>"
}
},
"assigned_to": {
"id": "<string>",
"email": "jsmith@example.com",
"name": "<string>"
},
"scanner_metadata": {},
"reachability": {
"is_reachable": true,
"endpoints": [
{
"path": "<string>",
"method": "<string>",
"file_path": "<string>",
"line_number": 123,
"pathways": [
{
"pathway_id": "<string>",
"total_depth": 123,
"confidence_score": 123,
"target": {},
"steps": [
{
"depth": 123,
"file_path": "<string>",
"line_number": 123,
"function_name": "<string>",
"target_line_number": 123
}
]
}
]
}
]
},
"metadata": {},
"status_comment": "<string>"
}
}{
"status": "error",
"message": "Issue not found"
}Get Issue
Retrieves details of a specific issue
Also served at /api/v1/detections/{issue_id}: the same endpoint under its new name, with the same parameters and response.
curl --request GET \
--url https://www.corgea.app/api/v1/issue/{issue_id} \
--header 'CORGEA-TOKEN: <api-key>'import requests
url = "https://www.corgea.app/api/v1/issue/{issue_id}"
headers = {"CORGEA-TOKEN": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'CORGEA-TOKEN': '<api-key>'}};
fetch('https://www.corgea.app/api/v1/issue/{issue_id}', 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://www.corgea.app/api/v1/issue/{issue_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"CORGEA-TOKEN: <api-key>"
],
]);
$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://www.corgea.app/api/v1/issue/{issue_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("CORGEA-TOKEN", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.corgea.app/api/v1/issue/{issue_id}")
.header("CORGEA-TOKEN", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.corgea.app/api/v1/issue/{issue_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["CORGEA-TOKEN"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": "ok",
"issue": {
"finding_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"scan_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "open",
"urgency": "CR",
"created_at": "2023-11-07T05:31:56Z",
"first_detection_date": "2023-11-07T05:31:56Z",
"classification": {
"id": "CWE-123",
"name": "Vulnerability Name",
"description": "<string>"
},
"location": {
"file": {
"name": "<string>",
"language": "<string>",
"path": "<string>",
"git_hash": "<string>"
},
"project": {
"name": "<string>",
"branch": "<string>",
"git_sha": "<string>"
},
"line_number": 123,
"sink_line_number": 123
},
"details": {
"explanation": "<string>",
"policy_guidance": {
"policy": "<string>",
"text": "<string>"
},
"full_code": "<string>"
},
"auto_triage": {
"false_positive_detection": {
"status": "valid",
"reasoning": "<string>"
}
},
"auto_fix_suggestion": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "fix_available",
"patch": {
"diff": "<string>",
"explanation": "<string>",
"full_code": "<string>"
}
},
"assigned_to": {
"id": "<string>",
"email": "jsmith@example.com",
"name": "<string>"
},
"scanner_metadata": {},
"reachability": {
"is_reachable": true,
"endpoints": [
{
"path": "<string>",
"method": "<string>",
"file_path": "<string>",
"line_number": 123,
"pathways": [
{
"pathway_id": "<string>",
"total_depth": 123,
"confidence_score": 123,
"target": {},
"steps": [
{
"depth": 123,
"file_path": "<string>",
"line_number": 123,
"function_name": "<string>",
"target_line_number": 123
}
]
}
]
}
]
},
"metadata": {},
"status_comment": "<string>"
}
}{
"status": "error",
"message": "Issue not found"
}Authorizations
API key for authentication API tokens belonging to inactive users are rejected.
Path Parameters
The ID of the issue
Query Parameters
Whether to include the full code in the response
Include scanner-provided identifiers in issue.metadata. Omitted by default; when requested, metadata is null if no identifiers are available.
Include endpoint reachability details for the issue.
Set to true to start generating an eligible missing fix in the background. When omitted or false, the current issue state is returned without starting fix generation.
Wait for background fix generation before returning. Only applies when generate_fix is true and an eligible fix is missing. The wait is bounded (120 seconds by default); if generation is still pending, the response reports generating. Fetch the issue again to check for the completed fix.
Was this page helpful?
