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/SSLssl0 when absent
DETECTION/FQDNfqdnEmpty when absent
DETECTION/SERVICEserviceEmpty when absent
idRAD's stable key over the seven components above plus the integration
timestampWhen 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_ignoredRAD pulls ignored detections rather than hiding them
DETECTION/IS_DISABLEDis_disabledSame 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_idQualys' own detection ID, for cross-reference into the console
DETECTION/RESULTSresultsScan evidence; excluded from list responses, present on the detail record. Capped at 32 KiB with a visible marker
results_truncated1 when the cap applied

Scoring

Qualys fieldColumnFilter labelNotes
DETECTION/QDSqdsQDSQualys Detection Score, 1–100
DETECTION/QDS@severityqds_severityQualys' QDS band
DETECTION/QDS_FACTORSqds_factorsThe 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_idThe CSAM asset ID
HOST/QG_HOSTIDqg_hostidCloud 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/DNSdnsFull-text searchable
HOST/DNS_DATA/HOSTNAMEdns_hostname
HOST/DNS_DATA/DOMAINdns_domain
HOST/NETBIOSnetbiosFull-text searchable
HOST/OSosOS
os_cpeAlways empty — not emitted by the Host List API
HOST/NETWORK_IDnetwork_id
network_nameAlways empty — not emitted by the Host List API
HOST/TAGS/TAG/NAMEtagsTag
HOST/TAGS/TAG/TAG_IDtag_idsIndex-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_regionPopulated for EC2; sparse for other providers
HOST/METADATA account attributecloud_accountPopulated for EC2; sparse for other providers
HOST/CLOUD_RESOURCE_IDcloud_resource_id
HOST/EC2_INSTANCE_IDec2_instance_id
macReserved, always empty — see wave-2 fields
HOST/SERIAL_NUMBERserial_numberFull-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_activityWidens the query window
HOST/LAST_VM_SCANNED_DATElast_vm_scanned_dateWidens the query window
HOST/LAST_VM_SCANNED_DURATIONlast_vm_scanned_duration-1 when absent
HOST/LAST_VM_AUTH_SCANNED_DATElast_vm_auth_scanned_dateEmpty means no authenticated scan — treat that host's results as surface-level
HOST/FIRST_FOUND_DATEfirst_found_date
HOST/TRURISK_SCOREtrurisk_score0–1000; -1 when absent
HOST/ASSET_CRITICALITY_SCOREasset_criticality_score1–5; -1 when absent
HOST/TRURISK_SCORE_FACTORStrurisk_score_factorsJSON
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/DIAGNOSISdiagnosisDetail record only; full-text searchable
VULN/CONSEQUENCEconsequenceDetail record only; full-text searchable
VULN/SOLUTIONsolutionDetail record only; full-text searchable. Capped at 64 KiB with a visible marker
solution_truncated1 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_remote1 when the QID is remotely detectable
VULN/DISCOVERY/AUTH_TYPE_LIST/AUTH_TYPEauth_typesAuthentication 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