QualysQualys VMDR Field Reference

Qualys VMDR Field Reference

Every Qualys VMDR field RAD stores, the column it lands in, how to filter it, and the severity crosswalk for queries migrating from RAD's normalized bands.

This page maps each Qualys field to the column RAD stores it in and to the way you filter it. It covers the three data types the Qualys VMDR integration writes:

Data typeContents
qualys_detectionsHost detections — one row per detection, current state
qualys_hostsHost assets from the daily Host List census
qualys_knowledge_baseQID definitions from the KnowledgeBase

How to read these tables

  • Qualys field is the element in the Qualys API response, using Qualys' own names.
  • Column is what you write in a query — severity:5, is_open:1, cve_uids:"CVE-2026-50646".
  • Filter label is how the field is presented in the query builder and filter menus. Fields with no label are still stored and returned; they are simply not offered as a pick list.

Column names are the same names Qualys uses, lowercased. When you know the Qualys field, you know the column.

An identifier that does not exist is not an error — the query surface falls back to a text search and returns plausible-looking results. Copy column names from this page rather than guessing them.


Detections — qualys_detections

Identity and grain

A detection is identified by host, QID, port, protocol, SSL flag, FQDN and service. All seven are stored as columns and all seven participate in the row's identity, so two detections that differ only in port or service stay two rows.

Qualys fieldColumnFilter labelNotes
HOST/IDhost_idHost IDQualys' host ID
DETECTION/QIDqidQID
DETECTION/PORTport—-1 when Qualys reports no port
DETECTION/PROTOCOLprotocol—- when absent
DETECTION/SSLssl—0 when absent
DETECTION/FQDNfqdn—Empty when absent
DETECTION/SERVICEservice—Empty when absent
—id—RAD's stable key over the seven components above plus the integration
—timestamp—When RAD observed this state

State

Qualys fieldColumnFilter labelNotes
DETECTION/STATUSstatusStatusNew, Active, Fixed, Re-Opened, verbatim
DETECTION/TYPEtypeDetection TypeConfirmed, Potential, Information Gathered
DETECTION/SEVERITYseveritySeverityQualys 1–5, not normalized — see the crosswalk
DETECTION/IS_IGNOREDis_ignored—RAD pulls ignored detections rather than hiding them
DETECTION/IS_DISABLEDis_disabled—Same for disabled
—is_openOpenThe openness answer. 1 when status is New/Active/Re-Opened and the detection is neither ignored, disabled nor absent
—absence_reasonAbsence ReasonEmpty normally; host_purged or not_in_source when Qualys stopped reporting the detection
DETECTION/TIMES_FOUNDtimes_found—
DETECTION/TIMES_REOPENEDtimes_reopened—
DETECTION/UNIQUE_VULN_IDunique_vuln_id—Qualys' own detection ID, for cross-reference into the console
DETECTION/RESULTSresults—Scan evidence; excluded from list responses, present on the detail record. Capped at 32 KiB with a visible marker
—results_truncated—1 when the cap applied

Scoring

Qualys fieldColumnFilter labelNotes
DETECTION/QDSqdsQDSQualys Detection Score, 1–100
DETECTION/QDS@severityqds_severity—Qualys' QDS band
DETECTION/QDS_FACTORSqds_factors—The full factor set, as JSON
QDS_FACTORS EPSS factorepssEPSS-1 when Qualys reports no EPSS

Dates

All eight Qualys clocks are stored under their own names.

Qualys fieldColumnFilter label
FIRST_FOUND_DATETIMEfirst_found_datetimeFirst Found
LAST_FOUND_DATETIMElast_found_datetimeLast Found
LAST_TEST_DATETIMElast_test_datetime—
LAST_UPDATE_DATETIMElast_update_datetime—
LAST_FIXED_DATETIMElast_fixed_datetimeLast Fixed
FIRST_REOPENED_DATETIMEfirst_reopened_datetime—
LAST_REOPENED_DATETIMElast_reopened_datetime—
LAST_PROCESSED_DATETIMElast_processed_datetime—

Filtering on First Found, Last Found or Last Fixed widens the query window to match, so age and SLA questions work against the Qualys clock rather than against RAD's observation clock.

DerivedColumnNotes
(LAST_FIXED_DATETIME − FIRST_FOUND_DATETIME) in daysttr_daysWritten only at closure; empty otherwise, and empty values are excluded from avg(). Measures the detection's whole lifetime, not the latest repair episode

KnowledgeBase attributes copied onto the detection

Copied so you can filter and list without a second query, and refreshed on every re-observation of an open detection.

Qualys field (KnowledgeBase)ColumnFilter label
VULN/TITLEtitleTitle (also full-text searchable)
VULN/VULN_TYPEvuln_type—
VULN/CATEGORYcategoryCategory
VULN/PATCHABLEpatchablePatchable
VULN/CVE_LIST/CVE/IDcve_uidsCVE
VULN/THREAT_INTELLIGENCE/THREAT_INTELrtiThreat Indicator
VULN/CVSS/BASEcvss_base—
VULN/CVSS_V3/BASEcvss3_base—

