Report structure
Product documentation uses threat level for the rating exposed by API fields such as
severity and highest_severity. These field names remain unchanged.
Understanding scan results
Use the scan’ssummary to understand its findings, threat classifications, and coverage. The newer threat-summary fields described below are available in supported API responses; CLI field availability depends on the scanner version. See CLI and API availability. Scan status and policy compliance describe separate outcomes: whether scanning finished and whether the result satisfies the configured policy.
Findings
A finding appears in a file’sdetections or advisories collection. The scanner determines which collection contains the finding; threat_type does not determine its placement. Findings with threat_type: "vulnerable" can appear in either collection, so check both when looking for vulnerabilities. For the meaning of category, threat type, and threat level, see Finding Classification. This page explains how those values are represented and summarized in a report.
Counts represent findings, not distinct files. A scan can have zero detections and still have advisories, including vulnerabilities.
Threat classification
summary.top_threat_type selects the highest-priority classification present in the scan. Its priority order is independent of threat level:
malicious → suspicious → unclassified → vulnerable → advisory → none
See Threat types for the four finding classifications. Two additional values describe report state:
unclassified: a detection has a missing or unrecognized threat type, such as one produced before threat classification was available.none: the scan completed without findings. This does not establish that every file was successfully analyzed. It is not a group insummary.threat_types.
advisory.
summary.threat_types provides a breakdown keyed by classification. Only groups containing findings are included; none is not a breakdown group. Each group contains:
count: number of findings in the group.highest_severity: highest threat level within the group (critical,high,medium, orlow), omitted if no finding has a ranked threat level.categories: unique, nonempty finding categories, when available.mitre_atlas: unique MITRE ATLAS tactic/technique pairs, when available.
malicious, while the vulnerability group’s highest threat level is high:
Scan threat level
summary.highest_severity is the legacy, detection-only threat level summary. It excludes advisories, even when an advisory has a threat level. Prefer summary.threat_types for threat level across both detections and advisories. The Console’s threat level badges represent these values:
The older
summary.severity and top-level severity fields are deprecated and use safe in place of none. Neither none nor safe means that there are no advisories or that the scan is policy-compliant.
Scan status and coverage
A
done scan or a zero finding count does not guarantee complete coverage. Check failed and unknown file counts before interpreting the absence of findings.
Policy outcome
compliance.status is COMPLIANT or NONCOMPLIANT, according to the policy evaluation. It is separate from threat type and threat level: findings do not by themselves determine the policy outcome. compliance.evaluated_at records when that evaluation occurred. An absent compliance result does not mean COMPLIANT.
CLI and API availability
CLI output
CLI v3 JSON is generated locally from the scan results. Its summary is computed even when the scan fails, so read counts together withstatus. The API completion rules below do not apply to locally generated CLI summaries.
Scanner versions using the earlier v3 summary format provide detection/advisory counts and highest_severity, but do not emit top_threat_type, findings_count, or threat_types. Do not expect these newer fields solely because the output uses the v3 schema. For these versions, detections plus advisories give the total finding count; an omitted advisory_count represents zero. Platform feature availability does not change an installed CLI’s output format.
Policy compliance is a platform evaluation; local CLI output should not be assumed to contain it. After submitting results, retrieve the API report to read any available compliance result.
Enable threat-classification output
For scanner builds that support VRT output, setHL_MODEL_SCANNER_VRT_OUTPUT=true in the scanner process environment. In Docker, add the following option to your existing docker run command before the image name:
false. Enabling it includes finding threat types, richer advisory metadata, and the summary’s threat-type breakdown. It also enables threat-type CLI flags. Older builds may not support this setting; setting an environment variable does not upgrade the scanner.
This controls output, not rule definitions. It does not change a detection’s threat level or category. Use a scanner build containing the updated rule metadata to obtain current category and threat level values.
API responses
Requestinclude_threat_types=true to include summary.top_threat_type, summary.findings_count, and summary.threat_types when available. The deployment’s threat-classification feature must also be enabled; without the query parameter or feature, these fields are omitted. Older stored reports can lack the findings count and breakdown even after that feature is enabled.
findings_countandthreat_typesare populated for scans withstatus: done; they are omitted for other statuses.top_threat_typecan describe findings received before completion. With no findings, it isnoneonly for a completed scan; otherwise it is omitted.- A completed scan with no findings has
findings_count: 0when the newer summary is available. Its emptythreat_typesbreakdown is omitted. - A missing new field means the value is unavailable, not zero or
none. Missing optional category, MITRE ATLAS, or threat level fields within a group do not negate that group’s finding count.
summary counts instead of the deprecated top-level detection_count, file_count, and files_with_detections_count fields.
Other summary fields
File results
Each entry infile_results describes one scanned file.
Detections
Present when a file triggers a detection rule.Advisories
Theadvisories collection contains findings emitted as advisories by the scanner. An advisory can carry a threat type and threat level; its collection does not imply threat_type: "advisory". See Finding Classification for their meaning.
Type-specific evidence
file_results[].details.file_type_details includes extra fields for some model formats.
Use these fields to understand format metadata that often contextualizes detections.
Not every file type populates
file_type_details. Empty objects are normal for formats that do not expose additional metadata.Related guides
- Finding Classification explains categories, threat types, and threat levels.
- AI Bill of Materials (AIBOM) describes the model inventory output and its CycloneDX representation.
- Remediation Guide provides category-specific response guidance.

