curl --request GET \
--url https://api.enokilabs.ai/api/v1/run/{run_id}/coverageimport requests
url = "https://api.enokilabs.ai/api/v1/run/{run_id}/coverage"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.enokilabs.ai/api/v1/run/{run_id}/coverage', 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.enokilabs.ai/api/v1/run/{run_id}/coverage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.enokilabs.ai/api/v1/run/{run_id}/coverage"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.enokilabs.ai/api/v1/run/{run_id}/coverage")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.enokilabs.ai/api/v1/run/{run_id}/coverage")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"run_id": "<string>",
"run_status": "<string>",
"categories": [
{
"category": "<string>",
"display_name": "<string>",
"attacks_blocked": 123,
"attacks_got_through": 123,
"owasp_mapping": [
"<string>"
],
"atlas_mapping": [
"<string>"
],
"worst_severity": "critical"
}
],
"categories_probed": 123,
"attacks_blocked": 123,
"attacks_got_through": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Retrieve what a completed run covered, per category
One row per category the run probed: attacks blocked, attacks that got through, the category’s OWASP and ATLAS codes, and the worst severity it produced. The complement of /run/{run_id}/findings. Returns 409 while the run is still going: a missing row would then mean ‘not yet’ rather than ‘clean’. A category the run never probed has no row, so check run_status — a cancelled or errored run reports what it reached, not what it planned.
curl --request GET \
--url https://api.enokilabs.ai/api/v1/run/{run_id}/coverageimport requests
url = "https://api.enokilabs.ai/api/v1/run/{run_id}/coverage"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.enokilabs.ai/api/v1/run/{run_id}/coverage', 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.enokilabs.ai/api/v1/run/{run_id}/coverage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.enokilabs.ai/api/v1/run/{run_id}/coverage"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.enokilabs.ai/api/v1/run/{run_id}/coverage")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.enokilabs.ai/api/v1/run/{run_id}/coverage")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"run_id": "<string>",
"run_status": "<string>",
"categories": [
{
"category": "<string>",
"display_name": "<string>",
"attacks_blocked": 123,
"attacks_got_through": 123,
"owasp_mapping": [
"<string>"
],
"atlas_mapping": [
"<string>"
],
"worst_severity": "critical"
}
],
"categories_probed": 123,
"attacks_blocked": 123,
"attacks_got_through": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Headers
Bearer token with API key
Path Parameters
Response
Successful Response
Response for GET /api/v1/run/{run_id}/coverage.
The run's terminal status. Anything but 'completed' means the rows below are what the run reached, not what it planned.
One row per category the run probed, ordered by category key.
Show child attributes
Show child attributes
len(categories).
Attacks the target refused, across every category.
Attacks that produced a finding.