cve_uids is an array and is never truncated — a QID that rolls up hundreds of CVEs keeps all of them. Filter it by value (cve_uids:"CVE-2026-50646"); a match on any element matches the row.

These columns are frozen as at closure. A Fixed detection is not re-observed, so its title, CVEs and CVSS scores remain the values that were current on the day it closed.

Host attributes copied onto the detection

Qualys field (detection response)ColumnFilter label
HOST/IP, falling back to HOST/IPV6host_ipHost IP
HOST/DNS_DATA/FQDN, falling back to HOST/DNS then HOST/OS_HOSTNAMEhost_fqdnHost Name (also full-text searchable)
HOST/NETBIOShost_netbios—
HOST/OShost_os—
HOST/TAGS/TAG/NAMEhost_tagsHost Tag
HOST/TRACKING_METHODhost_tracking_method—

Tag names keep their exact case: Qualys treats two tags differing only in case as two tags, and so does RAD.

Everything else Qualys returnedColumn
The remaining DETECTION children, unmodifiedraw

Hosts — qualys_hosts

One row per host, refreshed by the daily census. The census requests the Basic detail set — that choice is what makes a full-subscription census affordable within the API quota, and it is why a few columns below are always empty.

Qualys fieldColumnFilter labelNotes
HOST/IDhost_idHost ID
HOST/ASSET_IDasset_id—The CSAM asset ID
HOST/QG_HOSTIDqg_hostid—Cloud Agent UUID; how RAD tells a re-identified host from a purged one
HOST/IPipIP
HOST/IPV6ipv6—
HOST/TRACKING_METHODtracking_methodTracking MethodIP, DNS, NETBIOS, Cloud Agent, EC2, verbatim
HOST/DNSdns—Full-text searchable
HOST/DNS_DATA/HOSTNAMEdns_hostname—
HOST/DNS_DATA/DOMAINdns_domain—
HOST/NETBIOSnetbios—Full-text searchable
HOST/OSosOS
—os_cpe—Always empty — not emitted by the Host List API
HOST/NETWORK_IDnetwork_id—
—network_name—Always empty — not emitted by the Host List API
HOST/TAGS/TAG/NAMEtagsTag
HOST/TAGS/TAG/TAG_IDtag_ids—Index-aligned with tags
HOST/ASSET_GROUP_IDSasset_groupsAsset GroupGroup IDs, not titles — the Host List API returns IDs
HOST/CLOUD_PROVIDERcloud_providerCloud Provider
HOST/METADATA region attributecloud_region—Populated for EC2; sparse for other providers
HOST/METADATA account attributecloud_account—Populated for EC2; sparse for other providers
HOST/CLOUD_RESOURCE_IDcloud_resource_id—
HOST/EC2_INSTANCE_IDec2_instance_id—
—mac—Reserved, always empty — see wave-2 fields
HOST/SERIAL_NUMBERserial_number—Full-text searchable
HOST/HARDWARE_UUIDhardware_uuid—
HOST/AGENT_STATUSagent_statusAgent StatusCloud Agent state, e.g. Inventory Scan Complete
HOST/LAST_BOOTlast_boot—
HOST/LAST_ACTIVITYlast_activity—Widens the query window
HOST/LAST_VM_SCANNED_DATElast_vm_scanned_date—Widens the query window
HOST/LAST_VM_SCANNED_DURATIONlast_vm_scanned_duration—-1 when absent
HOST/LAST_VM_AUTH_SCANNED_DATElast_vm_auth_scanned_date—Empty means no authenticated scan — treat that host's results as surface-level
HOST/FIRST_FOUND_DATEfirst_found_date—
HOST/TRURISK_SCOREtrurisk_score—0–1000; -1 when absent
HOST/ASSET_CRITICALITY_SCOREasset_criticality_score—1–5; -1 when absent
HOST/TRURISK_SCORE_FACTORStrurisk_score_factors—JSON
The remaining HOST childrenraw—

A host purged from Qualys is not flagged. RAD stops re-writing its row, so it ages out of windowed reads, and its detections receive an absence_reason so they stop counting as open.


KnowledgeBase — qualys_knowledge_base

One row per QID, scoped to your integration rather than shared globally — severity and threat intelligence can be subscription-specific, so your KnowledgeBase is the one your subscription sees.

Query it by qid when you need the full write-up for a detection. Detection rows already carry the short attributes.

