cURL
curl -X GET "https://app.cotool.ai/api/detections/overview" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"import requests
url = "https://app.cotool.ai/api/detections/overview"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.cotool.ai/api/detections/overview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.get("https://app.cotool.ai/api/detections/overview")
.header("Authorization", "Bearer <token>")
.asString();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.cotool.ai/api/detections/overview"
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))
}{
"windowDays": 123,
"items": [
{
"key": "<string>",
"kind": "cotool",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"platform": "<string>",
"ruleType": "<string>",
"severity": "<string>",
"isEnabled": true,
"url": "<string>",
"alerts": {
"total": 1,
"open": 1,
"inProgress": 1,
"escalated": 1,
"everEscalated": 1,
"closedTruePositive": 1,
"closedFalsePositive": 1,
"closedTruePositiveBenign": 1,
"dismissed": 1,
"meanTimeToRespondSeconds": 1,
"lastAlertAt": "<string>"
},
"enabledSince": "<string>",
"hasPendingProposal": true,
"autoApplyTuning": true,
"autoApplyTuningDefault": true,
"finishedExecutionCount": 1,
"latestFinishedExecutionFailed": true,
"healthSignals": {
"finishedExecutionCount": 1,
"hasEverFinishedRun": true,
"latestFinishedExecutionFailed": true,
"triagedCount": 1,
"falsePositiveCount": 1,
"lastResultAt": "<string>"
}
}
]
}{
"error": "<string>",
"issues": [
{}
]
}{
"error": "<string>"
}{
"error": "<string>",
"missingPerms": [
"<string>"
]
}{
"error": "<string>"
}Detections
Get detections overview
Unified detection-efficacy view across Cotool detection agents, Cotool code detections, and the synced external rule inventory. External alerts are attributed through persisted rule links. Each item carries alert counts and dispositions over a rolling window.
GET
/
api
/
detections
/
overview
cURL
curl -X GET "https://app.cotool.ai/api/detections/overview" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"import requests
url = "https://app.cotool.ai/api/detections/overview"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.cotool.ai/api/detections/overview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.get("https://app.cotool.ai/api/detections/overview")
.header("Authorization", "Bearer <token>")
.asString();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.cotool.ai/api/detections/overview"
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))
}{
"windowDays": 123,
"items": [
{
"key": "<string>",
"kind": "cotool",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"platform": "<string>",
"ruleType": "<string>",
"severity": "<string>",
"isEnabled": true,
"url": "<string>",
"alerts": {
"total": 1,
"open": 1,
"inProgress": 1,
"escalated": 1,
"everEscalated": 1,
"closedTruePositive": 1,
"closedFalsePositive": 1,
"closedTruePositiveBenign": 1,
"dismissed": 1,
"meanTimeToRespondSeconds": 1,
"lastAlertAt": "<string>"
},
"enabledSince": "<string>",
"hasPendingProposal": true,
"autoApplyTuning": true,
"autoApplyTuningDefault": true,
"finishedExecutionCount": 1,
"latestFinishedExecutionFailed": true,
"healthSignals": {
"finishedExecutionCount": 1,
"hasEverFinishedRun": true,
"latestFinishedExecutionFailed": true,
"triagedCount": 1,
"falsePositiveCount": 1,
"lastResultAt": "<string>"
}
}
]
}{
"error": "<string>",
"issues": [
{}
]
}{
"error": "<string>"
}{
"error": "<string>",
"missingPerms": [
"<string>"
]
}{
"error": "<string>"
}Authorizations
API Key authentication for programmatic access. Include your API key in the Authorization header as: Bearer your_api_key_here
Query Parameters
Rolling window in days for alert counts. Defaults to 30.
Required range:
1 <= x <= 365Was this page helpful?
⌘I