Findings
Start an investigation
Queues a Kapso Agent Investigator run for the finding. The investigation is asynchronous; poll the finding to read the result.
Returns 422 when the finding already has an active investigation, is not
currently eligible for one, or the investigator is not configured for the project,
and 409 when another dispatch is in flight.
POST
/
findings
/
{finding_id}
/
start_investigation
Start an investigation
curl --request POST \
--url https://api.kapso.ai/platform/v1/findings/{finding_id}/start_investigation \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.kapso.ai/platform/v1/findings/{finding_id}/start_investigation"
headers = {"X-API-Key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.kapso.ai/platform/v1/findings/{finding_id}/start_investigation', 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://api.kapso.ai/platform/v1/findings/{finding_id}/start_investigation",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"X-API-Key: <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://api.kapso.ai/platform/v1/findings/{finding_id}/start_investigation"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kapso.ai/platform/v1/findings/{finding_id}/start_investigation")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kapso.ai/platform/v1/findings/{finding_id}/start_investigation")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"finding_id": "8f14e45f-ceea-467a-9e1a-1b2c3d4e5f60",
"investigation_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"status": "queued"
}
}{
"error": "<string>"
}{
"error": "Finding not found in this project.",
"code": "finding_not_found"
}{
"error": "<string>",
"code": "findings_not_enabled"
}{
"error": "The Finding is already being investigated or is not currently eligible.",
"code": "investigation_unavailable"
}Was this page helpful?
⌘I
Start an investigation
curl --request POST \
--url https://api.kapso.ai/platform/v1/findings/{finding_id}/start_investigation \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.kapso.ai/platform/v1/findings/{finding_id}/start_investigation"
headers = {"X-API-Key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.kapso.ai/platform/v1/findings/{finding_id}/start_investigation', 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://api.kapso.ai/platform/v1/findings/{finding_id}/start_investigation",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"X-API-Key: <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://api.kapso.ai/platform/v1/findings/{finding_id}/start_investigation"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kapso.ai/platform/v1/findings/{finding_id}/start_investigation")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kapso.ai/platform/v1/findings/{finding_id}/start_investigation")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"finding_id": "8f14e45f-ceea-467a-9e1a-1b2c3d4e5f60",
"investigation_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"status": "queued"
}
}{
"error": "<string>"
}{
"error": "Finding not found in this project.",
"code": "finding_not_found"
}{
"error": "<string>",
"code": "findings_not_enabled"
}{
"error": "The Finding is already being investigated or is not currently eligible.",
"code": "investigation_unavailable"
}
