Enterprise TruRisk™ Platform Release 10.40 API 

September 1, 2026

In the API Release Notes, <qualys_base_url> is used as a sample API request to represent the API server URL. To learn more about the API server URL for your environment, refer to the Know Your Qualys API Server URL section.

API versioning is supported across Qualys APIs. To learn more about versioning standards and deprecation timelines, refer to the Updates on API Versioning Standards & Deprecation Timelines blog.

Qualys Vulnerability Management (VM)

Asset Search Report API: Filter Last Scan Dates for Specific Scan Types

New or Updated API Updated
API Endpoint  /api/2.0/fo/report/asset/
EOS Timeline: February 2027
EOL Timeline: August 2027
API Endpoint
(New Version)
/api/3.0/fo/report/asset/
Method GET
DTD or XSD changes Yes

You can now retrieve the last VM Agent Scan Date, last VM Scanner (ML) Scan Date, and last VM Flex Scan Date for each asset using Asset Search API. Previously, the Asset Search API returned only one generic last scan date (LAST_SCAN_DATE) for each asset, regardless of whether your account had merging enabled. It was difficult to determine whether the most recent activity came from a cloud agent, a scanner-based scan, or a flex scan. This enhancement provides greater visibility into scan sources and enables more detailed reporting and asset tracking.

The Asset Search API now returns the following elements:

  • LAST_VM_SCANNER_SCAN_DATE
  • LAST_VM_AGENT_SCAN_DATE
  • LAST_VM_FLEX_SCAN_DATE

You can also filter API responses using VM scan date criteria to identify assets scanned within or outside a specified time range (Filtering is limited to a 0–730 day range). The new elements are available in XML and CSV file formats.

 The elements are available only if you have an active Vulnerability Management Scan Process (VMSP) subscription on your account. To enable the VMSP, contact your Technical Account Manager (TAM) or Qualys Support.

Sample - Filter Last Scan Dates for specific Scan TypesSample - Filter Last Scan Dates for specific Scan Types

API  Request

curl --location '<qualys_base_url>/api/3.0/fo/report/asset/?action=search&output_format=csv&asset_groups=All&vm_agent_scan_modifier=within&vm_agent_scan_days=10&vm_ml_scan_modifier=within&vm_ml_scan_days=10&vm_flex_scan_modifier=within&vm_flex_scan_days=10%27 \
--header 'X-Requested-With: curl demo2'

API Response

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ASSET_SEARCH_REPORT SYSTEM "<qualys_base_url>/asset_search_report_v3.dtd">
<ASSET_SEARCH_REPORT>
    <HEADER>
        <COMPANY>
            <![CDATA[VMSP]]>
        </COMPANY>
        <USERNAME>username</USERNAME>
        <GENERATION_DATETIME>2026-08-25T06:06:51Z</GENERATION_DATETIME>
        <TOTAL>1</TOTAL>
        <FILTERS>
            <ASSET_GROUPS>
                <ASSET_GROUP_TITLE>
                    <![CDATA[All]]>
                </ASSET_GROUP_TITLE>
            </ASSET_GROUPS>
            <FILTER_VM_AGENT_SCAN_DATE>
                <![CDATA[Within 10]]>
            </FILTER_VM_AGENT_SCAN_DATE>
            <FILTER_VM_ML_SCAN_DATE>
                <![CDATA[Within 10]]>
            </FILTER_VM_ML_SCAN_DATE>
            <FILTER_VM_FLEX_SCAN_DATE>
                <![CDATA[Within 10]]>
            </FILTER_VM_FLEX_SCAN_DATE>
        </FILTERS>
    </HEADER>
    <HOST_LIST>
        <HOST>
            <IP>
                <![CDATA[xx.xx.xxx.xxx]]>
            </IP>
            <TRACKING_METHOD>QAGENT</TRACKING_METHOD>
            <CLOUD_PROVIDER></CLOUD_PROVIDER>
            <CLOUD_SERVICE></CLOUD_SERVICE>
            <CLOUD_RESOURCE_ID>
                <![CDATA[]]>
            </CLOUD_RESOURCE_ID>
            <!-- <EC2_INSTANCE_ID> tag has been deprecated. Please refer to <CLOUD_RESOURCE_ID> tag for the same information //-->
            <EC2_INSTANCE_ID>
                <![CDATA[]]>
            </EC2_INSTANCE_ID>
            <OS_CPE>
                <![CDATA[cpe:/o:microsoft:windows_server_2016:1607::x64:]]>
            </OS_CPE>
            <NETWORK>
                <![CDATA[Global Default Network]]>
            </NETWORK>
            <LAST_SCAN_DATE>2026-05-08T09:22:05Z</LAST_SCAN_DATE>
            <LAST_VM_AGENT_SCAN_DATE>2026-08-19T00:00:00Z</LAST_VM_AGENT_SCAN_DATE>
            <LAST_VM_SCANNER_SCAN_DATE>2026-08-18T00:00:00Z</LAST_VM_SCANNER_SCAN_DATE>
            <LAST_VM_FLEX_SCAN_DATE>2026-08-20T00:00:00Z</LAST_VM_FLEX_SCAN_DATE>

            <FIRST_FOUND_DATE>2025-02-04T11:43:12Z</FIRST_FOUND_DATE>
            <LAST_COMPLIANCE_SCAN_DATE>2025-02-06T18:25:11Z</LAST_COMPLIANCE_SCAN_DATE>
        </HOST>
    </HOST_LIST>
</ASSET_SEARCH_REPORT>

DTD Output for Asset Search ReportDTD Output for Asset Search Report

A DTD for Asset Search Report API has been added.
<platform API server>/api/3.0/fo/scan/schedules/runhistory/status_output.dtd

DTD output for Asset Search Report API is as follows:

DTD Output