Qualys fieldColumnFilter labelNotes
VULN/QIDqidQID
VULN/TITLEtitleTitleFull-text searchable
VULN/SEVERITY_LEVELseveritySeverityQualys 1–5
VULN/VULN_TYPEvuln_typeVuln TypeVulnerability, Potential Vulnerability, …
VULN/CATEGORYcategoryCategory
VULN/PATCHABLEpatchablePatchable
VULN/PCI_FLAGpci_flagPCI Flag
VULN/CVE_LIST/CVE/IDcve_uidsCVE
VULN/CVSS/BASEcvss_base—-1 when absent
VULN/CVSS/TEMPORALcvss_temporal—-1 when absent
VULN/CVSS/VECTOR_STRINGcvss_vector—
VULN/CVSS_V3/BASEcvss3_base—-1 when absent
VULN/CVSS_V3/TEMPORALcvss3_temporal—-1 when absent
VULN/CVSS_V3/VECTOR_STRINGcvss3_vector—
VULN/THREAT_INTELLIGENCE/THREAT_INTELrtiThreat IndicatorPresent only when Threat Protection is enabled for the subscription
VULN/DIAGNOSISdiagnosis—Detail record only; full-text searchable
VULN/CONSEQUENCEconsequence—Detail record only; full-text searchable
VULN/SOLUTIONsolution—Detail record only; full-text searchable. Capped at 64 KiB with a visible marker
—solution_truncated—1 when the cap applied
VULN/SOFTWARE_LIST/SOFTWARE/PRODUCTsoftware_products—
VULN/SOFTWARE_LIST/SOFTWARE/VENDORsoftware_vendors—
VULN/VENDOR_REFERENCE_LIST/VENDOR_REFERENCE/IDvendor_refs—
VULN/BUGTRAQ_LIST/BUGTRAQ/IDbugtraq_ids—
VULN/DISCOVERY/REMOTEdiscovery_remote—1 when the QID is remotely detectable
VULN/DISCOVERY/AUTH_TYPE_LIST/AUTH_TYPEauth_types—Authentication types the QID needs
VULN/SUPPORTED_MODULESsupported_modules—
VULN/PUBLISHED_DATETIMEpublished_datetime—
VULN/LAST_SERVICE_MODIFICATION_DATETIMElast_service_modification_datetime—
VULN/CODE_MODIFIED_DATETIMEcode_modified_datetime—
The remaining VULN childrenraw—

CVSS v2 and v3 stay in separate columns because Qualys keeps them as separate blocks. There is no merged "CVSS score" column, and a QID may carry either, both or neither.


Severity crosswalk

RAD's shared vulnerability views present a normalized severity band (Critical, High, Medium, Low). The Qualys VMDR integration does not: severity is the Qualys 1–5 level exactly as Qualys scanned it.

Qualys' own definitions:

Qualys severityQualys nameMeaning
5UrgentIntruders can easily gain control of the host, which can lead to the compromise of your entire network security
4CriticalIntruders can possibly gain control of the host
3Serious
2Medium
1Minimal

The normalized band was derived from the Qualys level by adding one and capping at the top band. That is why the two ladders do not line up:

Qualys severityNormalized band in the shared viewsNative query
5 (Urgent)Criticalseverity:5
4 (Critical)Criticalseverity:4
3 (Serious)Highseverity:3
2 (Medium)Mediumseverity:2
1 (Minimal)Lowseverity:1

Every band shifts by one rung. A dashboard tile that counted normalized Critical becomes severity:5 OR severity:4 — and if you translate it to severity:5 alone, the tile drops by the whole Qualys-4 population. In the same change, the Medium/Low tiles grow, because Qualys 3 and 2 move down out of High and Medium.

Translate the whole ladder in one pass. Migrating a single tile makes the dashboard look broken.

Two other scores are available per detection and answer different questions:

  • QDS (qds, 1–100) is Qualys' own per-detection risk score, built from threat intelligence and mitigating controls. It is not a rescaled severity and routinely disagrees with it — a severity 5 with no known exploit can score low.
  • EPSS (epss) is the exploit-prediction probability, when Qualys supplies it.

Sorting by severity and sorting by qds will not produce the same list. Pick the one that matches the question you are asking.


Fields planned for a later wave

FieldStatus
MAC addressThe Host List API does not emit it. The mac column is reserved and stays empty; populating it requires the Qualys Asset Management (QPS) API and is planned as a follow-up. No schema change will be needed when it lands.
Network interface inventorySame source, same follow-up. Per-interface addresses are not available from the APIs this integration uses.
Reports (list and download)The Qualys Report Share surface is not part of this integration and is committed for a follow-up release. The date is confirmed in your cutover brief.
Device inventory enrichmentWhere host assets are mirrored into RAD's shared device inventory, those rows carry identity fields only. Tags, asset groups and TruRisk scores stay on qualys_hosts. Mirroring tags onto the device record is an optional follow-up, not part of this release.

Query horizon

Queries are windowed, and the window reaches back 90 days from whichever Qualys clock you filter on. first_found_datetime, last_found_datetime and last_fixed_datetime widen the window for you.

Beyond 90 days the query surfaces do not reach: "everything we fixed last year" and multi-quarter MTTR trends are out of scope. Full history is retained in storage and can be queried by RAD support on request.


Next Steps