<!-- V3.0 CHANGE: Added VM scan date fields (LAST_VM_AGENT_SCAN_DATE, LAST_VM_SCANNER_SCAN_DATE, LAST_VM_FLEX_SCAN_DATE) -->
<!ELEMENT ASSET_SEARCH_REPORT (ERROR | (HEADER, HOST_LIST?))>
<!ELEMENT ERROR (#PCDATA)*>
<!ATTLIST ERROR number CDATA #IMPLIED>
<!-- HEADER -->
<!ELEMENT HEADER (REQUEST?, COMPANY, USERNAME, GENERATION_DATETIME, TOTAL?, FILTERS)>
<!-- REQUEST Header -->
<!ELEMENT REQUEST (DATETIME, USER_LOGIN, RESOURCE, PARAM_LIST?, POST_DATA?)>
<!ELEMENT DATETIME (#PCDATA)>
<!ELEMENT USER_LOGIN (#PCDATA)>
<!ELEMENT RESOURCE (#PCDATA)>
<!ELEMENT PARAM_LIST (PARAM+)>
<!ELEMENT PARAM (KEY, VALUE)>
<!ELEMENT KEY (#PCDATA)>
<!ELEMENT VALUE (#PCDATA)>
<!-- if returned, POST_DATA will be urlencoded -->
<!ELEMENT POST_DATA (#PCDATA)>
<!ELEMENT COMPANY (#PCDATA)>
<!ELEMENT USERNAME (#PCDATA)>
<!ELEMENT GENERATION_DATETIME (#PCDATA)>
<!ELEMENT FILTERS ((IP_LIST|ASSET_GROUPS|ASSET_TAGS|FILTER_DNS|FILTER_NETBIOS|FILTER_AZURE_VM_ID|FILTER_GCP_VM_INSTANCE_ID|FILTER_OCI_INSTANCE_ID|TRACKING_METHOD|
                    FILTER_OPERATING_SYSTEM|FILTER_OS_CPE|FILTER_PORT|FILTER_SERVICE|
                    FILTER_QID|FILTER_RESULT|FILTER_LAST_SCAN_DATE|FILTER_FIRST_FOUND_DATE|NETWORK|FILTER_DISPLAY_AG_TITLES|FILTER_QID_WITH_TEXT|FILTER_LAST_COMPLIANCE_SCAN_DATE|FILTER_LAST_SCAP_SCAN_DATE|FILTER_AZURE_VM_STATE|FILTER_GCP_VM_INSTANCE_STATE|FILTER_OCI_INSTANCE_STATE|FILTER_VM_AGENT_SCAN_DATE|FILTER_VM_ML_SCAN_DATE|FILTER_VM_FLEX_SCAN_DATE)+)>
<!ELEMENT IP_LIST (RANGE*)>
<!ELEMENT RANGE (START, END)>
<!ELEMENT START (#PCDATA)>
<!ELEMENT END (#PCDATA)>
<!ELEMENT ASSET_GROUPS (ASSET_GROUP_TITLE+)>
<!ELEMENT ASSET_GROUP_TITLE (#PCDATA)>
<!ELEMENT NETWORK (#PCDATA)>
<!ELEMENT ASSET_TAGS (INCLUDED_TAGS, EXCLUDED_TAGS?)>
<!ELEMENT INCLUDED_TAGS (ASSET_TAG*)>
<!ATTLIST INCLUDED_TAGS scope CDATA #IMPLIED>
<!ELEMENT EXCLUDED_TAGS (ASSET_TAG*)>
<!ATTLIST EXCLUDED_TAGS scope CDATA #IMPLIED>
<!ELEMENT ASSET_TAG (#PCDATA)>
<!ELEMENT FILTER_DNS (#PCDATA)>
<!ATTLIST FILTER_DNS criterion CDATA #IMPLIED>
<!ELEMENT FILTER_NETBIOS (#PCDATA)>
<!ATTLIST FILTER_NETBIOS criterion CDATA #IMPLIED>
<!ELEMENT FILTER_AZURE_VM_ID (#PCDATA)>
<!ELEMENT FILTER_GCP_VM_INSTANCE_ID (#PCDATA)>
<!ELEMENT FILTER_OCI_INSTANCE_ID (#PCDATA)>
<!ELEMENT TRACKING_METHOD (#PCDATA)>
<!ELEMENT FILTER_OPERATING_SYSTEM (#PCDATA)>
<!ATTLIST FILTER_OPERATING_SYSTEM criterion CDATA #IMPLIED>
<!ELEMENT FILTER_OS_CPE (#PCDATA)>
<!ELEMENT FILTER_PORT (#PCDATA)>
<!ELEMENT FILTER_SERVICE (#PCDATA)>
<!ELEMENT FILTER_QID (#PCDATA)>
<!ELEMENT FILTER_RESULT (#PCDATA)>
<!ATTLIST FILTER_RESULT criterion CDATA #IMPLIED>
<!ELEMENT FILTER_LAST_SCAN_DATE (#PCDATA)>
<!ATTLIST FILTER_LAST_SCAN_DATE criterion CDATA #IMPLIED>
<!ELEMENT FILTER_LAST_COMPLIANCE_SCAN_DATE (#PCDATA)>
<!ATTLIST FILTER_LAST_COMPLIANCE_SCAN_DATE criterion CDATA #IMPLIED>
<!ELEMENT FILTER_LAST_SCAP_SCAN_DATE (#PCDATA)>
<!ATTLIST FILTER_LAST_SCAP_SCAN_DATE criterion CDATA #IMPLIED>
<!ELEMENT FILTER_FIRST_FOUND_DATE (#PCDATA)>
<!-- V3.0 CHANGE: Added VM scan date filter elements -->
<!ELEMENT FILTER_VM_AGENT_SCAN_DATE (#PCDATA)>
<!ATTLIST FILTER_VM_AGENT_SCAN_DATE criterion CDATA #IMPLIED>
<!ELEMENT FILTER_VM_ML_SCAN_DATE (#PCDATA)>
<!ATTLIST FILTER_VM_ML_SCAN_DATE criterion CDATA #IMPLIED>
<!ELEMENT FILTER_VM_FLEX_SCAN_DATE (#PCDATA)>
<!ATTLIST FILTER_VM_FLEX_SCAN_DATE criterion CDATA #IMPLIED>
<!ELEMENT FILTER_DISPLAY_AG_TITLES (#PCDATA)>
<!ELEMENT FILTER_QID_WITH_TEXT (#PCDATA)>
<!ELEMENT FILTER_AZURE_VM_STATE (#PCDATA)>
<!ELEMENT FILTER_GCP_VM_INSTANCE_STATE (#PCDATA)>
<!ELEMENT FILTER_OCI_INSTANCE_STATE (#PCDATA)>
<!ELEMENT TOTAL (#PCDATA)>
<!-- HOST_LIST -->
<!ELEMENT HOST_LIST ((HOST|WARNING)*)>
<!ELEMENT HOST (ERROR | (IP?,HOST_TAGS?,TRACKING_METHOD,
                         DNS?, CLOUD_PROVIDER?, CLOUD_SERVICE?, CLOUD_RESOURCE_ID?, EC2_INSTANCE_ID?, NETBIOS?, OPERATING_SYSTEM?, OS_CPE?, QID_LIST?, PORT_SERVICE_LIST?,
                         ASSET_GROUPS?, NETWORK?, LAST_SCAN_DATE?, LAST_VM_AGENT_SCAN_DATE?, LAST_VM_SCANNER_SCAN_DATE?, LAST_VM_FLEX_SCAN_DATE?, FIRST_FOUND_DATE?, LAST_COMPLIANCE_SCAN_DATE?, LAST_SCAP_SCAN_DATE?))>
<!ELEMENT IP (#PCDATA)>
<!ATTLIST IP network_id CDATA #IMPLIED>
<!ELEMENT HOST_TAGS (#PCDATA)>
<!ELEMENT DNS (#PCDATA)>
<!ELEMENT CLOUD_PROVIDER (#PCDATA)>
<!ELEMENT CLOUD_SERVICE (#PCDATA)>
<!ELEMENT CLOUD_RESOURCE_ID (#PCDATA)>
<!ELEMENT EC2_INSTANCE_ID (#PCDATA)>
<!ELEMENT NETBIOS (#PCDATA)>
<!ELEMENT OPERATING_SYSTEM (#PCDATA)>
<!ELEMENT OS_CPE (#PCDATA)>
<!ELEMENT QID_LIST (QID+)>
<!ELEMENT QID (ID, RESULT?)>
<!ELEMENT ID (#PCDATA)>
<!-- if format is set to "table" -->
<!-- tab '\t' is the col separator -->
<!-- and new line '\n' is the end of row -->
<!ELEMENT RESULT (#PCDATA)>
<!ATTLIST RESULT
    format CDATA #IMPLIED
>
<!ELEMENT PORT_SERVICE_LIST (PORT_SERVICE+)>
<!ELEMENT PORT_SERVICE (PORT, SERVICE, DEFAULT_SERVICE?)>
<!ELEMENT PORT (#PCDATA)>
<!ELEMENT SERVICE (#PCDATA)>
<!ELEMENT DEFAULT_SERVICE (#PCDATA)>
<!ELEMENT LAST_SCAN_DATE (#PCDATA)>
<!ELEMENT LAST_COMPLIANCE_SCAN_DATE (#PCDATA)>
<!ELEMENT LAST_SCAP_SCAN_DATE (#PCDATA)>
<!ELEMENT FIRST_FOUND_DATE (#PCDATA)>
<!-- V3.0 CHANGE: Added VM scan date fields -->
<!ELEMENT LAST_VM_AGENT_SCAN_DATE (#PCDATA)>
<!ELEMENT LAST_VM_SCANNER_SCAN_DATE (#PCDATA)>
<!ELEMENT LAST_VM_FLEX_SCAN_DATE (#PCDATA)>

<!ELEMENT WARNING (#PCDATA)>
<!ATTLIST WARNING number CDATA #IMPLIED>

VM Scan Schedule API: Track Scheduled Scan Health in Real Time with the New Run History Status

New or Updated API Updated
API Endpoint  /api/2.0/fo/scan/schedules/runhistory/
EOS Timeline: February 2027
EOL Timeline: August 2027
API Endpoint
(New Version)
/api/3.0/fo/scan/schedules/runhistory/
Method GET
DTD or XSD changes  

You can now retrieve and check the latest execution status for one or more scheduled scans to help you monitor and track their activity in real time. Previously, the list action provided run history details for the most recent "N" scan references for the scheduled scans by returning recent scan references associated with a schedule ID.

With the new status action, you can retrieve the latest execution status for a scheduled scan, along with relevant run details and a message describing the reason for delayed, skipped, queued, canceled, or failed executions. The response includes only the latest run record for each requested schedule ID, rather than the complete run history, enabling faster and more efficient status checks.

Prerequiste: Only users with the Manager, Unit Manager, or Scanner role can use this action.

You Can now Retrieve the latest scheduled scan status, including:

  • Schedule name
  • Current status
  • Launch date and time
  • Scan reference number
  • Next scheduled launch date
  • Status message describing the execution outcome or issue encountered

The API supports both XML and JSON output formats.

Input ParametersInput Parameters

Parameter Required/Optional Data Type  Description
 action=status  Required String Specify action to provide the status  for one or more scheduled scans.

Sample - To display the status of the given Schedule IDs in XML formatSample - To display the status of the given Schedule IDs in XML format

API  Request

curl --location '<qualys_base_url>/api/3.0/fo/scan/schedules/runhistory/index.php?action=status&output_format=xml&schedule_scan_ids=3127299%2C3128886%2C3127648' 
--header 'X-Requested-With: curl' 
--header 'Authorization: Bearer <JWT Token>' 
--header 'Cookie: DWRSESSIONID=30a1b6ea31630d2edfc86b1125973857;

API Response

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SCHEDULES_STATUS SYSTEM "<qualys_base_url>/api/3.0/fo/scan/schedules/runhistory/status_output.dtd">
<!-- This report was generated with an evaluation version of Qualys //-->
<SCHEDULES_STATUS>
    <RESPONSE>
        <DATETIME>2026-08-24T10:11:09Z</DATETIME>
        <SCHEDULE_LIST>
            <SCHEDULE id="3127299">
                <SCHEDULE_ID>3127299</SCHEDULE_ID>
                <SCHEDULE_NAME>ScheduleTestActionStatus</SCHEDULE_NAME>
                <NEXT_LAUNCH_DATE>08/24/2026 10:21:00</NEXT_LAUNCH_DATE>
                <status>SUCCESS</status>
                <launch_date>08/23/2026 10:21:40</launch_date>
                <scan_ref_number>scan/1787480500.37475</scan_ref_number>
                <message>Scheduled scan launched successfully.</message>
            </SCHEDULE>
            <SCHEDULE id="3128886">
                <SCHEDULE_ID>3128886</SCHEDULE_ID>
                <SCHEDULE_NAME>VM-48918_LatestSceduleScanStatusTest</SCHEDULE_NAME>
                <NEXT_LAUNCH_DATE>08/25/2026 07:33:00</NEXT_LAUNCH_DATE>
                <status>SUCCESS</status>
                <launch_date>08/24/2026 07:33:49</launch_date>
                <scan_ref_number>scan/1787556828.37917</scan_ref_number>
                <message>Scheduled scan launched successfully.</message>
            </SCHEDULE>
        </SCHEDULE_LIST>
    </RESPONSE>
</SCHEDULES_STATUS>

Sample - To Display the status of the given Schedule IDs in JSON formatSample - To Display the status of the given Schedule IDs in JSON format

API  Request

curl --location '<qualys_base_url>/api/3.0/fo/scan/schedules/runhistory/index.php?action=status&output_format=json&schedule_scan_ids=3127299%2C3128886%2C3127648' 
--header 'X-Requested-With: curl' 
--header 'Authorization: Bearer <JWT Token>' 
--header 'Cookie: DWRSESSIONID=30a1b6ea31630d2edfc86b1125973857;

API Response

 {
    "SCHEDULES_STATUS": {
        "RESPONSE": {
            "DATETIME": "2026-08-24T10:15:27Z",
            "SCHEDULE_LIST": [
                {
                    "SCHEDULE": {
                        "@id": 3127299,
                        "SCHEDULE_ID": "3127299",
                        "SCHEDULE_NAME": "ScheduleTestActionStatus",
                        "NEXT_LAUNCH_DATE": "08/24/2026 10:21:00",
                        "status": "SUCCESS",
                        "launch_date": "08/23/2026 10:21:40",
                        "scan_ref_number": "scan/1787480500.37475",
                        "message": "Scheduled scan launched successfully."

                    }
                },
                {
                    "SCHEDULE": {
                        "@id": 3128886,
                        "SCHEDULE_ID": "3128886",
                        "SCHEDULE_NAME": "VM-48918_LatestSceduleScanStatusTest",
                        "NEXT_LAUNCH_DATE": "08/25/2026 07:33:00",
                        "status": "SUCCESS",
                        "launch_date": "08/24/2026 07:33:49",
                        "scan_ref_number": "scan/1787556828.37917",
                        "message": "Scheduled scan launched successfully."
                    }
                }
            ]
        }
    }
}

DTD OutputDTD Output

A DTD for VM Scan Schedule API has been added.
<platform API server>/3.0/fo/scan/schedules/runhistory/status_output.dtd

DTD output for VM Scan Schedule API is as follows:

<qualys_base_url>/api/3.0/fo/scan/schedules/runhistory/status_output.dtd 
<!ELEMENT SCHEDULES_STATUS (RESPONSE)>
<!ELEMENT RESPONSE (DATETIME, SCHEDULE_LIST)>
<!ELEMENT DATETIME (#PCDATA)>
<!ELEMENT SCHEDULE_LIST (SCHEDULE+)>
<!ELEMENT SCHEDULE (SCHEDULE_ID, SCHEDULE_NAME, NEXT_LAUNCH_DATE, status, launch_date, scan_ref_number, message)>
<!ATTLIST SCHEDULE id CDATA #REQUIRED>
<!ELEMENT SCHEDULE_ID (#PCDATA)>
<!ELEMENT SCHEDULE_NAME (#PCDATA)>
<!ELEMENT NEXT_LAUNCH_DATE (#PCDATA)>
<!ELEMENT status (#PCDATA)>
<!ELEMENT launch_date (#PCDATA)>
<!ELEMENT scan_ref_number (#PCDATA)>

<!ELEMENT message (#PCDATA)>

Scanner Appliance API:

View Scanner Appliance Hardware Resources Specifications at a Glance

New or Updated API Updated
API Endpoint  /api/2.0/fo/appliance/
EOS Timeline: February 2027
EOL Timeline: August 2027
API Endpoint
(New Version)
/api/3.0/fo/appliance/
Method GET
DTD or XSD changes  

You can now retrieve the following hardware resource information for scanner appliances using this API.

  • Total vCPUs
  • Total Memory (GiB)
  • Total Swap (GiB)
  • Total Disk (GiB)

To provide the details of the resource information, the following elements are available in the API response

  • HW_CPU_NUM_VCPUS
  • HW_MEM_MEMTOTAL_GB
  • HW_MEM_SWAPTOTAL_GB
  • HW_DISK_SIZE_GB

Previously, the Appliance List API returned basic scanner appliance details, such as software version, status, and capacity. This enhancement enables you to access scanner resource details and better understand appliance sizing and capacity.

Expected Behavior

  • When you provide the request with input parameter, output_mode set to full, the new hardware fields are returned in the response.
  • If hardware data is unavailable or is not reported for a scanner appliance, the corresponding field is returned as an empty element
  • Hardware values reflect the most recent data reported by the scanner appliance.

Sample - List the Hardware Resource Specifications for Scanner AppliancesSample - List the Hardware Resource Specifications for Scanner Appliances

API  Request

curl --location '<qualys_base_url>/api/3.0/fo/appliance/?action=list&output_mode=full&ids=1234574%2C1234572%27 \
--header 'X-Requested-With: Curl'

API Response

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE APPLIANCE_LIST_OUTPUT SYSTEM "
<qualys_base_url>/api/3.0/fo/appliance/appliance_list_output.dtd">
    <APPLIANCE_LIST_OUTPUT>
        <RESPONSE>
            <DATETIME>2026-08-25T05:36:03Z</DATETIME>
            <APPLIANCE_LIST>
                <APPLIANCE>
                    <ID>1234572</ID>
                    <UUID>0a10d350-c4e3-660a-819c-9f1e3a33ac86</UUID>
                    <NAME>Azure_Internal_Scanner_vmsp_ag1</NAME>
                    <NETWORK_ID>0</NETWORK_ID>
                    <SOFTWARE_VERSION eos="yes">qVSA-Azure.x86_64-3.10.72-2</SOFTWARE_VERSION>
                    <RUNNING_SLICES_COUNT>0</RUNNING_SLICES_COUNT>
                    <RUNNING_SCAN_COUNT>0</RUNNING_SCAN_COUNT>
                    <STATUS>Online</STATUS>
                    <MODEL_NUMBER>cvscanner</MODEL_NUMBER>
                    <TYPE>Virtual</TYPE>
                    <SERIAL_NUMBER>0</SERIAL_NUMBER>
                    <ACTIVATION_CODE>70111688328344</ACTIVATION_CODE>
                    <INTERFACE_SETTINGS>
                        <INTERFACE>lan</INTERFACE>
                        <IP_ADDRESS>xx.xx.xx.xx</IP_ADDRESS>
                        <NETMASK>xxx.xxx.xxx.x</NETMASK>
                        <GATEWAY>xx.xx.xx.x</GATEWAY>
                        <LEASE>Dynamic</LEASE>
                        <SPEED>0</SPEED>
                        <DUPLEX>Unknown</DUPLEX>
                        <DNS>
                            <DOMAIN>reddog.microsoft.com</DOMAIN>
                            <PRIMARY>xx.xx.xx.xx</PRIMARY>
                            <SECONDARY>xx.xx.xx.xx</SECONDARY>
                        </DNS>
                    </INTERFACE_SETTINGS>
                    <INTERFACE_SETTINGS>
                        <SETTING>Disabled</SETTING>
                        <INTERFACE>wan</INTERFACE>
                        <IP_ADDRESS></IP_ADDRESS>
                        <NETMASK>xxx.x.x.x</NETMASK>
                        <GATEWAY>xxx.x.x.x</GATEWAY>
                        <LEASE>Static</LEASE>
                        <SPEED>0</SPEED>
                        <DUPLEX>Unknown</DUPLEX>
                        <DNS>
                            <PRIMARY>xxx.x.x.x</PRIMARY>
                            <SECONDARY>xxx.x.x.x</SECONDARY>
                        </DNS>
                    </INTERFACE_SETTINGS>
                    <PROXY_SETTINGS>
                        <SETTING>Disabled</SETTING>
                        <PROXY>
                            <IP_ADDRESS>x.x.x.x</IP_ADDRESS>
                            <PORT>8080</PORT>
                            <USER></USER>
                        </PROXY>
                    </PROXY_SETTINGS>
                    <VLANS>
                        <SETTING>Disabled</SETTING>
                    </VLANS>
                    <STATIC_ROUTES />
                    <ML_LATEST>15.0.1-1</ML_LATEST>
                    <ML_VERSION updated="yes">15.0.1-1</ML_VERSION>
                    <VULNSIGS_LATEST>2.6.682-2</VULNSIGS_LATEST>
                    <VULNSIGS_VERSION updated="yes">2.6.682-2</VULNSIGS_VERSION>
                    <ASSET_GROUP_COUNT>0</ASSET_GROUP_COUNT>
                    <ASSET_GROUP_LIST />
                    <ASSET_TAGS_LIST />
                    <LAST_UPDATED_DATE>2026-08-25T02:04:12Z</LAST_UPDATED_DATE>
                    <POLLING_INTERVAL>180 seconds</POLLING_INTERVAL>
                    <USER_LOGIN>vmsp_ag1</USER_LOGIN>
                    <HEARTBEATS_MISSED>0</HEARTBEATS_MISSED>
                    <SS_CONNECTION>Active</SS_CONNECTION>
                    <SS_LAST_CONNECTED>2026-08-25T05:33:00Z</SS_LAST_CONNECTED>
                    <FDCC_ENABLED>No</FDCC_ENABLED>
                    <USER_LIST />
                    <UPDATED>Yes</UPDATED>
                    <COMMENTS>
                        <![CDATA[]]>
                    </COMMENTS>
                    <MAX_CAPACITY_UNITS>100</MAX_CAPACITY_UNITS>
                    <HW_CPU_NUM_VCPUS>4</HW_CPU_NUM_VCPUS>
                    <HW_MEM_MEMTOTAL_GB>7.80</HW_MEM_MEMTOTAL_GB>
                    <HW_MEM_SWAPTOTAL_GB>15.62</HW_MEM_SWAPTOTAL_GB>
                    <HW_DISK_SIZE_GB>56.00</HW_DISK_SIZE_GB>

                </APPLIANCE>
                <APPLIANCE>
                    <ID>1234574</ID>
                    <UUID>e4b66521-3e62-c332-83c2-4e016fd92652</UUID>
                    <NAME>Azure_Internal_Scanner_New</NAME>
                    <NETWORK_ID>0</NETWORK_ID>
                    <SOFTWARE_VERSION eos="yes">qVSA-Azure.x86_64-3.10.72-2</SOFTWARE_VERSION>
                    <RUNNING_SLICES_COUNT>0</RUNNING_SLICES_COUNT>
                    <RUNNING_SCAN_COUNT>0</RUNNING_SCAN_COUNT>
                    <STATUS>Online</STATUS>
                    <MODEL_NUMBER>cvscanner</MODEL_NUMBER>
                    <TYPE>Virtual</TYPE>
                    <SERIAL_NUMBER>0</SERIAL_NUMBER>
                    <ACTIVATION_CODE>70172833843976</ACTIVATION_CODE>
                    <INTERFACE_SETTINGS>
                        <INTERFACE>lan</INTERFACE>
                        <IP_ADDRESS>xx.xx.xx.xx</IP_ADDRESS>
                        <NETMASK>xxx.xxx.xxx.0</NETMASK>
                        <GATEWAY>xx.xx.xx.x</GATEWAY>
                        <LEASE>Dynamic</LEASE>
                        <SPEED>0</SPEED>
                        <DUPLEX>Unknown</DUPLEX>
                        <DNS>
                            <DOMAIN>reddog.microsoft.com</DOMAIN>
                            <PRIMARY>xx.xx.xx.xx</PRIMARY>
                            <SECONDARY>xx.xx.xx.xx</SECONDARY>
                        </DNS>
                    </INTERFACE_SETTINGS>
                    <INTERFACE_SETTINGS>
                        <SETTING>Disabled</SETTING>
                        <INTERFACE>wan</INTERFACE>
                        <IP_ADDRESS></IP_ADDRESS>
                        <NETMASK>xxx.x.x.x</NETMASK>
                        <GATEWAY>xxx.x.x.x</GATEWAY>
                        <LEASE>Static</LEASE>
                        <SPEED>0</SPEED>
                        <DUPLEX>Unknown</DUPLEX>
                        <DNS>
                            <PRIMARY>xxx.x.x.x</PRIMARY>
                            <SECONDARY>xxx.x.x.x</SECONDARY>
                        </DNS>
                    </INTERFACE_SETTINGS>
                    <PROXY_SETTINGS>
                        <SETTING>Disabled</SETTING>
                        <PROXY>
                            <IP_ADDRESS>x.x.x.x</IP_ADDRESS>
                            <PORT>8080</PORT>
                            <USER></USER>
                        </PROXY>
                    </PROXY_SETTINGS>
                    <VLANS>
                        <SETTING>Disabled</SETTING>
                    </VLANS>
                    <STATIC_ROUTES />
                    <ML_LATEST>15.0.1-1</ML_LATEST>
                    <ML_VERSION updated="yes">15.0.1-1</ML_VERSION>
                    <VULNSIGS_LATEST>2.6.682-2</VULNSIGS_LATEST>
                    <VULNSIGS_VERSION updated="yes">2.6.682-2</VULNSIGS_VERSION>
                    <ASSET_GROUP_COUNT>2</ASSET_GROUP_COUNT>
                    <ASSET_GROUP_LIST>
                        <ASSET_GROUP>
                            <ID>56393202</ID>
                            <NAME>
                                <![CDATA[Nutanix_prism_central]]>
                            </NAME>
                        </ASSET_GROUP>
                        <ASSET_GROUP>
                            <ID>56493305</ID>
                            <NAME>
                                <![CDATA[AG_SM]]>
                            </NAME>
                        </ASSET_GROUP>
                    </ASSET_GROUP_LIST>
                    <ASSET_TAGS_LIST>
                        <ASSET_TAG>
                            <UUID>cb78901b-75d8-4f58-bfcd-6d973f48ab2f</UUID>
                            <NAME>
                                <![CDATA[BU_SM]]>
                            </NAME>
                        </ASSET_TAG>
                        <ASSET_TAG>
                            <UUID>77f7125f-5c83-462c-a74e-51dc736e080d</UUID>
                            <NAME>
                                <![CDATA[Nutanix_prism_central]]>
                            </NAME>
                        </ASSET_TAG>
                        <ASSET_TAG>
                            <UUID>a09cc5c7-f1e1-4431-8a37-2d36e650287a</UUID>
                            <NAME>
                                <![CDATA[AG_SM]]>
                            </NAME>
                        </ASSET_TAG>
                    </ASSET_TAGS_LIST>
                    <LAST_UPDATED_DATE>2026-08-25T05:07:16Z</LAST_UPDATED_DATE>
                    <POLLING_INTERVAL>180 seconds</POLLING_INTERVAL>
                    <USER_LOGIN>vmsp_ag1</USER_LOGIN>
                    <HEARTBEATS_MISSED>0</HEARTBEATS_MISSED>
                    <SS_CONNECTION>Active</SS_CONNECTION>
                    <SS_LAST_CONNECTED>2026-08-25T05:31:59Z</SS_LAST_CONNECTED>
                    <FDCC_ENABLED>No</FDCC_ENABLED>
                    <USER_LIST />
                    <UPDATED>Yes</UPDATED>
                    <COMMENTS>
                        <![CDATA[]]>
                    </COMMENTS>
                    <MAX_CAPACITY_UNITS>100</MAX_CAPACITY_UNITS>
                    <HW_CPU_NUM_VCPUS>4</HW_CPU_NUM_VCPUS>
                    <HW_MEM_MEMTOTAL_GB>7.80</HW_MEM_MEMTOTAL_GB>
                    <HW_MEM_SWAPTOTAL_GB>15.62</HW_MEM_SWAPTOTAL_GB>
                    <HW_DISK_SIZE_GB>56.00</HW_DISK_SIZE_GB>

                </APPLIANCE>
            </APPLIANCE_LIST>
        </RESPONSE>
    </APPLIANCE_LIST_OUTPUT>

DTD OutputDTD Output

A DTD for Scanner Appliance API has been added.
<platform API server>/api/3.0/fo/appliance/appliance_list_output.dtd

DTD output for Scanner Appliance API is as follows:

<!ELEMENT APPLIANCE_LIST_OUTPUT (REQUEST?,RESPONSE)>
<!ELEMENT REQUEST (DATETIME, USER_LOGIN, RESOURCE, PARAM_LIST?, POST_DATA?)>
<!ELEMENT DATETIME (#PCDATA)>
<!ELEMENT USER_LOGIN (#PCDATA)>
<!ELEMENT RESOURCE (#PCDATA)>
<!ELEMENT PARAM_LIST (PARAM+)>
<!ELEMENT PARAM (KEY, VALUE)>
<!ELEMENT KEY (#PCDATA)>
<!ELEMENT VALUE (#PCDATA)>
<!-- if returned, POST_DATA will be urlencoded -->
<!ELEMENT POST_DATA (#PCDATA)>
<!ELEMENT RESPONSE (DATETIME, APPLIANCE_LIST?, LICENSE_INFO?)>
<!ELEMENT APPLIANCE_LIST (APPLIANCE+)>
<!ELEMENT APPLIANCE (ID, UUID, NAME, NETWORK_ID?, SOFTWARE_VERSION, RUNNING_SLICES_COUNT, RUNNING_SCAN_COUNT, STATUS, POOL_OF_SCANNERS?, CMD_ONLY_START?, MODEL_NUMBER?, TYPE?, SERIAL_NUMBER?, ACTIVATION_CODE?, INTERFACE_SETTINGS*, PROXY_SETTINGS?, IS_CLOUD_DEPLOYED?, CLOUD_INFO?, VLANS?, STATIC_ROUTES?, ML_LATEST?, ML_VERSION?, VULNSIGS_LATEST?, VULNSIGS_VERSION?, ASSET_GROUP_COUNT?, ASSET_GROUP_LIST?, ASSET_TAGS_LIST?, LAST_UPDATED_DATE?, POLLING_INTERVAL?, USER_LOGIN?, HEARTBEATS_MISSED?, SS_CONNECTION?, SS_LAST_CONNECTED?, FDCC_ENABLED?, USER_LIST?, UPDATED?, COMMENTS?, RUNNING_SCANS?, MAX_CAPACITY_UNITS?, HW_CPU_NUM_VCPUS?, HW_MEM_MEMTOTAL_GB?, HW_MEM_SWAPTOTAL_GB?, HW_DISK_SIZE_GB?, CPU_INFO?, MEMORY_INFO?, REGION_INFO? )>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT UUID (#PCDATA)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT NETWORK_ID (#PCDATA)>
<!ELEMENT SOFTWARE_VERSION (#PCDATA)>
<!-- NEW IN V3.0: eos="yes" when the appliance image version is End-of-Support -->
<!ATTLIST SOFTWARE_VERSION eos CDATA #IMPLIED>
<!ELEMENT RUNNING_SLICES_COUNT (#PCDATA)>
<!ELEMENT RUNNING_SCAN_COUNT (#PCDATA)>
<!ELEMENT STATUS (#PCDATA)>
<!ELEMENT POOL_OF_SCANNERS (#PCDATA)>
<!ELEMENT CMD_ONLY_START (#PCDATA)>
<!ELEMENT MODEL_NUMBER (#PCDATA)>
<!ELEMENT SERIAL_NUMBER (#PCDATA)>
<!ELEMENT ACTIVATION_CODE (#PCDATA)>
<!ELEMENT INTERFACE_SETTINGS (SETTING?, INTERFACE, IP_ADDRESS, NETMASK, GATEWAY, LEASE, SPEED, DUPLEX, DNS)>
<!ELEMENT SETTING (#PCDATA)>
<!ELEMENT INTERFACE (#PCDATA)>
<!ELEMENT IP_ADDRESS (#PCDATA)>
<!ELEMENT NETMASK (#PCDATA)>
<!ELEMENT GATEWAY (#PCDATA)>
<!ELEMENT LEASE (#PCDATA)>
<!ELEMENT SPEED (#PCDATA)>
<!ELEMENT DUPLEX (#PCDATA)>
<!ELEMENT DNS (DOMAIN?, PRIMARY, SECONDARY)>
<!ELEMENT DOMAIN (#PCDATA)>
<!ELEMENT PRIMARY (#PCDATA)>
<!ELEMENT SECONDARY (#PCDATA)>
<!ELEMENT PROXY_SETTINGS (SETTING, PROXY*)>
<!ELEMENT PROXY (PROTOCOL?, IP_ADDRESS?, HOSTNAME?, PORT, USER)>
<!ELEMENT PROTOCOL (#PCDATA)>
<!ELEMENT HOSTNAME (#PCDATA)>
<!ELEMENT PORT (#PCDATA)>
<!ELEMENT USER (#PCDATA)>
<!ELEMENT IS_CLOUD_DEPLOYED (#PCDATA)>
<!ELEMENT CLOUD_INFO (PLATFORM_PROVIDER, EC2_INFO?, GCE_INFO?, AZURE_INFO?)>
<!ELEMENT PLATFORM_PROVIDER (#PCDATA)>
<!ELEMENT EC2_INFO (INSTANCE_ID, INSTANCE_TYPE, KERNEL_ID?, AMI_ID, ACCOUNT_ID,
                            INSTANCE_REGION, INSTANCE_AVAILABILITY_ZONE, INSTANCE_ZONE_TYPE,
                            INSTANCE_VPC_ID?, INSTANCE_SUBNET_ID?, IP_ADDRESS_PRIVATE?, HOSTNAME_PRIVATE?,
                            SECURITY_GROUPS?,
                            API_PROXY_SETTINGS)>
<!ELEMENT INSTANCE_ID (#PCDATA)>
<!ELEMENT INSTANCE_TYPE (#PCDATA)>
<!ELEMENT KERNEL_ID (#PCDATA)>
<!ELEMENT AMI_ID (#PCDATA)>
<!ELEMENT ACCOUNT_ID (#PCDATA)>
<!ELEMENT INSTANCE_REGION (#PCDATA)>
<!ELEMENT INSTANCE_AVAILABILITY_ZONE (#PCDATA)>
<!ELEMENT INSTANCE_ZONE_TYPE (#PCDATA)>
<!ELEMENT INSTANCE_VPC_ID (#PCDATA)>
<!ELEMENT INSTANCE_SUBNET_ID (#PCDATA)>
<!ELEMENT IP_ADDRESS_PRIVATE (#PCDATA)>
<!ELEMENT HOSTNAME_PRIVATE (#PCDATA)>
<!ELEMENT SECURITY_GROUPS (SECURITY_GROUP_IDS?, SECURITY_GROUP_NAMES?)>
<!ELEMENT SECURITY_GROUP_IDS (#PCDATA)>
<!ELEMENT SECURITY_GROUP_NAMES (#PCDATA)>
<!ELEMENT API_PROXY_SETTINGS (SETTING, PROXY*)>
<!ELEMENT GCE_INFO (INSTANCE_ID, MACHINE_TYPE,
                            PROJECT_ID, PROJECT_NAME,
                            PREEMPTIBLE,
                            INSTANCE_ZONE,
                            IP_ADDRESS_PRIVATE?, HOSTNAME_PRIVATE?, IP_ADDRESS_PUBLIC?,
                            INSTANCE_NETWORK,
                            GCE_INSTANCE_TAGS
                            )>
<!ELEMENT MACHINE_TYPE (#PCDATA)>
<!ELEMENT PROJECT_ID (#PCDATA)>
<!ELEMENT PROJECT_NAME (#PCDATA)>
<!ELEMENT PREEMPTIBLE (#PCDATA)>
<!ELEMENT INSTANCE_ZONE (#PCDATA)>
<!ELEMENT GCE_INSTANCE_TAGS (GCE_INSTANCE_TAG*)>
<!ELEMENT GCE_INSTANCE_TAG (TAG_ID)>
<!ELEMENT TAG_ID (#PCDATA)>
<!ELEMENT IP_ADDRESS_PUBLIC (#PCDATA)>
<!ELEMENT INSTANCE_NETWORK (#PCDATA)>
<!ELEMENT AZURE_INFO (INSTANCE_ID, USER_NAME,
                            INSTANCE_LOCATION, DEPLOYMENT_MODE,
                            IP_ADDRESS_PRIVATE?, HOSTNAME_PRIVATE?)>
<!ELEMENT USER_NAME (#PCDATA)>
<!ELEMENT INSTANCE_LOCATION (#PCDATA)>
<!ELEMENT DEPLOYMENT_MODE (#PCDATA)>
<!ELEMENT VLANS (SETTING, VLAN*)>
<!ELEMENT VLAN (ID, NAME, IP_ADDRESS?, NETMASK?)>
<!ELEMENT STATIC_ROUTES (ROUTE*)>
<!ELEMENT ROUTE (NAME, IP_ADDRESS?, NETMASK?, GATEWAY?)>
<!ELEMENT ML_LATEST (#PCDATA)>
<!ELEMENT ML_VERSION (#PCDATA)>
<!ATTLIST ML_VERSION updated CDATA #IMPLIED>
<!ELEMENT VULNSIGS_LATEST (#PCDATA)>
<!ELEMENT VULNSIGS_VERSION (#PCDATA)>
<!ATTLIST VULNSIGS_VERSION updated CDATA #IMPLIED>
<!ELEMENT ASSET_GROUP_COUNT (#PCDATA)>
<!ELEMENT ASSET_GROUP_LIST (ASSET_GROUP*)>
<!ELEMENT ASSET_GROUP (ID, NAME)>
<!ELEMENT ASSET_TAGS_LIST (ASSET_TAG*)>
<!ELEMENT ASSET_TAG (UUID, NAME)>
<!ELEMENT LAST_UPDATED_DATE (#PCDATA)>
<!ELEMENT POLLING_INTERVAL (#PCDATA)>
<!ELEMENT HEARTBEATS_MISSED (#PCDATA)>
<!ELEMENT SS_CONNECTION (#PCDATA)>
<!ELEMENT SS_LAST_CONNECTED (#PCDATA)>
<!ELEMENT FDCC_ENABLED (#PCDATA)>
<!ELEMENT USER_LIST (USER_ACCOUNT*)>
<!ELEMENT USER_ACCOUNT (ID, NAME)>
<!ELEMENT UPDATED (#PCDATA)>
<!ELEMENT COMMENTS (#PCDATA)>
<!ELEMENT RUNNING_SCANS (SCAN+)>
<!ELEMENT SCAN (ID, TITLE, REF, TYPE, SCAN_DATE)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT REF (#PCDATA)>
<!ELEMENT TYPE (#PCDATA)>
<!ELEMENT SCAN_DATE (#PCDATA)>
<!ELEMENT MAX_CAPACITY_UNITS (#PCDATA)>
<!-- NEW IN V3.0: Hardware resource fields -->
<!ELEMENT HW_CPU_NUM_VCPUS (#PCDATA)>
<!ELEMENT HW_MEM_MEMTOTAL_GB (#PCDATA)>
<!ELEMENT HW_MEM_SWAPTOTAL_GB (#PCDATA)>
<!ELEMENT HW_DISK_SIZE_GB (#PCDATA)>

<!-- END V3.0 additions -->
<!ELEMENT CPU_INFO (#PCDATA)>
<!ELEMENT MEMORY_INFO (#PCDATA)>
<!ELEMENT REGION_INFO (#PCDATA)>
<!ELEMENT LICENSE_INFO (QVSA_LICENSES_COUNT, QVSA_LICENSES_USED)>
<!ELEMENT QVSA_LICENSES_COUNT (#PCDATA)>
<!ELEMENT QVSA_LICENSES_USED (#PCDATA)>
<!-- EOF -->

Retrieve Scanner Platform Versions and End of Support Status for Scanner Appliances

New or Updated API Updated
API Endpoint  /api/2.0/fo/appliance/
EOS Timeline: February 2027
EOL Timeline: August 2027
API Endpoint
(New Version)
/api/3.0/fo/appliance/
Method GET
DTD or XSD changes Yes

You can now determine whether a scanner platform version has reached End of Support (EOS) through the Scanner Appliance API. This enhancement adds EOS status information to scanner appliance responses, enabling automation workflows and inventory management processes to identify scanner appliances that may require upgrades. The response now includes an eos attribute in the SOFTWARE_VERSION element that indicates the EOS status of the scanner platform version. This improves the visibility into scanner platform lifecycle status across your environment.

The eos attribute can have the following values:

  • If eos=yes, the scanner platform version is approaching End-of-Support
  • If eos=no, the scanner platform version is currently supported


Sample - List the Scanners that have EOS statusSample - List the Scanners that have EOS status

API  Request

curl --location '<qualys_base_url>/api/3.0/fo/appliance/?action=list' \
--header 'X-Requested-With: curl' \
--header 'Authorization: Bearer <JWT Token>'

API Response

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE APPLIANCE_LIST_OUTPUT SYSTEM "<qualys_base_url>/api/3.0/fo/appliance/appliance_list_output.dtd">
<APPLIANCE_LIST_OUTPUT>
    <RESPONSE>
        <DATETIME>2026-08-25T10:52:52Z</DATETIME>
        <APPLIANCE_LIST>
            <APPLIANCE>
                <ID>1455329</ID>
                <UUID>851f322d-eaae-7c88-838b-eeb03d274f69</UUID>
                <NAME>username</NAME>
                <NETWORK_ID>0</NETWORK_ID>
                <SOFTWARE_VERSION eos="yes">2.6</SOFTWARE_VERSION>
                <RUNNING_SLICES_COUNT>0</RUNNING_SLICES_COUNT>
                <RUNNING_SCAN_COUNT>0</RUNNING_SCAN_COUNT>
                <STATUS>Offline</STATUS>
            </APPLIANCE>
            <APPLIANCE>
                <ID>1441374</ID>
                <UUID>683b5685-44b6-ce70-8064-a1f89ac1faaa</UUID>
                <NAME>username</NAME>
                <NETWORK_ID>0</NETWORK_ID>
                <SOFTWARE_VERSION eos="yes">2.6</SOFTWARE_VERSION>
                <RUNNING_SLICES_COUNT>0</RUNNING_SLICES_COUNT>
                <RUNNING_SCAN_COUNT>0</RUNNING_SCAN_COUNT>
                <STATUS>Offline</STATUS>
            </APPLIANCE>
            <APPLIANCE>
                <ID>1546297</ID>
                <UUID>1f825be2-5b34-e282-8202-87a26e258786</UUID>
                <NAME>username</NAME>
                <NETWORK_ID>0</NETWORK_ID>
                <SOFTWARE_VERSION eos="yes">2.6</SOFTWARE_VERSION>
                <RUNNING_SLICES_COUNT>0</RUNNING_SLICES_COUNT>
                <RUNNING_SCAN_COUNT>0</RUNNING_SCAN_COUNT>
                <STATUS>Offline</STATUS>
            </APPLIANCE>
            
            .........
           
            <APPLIANCE>
                <ID>1227504</ID>
                <UUID>eeb70a62-cf64-5c5d-8114-7ce17b6e3916</UUID>
                <NAME>username</NAME>
                <NETWORK_ID>0</NETWORK_ID>
                <SOFTWARE_VERSION eos="yes">2.6</SOFTWARE_VERSION>
                <RUNNING_SLICES_COUNT>0</RUNNING_SLICES_COUNT>
                <RUNNING_SCAN_COUNT>2</RUNNING_SCAN_COUNT>
                <STATUS>Offline</STATUS>
            </APPLIANCE>
            <APPLIANCE>
                <ID>1231947</ID>
                <UUID>3aa3615d-78bc-f660-827f-fce346199342</UUID>
                <NAME>mob_qcss</NAME>
                <NETWORK_ID>0</NETWORK_ID>
                <SOFTWARE_VERSION eos="no">qCSS-1.0.45-1</SOFTWARE_VERSION>
                <RUNNING_SLICES_COUNT>0</RUNNING_SLICES_COUNT>
                <RUNNING_SCAN_COUNT>0</RUNNING_SCAN_COUNT>
                <STATUS>Offline</STATUS>
            </APPLIANCE>
        </APPLIANCE_LIST>
    </RESPONSE>
</APPLIANCE_LIST_OUTPUT>

DTD OutputDTD Output

A DTD for Scanner Appliance API has been added.
<platform API server>/api/3.0/fo/appliance/appliance_list_output.dtd

DTD output for Scanner Appliance API is as follows:

<!-- QUALYS APPLIANCE_LIST_OUTPUT DTD v3.0 -->
<!ELEMENT APPLIANCE_LIST_OUTPUT (REQUEST?,RESPONSE)>
<!ELEMENT REQUEST (DATETIME, USER_LOGIN, RESOURCE, PARAM_LIST?, POST_DATA?)>
<!ELEMENT DATETIME (#PCDATA)>
<!ELEMENT USER_LOGIN (#PCDATA)>
<!ELEMENT RESOURCE (#PCDATA)>
<!ELEMENT PARAM_LIST (PARAM+)>
<!ELEMENT PARAM (KEY, VALUE)>
<!ELEMENT KEY (#PCDATA)>
<!ELEMENT VALUE (#PCDATA)>
<!-- if returned, POST_DATA will be urlencoded -->
<!ELEMENT POST_DATA (#PCDATA)>
<!ELEMENT RESPONSE (DATETIME, APPLIANCE_LIST?, LICENSE_INFO?)>
<!ELEMENT APPLIANCE_LIST (APPLIANCE+)>
<!ELEMENT APPLIANCE (ID, UUID, NAME, NETWORK_ID?, SOFTWARE_VERSION, RUNNING_SLICES_COUNT, RUNNING_SCAN_COUNT, STATUS, POOL_OF_SCANNERS?, CMD_ONLY_START?, MODEL_NUMBER?, TYPE?, SERIAL_NUMBER?, ACTIVATION_CODE?, INTERFACE_SETTINGS*, PROXY_SETTINGS?, IS_CLOUD_DEPLOYED?, CLOUD_INFO?, VLANS?, STATIC_ROUTES?, ML_LATEST?, ML_VERSION?, VULNSIGS_LATEST?, VULNSIGS_VERSION?, ASSET_GROUP_COUNT?, ASSET_GROUP_LIST?, ASSET_TAGS_LIST?, LAST_UPDATED_DATE?, POLLING_INTERVAL?, USER_LOGIN?, HEARTBEATS_MISSED?, SS_CONNECTION?, SS_LAST_CONNECTED?, FDCC_ENABLED?, USER_LIST?, UPDATED?, COMMENTS?, RUNNING_SCANS?, MAX_CAPACITY_UNITS?, HW_CPU_NUM_VCPUS?, HW_MEM_MEMTOTAL_GB?, HW_MEM_SWAPTOTAL_GB?, HW_DISK_SIZE_GB?, CPU_INFO?, MEMORY_INFO?, REGION_INFO? )>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT UUID (#PCDATA)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT NETWORK_ID (#PCDATA)>
<!ELEMENT SOFTWARE_VERSION (#PCDATA)>
<!-- NEW IN V3.0: eos="yes" when the appliance image version is End-of-Support -->
<!ATTLIST SOFTWARE_VERSION eos CDATA #IMPLIED>
<!ELEMENT RUNNING_SLICES_COUNT (#PCDATA)>
<!ELEMENT RUNNING_SCAN_COUNT (#PCDATA)>
<!ELEMENT STATUS (#PCDATA)>
<!ELEMENT POOL_OF_SCANNERS (#PCDATA)>
<!ELEMENT CMD_ONLY_START (#PCDATA)>
<!ELEMENT MODEL_NUMBER (#PCDATA)>
<!ELEMENT SERIAL_NUMBER (#PCDATA)>
<!ELEMENT ACTIVATION_CODE (#PCDATA)>
<!ELEMENT INTERFACE_SETTINGS (SETTING?, INTERFACE, IP_ADDRESS, NETMASK, GATEWAY, LEASE, SPEED, DUPLEX, DNS)>
<!ELEMENT SETTING (#PCDATA)>
<!ELEMENT INTERFACE (#PCDATA)>
<!ELEMENT IP_ADDRESS (#PCDATA)>
<!ELEMENT NETMASK (#PCDATA)>
<!ELEMENT GATEWAY (#PCDATA)>
<!ELEMENT LEASE (#PCDATA)>
<!ELEMENT SPEED (#PCDATA)>
<!ELEMENT DUPLEX (#PCDATA)>
<!ELEMENT DNS (DOMAIN?, PRIMARY, SECONDARY)>
<!ELEMENT DOMAIN (#PCDATA)>
<!ELEMENT PRIMARY (#PCDATA)>
<!ELEMENT SECONDARY (#PCDATA)>
<!ELEMENT PROXY_SETTINGS (SETTING, PROXY*)>
<!ELEMENT PROXY (PROTOCOL?, IP_ADDRESS?, HOSTNAME?, PORT, USER)>
<!ELEMENT PROTOCOL (#PCDATA)>
<!ELEMENT HOSTNAME (#PCDATA)>
<!ELEMENT PORT (#PCDATA)>
<!ELEMENT USER (#PCDATA)>
<!ELEMENT IS_CLOUD_DEPLOYED (#PCDATA)>
<!ELEMENT CLOUD_INFO (PLATFORM_PROVIDER, EC2_INFO?, GCE_INFO?, AZURE_INFO?)>
<!ELEMENT PLATFORM_PROVIDER (#PCDATA)>
<!ELEMENT EC2_INFO (INSTANCE_ID, INSTANCE_TYPE, KERNEL_ID?, AMI_ID, ACCOUNT_ID,
                            INSTANCE_REGION, INSTANCE_AVAILABILITY_ZONE, INSTANCE_ZONE_TYPE,
                            INSTANCE_VPC_ID?, INSTANCE_SUBNET_ID?, IP_ADDRESS_PRIVATE?, HOSTNAME_PRIVATE?,
                            SECURITY_GROUPS?,
                            API_PROXY_SETTINGS)>
<!ELEMENT INSTANCE_ID (#PCDATA)>
<!ELEMENT INSTANCE_TYPE (#PCDATA)>
<!ELEMENT KERNEL_ID (#PCDATA)>
<!ELEMENT AMI_ID (#PCDATA)>
<!ELEMENT ACCOUNT_ID (#PCDATA)>
<!ELEMENT INSTANCE_REGION (#PCDATA)>
<!ELEMENT INSTANCE_AVAILABILITY_ZONE (#PCDATA)>
<!ELEMENT INSTANCE_ZONE_TYPE (#PCDATA)>
<!ELEMENT INSTANCE_VPC_ID (#PCDATA)>
<!ELEMENT INSTANCE_SUBNET_ID (#PCDATA)>
<!ELEMENT IP_ADDRESS_PRIVATE (#PCDATA)>
<!ELEMENT HOSTNAME_PRIVATE (#PCDATA)>
<!ELEMENT SECURITY_GROUPS (SECURITY_GROUP_IDS?, SECURITY_GROUP_NAMES?)>
<!ELEMENT SECURITY_GROUP_IDS (#PCDATA)>
<!ELEMENT SECURITY_GROUP_NAMES (#PCDATA)>
<!ELEMENT API_PROXY_SETTINGS (SETTING, PROXY*)>
<!ELEMENT GCE_INFO (INSTANCE_ID, MACHINE_TYPE,
                            PROJECT_ID, PROJECT_NAME,
                            PREEMPTIBLE,
                            INSTANCE_ZONE,
                            IP_ADDRESS_PRIVATE?, HOSTNAME_PRIVATE?, IP_ADDRESS_PUBLIC?,
                            INSTANCE_NETWORK,
                            GCE_INSTANCE_TAGS
                            )>
<!ELEMENT MACHINE_TYPE (#PCDATA)>
<!ELEMENT PROJECT_ID (#PCDATA)>
<!ELEMENT PROJECT_NAME (#PCDATA)>
<!ELEMENT PREEMPTIBLE (#PCDATA)>
<!ELEMENT INSTANCE_ZONE (#PCDATA)>
<!ELEMENT GCE_INSTANCE_TAGS (GCE_INSTANCE_TAG*)>
<!ELEMENT GCE_INSTANCE_TAG (TAG_ID)>
<!ELEMENT TAG_ID (#PCDATA)>
<!ELEMENT IP_ADDRESS_PUBLIC (#PCDATA)>
<!ELEMENT INSTANCE_NETWORK (#PCDATA)>
<!ELEMENT AZURE_INFO (INSTANCE_ID, USER_NAME,
                            INSTANCE_LOCATION, DEPLOYMENT_MODE,
                            IP_ADDRESS_PRIVATE?, HOSTNAME_PRIVATE?)>
<!ELEMENT USER_NAME (#PCDATA)>
<!ELEMENT INSTANCE_LOCATION (#PCDATA)>
<!ELEMENT DEPLOYMENT_MODE (#PCDATA)>
<!ELEMENT VLANS (SETTING, VLAN*)>
<!ELEMENT VLAN (ID, NAME, IP_ADDRESS?, NETMASK?)>
<!ELEMENT STATIC_ROUTES (ROUTE*)>
<!ELEMENT ROUTE (NAME, IP_ADDRESS?, NETMASK?, GATEWAY?)>
<!ELEMENT ML_LATEST (#PCDATA)>
<!ELEMENT ML_VERSION (#PCDATA)>
<!ATTLIST ML_VERSION updated CDATA #IMPLIED>
<!ELEMENT VULNSIGS_LATEST (#PCDATA)>
<!ELEMENT VULNSIGS_VERSION (#PCDATA)>
<!ATTLIST VULNSIGS_VERSION updated CDATA #IMPLIED>
<!ELEMENT ASSET_GROUP_COUNT (#PCDATA)>
<!ELEMENT ASSET_GROUP_LIST (ASSET_GROUP*)>
<!ELEMENT ASSET_GROUP (ID, NAME)>
<!ELEMENT ASSET_TAGS_LIST (ASSET_TAG*)>
<!ELEMENT ASSET_TAG (UUID, NAME)>
<!ELEMENT LAST_UPDATED_DATE (#PCDATA)>
<!ELEMENT POLLING_INTERVAL (#PCDATA)>
<!ELEMENT HEARTBEATS_MISSED (#PCDATA)>
<!ELEMENT SS_CONNECTION (#PCDATA)>
<!ELEMENT SS_LAST_CONNECTED (#PCDATA)>
<!ELEMENT FDCC_ENABLED (#PCDATA)>
<!ELEMENT USER_LIST (USER_ACCOUNT*)>
<!ELEMENT USER_ACCOUNT (ID, NAME)>
<!ELEMENT UPDATED (#PCDATA)>
<!ELEMENT COMMENTS (#PCDATA)>
<!ELEMENT RUNNING_SCANS (SCAN+)>
<!ELEMENT SCAN (ID, TITLE, REF, TYPE, SCAN_DATE)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT REF (#PCDATA)>
<!ELEMENT TYPE (#PCDATA)>
<!ELEMENT SCAN_DATE (#PCDATA)>
<!ELEMENT MAX_CAPACITY_UNITS (#PCDATA)>
<!-- NEW IN V3.0: Hardware resource fields -->
<!ELEMENT HW_CPU_NUM_VCPUS (#PCDATA)>
<!ELEMENT HW_MEM_MEMTOTAL_GB (#PCDATA)>
<!ELEMENT HW_MEM_SWAPTOTAL_GB (#PCDATA)>
<!ELEMENT HW_DISK_SIZE_GB (#PCDATA)>
<!-- END V3.0 additions -->
<!ELEMENT CPU_INFO (#PCDATA)>
<!ELEMENT MEMORY_INFO (#PCDATA)>
<!ELEMENT REGION_INFO (#PCDATA)>
<!ELEMENT LICENSE_INFO (QVSA_LICENSES_COUNT, QVSA_LICENSES_USED)>
<!ELEMENT QVSA_LICENSES_COUNT (#PCDATA)>
<!ELEMENT QVSA_LICENSES_USED (#PCDATA)>
<!-- EOF -->
 

Download Saved Report API: Get Ticket Deadline and Policy Title in Host Based Reports

New or Updated API Updated
API Endpoint 

/api/2.0/fo/report/

/api/3.0/fo/report/

Method GET, POST
DTD or XSD changes Yes

You can now retrieve the remediation ticket deadline and remediation policy title directly in the Host Based XML report response, along with the existing ticket number and ticket state. This helps to retrieve complete remediation ticket context, status, deadline, and policy in a single report response, without cross-referencing the Remediation module.

Earlier, the Host Based XML report displayed only the remediation ticket number and its state (Open, Closed, Ignored, Resolved, Reopened) for each vulnerability detection.

Prerequiste: The elements are available in the host based report XML format only if you have a Vulnerability Management Reporting Service (VMRS) enabled subscription. 

The Host Based XML report now includes the following elements, which are optional:

  • Ticket Deadline: The due date assigned to the remediation ticket, as set by the remediation policy. 
  • Remediation Policy Title: The name of the remediation policy rule that generated or last updated the ticket.

 If you are unable to view the elements in the XML report, contact your TAM or Qualys Support to enable the VMRS service for your subscription.

Sample - Host Based Scan ReportSample - Host Based Scan Report

API  Request

curl --location '<qualys_base_url>/api/3.0/fo/report/?action=fetch&id=4328126' \
--header 'X-Requested-With: curl' \
--header 'Authorization: Bearer <JWT Token>'

API Response

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ASSET_DATA_REPORT SYSTEM "
<qualys_base_url>/asset_data_report.dtd">
    <ASSET_DATA_REPORT>
        <HEADER>
            <COMPANY>
                <![CDATA[VMSP]]>
            </COMPANY>
            <GENERATION_DATETIME>2026-08-11T10:03:50Z</GENERATION_DATETIME>
            <TEMPLATE>
                <![CDATA[FQDN_All_OneIP]]>
            </TEMPLATE>
            <TARGET>
                <USER_IP_LIST>
                    <RANGE network_id="0">
                        <START>xx.xxx.xx.xxx</START>
                        <END>xx.xxx.xx.xxx</END>
                    </RANGE>
                </USER_IP_LIST>
                <COMBINED_IP_LIST>
                    <RANGE network_id="0">
                        <START>xx.xxx.xx.xxx</START>
                        <END>xx.xxx.xx.xxx</END>
                    </RANGE>
                </COMBINED_IP_LIST>
            </TARGET>
            <RISK_SCORE_SUMMARY>
                <TOTAL_VULNERABILITIES>1550</TOTAL_VULNERABILITIES>
                <AVG_SECURITY_RISK>3.8</AVG_SECURITY_RISK>
                <BUSINESS_RISK>32/100</BUSINESS_RISK>
            </RISK_SCORE_SUMMARY>
        </HEADER>
        <RISK_SCORE_PER_HOST>
            <HOSTS>
                <IP_ADDRESS network_id="0">xx.xxx.xx.xxx</IP_ADDRESS>
                <TOTAL_VULNERABILITIES>134</TOTAL_VULNERABILITIES>
                <SECURITY_RISK>3.8</SECURITY_RISK>
            </HOSTS>
            <HOSTS>
                <IP_ADDRESS network_id="0">xx.xxx.xx.xxx</IP_ADDRESS>
                <TOTAL_VULNERABILITIES>320</TOTAL_VULNERABILITIES>
                <SECURITY_RISK>4.0</SECURITY_RISK>
            </HOSTS>
            <HOSTS>
                <IP_ADDRESS network_id="0">xx.xxx.xx.xxx</IP_ADDRESS>
                <TOTAL_VULNERABILITIES>412</TOTAL_VULNERABILITIES>
                <SECURITY_RISK>3.9</SECURITY_RISK>
            </HOSTS>
            <HOSTS>
                <IP_ADDRESS network_id="0">xx.xxx.xx.xxx</IP_ADDRESS>
                <TOTAL_VULNERABILITIES>382</TOTAL_VULNERABILITIES>
                <SECURITY_RISK>4.0</SECURITY_RISK>
            </HOSTS>
        </RISK_SCORE_PER_HOST>
        <HOST_LIST>
            <HOST>
                <IP network_id="0">xx.xxx.xx.xxx</IP>
                <TRACKING_METHOD>QAGENT</TRACKING_METHOD>
                <HOST_ID>
                    <![CDATA[9514935]]>
                </HOST_ID>
                <ASSET_ID>
                    <![CDATA[81236569]]>
                </ASSET_ID>
                <DNS>
                    <![CDATA[desktop-edu]]>
                </DNS>
                <NETBIOS>
                    <![CDATA[DESKTOP-EDU]]>
                </NETBIOS>
                <QG_HOSTID>
                    <![CDATA[6397d79b-0e44-4a2d-9ba3-8d0ba1681ab9]]>
                </QG_HOSTID>
                <OPERATING_SYSTEM>
                    <![CDATA[Windows 11 Pro Education 64 bit Edition Version 21H2]]>
                </OPERATING_SYSTEM>
                <OS_CPE>
                    <![CDATA[cpe:/o:microsoft:windows_11:21H2::x64:]]>
                </OS_CPE>
                <ASSET_GROUPS>
                    <ASSET_GROUP_TITLE>
                        <![CDATA[PROD_Dead_Host_AG]]>
                    </ASSET_GROUP_TITLE>
                    <ASSET_GROUP_TITLE>
                        <![CDATA[Windows Cloud Agent deployment]]>
                    </ASSET_GROUP_TITLE>
                </ASSET_GROUPS>
                <VULN_INFO_LIST>
......
......
                
                    <VULN_INFO>
                        <QID id="qid_92075">92075</QID>
                        <TYPE>Vuln</TYPE>
                        <SSL>false</SSL>
                        <RESULT>
                            <![CDATA[KB5032192 is not installed 
%windir%\system32\ntoskrnl.exe  Version is  10.0.22000.2538]]>
                        </RESULT>
                        <FIRST_FOUND>2025-11-27T14:10:58Z</FIRST_FOUND>
                        <LAST_FOUND>2026-06-06T09:30:16Z</LAST_FOUND>
                        <TIMES_FOUND>979</TIMES_FOUND>
                        <VULN_STATUS>Active</VULN_STATUS>
                        <CVSS_FINAL>8.3</CVSS_FINAL>
                        <CVSS3_FINAL>9.1</CVSS3_FINAL>
                        <CVSS3_VERSION>3.1</CVSS3_VERSION>
                        <TICKET_NUMBER>129667</TICKET_NUMBER>
                        <TICKET_STATE>OPEN</TICKET_STATE>
                        <TICKET_DEADLINE>2026-04-03T12:20:57Z</TICKET_DEADLINE>
                        <REMEDIATION_POLICY_TITLE>
                            <![CDATA[CA Tag Rule]]>
                        </REMEDIATION_POLICY_TITLE>
                        <VULNERABILITY_DETECTION_SOURCES>Cloud Agent,External Scanner</VULNERABILITY_DETECTION_SOURCES>
                        <LATEST_VULNERABILITY_DETECTION_SOURCE>Cloud Agent</LATEST_VULNERABILITY_DETECTION_SOURCE>
                    </VULN_INFO>
                </VULN_INFO_LIST>
            </HOST>
        </HOST_LIST>

DTD Output for Host Based Scan ReportDTD Output for Host Based Scan Report

DTD output for Host Based Scan Report is as follows:

DTD Output


<!-- QUALYS ASSET DATA REPORT DTD -->
<!ELEMENT ASSET_DATA_REPORT (ERROR | (HEADER, RISK_SCORE_PER_HOST?, HOST_LIST?, GLOSSARY?, NON_RUNNING_KERNELS?, APPENDICES?))>
<!ELEMENT ERROR (#PCDATA)*>
<!ATTLIST ERROR number CDATA #IMPLIED>

<!-- HEADER -->
<!ELEMENT HEADER (COMPANY, USERNAME?, GENERATION_DATETIME, TEMPLATE, TARGET, RISK_SCORE_SUMMARY?)>
<!ELEMENT COMPANY (#PCDATA)>
<!ELEMENT USERNAME (#PCDATA)>
<!ELEMENT GENERATION_DATETIME (#PCDATA)>
<!ELEMENT TEMPLATE (#PCDATA)>
<!ELEMENT TARGET (USER_ASSET_GROUPS?, USER_IP_LIST?, COMBINED_IP_LIST?, ASSET_TAG_LIST?)>

<!ELEMENT USER_ASSET_GROUPS (ASSET_GROUP_TITLE+)>
<!ELEMENT ASSET_GROUP_TITLE (#PCDATA)>

<!ELEMENT USER_IP_LIST (RANGE*)>
<!ELEMENT RANGE (START, END)>
<!ATTLIST RANGE network_id  CDATA #IMPLIED>
<!ELEMENT START (#PCDATA)>
<!ELEMENT END (#PCDATA)>

<!ELEMENT COMBINED_IP_LIST (RANGE*)>

<!ELEMENT ASSET_TAG_LIST (INCLUDED_TAGS, EXCLUDED_TAGS?)>

<!ELEMENT INCLUDED_TAGS (ASSET_TAG*)>
<!ATTLIST INCLUDED_TAGS scope CDATA #IMPLIED>

<!ELEMENT EXCLUDED_TAGS (ASSET_TAG*)>
<!ATTLIST EXCLUDED_TAGS scope CDATA #IMPLIED>

<!-- AVERAGE RISK_SCORE_SUMMARY -->
<!ELEMENT RISK_SCORE_SUMMARY (TOTAL_VULNERABILITIES, AVG_SECURITY_RISK, BUSINESS_RISK)>
<!ELEMENT TOTAL_VULNERABILITIES (#PCDATA)>
<!ELEMENT AVG_SECURITY_RISK (#PCDATA)>
<!ELEMENT BUSINESS_RISK (#PCDATA)>

<!-- RISK_SCORE_PER_HOST -->
<!ELEMENT RISK_SCORE_PER_HOST (HOSTS+)>
<!ELEMENT HOSTS (IP_ADDRESS?, TOTAL_VULNERABILITIES, SECURITY_RISK)>
<!ELEMENT IP_ADDRESS (#PCDATA)>
<!ATTLIST IP_ADDRESS
 network_id  CDATA  #IMPLIED
>
<!ELEMENT SECURITY_RISK (#PCDATA)>

<!-- HOST_LIST -->

<!ELEMENT HOST_LIST (HOST+)>

<!ELEMENT HOST (ERROR | (IP?,TRACKING_METHOD, ASSET_TAGS?, HOST_ID, ASSET_ID?,
                         DNS?, NETBIOS?, QG_HOSTID?, CLOUD_PROVIDER?, CLOUD_PROVIDER_SERVICE?, CLOUD_SERVICE?, CLOUD_RESOURCE_TYPE?, CLOUD_RESOURCE_ID?, CLOUD_ACCOUNT?, EC2_INSTANCE_ID?, CLOUD_IMAGE_ID?, IP_INTERFACES?,EC2_INFO?, CLOUD_RESOURCE_METADATA?, AZURE_VM_INFO?, OPERATING_SYSTEM?, OS_CPE?,ARS?,TRURISK_SCORE?, ACS?, ASSET_GROUPS?, VULN_INFO_LIST?))>

<!ELEMENT IP (#PCDATA)>
<!ATTLIST IP
  network_id  CDATA  #IMPLIED
  v6  CDATA  #IMPLIED>
<!ELEMENT TRACKING_METHOD (#PCDATA)>
<!ELEMENT ASSET_TAGS (ASSET_TAG+)>
<!ELEMENT ASSET_TAG (#PCDATA)>

<!ELEMENT HOST_ID (#PCDATA)>
<!ELEMENT ASSET_ID (#PCDATA)>
<!ELEMENT DNS (#PCDATA)>
<!ELEMENT NETBIOS (#PCDATA)>
<!ELEMENT QG_HOSTID (#PCDATA)>
<!ELEMENT CLOUD_PROVIDER (#PCDATA)>
<!ELEMENT CLOUD_PROVIDER_SERVICE (#PCDATA)>
<!ELEMENT CLOUD_SERVICE (#PCDATA)>
<!ELEMENT CLOUD_RESOURCE_TYPE (#PCDATA)>
<!ELEMENT CLOUD_RESOURCE_ID (#PCDATA)>
<!ELEMENT CLOUD_ACCOUNT (#PCDATA)>
<!ELEMENT EC2_INSTANCE_ID (#PCDATA)>
<!ELEMENT CLOUD_IMAGE_ID (#PCDATA)>
<!ELEMENT IP_INTERFACES (IP*)>
<!ELEMENT EC2_INFO (PUBLIC_DNS_NAME?,IMAGE_ID?,VPC_ID?,INSTANCE_STATE?,PRIVATE_DNS_NAME?,INSTANCE_TYPE?, ACCOUNT_ID?, REGION_CODE?, SUBNET_ID?)>
<!ELEMENT CLOUD_RESOURCE_METADATA (INSTANCE_ID?, PUBLIC_DNS_NAME?, VM_ID?, VM_NAME?, PLATFORM?, HOST_NAME?, MACHINE_TYPE?,
        MACHINE_STATE?, PROJECT_ID?, PUBLIC_IP_ADDRESS?, VPC_NETWORK?, ZONE?, IMAGE_OFFER?, IMAGE_PUBLISHER?,
        IMAGE_VERSION?, SUBNET?, VM_STATE?, PRIVATE_IP_ADDRESS?, IMAGE_ID?, SPOT_INSTANCE?, AVAILABILITY_ZONE?, VPC_ID?, GROUP_ID?, GROUP_NAME?,
        LOCAL_HOSTNAME?, INSTANCE_STATE?, PRIVATE_DNS_NAME?, INSTANCE_TYPE?, ACCOUNT_ID?, REGION_CODE?, SUBNET_ID?, RESERVATION_ID?,
        SIZE?, SUBSCRIPTION_ID?, LOCATION?, RESOURCE_GROUP_NAME?, MAC_ADDRESS?)>
<!ELEMENT AZURE_VM_INFO (PUBLIC_IP_ADDRESS?,IMAGE_OFFER?,IMAGE_VERSION?,SUBNET?,VM_STATE?,PRIVATE_IP_ADDRESS?,SIZE?, SUBSCRIPTION_ID?, LOCATION?, RESOURCE_GROUP_NAME?)>
<!ELEMENT INSTANCE_ID (#PCDATA)>
<!ELEMENT PUBLIC_DNS_NAME (#PCDATA)>
<!ELEMENT IMAGE_ID (#PCDATA)>
<!ELEMENT SPOT_INSTANCE (#PCDATA)>
<!ELEMENT AVAILABILITY_ZONE (#PCDATA)>
<!ELEMENT VPC_ID (#PCDATA)>
<!ELEMENT GROUP_ID (#PCDATA)>
<!ELEMENT GROUP_NAME (#PCDATA)>
<!ELEMENT INSTANCE_STATE (#PCDATA)>
<!ELEMENT LOCAL_HOSTNAME (#PCDATA)>
<!ELEMENT PRIVATE_DNS_NAME (#PCDATA)>
<!ELEMENT INSTANCE_TYPE (#PCDATA)>
<!ELEMENT ACCOUNT_ID (#PCDATA)>
<!ELEMENT REGION_CODE (#PCDATA)>
<!ELEMENT SUBNET_ID (#PCDATA)>
<!ELEMENT RESERVATION_ID (#PCDATA)>
<!ELEMENT MAC_ADDRESS (#PCDATA)>
<!ELEMENT OPERATING_SYSTEM (#PCDATA)>
<!ELEMENT VM_ID (#PCDATA)>
<!ELEMENT VM_NAME (#PCDATA)>
<!ELEMENT PLATFORM (#PCDATA)>
<!ELEMENT HOST_NAME (#PCDATA)>
<!ELEMENT MACHINE_TYPE (#PCDATA)>
<!ELEMENT MACHINE_STATE (#PCDATA)>
<!ELEMENT PROJECT_ID (#PCDATA)>
<!ELEMENT PUBLIC_IP_ADDRESS (#PCDATA)>
<!ELEMENT VPC_NETWORK (#PCDATA)>
<!ELEMENT ZONE (#PCDATA)>
<!ELEMENT IMAGE_OFFER (#PCDATA)>
<!ELEMENT IMAGE_PUBLISHER (#PCDATA)>
<!ELEMENT IMAGE_VERSION (#PCDATA)>
<!ELEMENT SUBNET (#PCDATA)>
<!ELEMENT VM_STATE (#PCDATA)>
<!ELEMENT PRIVATE_IP_ADDRESS (#PCDATA)>
<!ELEMENT SIZE (#PCDATA)>
<!ELEMENT SUBSCRIPTION_ID (#PCDATA)>
<!ELEMENT LOCATION (#PCDATA)>
<!ELEMENT RESOURCE_GROUP_NAME (#PCDATA)>
<!ELEMENT OS_CPE (#PCDATA)>
<!ELEMENT ARS (#PCDATA)>
<!ELEMENT TRURISK_SCORE (#PCDATA)>
<!ELEMENT ACS (#PCDATA)>
<!ELEMENT ASSET_GROUPS (ASSET_GROUP_TITLE+)>
<!ELEMENT VULN_INFO_LIST (VULN_INFO+)>

<!ELEMENT VULN_INFO (QID, TYPE, PORT?, SERVICE?, FQDN?, PROTOCOL?, SSL?, INSTANCE?,
                     RESULT?, DEEP_SCAN_RESULT?, FIRST_FOUND?, LAST_FOUND?, TIMES_FOUND?,
                     VULN_STATUS?, LAST_FIXED?, FIRST_REOPENED?, LAST_REOPENED?, TIMES_REOPENED?, CVE_IDS?, CVSS_FINAL?, CVSS3_FINAL?, CVSS3_VERSION?, TICKET_NUMBER?, TICKET_STATE?,TICKET_DEADLINE?, REMEDIATION_POLICY_TITLE?, ASSET_CVE?, QDS?,
                     VULNERABILITY_DETECTION_SOURCES?, LATEST_VULNERABILITY_DETECTION_SOURCE?)>

<!ELEMENT QID (#PCDATA)>
<!ATTLIST QID id CDATA #REQUIRED>

<!ELEMENT TYPE (#PCDATA)>
<!ELEMENT PORT (#PCDATA)>
<!ELEMENT SERVICE (#PCDATA)>
<!ELEMENT FQDN (#PCDATA)>
<!ELEMENT PROTOCOL (#PCDATA)>
<!ELEMENT SSL (#PCDATA)>

<!ELEMENT RESULT (#PCDATA)>
<!ATTLIST RESULT format CDATA #IMPLIED>

<!ELEMENT DEEP_SCAN_RESULT (#PCDATA)>
<!ATTLIST DEEP_SCAN_RESULT format CDATA #IMPLIED>

<!ELEMENT FIRST_FOUND (#PCDATA)>
<!ELEMENT LAST_FOUND (#PCDATA)>
<!ELEMENT TIMES_FOUND (#PCDATA)>
<!-- Note: VULN_STATUS is N/A for IGs -->
<!ELEMENT VULN_STATUS (#PCDATA)>
<!ELEMENT ASSET_CVE (#PCDATA)>
<!ELEMENT LAST_FIXED (#PCDATA)>
<!ELEMENT FIRST_REOPENED (#PCDATA)>
<!ELEMENT LAST_REOPENED (#PCDATA)>
<!ELEMENT TIMES_REOPENED (#PCDATA)>
<!ELEMENT CVE_IDS (#PCDATA)>
<!ELEMENT CVSS_FINAL (#PCDATA)>
<!ELEMENT CVSS3_FINAL (#PCDATA)>
<!ELEMENT TICKET_NUMBER (#PCDATA)>
<!ELEMENT TICKET_STATE (#PCDATA)>
<!ELEMENT TICKET_DEADLINE (#PCDATA)>
<!ELEMENT REMEDIATION_POLICY_TITLE (#PCDATA)>

<!ELEMENT QDS (#PCDATA)>
<!ELEMENT VULNERABILITY_DETECTION_SOURCES (#PCDATA)>
<!ELEMENT LATEST_VULNERABILITY_DETECTION_SOURCE (#PCDATA)>

<!ELEMENT INSTANCE (#PCDATA)>

<!-- GLOSSARY -->
<!ELEMENT GLOSSARY (VULN_DETAILS_LIST)>
<!ELEMENT VULN_DETAILS_LIST (VULN_DETAILS+)>
<!ELEMENT VULN_DETAILS (QID, TITLE, SEVERITY, SOURCE?, CATEGORY,
                        CUSTOMIZED?, THREAT, THREAT_COMMENT?, IMPACT, IMPACT_COMMENT?,
                        SOLUTION, SOLUTION_COMMENT?, COMPLIANCE?, CORRELATION?, PCI_FLAG, LAST_UPDATE?,
                        CVSS_SCORE?, CVSS3_SCORE?, CVSS4_SCORE?, VENDOR_REFERENCE_LIST?, CVE_ID_LIST?, BUGTRAQ_ID_LIST?)>
<!ATTLIST VULN_DETAILS id ID #REQUIRED>

<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT SEVERITY (#PCDATA)>
<!ELEMENT SOURCE (#PCDATA)>
<!ELEMENT CATEGORY (#PCDATA)>

<!ELEMENT CUSTOMIZED (DISABLED?, CUSTOM_SEVERITY?)>
<!ELEMENT DISABLED (#PCDATA)>
<!ELEMENT CUSTOM_SEVERITY (#PCDATA)>

<!ELEMENT THREAT (#PCDATA)>
<!ELEMENT THREAT_COMMENT (#PCDATA)>
<!ELEMENT IMPACT (#PCDATA)>
<!ELEMENT IMPACT_COMMENT (#PCDATA)>
<!ELEMENT SOLUTION (#PCDATA)>
<!ELEMENT SOLUTION_COMMENT (#PCDATA)>
<!ELEMENT PCI_FLAG (#PCDATA)>
<!ELEMENT CORRELATION (EXPLOITABILITY?, MALWARE?)>
<!ELEMENT EXPLOITABILITY (EXPLT_SRC)+>
<!ELEMENT EXPLT_SRC (SRC_NAME, EXPLT_LIST)>
<!ELEMENT SRC_NAME (#PCDATA)>
<!ELEMENT EXPLT_LIST (EXPLT)+>
<!ELEMENT EXPLT (REF, DESC, LINK?)>
<!ELEMENT REF (#PCDATA)>
<!ELEMENT DESC (#PCDATA)>
<!ELEMENT LINK (#PCDATA)>

<!ELEMENT MALWARE (MW_SRC)+>
<!ELEMENT MW_SRC (SRC_NAME, MW_LIST)>
<!ELEMENT MW_LIST (MW_INFO)+>
<!ELEMENT MW_INFO (MW_ID, MW_TYPE?, MW_PLATFORM?, MW_ALIAS?, MW_RATING?, MW_LINK?)>
<!ELEMENT MW_ID (#PCDATA)>
<!ELEMENT MW_TYPE (#PCDATA)>
<!ELEMENT MW_PLATFORM (#PCDATA)>
<!ELEMENT MW_ALIAS (#PCDATA)>
<!ELEMENT MW_RATING (#PCDATA)>
<!ELEMENT MW_LINK (#PCDATA)>

<!ELEMENT LAST_UPDATE (#PCDATA)>

<!ELEMENT CVSS_SCORE (CVSS_BASE?, CVSS_TEMPORAL?)>
<!ELEMENT CVSS_BASE (#PCDATA)>
<!ATTLIST CVSS_BASE
    source CDATA #IMPLIED>
<!ELEMENT CVSS_TEMPORAL (#PCDATA)>
<!ELEMENT CVSS3_SCORE (CVSS3_BASE?, CVSS3_TEMPORAL?, CVSS3_VERSION?)>
<!ELEMENT CVSS3_BASE (#PCDATA)>
<!ELEMENT CVSS3_TEMPORAL (#PCDATA)>
<!ELEMENT CVSS3_VERSION (#PCDATA)>
<!ELEMENT CVSS4_SCORE (CVSS4_BASE?)>
<!ELEMENT CVSS4_BASE (#PCDATA)>

<!ELEMENT VENDOR_REFERENCE_LIST (VENDOR_REFERENCE+)>
<!ELEMENT VENDOR_REFERENCE (ID,URL)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT URL (#PCDATA)>

<!ELEMENT CVE_ID_LIST (CVE_ID+)>
<!ELEMENT CVE_ID (ID,URL)>

<!ELEMENT BUGTRAQ_ID_LIST (BUGTRAQ_ID+)>
<!ELEMENT BUGTRAQ_ID (ID,URL)>

<!ELEMENT COMPLIANCE (COMPLIANCE_INFO+)>
<!ELEMENT COMPLIANCE_INFO (COMPLIANCE_TYPE, COMPLIANCE_SECTION, COMPLIANCE_DESCRIPTION)>
<!ELEMENT COMPLIANCE_TYPE (#PCDATA)>
<!ELEMENT COMPLIANCE_SECTION (#PCDATA)>
<!ELEMENT COMPLIANCE_DESCRIPTION (#PCDATA)>

<!-- APPENDICES -->

<!ELEMENT APPENDICES (NO_RESULTS?, NO_VULNS?, TEMPLATE_DETAILS?)>
<!ELEMENT NO_RESULTS (IP_LIST)>
<!ELEMENT IP_LIST (RANGE*)>
<!ELEMENT NO_VULNS (IP_LIST)>
<!ELEMENT TEMPLATE_DETAILS (VULN_LISTS?, SELECTIVE_VULNS?, EXCLUDED_VULN_LISTS?, EXCLUDED_VULNS?, RESULTING_VULNS?, FILTER_SUMMARY?, EXCLUDED_CATEGORIES?)>
<!ELEMENT VULN_LISTS (#PCDATA)>
<!ELEMENT SELECTIVE_VULNS (#PCDATA)>
<!ELEMENT EXCLUDED_VULN_LISTS (#PCDATA)>
<!ELEMENT EXCLUDED_VULNS (#PCDATA)>
<!ELEMENT RESULTING_VULNS (#PCDATA)>
<!ELEMENT FILTER_SUMMARY (#PCDATA)>
<!ELEMENT EXCLUDED_CATEGORIES (#PCDATA)>
<!ELEMENT NON_RUNNING_KERNELS (NON_RUNNING_KERNEL*)>
<!ELEMENT NON_RUNNING_KERNEL (NRK_QID*, IP*, SEVERITY*)>
<!ELEMENT NRK_QID (#PCDATA)>

Change Login Password API: Password Validation Now Aligned with UI

New or Updated API Updated
API Endpoint 

/api/2.0/fo/user/change_password/

 

Method POST
DTD or XSD changes No

Password validation is now aligned across the Qualys UI and the Change Password API. This enhancement helps ensure that passwords created or updated through the API use the same supported character set as UI-based password workflows, providing a consistent authentication experience across both interfaces.

When you log in for the first time to your account, you receive an email with a temporary password. After signing in with the temporary password, you must change your password before you can continue.

 If your existing password contains unsupported whitespace, tabs, or special characters, you must reset your password to comply with the updated password requirements.

You can now:

  • Change your password through this API using a character set that is identical to the UI
  • Receive a specific message when your password change request is unsuccessful
    • A message that states the password contains an unsupported whitespace character, such as a space, tab, or newline.
    • A message that lists the supported password requirements, if the password contains an unsupported character.

Expected Behavior

  • Passwords must use supported characters that are accepted by both the UI and APIs.
  • Passwords containing unsupported whitespace characters, such as spaces, are rejected during password creation or update.
  • Validation messages provide guidance when a password does not meet the supported character requirements.

Sample - Display the message if password contains unsupported whitespace charactersSample - Display the message if password contains unsupported whitespace characters

API  Request

curl --location '<qualys_base_url>/api/2.0/fo/user/change_password/index.php' \
--header 'X-Requested-With: test' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <JWT Token>' \
--header 'Cookie: DWRSESSIONID=054386fe3911af79f2806d0ed0df6559;' \
--data '{

    "newPassword": "Qatemp 123#"

}'

API Response

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM "
<qualys_base_url>/api/2.0/simple_return.dtd">
    <SIMPLE_RETURN>
        <RESPONSE>
            <DATETIME>2026-08-25T09:29:41Z</DATETIME>
            <TEXT>Password cannot contain spaces, tabs, or other whitespace characters.</TEXT>
        </RESPONSE>
    </SIMPLE_RETURN>

Sample - Display the message if password is changed successfullySample - Display the message if password is changed successfully

API  Request

curl --location '<qualys_base_url>/api/2.0/fo/user/change_password/index.php' \
--header 'X-Requested-With: test' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <JWT Token>' \
--header 'Cookie: DWRSESSIONID=2d1a115dc4cdf809676eae00d2a8c0d3; 
--data '{

    "newPassword": "password"

}'

API Response

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM "<qualys_base_url>/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
    <RESPONSE>
        <DATETIME>2026-08-26T11:45:53Z</DATETIME>
        <TEXT>Password changed successfully</TEXT>
    </RESPONSE>
</SIMPLE_RETURN>

Issues Addressed

The following reported and notable customer issues are fixed in this release:

Component/Category Description
VM - Host List API

When users viewed the Host Information page, some user-defined attribute values were missing. This happened for values set through API with a different network ID than the host. The Host List API still returned these values, creating inconsistent data between the API and UI.

This issue is now resolved. The Host List API and Host Information page now show consistent user-defined attribute data. Values from a network different from the host's are excluded from both.

VM - Scan API When users tried to launch the Ignore Vulnerability API with the tag_set_include parameter, the API returned an error stating that "parameter tag_set_include has an invalid value", even when a valid tag was specified. This issue occurred with certain asset-tracking configurations and prevented vulnerabilities from being ignored for assets associated with the specified tags. This issue is now resolved, and the API correctly processes valid tags during ignore and restore operations.