Patch Management Release 3.13 API

March 23, 2026

Before understanding the API release highlights, learn more about the API server URL to be used in your API requests by referring to the Know Your Qualys API Server URL section. For this API Release Notes, <qualys_base_url> is mentioned in the sample API requests.

Assets IDs in Jobs

Updated API: Create MTG Deployment Job 

New or Updated API Updated
API Endpoint  /mtg/v1/deploymentjob
Method POST
DTD or XSD changes Not Applicable

With this release, we have updated the Create MTG Deployment Job API which supports including Asset IDs in On-Demand and Run Once mitigation jobs. Previously, only Asset Tag IDs were supported. This enhancement applies to both Windows and Linux platforms and allows you to target individual assets more precisely.

Sample - Create On-Demand MTG Deployment JobSample - Create On-Demand MTG Deployment Job

API Request

curl -X 'POST' \
  '<qualys_base_url>/mtg/v1/deploymentjob' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer <Bearer_Token>' \
  -H 'Content-Type: application/json' \
  -d '

API Body

{
    "qids": [
       90007,90043
    ],
    "assetIds": [
        "28e69c01-8e59-4520-83da-a934becf9d88"
    ],
    "assetTagIds":[
        "576b4fab-2682-433e-b3e6-c4ea9861ae75"
    ],
    "name": "Windows_MTG_OnDemand_Job",
    "description": "Test Windows On-Demand Mitigation Job",
    "scheduleType": "On-demand",
    "schemaVersion": "1.0",
    "status": "Enabled",
    "type": "Install",
    "filterType": "Any",
    "exclusionFilterType": "Any",
    "platform": "Windows",
    "notification": {
        "notificationTypes": {
            "email": true
        },
        "notificationConfigs": {
            "recipientEmails": "[email protected],[email protected]",
            "completedPercentage": 80
        },
        "notificationEvents": {
            "onJobStart": true,
            "onJobComplete": true
        }
    }
}'

API Response

{
  "customerId": "bbb55e58-b06f-fd7b-81b8-92a7c5407282",
  "id": "756aa782-8f11-4468-8e68-d1db74c7203e",
  "schemaVersion": "1.0",
  "name": "Windows_MTG_OnDemand_Job",
  "description": "Test Windows On-Demand Mitigation Job",
  "type": "Install",
  "status": "Enabled",
  "coAuthorUserIds": null,
  "scheduleType": "On-demand",
  "startDateTime": "2026-1-23 04:27:51 AM",
  "recurring": false,
  "timezoneType": "SPECIFIC_TZ",
  "timezone": "UTC",
  "createdBy": {
    "user": {
      "id": "f080cf76-0de1-fd80-826c-ea22cf7da868",
      "name": "quaysxkm30",
      "fullName": "John Doe"
    },
    "date": 1769142471331,
    "context": null
  },
  "updatedBy": {
    "user": null,
    "date": null,
    "context": null
  },
  "deletedBy": {
    "user": null,
    "date": null,
    "context": null
  },
  "assetCount": null,
  "taggedAssetCount": 0,
  "applicableAssetCount": 1,
  "totalAssetCount": null,
  "assetResultReceivedCount": null,
  "jobCategory": 3,
  "jobTriggerStatus": null,
  "completionPercent": null,
  "jobSource": 3,
  "readOnly": false,
  "subCategory": "Mitigation",
  "platform": "Windows",
  "assetTagIds": [
    "576b4fab-2682-433e-b3e6-c4ea9861ae75"
  ],
  "assetIds": [
    "28e69c01-8e59-4520-83da-a934becf9d88"
  ],
  "matchAllTagIds": null,
  "exclusionTagIds": null,
  "filterType": "Any",
  "exclusionFilterType": "Any",
  "notification": {
    "notificationTypes": {
      "email": true
    },
    "notificationConfigs": {
      "recipientEmails": "[email protected],[email protected]",
      "completedPercentage": "80"
    },
    "notificationEvents": {
      "onJobStart": true,
      "onJobComplete": true
    }
  },
  "assetDetectionsQQL": "(tags.uuid: [576b4fab-2682-433e-b3e6-c4ea9861ae75]) OR (agentId: [28e69c01-8e59-4520-83da-a934becf9d88]) AND trackingMethod:QAGENT",
  "preDeployActions": [
    {
      "actionId": "1e8b264f-6689-426b-a395-ca288e554781",
      "action": "Apply Mitigation",
      "actionType": "predeploy",
      "params": {
        "timeout": 180,
        "mitigationCategory": "Script-based Virtual Patch",
        "qid": 90007,
        "qidDetectionId": 0,
        "hostVulnId": 0
      },
      "mitigationList": [
        {
          "cves": [
            "90007"
          ],
          "mitigationId": "d7e1f429-e0bd-4aac-83d2-ffabbb25e084",
          "mitigationType": "Registry Update",
          "mitigationSource": null,
          "carScriptId": 263935419,
          "customCdnUrl": "",
          "signatureHashCode": "",
          "impactFactor": 0,
          "implication": 1
        }
      ],
      "actionLinkedToJob": false
    },
    {
      "actionId": "ae7631c7-e0af-441f-81e4-cd88a340ed2e",
      "action": "Apply Mitigation",
      "actionType": "predeploy",
      "params": {
        "timeout": 180,
        "mitigationCategory": "Script-based Virtual Patch",
        "qid": 90043,
        "qidDetectionId": 0,
        "hostVulnId": 0
      },
      "mitigationList": [
        {
          "cves": [
            "90043"
          ],
          "mitigationId": "99138ea7-1f1a-4ec8-a755-927913c3ee11",
          "mitigationType": "Registry Update",
          "mitigationSource": null,
          "carScriptId": 934571954,
          "customCdnUrl": "",
          "signatureHashCode": "",
          "impactFactor": 0,
          "implication": 1
        }
      ],
      "actionLinkedToJob": false
    }
  ],
  "postDeployActions": null,
  "vulnQQL": "vulnerabilities.vulnerability.qid:[90007, 90043]"
}

Sample - Create Run Once Windows Mitigation JobSample - Create Run Once Windows Mitigation Job

API Request

curl -X 'POST' \
  '<qualys_base_url>/mtg/v1/deploymentjob' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer <Bearer_Token>' \
  -H 'Content-Type: application/json' \
  -d '

API Body

'{
  "qids": [
    90007,
    90043
  ],
  "assetIds": [
    "28e69c01-8e59-4520-83da-a934becf9d88"
  ],
  "assetTagIds": [
    "576b4fab-2682-433e-b3e6-c4ea9861ae75"
  ],
  "name": "MTG_RunOnce_Job",
  "description": "Test Windows Run-Once Mitigation Job",
  "scheduleType": "Once",
  "schemaVersion": "1.0",
  "startDateTime": "2026-01-23 10:09:58 AM",
  "status": "Enabled",
  "timezone": "Asia/Kolkata",
  "timezoneType": "SPECIFIC_TZ",
  "type": "Install",
  "filterType": "Any",
  "exclusionFilterType": "Any",
  "exclusionTagIds": [],
  "matchAllTagIds": [],
  "coAuthorUserIds": [],
  "platform": "Windows",
  "notification": {
    "notificationTypes": {
      "email": true
    },
    "notificationConfigs": {
      "recipientEmails": "[email protected],[email protected]",
      "completedPercentage": 80
    },
    "notificationEvents": {
      "onJobStart": true,
      "onJobComplete": true
    }
  }
}'

API Response

{
  "customerId": "bbb55e58-b06f-fd7b-81b8-92a7c5407282",
  "id": "d6a2dbae-9f78-4947-9c15-c6dc2a0f56ef",
  "schemaVersion": "1.0",
  "name": "MTG_RunOnce_Job",
  "description": "Test Windows Run-Once Mitigation Job",
  "type": "Install",
  "status": "Enabled",
  "coAuthorUserIds": [],
  "scheduleType": "Once",
  "startDateTime": "2026-01-23 10:09:58 AM",
  "recurring": false,
  "timezoneType": "SPECIFIC_TZ",
  "timezone": "Asia/Kolkata",
  "createdBy": {
    "user": {
      "id": "f080cf76-0de1-fd80-826c-ea22cf7da868",
      "name": "quaysxkm30",
      "fullName": "John Doe"
    },
    "date": 1769143677844,
    "context": null
  },
  "updatedBy": {
    "user": null,
    "date": null,
    "context": null
  },
  "deletedBy": {
    "user": null,
    "date": null,
    "context": null
  },
  "assetCount": null,
  "taggedAssetCount": 0,
  "applicableAssetCount": 1,
  "totalAssetCount": null,
  "assetResultReceivedCount": null,
  "jobCategory": 3,
  "jobTriggerStatus": null,
  "completionPercent": null,
  "jobSource": 3,
  "readOnly": false,
  "subCategory": "Mitigation",
  "platform": "Windows",
  "assetTagIds": [
    "576b4fab-2682-433e-b3e6-c4ea9861ae75"
  ],
  "assetIds": [
    "28e69c01-8e59-4520-83da-a934becf9d88"
  ],
  "matchAllTagIds": [],
  "exclusionTagIds": [],
  "filterType": "Any",
  "exclusionFilterType": "Any",
  "notification": {
    "notificationTypes": {
      "email": true
    },
    "notificationConfigs": {
      "recipientEmails": "[email protected],[email protected]",
      "completedPercentage": "80"
    },
    "notificationEvents": {
      "onJobStart": true,
      "onJobComplete": true
    }
  },
  "assetDetectionsQQL": "(tags.uuid: [576b4fab-2682-433e-b3e6-c4ea9861ae75]) OR (agentId: [28e69c01-8e59-4520-83da-a934becf9d88]) AND trackingMethod:QAGENT",
  "preDeployActions": [
    {
      "actionId": "403055d1-2040-45bc-96d3-6cdf43eb32d3",
      "action": "Apply Mitigation",
      "actionType": "predeploy",
      "params": {
        "timeout": 180,
        "mitigationCategory": "Script-based Virtual Patch",
        "qid": 90007,
        "qidDetectionId": 0,
        "hostVulnId": 0
      },
      "mitigationList": [
        {
          "cves": [
            "90007"
          ],
          "mitigationId": "d7e1f429-e0bd-4aac-83d2-ffabbb25e084",
          "mitigationType": "Registry Update",
          "mitigationSource": null,
          "carScriptId": 263935419,
          "customCdnUrl": "",
          "signatureHashCode": "",
          "impactFactor": 0,
          "implication": 1
        }
      ],
      "actionLinkedToJob": false
    },
    {
      "actionId": "eaf66898-5ef8-415f-8e28-faf40c9c4433",
      "action": "Apply Mitigation",
      "actionType": "predeploy",
      "params": {
        "timeout": 180,
        "mitigationCategory": "Script-based Virtual Patch",
        "qid": 90043,
        "qidDetectionId": 0,
        "hostVulnId": 0
      },
      "mitigationList": [
        {
          "cves": [
            "90043"
          ],
          "mitigationId": "99138ea7-1f1a-4ec8-a755-927913c3ee11",
          "mitigationType": "Registry Update",
          "mitigationSource": null,
          "carScriptId": 934571954,
          "customCdnUrl": "",
          "signatureHashCode": "",
          "impactFactor": 0,
          "implication": 1
        }
      ],
      "actionLinkedToJob": false
    }
  ],
  "postDeployActions": null,
  "vulnQQL": "vulnerabilities.vulnerability.qid:[90007, 90043]"
}

Updated API: Get Mitigation Job Details 

New or Updated API Updated
API Endpoint  /mtg/v1/deploymentjob/{deploymentJobId}
Method GET
DTD or XSD changes Not Applicable

With this release, we have updated the Get Mitigation Job Details API that now returns Asset IDs in the response for both Windows and Linux platforms, enabling you to view the assets included in a deployment job.

Input ParametersInput Parameters

Parameter

Mandatory/
Optional

Data Type

Description

deploymentJobId Mandatory String Specify the job ID. 

Sample - Get Isolation Job DetailsSample - Get Isolation Job Details

API Request

 curl -X 'GET' \
  '<qualys_base_url>/mtg/v1/deploymentjob/756aa782-8f11-4468-8e68-d1db74c7203e' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer <Bearer_Token>'

API Response

{
  "customerId": "bbb55e58-b06f-fd7b-81b8-92a7c5407282",
  "id": "756aa782-8f11-4468-8e68-d1db74c7203e",
  "schemaVersion": "1.0",
  "name": "Windows_MTG_OnDemand_Job",
  "description": "Test Windows On-Demand Mitigation Job",
  "type": "Install",
  "status": "Assets Responded",
  "coAuthorUserIds": null,
  "scheduleType": "On-demand",
  "startDateTime": "2026-1-23 04:27:51 AM",
  "recurring": false,
  "timezoneType": "SPECIFIC_TZ",
  "timezone": "UTC",
  "createdBy": {
    "user": {
      "id": "f080cf76-0de1-fd80-826c-ea22cf7da868",
      "name": "quaysxkm30",
      "fullName": "John Doe"
    },
    "date": 1769142471331,
    "context": null
  },
  "updatedBy": {
    "user": null,
    "date": null,
    "context": null
  },
  "deletedBy": {
    "user": null,
    "date": null,
    "context": null
  },
  "assetCount": null,
  "taggedAssetCount": 0,
  "applicableAssetCount": 6,
  "totalAssetCount": 6,
  "assetResultReceivedCount": 4,
  "jobCategory": 3,
  "jobTriggerStatus": 1,
  "completionPercent": 66,
  "jobSource": 3,
  "readOnly": false,
  "subCategory": "Mitigation",
  "platform": "Windows",
  "assetTagIds": [
    "576b4fab-2682-433e-b3e6-c4ea9861ae75"
  ],
  "assetIds": [
    "28e69c01-8e59-4520-83da-a934becf9d88"
  ],
  "matchAllTagIds": null,
  "exclusionTagIds": null,
  "filterType": "Any",
  "exclusionFilterType": "Any",
  "notification": {
    "notificationTypes": {
      "email": true
    },
    "notificationConfigs": {
      "recipientEmails": "[email protected],[email protected]",
      "completedPercentage": "80"
    },
    "notificationEvents": {
      "onJobStart": true,
      "onJobComplete": true
    }
  },
  "assetDetectionsQQL": "(tags.uuid: [576b4fab-2682-433e-b3e6-c4ea9861ae75]) OR (agentId: [28e69c01-8e59-4520-83da-a934becf9d88]) AND trackingMethod:QAGENT",
  "preDeployActions": [
    {
      "actionId": "1e8b264f-6689-426b-a395-ca288e554781",
      "action": "Apply Mitigation",
      "actionType": "predeploy",
      "params": {
        "timeout": 180,
        "mitigationCategory": "Script-based Virtual Patch",
        "qid": 90007,
        "qidDetectionId": 0,
        "qidTitle": "Enabled Cached Logon Credential",
        "hostVulnId": 0,
        "qds": 50,
        "detectionScoreMin": 50,
        "detectionScoreMax": 50
      },
      "mitigationList": [
        {
          "cves": [
            "90007"
          ],
          "mitigationId": "d7e1f429-e0bd-4aac-83d2-ffabbb25e084",
          "mitigationType": "Registry Update",
          "mitigationSource": null,
          "carScriptId": 263935419,
          "customCdnUrl": "",
          "signatureHashCode": "",
          "impactFactor": 0,
          "implication": 1
        }
      ],
      "actionLinkedToJob": false
    },
    {
      "actionId": "ae7631c7-e0af-441f-81e4-cd88a340ed2e",
      "action": "Apply Mitigation",
      "actionType": "predeploy",
      "params": {
        "timeout": 180,
        "mitigationCategory": "Script-based Virtual Patch",
        "qid": 90043,
        "qidDetectionId": 0,
        "qidTitle": "SMB Signing Disabled or SMB Signing Not Required",
        "hostVulnId": 0,
        "qds": 35,
        "detectionScoreMin": 35,
        "detectionScoreMax": 35
      },
      "mitigationList": [
        {
          "cves": [
            "90043"
          ],
          "mitigationId": "99138ea7-1f1a-4ec8-a755-927913c3ee11",
          "mitigationType": "Registry Update",
          "mitigationSource": null,
          "carScriptId": 934571954,
          "customCdnUrl": "",
          "signatureHashCode": "",
          "impactFactor": 0,
          "implication": 1
        }
      ],
      "actionLinkedToJob": false
    }
  ],
  "postDeployActions": null,
  "vulnQQL": "vulnerabilities.vulnerability.qid:[90007, 90043]"
}

Updated API: Update Mitigation Deployment Job 

New or Updated API Updated
API Endpoint  /mtg/v1/deploymentjob/{deploymentJobId}
Method PATCH
DTD or XSD changes Not Applicable

With this release, we have enhanced the Update MTG Deployment Job API in which you can now update the Asset IDs in On-Demand and Run Once mitigation jobs. This enhancement applies to both Windows and Linux platforms and helps you manage individual assets more effectively.

Input ParametersInput Parameters

Parameter

Mandatory/
Optional

Data Type

Description

deploymentJobId Mandatory String Specify the job ID. 

Sample - Update On-Demand MTG Deployment Job Sample - Update On-Demand MTG Deployment Job 

API Request

curl -X 'PATCH' \
  '<qualys_base_url>/mtg/v1/deploymentjob/02afe166-b5fa-4bc2-9b0e-3008a83b69b4' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer <Bearer_Token>' \
  -H 'Content-Type: application/json' \
  -d '

API Body

{
  "qids": [
    90007,
    90043
  ],
  "assetIds": [
    "28e69c01-8e59-4520-83da-a934becf9d88"
  ],
  "assetTagIds": [
    "576b4fab-2682-433e-b3e6-c4ea9861ae75"
  ],
  "name": "Win_MTG_OnDemand_Job_",
  "description": "Test Windows On-Demand Mitigation Job",
  "scheduleType": "On-demand",
  "schemaVersion": "1.0",
  "status": "Enabled",
  "type": "Install",
  "filterType": "Any",
  "exclusionFilterType": "Any",
  "platform": "Windows",
  "notification": {
    "notificationTypes": {
      "email": true
    },
    "notificationConfigs": {
      "recipientEmails": "[email protected],[email protected]",
      "completedPercentage": 80
    },
    "notificationEvents": {
      "onJobStart": true,
      "onJobComplete": true
    }
  }
}'

API Response

{
  "customerId": "bbb55e58-b06f-fd7b-81b8-92a7c5407282",
  "id": "02afe166-b5fa-4bc2-9b0e-3008a83b69b4",
  "schemaVersion": "1.0",
  "name": "Win_MTG_OnDemand_Job_",
  "description": "Test Windows On-Demand Mitigation Job",
  "type": "Install",
  "status": "Enabled",
  "coAuthorUserIds": null,
  "scheduleType": "On-demand",
  "startDateTime": null,
  "recurring": false,
  "timezoneType": null,
  "timezone": null,
  "createdBy": null,
  "updatedBy": {
    "user": {
      "id": "f080cf76-0de1-fd80-826c-ea22cf7da868",
      "name": "quaysxkm30",
      "fullName": null
    },
    "date": 1769145196428,
    "context": null
  },
  "deletedBy": null,
  "assetCount": null,
  "taggedAssetCount": 0,
  "applicableAssetCount": 1,
  "totalAssetCount": null,
  "assetResultReceivedCount": null,
  "jobCategory": 3,
  "jobTriggerStatus": null,
  "completionPercent": null,
  "jobSource": 3,
  "readOnly": false,
  "subCategory": "Mitigation",
  "platform": "Windows",
  "assetTagIds": [
    "576b4fab-2682-433e-b3e6-c4ea9861ae75"
  ],
  "assetIds": [
    "28e69c01-8e59-4520-83da-a934becf9d88"
  ],
  "matchAllTagIds": null,
  "exclusionTagIds": null,
  "filterType": "Any",
  "exclusionFilterType": "Any",
  "notification": {
    "notificationTypes": {
      "email": true
    },
    "notificationConfigs": {
      "recipientEmails": "[email protected],[email protected]",
      "completedPercentage": "80"
    },
    "notificationEvents": {
      "onJobStart": true,
      "onJobComplete": true
    }
  },
  "assetDetectionsQQL": "(tags.uuid: [576b4fab-2682-433e-b3e6-c4ea9861ae75]) OR (agentId: [28e69c01-8e59-4520-83da-a934becf9d88]) AND trackingMethod:QAGENT",
  "preDeployActions": [
    {
      "actionId": "42034df2-03fa-4060-ab14-86f5471dac7c",
      "action": "Apply Mitigation",
      "actionType": "predeploy",
      "params": {
        "timeout": 180,
        "mitigationCategory": "Script-based Virtual Patch",
        "qid": 90007,
        "qidDetectionId": 0,
        "hostVulnId": 0
      },
      "mitigationList": [
        {
          "cves": [
            "90007"
          ],
          "mitigationId": "d7e1f429-e0bd-4aac-83d2-ffabbb25e084",
          "mitigationType": "Registry Update",
          "mitigationSource": null,
          "carScriptId": 263935419,
          "customCdnUrl": "",
          "signatureHashCode": "",
          "impactFactor": 0,
          "implication": 1
        }
      ],
      "actionLinkedToJob": false
    },
    {
      "actionId": "857d9763-d15d-4db6-966f-8b97a7be5571",
      "action": "Apply Mitigation",
      "actionType": "predeploy",
      "params": {
        "timeout": 180,
        "mitigationCategory": "Script-based Virtual Patch",
        "qid": 90043,
        "qidDetectionId": 0,
        "hostVulnId": 0
      },
      "mitigationList": [
        {
          "cves": [
            "90043"
          ],
          "mitigationId": "99138ea7-1f1a-4ec8-a755-927913c3ee11",
          "mitigationType": "Registry Update",
          "mitigationSource": null,
          "carScriptId": 934571954,
          "customCdnUrl": "",
          "signatureHashCode": "",
          "impactFactor": 0,
          "implication": 1
        }
      ],
      "actionLinkedToJob": false
    }
  ],
  "postDeployActions": null,
  "vulnQQL": "vulnerabilities.vulnerability.qid:[90007, 90043]"
}

Updated Random Downtime Parameter

Updated API: Create Deployment Job 

New or Updated API Updated
API Endpoint  /pm/v1/deploymentjob/update/{deploymentJobId}
Method POST
DTD or XSD changes Not Applicable

With this release, we have enhanced the Create Deployment Job API to configure the random downtime parameter up to 8 hours. This extended duration allows agents more time to download patches, which is especially useful for jobs involving a large number of patches.

Input ParametersInput Parameters

Parameter

Mandatory/
Optional

Data Type

Description

downloadRandomizeTimeUnit Optional String Provide the download Randomize time unit as "HOURS" or "MINUTES".
Note: You can now set this time to 8 hours. 

Sample - Create Windows Deployment JobSample - Create Windows Deployment Job

API Request

curl -X POST 
"<QualysBaseURL>/pm/v1/deploymentjob"
 -H "accept: application/json" 
 -H "Authorization: Bearer <<JWT token>>"

API Body

{
  "name": "Randomize_publicAPIDoc",
  "description": "",
  "type": "Install",
  "status": "Enabled",
  "coAuthorUserIds": null,
  "scheduleType": "On-demand",
  "startDateTime": "2026-1-28 06:43:53 AM",
  "recurring": false,
  "timezoneType": "SPECIFIC_TZ",
  "timezone": "UTC",
  "createdBy": {
    "user": {
      "id": "9bf883ed-788a-69ac-8295-3b7822fdb641",
      "name": "username1",
      "fullName": "John Doe"
    },
    "date": 1769582633650,
    "context": null
  },
  "updatedBy": {
    "user": null,
    "date": null,
    "context": null
  },
  "deletedBy": {
    "user": null,
    "date": null,
    "context": null
  },
  "assetCount": null,
  "taggedAssetCount": 0,
  "applicableAssetCount": 2,
  "totalAssetCount": null,
  "assetResultReceivedCount": null,
  "jobCategory": 3,
  "jobTriggerStatus": null,
  "completionPercent": null,
  "jobSource": 2,
  "readOnly": false,
  "subCategory": "Patch",
  "platform": "Windows",
  "assetIds": [
    "269c7084-4712-46b3-a4b1-ea03632c4330",
    "db854e92-2906-44ff-bdb5-b48325b90e47"
  ],
  "assetTagIds": null,
  "matchAllTagIds": null,
  "exclusionTagIds": null,
  "exclusionAssetIds": null,
  "approvedPatches": [
    "192098db-d337-3914-94cc-60382e550094",
    "3f8567f4-4848-3116-84da-1c965eade906",
    "48dc6993-9222-31e4-9727-21dc12182855",
    "b44a8452-7fd6-31a4-b4c5-640b43128a39"
  ],
  "disabledPatches": null,
  "patchCount": 4,
  "recurringWeekDays": "",
  "dayOfMonth": null,
  "recurringDayOfMonth": null,
  "recurringWeekDayOfMonth": null,
  "timeout": -1,
  "timeoutUnit": "HOURS",
  "preDeployment": {
    "userMessage": "",
    "description": "",
    "deferment": {
      "intervalUnit": "HOURS"
    }
  },
  "duringDeployment": {
    "userMessage": "",
    "description": ""
  },
  "postDeployment": {
    "suppressReboots": false,
    "rebootHonorOnUserLogin": false,
    "rebootOption": {
      "userMessage": "",
      "description": "",
      "deferment": {
        "intervalUnit": "HOURS"
      }
    },
    "rebootCountdown": {
      "interval": 15,
      "intervalUnit": "MINUTES",
      "userMessage": "Reboot countdown started",
      "description": "The system reboot is initiated. It will reboot automatically after the timer countdown."
    },
    "onComplete": {
      "userMessage": "",
      "description": "",
      "alwaysShowCompletedPrompt": false
    }
  },
  "opportunisticDownloads": false,
  "filterType": "Any",
  "exclusionFilterType": "Any",
  "minimizeWindow": false,
  "dynamicPatchesQQL": "",
  "isDynamicPatchesQQL": false,
  "dynamicQQLType": 1,
  "assetDetectionsQQL": "",
  "continueOnPatchFailure": false,
  "preDeployActions": null,
  "postDeployActions": null,
  "monthlyRecurringType": null,
  "patchTuesdayPlusXDays": null,
  "recurringLastDayOfMonth": false,
  "notification": null,
  "linkedJobId": null,
  "linkedToJob": null,
  "linkedJobs": null,
  "jobStartCountdown": null,
  "passwordAction": null,
  "additionalDynamicQQLType": null,
  "additionalDynamicPatchesQQL": null,
  "downloadRandomizeTime": 8,
  "downloadRandomizeTimeUnit": "HOURS",
  "customPatchURLId": null,
  "isVulnContext": false,
  "remediationQids": null,
  "isAssetImported": false,
  "enableReattemptFailedPatches": false,
  "reattemptFailedPatches": {
    "noOfReattempts": 0,
    "exponentialBackoffInterval": 0
  },
  "allowExecutionWithPendingReboot": false,
  "isDefaultJob": false,
  "defaultJobConfiguration": {
    "onAssetActivation": false,
    "onAssetInactiveForXDays": null
  }
}

API Response

{
  "customerId": "f0943390-ea00-ca52-8302-1cccc04ee064",
  "id": "32e9a0ab-efb8-45e6-99ba-5f7025bf5a56",
  "schemaVersion": "1.0",
  "name": "Randomize_publicAPIDoc",
  "description": "",
  "type": "Install",
  "status": "Enabled",
  "coAuthorUserIds": null,
  "scheduleType": "On-demand",
  "startDateTime": "2026-1-28 06:45:57 AM",
  "recurring": false,
  "timezoneType": "SPECIFIC_TZ",
  "timezone": "UTC",
  "createdBy": {
    "user": {
      "id": "9bf883ed-788a-69ac-8295-3b7822fdb641",
      "name": "username2",
      "fullName": "John Doe"
    },
    "date": 1769582757753,
    "context": null
  },
  "updatedBy": {
    "user": null,
    "date": null,
    "context": null
  },
  "deletedBy": {
    "user": null,
    "date": null,
    "context": null
  },
  "assetCount": null,
  "taggedAssetCount": 0,
  "applicableAssetCount": 2,
  "totalAssetCount": null,
  "assetResultReceivedCount": null,
  "jobCategory": 3,
  "jobTriggerStatus": null,
  "completionPercent": null,
  "jobSource": 3,
  "readOnly": false,
  "subCategory": "Patch",
  "platform": "Windows",
  "assetIds": [
    "db854e92-2906-44ff-bdb5-b48325b90e47",
    "269c7084-4712-46b3-a4b1-ea03632c4330"
  ],
  "assetTagIds": null,
  "matchAllTagIds": null,
  "exclusionTagIds": null,
  "exclusionAssetIds": null,
  "approvedPatches": [
    "3f8567f4-4848-3116-84da-1c965eade906",
    "192098db-d337-3914-94cc-60382e550094",
    "48dc6993-9222-31e4-9727-21dc12182855",
    "b44a8452-7fd6-31a4-b4c5-640b43128a39"
  ],
  "disabledPatches": null,
  "patchCount": 4,
  "recurringWeekDays": "",
  "dayOfMonth": null,
  "recurringDayOfMonth": null,
  "recurringWeekDayOfMonth": null,
  "timeout": -1,
  "timeoutUnit": "HOURS",
  "preDeployment": {
    "userMessage": "",
    "description": "",
    "deferment": {
      "count": 0,
      "interval": 0,
      "intervalUnit": "HOURS"
    }
  },
  "duringDeployment": {
    "userMessage": "",
    "description": ""
  },
  "postDeployment": {
    "suppressReboots": false,
    "rebootHonorOnUserLogin": false,
    "rebootOption": {
      "userMessage": "",
      "description": "",
      "deferment": {
        "count": 0,
        "interval": 0,
        "intervalUnit": "HOURS"
      }
    },
    "rebootCountdown": {
      "interval": 15,
      "intervalUnit": "MINUTES",
      "userMessage": "Reboot countdown started",
      "description": "The system reboot is initiated. It will reboot automatically after the timer countdown."
    },
    "onComplete": {
      "userMessage": "",
      "description": "",
      "alwaysShowCompletedPrompt": false
    }
  },
  "opportunisticDownloads": false,
  "filterType": "Any",
  "exclusionFilterType": "Any",
  "minimizeWindow": false,
  "dynamicPatchesQQL": "",
  "isDynamicPatchesQQL": false,
  "dynamicQQLType": 1,
  "assetDetectionsQQL": "",
  "continueOnPatchFailure": false,
  "preDeployActions": null,
  "postDeployActions": null,
  "monthlyRecurringType": null,
  "patchTuesdayPlusXDays": null,
  "recurringLastDayOfMonth": false,
  "notification": null,
  "linkedJobId": null,
  "linkedToJob": null,
  "linkedJobs": null,
  "jobStartCountdown": null,
  "passwordAction": null,
  "additionalDynamicQQLType": null,
  "additionalDynamicPatchesQQL": null,
  "downloadRandomizeTime": 8,
  "downloadRandomizeTimeUnit": "HOURS",
  "customPatchURLId": null,
  "isVulnContext": false,
  "remediationQids": null,
  "isAssetImported": false,
  "enableReattemptFailedPatches": false,
  "reattemptFailedPatches": {
    "noOfReattempts": 0,
    "exponentialBackoffInterval": 0
  },
  "allowExecutionWithPendingReboot": false,
  "isDefaultJob": false,
  "defaultJobConfiguration": {
    "onAssetActivation": false,
    "onAssetInactiveForXDays": null
  }
}

Updated API: Update Deployment Job 

New or Updated API Updated
API Endpoint  /pm/v1/deploymentjob/update/{deploymentJobId}
Method POST
DTD or XSD changes Not Applicable

We have enhanced the Update Deployment Job API to support setting the random downtime parameter up to 8 hours, enabling improved patch download flexibility for large deployments.

Sample - Update Deployment JobSample - Update Deployment Job

API Request

curl -X PATCH
"https://<QualysBaseURL>/pm/v1/deploymentjob/update/c08769ba-aa65-4b77-b224-f2c789ce7970"
-H "accept: application/json" 
-H "Authorization: <<Jwt Token>>" 
-H "Content-Type: application/json"

API Body

{
  "customerId": "f0943390-ea00-ca52-8302-1cccc04ee064",
  "id": "0221be68-fa9a-4d06-b6ef-64431a8bcf19",
  "schemaVersion": "1.0",
  "name": "Random1234",
  "description": "",
  "type": "Install",
  "status": "Disabled",
  "coAuthorUserIds": null,
  "scheduleType": "On-demand",
  "startDateTime": "2026-1-28 06:43:53 AM",
  "recurring": false,
  "timezoneType": "SPECIFIC_TZ",
  "timezone": "UTC",
  "createdBy": {
    "user": {
      "id": "9bf883ed-788a-69ac-8295-3b7822fdb641",
      "name": "username2",
      "fullName": "John Doe"
    },
    "date": 1769582633650,
    "context": null
  },
  "updatedBy": {
    "user": null,
    "date": null,
    "context": null
  },
  "deletedBy": {
    "user": null,
    "date": null,
    "context": null
  },
  "assetCount": null,
  "taggedAssetCount": 0,
  "applicableAssetCount": 2,
  "totalAssetCount": null,
  "assetResultReceivedCount": null,
  "jobCategory": 3,
  "jobTriggerStatus": null,
  "completionPercent": null,
  "jobSource": 2,
  "readOnly": false,
  "subCategory": "Patch",
  "platform": "Windows",
  "assetIds": [
    "269c7084-4712-46b3-a4b1-ea03632c4330",
    "db854e92-2906-44ff-bdb5-b48325b90e47"
  ],
  "assetTagIds": null,
  "matchAllTagIds": null,
  "exclusionTagIds": null,
  "exclusionAssetIds": null,
  "approvedPatches": [
    "192098db-d337-3914-94cc-60382e550094",
    "3f8567f4-4848-3116-84da-1c965eade906",
    "48dc6993-9222-31e4-9727-21dc12182855",
    "b44a8452-7fd6-31a4-b4c5-640b43128a39"
  ],
  "disabledPatches": null,
  "patchCount": 4,
  "recurringWeekDays": "",
  "dayOfMonth": null,
  "recurringDayOfMonth": null,
  "recurringWeekDayOfMonth": null,
  "timeout": -1,
  "timeoutUnit": "HOURS",
  "preDeployment": {
    "userMessage": "",
    "description": "",
    "deferment": {
      "intervalUnit": "HOURS"
    }
  },
  "duringDeployment": {
    "userMessage": "",
    "description": ""
  },
  "postDeployment": {
    "suppressReboots": false,
    "rebootHonorOnUserLogin": false,
    "rebootOption": {
      "userMessage": "",
      "description": "",
      "deferment": {
        "intervalUnit": "HOURS"
      }
    },
    "rebootCountdown": {
      "interval": 15,
      "intervalUnit": "MINUTES",
      "userMessage": "Reboot countdown started",
      "description": "The system reboot is initiated. It will reboot automatically after the timer countdown."
    },
    "onComplete": {
      "userMessage": "",
      "description": "",
      "alwaysShowCompletedPrompt": false
    }
  },
  "opportunisticDownloads": false,
  "filterType": "Any",
  "exclusionFilterType": "Any",
  "minimizeWindow": false,
  "dynamicPatchesQQL": "",
  "isDynamicPatchesQQL": false,
  "dynamicQQLType": 1,
  "assetDetectionsQQL": "",
  "continueOnPatchFailure": false,
  "preDeployActions": null,
  "postDeployActions": null,
  "monthlyRecurringType": null,
  "patchTuesdayPlusXDays": null,
  "recurringLastDayOfMonth": false,
  "notification": null,
  "linkedJobId": null,
  "linkedToJob": null,
  "linkedJobs": null,
  "jobStartCountdown": null,
  "passwordAction": null,
  "additionalDynamicQQLType": null,
  "additionalDynamicPatchesQQL": null,
  "downloadRandomizeTime": 6,
  "downloadRandomizeTimeUnit": "HOURS",
  "customPatchURLId": null,
  "isVulnContext": false,
  "remediationQids": null,
  "isAssetImported": false,
  "enableReattemptFailedPatches": false,
  "reattemptFailedPatches": {
    "noOfReattempts": 0,
    "exponentialBackoffInterval": 0
  },
  "allowExecutionWithPendingReboot": false,
  "isDefaultJob": false,
  "defaultJobConfiguration": {
    "onAssetActivation": false,
    "onAssetInactiveForXDays": null
  }
}

API Response

{
  "customerId": "f0943390-ea00-ca52-8302-1cccc04ee064",
  "id": "0221be68-fa9a-4d06-b6ef-64431a8bcf19",
  "schemaVersion": "1.0",
  "name": "Random1234",
  "description": "",
  "type": "Install",
  "status": "Disabled",
  "coAuthorUserIds": null,
  "scheduleType": "On-demand",
  "startDateTime": "2026-1-28 06:43:53 AM",
  "recurring": false,
  "timezoneType": "SPECIFIC_TZ",
  "timezone": "UTC",
  "createdBy": {
    "user": {
      "id": "9bf883ed-788a-69ac-8295-3b7822fdb641",
      "name": "username2",
      "fullName": "John Doe"
    },
    "date": 1769582633650,
    "context": null
  },
  "updatedBy": {
    "user": {
      "id": "9bf883ed-788a-69ac-8295-3b7822fdb641",
      "name": "username1",
      "fullName": null
    },
    "date": 1769583269312,
    "context": null
  },
  "deletedBy": null,
  "assetCount": null,
  "taggedAssetCount": 0,
  "applicableAssetCount": 2,
  "totalAssetCount": null,
  "assetResultReceivedCount": null,
  "jobCategory": 3,
  "jobTriggerStatus": null,
  "completionPercent": null,
  "jobSource": 2,
  "readOnly": false,
  "subCategory": "Patch",
  "platform": "Windows",
  "assetIds": [
    "db854e92-2906-44ff-bdb5-b48325b90e47",
    "269c7084-4712-46b3-a4b1-ea03632c4330"
  ],
  "assetTagIds": null,
  "matchAllTagIds": null,
  "exclusionTagIds": null,
  "exclusionAssetIds": null,
  "approvedPatches": [
    "3f8567f4-4848-3116-84da-1c965eade906",
    "192098db-d337-3914-94cc-60382e550094",
    "48dc6993-9222-31e4-9727-21dc12182855",
    "b44a8452-7fd6-31a4-b4c5-640b43128a39"
  ],
  "disabledPatches": null,
  "patchCount": 4,
  "recurringWeekDays": "",
  "dayOfMonth": null,
  "recurringDayOfMonth": null,
  "recurringWeekDayOfMonth": null,
  "timeout": -1,
  "timeoutUnit": "HOURS",
  "preDeployment": {
    "userMessage": "",
    "description": "",
    "deferment": {
      "count": 0,
      "interval": 0,
      "intervalUnit": "HOURS"
    }
  },
  "duringDeployment": {
    "userMessage": "",
    "description": ""
  },
  "postDeployment": {
    "suppressReboots": false,
    "rebootHonorOnUserLogin": false,
    "rebootOption": {
      "userMessage": "",
      "description": "",
      "deferment": {
        "count": 0,
        "interval": 0,
        "intervalUnit": "HOURS"
      }
    },
    "rebootCountdown": {
      "interval": 15,
      "intervalUnit": "MINUTES",
      "userMessage": "Reboot countdown started",
      "description": "The system reboot is initiated. It will reboot automatically after the timer countdown."
    },
    "onComplete": {
      "userMessage": "",
      "description": "",
      "alwaysShowCompletedPrompt": false
    }
  },
  "opportunisticDownloads": false,
  "filterType": "Any",
  "exclusionFilterType": "Any",
  "minimizeWindow": false,
  "dynamicPatchesQQL": "",
  "isDynamicPatchesQQL": false,
  "dynamicQQLType": 1,
  "assetDetectionsQQL": "",
  "continueOnPatchFailure": false,
  "preDeployActions": null,
  "postDeployActions": null,
  "monthlyRecurringType": null,
  "patchTuesdayPlusXDays": null,
  "recurringLastDayOfMonth": false,
  "notification": null,
  "linkedJobId": null,
  "linkedToJob": null,
  "linkedJobs": null,
  "jobStartCountdown": null,
  "passwordAction": null,
  "additionalDynamicQQLType": null,
  "additionalDynamicPatchesQQL": null,
  "downloadRandomizeTime": 6,
  "downloadRandomizeTimeUnit": "HOURS",
  "customPatchURLId": null,
  "isVulnContext": false,
  "remediationQids": [],
  "isAssetImported": false,
  "enableReattemptFailedPatches": false,
  "reattemptFailedPatches": {
    "noOfReattempts": 0,
    "exponentialBackoffInterval": 0
  },
  "allowExecutionWithPendingReboot": false,
  "isDefaultJob": false,
  "defaultJobConfiguration": {
    "onAssetActivation": false,
    "onAssetInactiveForXDays": null
  }
}

New Result Type Column in Reports

Updated API: Get List of Report Columns 

New   or Updated API Updated
API Endpoint  pm/v1/report/columns
Method POST
DTD or XSD changes Not Applicable

With this release, this API now supports the resultType field in the request.  The generated report includes a new Result Type column. This enhancement applies to Windows and Linux platforms for Job Progress report.

Sample - Get List of Report Columns with resultType fieldSample - Get List of Report Columns with resultType field

API Request

 curl -X 'GET' \   '<qualys_base_url>/pm/v1/report/columns?platform=LINUX&reportSection=jobProgress' \
 -H 'accept: application/json'
 -H 'Authorization: Bearer <JWT_Token>

API Response

[
  "rowId",
  "assetId",
  "assetName",
  "status",
  "pendingInRebootJobName",
  "scanDateTime",
  "operatingSystem",
  "patchStatusType",
  "partiallySuccessful",
  "patchId",
  "title",
  "category",
  "severity",
  "advisory",
  "qid",
  "cve",
  "patchInstallDate",
  "assetIp",
  "patchStatusReason",
  "reasonId",
  "assetDeactivated",
  "assetIpv6Address",
  "resultType"
]

Updated API: Get Deployment Job Progress Report 

 New   or Updated API   Updated
API Endpoint  

pm/v2/report/jobProgress/{deploymentJobId}

Method  POST
DTD or XSD changes  Not Applicable

With this release, we have enhacned the Get Deployment Job Progress Report API response to now include the resultType field, indicating the result type for each asset.

Sample - Get Deployment Job Progress Report with resultType fieldSample - Get Deployment Job Progress Report with resultType field

API Request

    curl -X GET "https://gateway.qg2.apps.qualys.com/pm/v1/report/dee65fc2-d025-448e-afd6-378bb66c3d4e' \
    -H "accept: application/json" 
    -H "Authorization: Bearer <<jwt token>>"

API Body

'{
  "name": "Job Progress Report",
  "description": "Job Progress Report Description",
  "includeActionReport": true,
  "jobInstanceId": 1,
  "reportFormat": "CSV",
  "columnsToDisplay": {
    "jobProgress": [
    
  "rowId",
  "assetId",
  "assetName",
  "status",
  "pendingInRebootJobName",
  "scanDateTime",
  "operatingSystem",
  "patchStatusType",
  "partiallySuccessful",
  "patchId",
  "title",
  "category",
  "severity",
  "advisory",
  "qid",
  "cve",
  "patchInstallDate",
  "assetIp",
  "patchStatusReason",
  "reasonId",
  "assetDeactivated",
  "assetIpv6Address",
  "resultType"
    ],
    "jobProgressActions": [
      "rowId",
      "assetId",
      "assetName",
      "status",
      "pendingInRebootJobName",
      "scanDateTime",
      "operatingSystem",
      "action",
      "actionId",
      "actionType",
      "actionParams",
      "returnCode",
      "errorMessage",
      "assetDeactivated"
    ]
  }
}'

API Response

{
  "reportId": "c80f0154-2f9d-4da0-9df1-7bf33c04b6a6"
}

Updated API: Get Deployment Job Result Summary  

New or Updated API Updated
API Endpoint  /pm/v1/deploymentjob/{deploymentJobId}/deploymentjobresult/summary
Method GET
DTD or XSD changes Not Applicable

With this release, the Get Deployment Job Result Summary API displays the resultType field in the API response. This field indicates the result type for each asset in the report. 

Sample - Get Deployment Job Summary with resultType fieldSample - Get Deployment Job Summary with resultType field

API Request

curl -X 'GET' \
  'https://gateway.p04.eng.sjc01.qualys.com/pm/v1/deploymentjob/2ce8c76c-2590-41fc-b0e4-27453e2dafe3/deploymentjobresult/summary' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer <<jwt token>>'

API Response

{
  "id": "2ce8c76c-2590-41fc-b0e4-27453e2dafe3",
  "name": "Copy_of_Copy_of_Copy_of_LinuxOnDemJob_Interim_API4_1773638675788",
  "assetCount": 1,
  "patchCount": 8,
  "createdBy": "quaysxsm35",
  "createdOn": 1773638682631,
  "assets": [
    {
      "asset": {
        "id": "a71c08ae-dd2b-4b96-b6ca-7c2161d17190",
        "name": "Rest-Assured_Automation_Agent1771826566827",
        "operatingSystem": "Red Hat Enterprise Linux 8.4",
        "tags": [
          {
            "id": "6ff0b36a-644a-4413-9d87-c2e35381db07",
            "name": null
          }
        ],
        "lastLoggedOnUser": "",
        "successPatches": 1,
        "installedPatches": 1,
        "failedPatches": 1,
        "supersededPatches": 0,
        "notApplicablePatches": 1,
        "executing": 1,
        "pendingExecution": 1,
        "pendingReboot": 1,
        "pendingVerification": 1,
        "jobInstanceId": 1,
        "interfaces": [
          {
            "interfaceName": null,
            "macAddress": null,
            "address": null,
            "gatewayAddress": null,
            "ipv6Address": "fe80:0:0:0:1dcc:3a12:56d8:73f"
          },
          {
            "interfaceName": null,
            "macAddress": null,
            "address": "10.0.203.124",
            "gatewayAddress": null,
            "ipv6Address": null
          }
        ],
        "skipPatchCount": 2,
        "additionalFields": null,
        "isDeactivated": false,
        "agentVersion": "6.1.0.28",
        "osNotSupportedForModules": []
      },
      "endDateTime": 1773660405940,
      "startDateTime": 1773660285940,
      "statusDateTime": 1773660405940,
      "status": "Patching",
      "statusCode": "20330",
      "jobSentOn": 1773638689562,
      "installed": [
        "4f2282a6-685f-32da-b5c1-97361e4be530"
      ],
      "failed": [
        "9a34e558-1098-3133-a975-baa7647bc600"
      ],
      "success": [
        "5f954a57-e102-3980-8e6e-ba2b5823915c"
      ],
      "superseded": [],
      "notApplicable": [
        "92c4ba84-2c64-3277-8b83-56a963e5f89d"
      ],
      "failedActionsCount": 0,
      "successfulActionsCount": 0,
      "skippedActionsCount": 0,
      "partialActionsCount": 0,
      "interimResultStatus": {
        "Executing": 1,
        "Pending Execution": 1,
        "Pending Reboot": 1,
        "Pending Verification": 1
      },
      "jobInstanceId": 1,
      "totalPatchCount": 4,
      "runId": 0,
      "scanDateTime": 1757399874541,
      "pendingForRebootInAnotherJob": false,
      "pendingForRebootInAnotherJobName": null,
      "osIdentifier": "RHEL8",
      "isolation": null,
      "resultType": "INTERIM"
    }
  ],
  "allowExecutionWithPendingReboot": false,
  "priorityJob": false
}

Patch and Action Filters In Reports 

Updated API: Generate Mitigation Job Progress Report 

New or Updated API Updated
API Endpoint 

/pm/v1/report/mitigationjobprogress/{deploymentJobId} 

Method POST
DTD or XSD changes Not Applicable

In this release, we have enhanced the Mitigation Job Progress Report API by adding action filters to the API request. When filter values are provided, the report displays results accordingly. You can also retrieve IP address information based on the assetIP and/or IPV6 values included in the API request.

Input ParametersInput Parameters

Parameter

Mandatory/
Optional

Data Type

Description

assetIpv6Address Optional String Specify the IPv6 address.
assetIp Optional String

Specify the IPv4 address.

actionStatus Optional String

Specify the action status filter value. 

The values are Success, Failed, Skipped, Partial. If no value is specified, all columns are displayed in the report. 

Sample - Generate Mitigation Job Progress Report with Action Status FiltersSample - Generate Mitigation Job Progress Report with Action Status Filters

API Request

curl -X 'POST' \
  'https://gateway.p04.eng.sjc01.qualys.com/pm/v1/report/mitigationjobprogress/3501bbe2-89da-45e9-a3eb-5d40692f7ccb' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '

API Body

'{
  "name": "Mitigation Job Progress Report",
  "description": "Mitigation Job Progress Report Description",
  "query": "job.asset.status:Completed",
  "reportFormat": "CSV",
  "columnsToDisplay": {
    "mitigationJobProgress": [
      "assetId",
      "assetName",
      "jobStatus",
      "operatingSystem",
      "qid",
      "actionStatus",
      "returnCode",
      "returnMessage",
      "mitigationStatus",
      "cveIds",
      "mitigationTitle",
      "mitigationType",
      "impactFactor",
      "mitigationReturnCode",
      "mitigationReason",
      "assetDeactivated",
      "assetIpv6Address",
      "assetIp"
    ]
  },
  "filters": {
    "actionStatus": [
      "success",
      "failed",
      "skipped",
      "partial"
    ]
  }
}

API Response

{
  "reportId": "3a4611d8-70f3-4af1-866f-f8e1af98a060"

Updated API: Get Deployment Job Progress Report 

New or Updated API Updated
API Endpoint   /pm/v2/report/jobprogress/{deploymentJobId}
Method POST
DTD or XSD changes Not Applicable

In this release, enhanced the Get Deployment Job Progress Report API by adding patch status filters to the API request. When you provide specific filter values, the report displays results based on those filters.

Input ParametersInput Parameters

Parameter

Mandatory/
Optional

Data Type

Description

patchStatus Optional String

Specify the required patch filter for which you want to display the data in the report. 

The supported values are Success, Failed, Skipped. 

actionStatus Optional String

Specify the required action status filter for which you want to display the data in the report.

The supported values are Success, Failed, Skipped. 

Sample - Get Deployment Job Progress Report with Patch FiltersSample - Get Deployment Job Progress Report with Patch Filters

API Request

curl -X 'POST' \
  '<qualys_base_url>/pm/v2/report/jobprogress/8d26387d-c494-4185-a491-ba516456de2d' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer <JWT_Token>
  -H 'Content-Type: application/json'
  -d

API Body

'{
  "name": "Job Progress Report",
  "description": "Job Progress Report Description",
  "query": "job.asset.status:Completed",
  "includeActionReport": true,
  "jobInstanceId": 1,
  "reportFormat": "CSV",
  "columnsToDisplay": {
    "jobProgress": [
      "rowId",
      "assetId",
      "assetName",
      "status",
      "patchId",
      "title",
      "category",
      "severity"
    ],
    "jobProgressActions": [
      "rowId",
      "assetId",
      "assetName",
      "status",
      "pendingInRebootJobName",
      "scanDateTime",
      "operatingSystem",
      "action",
      "actionId",
      "actionType",
      "actionParams",
      "returnCode",
      "errorMessage",
      "assetDeactivated"
    ]
  },
  "filters": {
    "patchStatus": [
      "success",
      "failed",
      "skipped"
    ],
    "actionStatus": [
      "success",
      "failed",
      "skipped"
    ]
  }
}'

API Response

{
  "reportId": "cb26a10f-6840-4ea6-a093-022b0ba219f4
"} 

IPv6 Address Visibility

Updated API: Generate Isolation Job Progress Report 

New or Updated API Updated
API Endpoint  /pm/v1/report/isolationjobprogress/{deploymentJobId}
Method POST
DTD or XSD changes Not Applicable

With this release, we have enhanced the Generate Isolation Job Progress Report API to include IPv6 address in the API request. This makes it easier to identify and track assets in IPv6 environments.

Input ParametersInput Parameters

Parameter

Mandatory/
Optional

Data Type

Description

assetIpv6Address Optional String Specify the IPv6 address.

Sample - Generate Isolation Job Progress ReportSample - Generate Isolation Job Progress Report

API Request

curl -X 'POST' \
  'https://gateway.p04.eng.sjc01.qualys.com/pm/v1/report/isolationjobprogress/3553b8c5-0704-4b92-86b6-fca74c78c84a' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer <JWT Token>
  -H 'Content-Type: application/json' \
  -d 

API Body

 '{
  "name": "Isolation Job Progress Report",
  "description": "Isolation Job Progress Report Description",
  "query": "job.asset.status:Completed",
  "reportFormat": "CSV",
  "columnsToDisplay": {
    "isolationJobProgress": [
      "assetId",
      "assetName",
      "jobStatus",
      "assetIp",
      "operatingSystem",
      "isolationStatus",
      "isolationMessage",
      "assetDeactivated",
      "assetIpv6Address"
    ]
  }
}'

API Response

{
  "reportId": "2188d24d-f4cc-40e0-a7f0-eb411238897c"

Support to Download PDF Reports   

With this release, we have enhanced certain report APIs that now allow you to download report in PDF format.

PDF reports support the selection of up to 5 columns for optimal readability.

The impacted APIs are: 

Get List of Report Columns

New or Updated API Updated
API Endpoint  /pm/v1/report/columns
Method GET
DTD or XSD changes Not Applicable

Generate Deployment Job Progress Report

New or Updated API Updated
API Endpoint  /pm/v2/report/jobprogress/{deploymentJobId}
Method POST
DTD or XSD changes Not Applicable

Generate Isolation Deployment Job Progress Report

New or Updated API Updated
API Endpoint  /pm/v1/report/isolationjobprogress/{deploymnetJobId}
Method POST
DTD or XSD changes Not Applicable

Generate Mitigation Deployment Job Progress Report

New or Updated API Updated
API Endpoint  /pm/v1/report/mitigationjobprogress/{deploymentJobId}
Method POST
DTD or XSD changes Not Applicable

Generate Patches Report

New or Updated API Updated
API Endpoint  /pm/v2/report/patch
Method POST
DTD or XSD changes Not Applicable

Download a report in CSV and PDF format for specified reportID

New or Updated API Updated
API Endpoint  /pm/v1/report/{reportId}/download
Method GET
DTD or XSD changes Not Applicable

Get Assets Tab Report

New or Updated API Updated
API Endpoint  /pm/v2/report/asset
Method POST
DTD or XSD changes Not Applicable

With this release, we have enhanced the Get Assets Tab Report API that allows you to download report in PDF format. 

Sample - Get Assets Tab Report for PDF DownloadSample - Get Assets Tab Report for PDF Download

API Request

curl -X 'POST' \
  '<qualys_base_url>/pm/v2/report/asset' 
  -H 'accept: application/json' 
  -H 'Authorization: Bearer <JWT_Token>
  -H 'Content-Type: application/json' 
  -d

API Body

'{
  "name": "API report pdf asset",
  "description": "Asset Report Description",
  "platform": "Windows",
  "query": "asset.status:Scanned",
  "havingQuery": "patch.isRebootRequired:false",
  "reportFormat": "PDF",
  "columnsToDisplay": {
    "asset": [
      "rowId",
      "assetId",
      "assetName",
      "operatingSystem",
      "assetStatus",
      "scannedOn",
      "assetIpv6Address"
    ]
  }
}'

API Response

{
  "reportId": "50984744-10c2-4640-b24c-5d4756bf5456"
}

Extended Limits for Deployment Job Co-Authors   

With this release, we have updated certain Deployment Job APIs with v2 version. These APIs are enhanced to restrict addition of only 200 users as co-authors to a deployment job. If you try to add more than 200 co-authors to a job, the API response displays an error. 

The impacted APIs are: 

Create Mitigation Job

New or Updated API Updated
API Endpoint  /mtg/v1/deploymentjob
EOS Timeline: February 2026
EOL Timeline: July 2026
API Endpoint (New Version) /mtg/v2/deploymentjob
Method POST
DTD or XSD changes Not Applicable

Update Mitigation Job for Specified ID

New or Updated API Updated
API Endpoint  /mtg/v1/deploymentjob/{deploymentJobId}
EOS Timeline: February 2026
EOL Timeline: July 2026
API Endpoint (New Version) /mtg/v2/deploymentjob/{deploymentJobId}
Method PATCH
DTD or XSD changes Not Applicable

Create Patch Deployment Job

New or Updated API Updated
API Endpoint  /pm/v1/deploymentjob
EOS Timeline: February 2026
EOL Timeline: August 2026
API Endpoint (New Version) /pm/v2/deploymentjob
Method POST
DTD or XSD changes Not Applicable

Update Patch Deployment Job for Specified Job ID

New or Updated API Updated
API Endpoint  /pm/v1/deploymentjob/update/{deploymentJobId}
EOS Timeline: February 2026
EOL Timeline: August 2026
API Endpoint (New Version) /pm/v2/deploymentjob/update/{deploymentJobId}
Method PATCH
DTD or XSD changes Not Applicable

Input ParametersInput Parameters

Parameter

Mandatory/
Optional

Data Type

Description

coAuthorUserIds Optional String Specify the userIDs of the users that must be added as co-authors to the job. 
Note: The maximim limit is 200. 

Sample - Update Patch Deployment Job for Co-Author RestrictionSample - Update Patch Deployment Job for Co-Author Restriction

API Request

curl -X PATCH
"https://<QualysBaseURL>/pm/v2/deploymentjob/update/16be09aa-5415-4a58-8295-8a4ac8db6f26"
-H "accept: application/json" 
-H "Authorization: Bearer <<Jwt Token>>" 
-H "Content-Type: application/json

API Body

{
  "approvedPatches": [
    "865048a1-ad00-30e4-83c0-68ed70b2b4ad"
  ],
  "dynamicPatchesQQL": "",
  "isDynamicPatchesQQL": false,
  "dynamicQQLType": 1,
  "additionalDynamicPatchesQQL": "",
  "additionalDynamicQQLType": "",
  "linkedJobId": "",
  "chainedJobRule": [],
  "assetCount": 0,
  "assetIds": [],
  "isAssetImported": false,
  "assetFilePath": null,
  "assetTagIds": [
    "c4c928b0-ab93-44ff-9da9-f56ad109d2eb"
  ],
  "assetDetectionsQQL": "",
  "deleted": false,
  "duringDeployment": {
    "userMessage": "",
    "description": ""
  },
  "name": "API_notification_deployment_job",
  "description": "",
  "patchCount": 1,
  "createdBy": {
    "user": {
      "id": "ce0bb83b-e158-5a18-83b4-9dfc3079fe99",
      "name": "johnd",
      "fullName": "John Doe"
    },
    "date": "1770014944210",
    "context": null
  },
  "postDeployment": {
    "suppressreboots": false,
    "rebootHonorOnUserLogin": false,
    "onComplete": {
      "userMessage": "",
      "description": "",
      "alwaysShowCompletedPrompt": false
    },
    "rebootCountdown": {
      "interval": 15,
      "intervalUnit": "MINUTES",
      "userMessage": "Reboot countdown started",
      "description": "The system reboot is initiated. It will reboot automatically after the timer countdown."
    },
    "rebootOption": {
      "deferment": {
        "count": null,
        "interval": null,
        "intervalUnit": "HOURS"
      },
      "userMessage": "",
      "description": ""
    }
  },
  "preDeployment": {
    "deferment": {
      "count": null,
      "interval": null,
      "intervalUnit": "HOURS"
    },
    "userMessage": "",
    "description": ""
  },
  "recurring": false,
  "dayOfMonth": null,
  "recurringLastDayOfMonth": false,
  "patchTuesdayPlusXDays": null,
  "monthlyRecurringType": null,
  "recurringDayOfMonth": null,
  "recurringWeekDayOfMonth": null,
  "recurringWeekDays": "",
  "scheduleType": "On-demand",
  "schemaVersion": "1.0",
  "startDateTime": null,
  "status": "Disabled",
  "opportunisticdownloads": false,
  "minimizeWindow": false,
  "enableReattemptFailedPatches": false,
  "reattemptFailedPatches": {
    "noOfReattempts": 0,
    "exponentialBackoffInterval": 0
  },
  "allowExecutionWithPendingReboot": false,
  "timeout": -1,
  "timeoutUnit": "HOURS",
  "downloadRandomizeTime": 0,
  "downloadRandomizeTimeUnit": "MINUTES",
  "timezone": null,
  "timezoneType": null,
  "type": "Install",
  "filterType": "Any",
  "exclusionFilterType": "Any",
  "exclusionTagIds": [],
  "matchAllTagIds": [],
  "coAuthorUserIds": [
    "ca48b162-4783-fb2b-819f-228d71974994",
    "ce0bb83b-e158-5a18-83b4-9dfc3079fe99",
    ...
    ...
    ...
    "857df385-1ce2-4c06-8337-a771ff92085d",
    "552f43c0-fe66-d247-8051-faae1e64c2e6",
    "5634861c-4128-c60a-8071-34f826d6e498"
  ],
  "exclusionAssetIds": [],
  "preDeployActions": [],
  "postDeployActions": [],
  "jobCategory": 3,
  "jobSource": 2,
  "platform": "Windows",
  "notification": null,
  "customPatchURLId": null,
  "remediationQids": [],
  "isVulnContext": false,
  "subCategory": "Patch",
  "hostIsolationConfig": null,
  "quarantineAssetRequestNotification": null,
  "isDefaultJob": false,
  "defaultJobConfiguration": {
    "onAssetActivation": false,
    "onAssetInactiveForXDays": null
  }
}

API Response

{
    "_error": {
        "code": 400,
        "errorCode": "2435",
        "message": "Co-author limit exceeded. You can add up to 200 co-authors per job"
    }
}

Version-Specific ESU Licensing for Windows Patching

Patch Details for Patches 

New or Updated API Updated
API Endpoint  /pm/v1/patchcatalog/patches
Method POST
DTD or XSD changes Not Applicable

With this release, we have enhanced the Patch Details for Patches API to include the ESU operating system version in the API response. A new field esuOsVersion is displayed in the response.

Sample - Patch Details for Patches with ESU OS VersionSample - Patch Details for Patches with ESU OS Version

API Request

 curl -X 'POST' \
  'https://<QualysBaseURL>/pm/v1/patchcatalog/patches?platform=Windows' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer <<jwt token>>' \
  -H 'Content-Type: application/json' \
  -d '{
  "patchUuid": [
    "e1787937-af98-3f57-9871-eb2ef9d4b6db"
  ]
}'

API Response

[
  {
    "aiBasedReliability": null,
    "isSecurity": true,
    "rebootRequired": true,
    "vendorSeverity": "Moderate",
    "reliability": null,
    "lastReliabilityScanDate": null,
    "description": "Summary\r\nThis security update resolves vulnerabilities in Internet Explorer. To learn more about these vulnerabilities, see Deployments  Security Update Guide.\r\n\r\nAdditionally, see the following articles for more information about cumulative updates:\r\n\r\nWindows 8.1 and Windows Server 2012 R2 update history\r\n\r\nWindows Server 2012 update history\r\n\r\nWindows 7 SP1 and Windows Server 2008 R2 SP1 update history (also see End of Support)\r\n\r\nWindows Server 2008 SP2 update history (also see End of Support)\r\n\r\nThis update applies to the following:\r\n\r\nInternet Explorer 11 for Windows Server 2012 R2\r\n\r\nInternet Explorer 11 for Windows Server 2012\r\n\r\nInternet Explorer 11 for Windows Server 2008 R2\r\n\r\nInternet Explorer 9 for Windows Server 2008",
    "title": "KB5049994: Cumulative security update for Internet Explorer: January 14, 2025",
    "type": "Application",
    "appFamily": [
      "Internet Explorer"
    ],
    "qid": [
      "100381",
      "91697",
      "91808",
      "100403"
    ],
    "enabled": true,
    "platform": "Windows",
    "supersedes": [
      "8d18a2dc-6bb0-3758-8472-4744f891674b",
      "2c473fb8-39b7-34b3-a90b-df5f794aa5a5",
      "5b68379b-c088-3d88-ae35-ef22f96ca835",
      "7e59cdbc-cead-37d6-a98a-22fa1c6f7cff",
      "f06b4395-2b84-3204-9cb1-f278ae90e118"
    ],
    "notification": null,
    "patchId": "e1787937-af98-3f57-9871-eb2ef9d4b6db",
    "isRollback": true,
    "cve": [
      "CVE-2025-21328",
      "CVE-2025-21329",
      "CVE-2025-21276",
      "CVE-2025-21189",
      "CVE-2025-21332",
      "CVE-2025-21268",
      "CVE-2025-21269"
    ],
    "isFeatureUpdate": false,
    "vendor": "Microsoft",
    "kb": "KB5049994",
    "downloadMethod": "Automatic",
    "esuOsVersion": "2012",
    "id": "e1787937-af98-3f57-9871-eb2ef9d4b6db",
    "supportedOs": null,
    "architecture": [
      "X64"
    ],
    "packageDetails": null,
    "nonSupersededQid": [],
    "product": [
      "Internet Explorer 11 (x64)"
    ],
    "advisory": null,
    "vendorlink": "http://support.microsoft.com/kb/5049994",
    "osIdentifier": "WINDOWS",
    "advisoryLink": null,
    "deleted": false,
    "isSuperseded": true,
    "vulnBasedReliability": null,
    "patchFeedProviderId": 1,
    "syncDateTime": 1773407451015,
    "vendorPatchId": "281561",
    "modifiedDate": 1736899200000,
    "publishedDate": 1736812800000,
    "category": "Security Patches",
    "isEsuPatch": true,
    "supersededBy": [
      "52fd63c8-5740-3fe2-a405-4efb71ff05f2",
      "faf0725a-f973-3f32-af32-1bd668b36e88",
      "03aeec28-84ef-37e3-ae30-ca9deffb2658",
      "7b9a482e-ac95-3d6c-a179-da388a37dabe",
      "abf32461-6b62-335a-9008-c3aa23767a8b",
      "1d224b7b-b70c-3b23-82ba-00787060a8ac",
      "44d6feac-d32f-30c8-b9a1-f0423ffdb6e9",
      "b2420cd1-25de-372a-b46f-19a4ee123b42",
      "caf5f1d5-f0e8-3fa5-a3b8-fa8cedaff3d8",
      "c88eea80-8a33-3c52-b34a-b8acf6b485b3"
    ],
    "bulletin": "MS25-01-IE-2K12-ESU-5049994"
  }
] 

Get Patches from the Catalog 

New or Updated API Updated
API Endpoint  /pm/v1/patchcatalog/patches
Method GET
DTD or XSD changes Not Applicable

With this release, we have enhanced the Get Patches from the Catalog API to include the ESU operating system version in the API response. A new field esuOsVersion is displayed in the response.

Sample - Get Patches from the CatalogSample - Get Patches from the Catalog

API Request

curl -X 'GET' \
  'https://<QualysBaseURL>/pm/v1/patchcatalog/patches?platform=Windows' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer<<jwt token>>'

API Response

[
  {
    "aiBasedReliability": null,
    "isSecurity": true,
    "rebootRequired": true,
    "vendorSeverity": "Moderate",
    "reliability": null,
    "lastReliabilityScanDate": null,
    "description": "Summary\r\nThis security update resolves vulnerabilities in Internet Explorer. To learn more about these vulnerabilities, see Deployments  Security Update Guide.\r\n\r\nAdditionally, see the following articles for more information about cumulative updates:\r\n\r\nWindows 8.1 and Windows Server 2012 R2 update history\r\n\r\nWindows Server 2012 update history\r\n\r\nWindows 7 SP1 and Windows Server 2008 R2 SP1 update history (also see End of Support)\r\n\r\nWindows Server 2008 SP2 update history (also see End of Support)\r\n\r\nThis update applies to the following:\r\n\r\nInternet Explorer 11 for Windows Server 2012 R2\r\n\r\nInternet Explorer 11 for Windows Server 2012\r\n\r\nInternet Explorer 11 for Windows Server 2008 R2\r\n\r\nInternet Explorer 9 for Windows Server 2008",
    "title": "KB5049994: Cumulative security update for Internet Explorer: January 14, 2025",
    "type": "Application",
    "appFamily": [
      "Internet Explorer"
    ],
    "qid": [
      "100381",
      "91697",
      "91808",
      "100400",
      "100389",
      "100401",
      "100402",
      "100403"
    ],
    "enabled": true,
    "platform": "Windows",
    "supersedes": [
      "8d18a2dc-6bb0-3758-8472-4744f891674b",
      "2c473fb8-39b7-34b3-a90b-df5f794aa5a5",
      "877531aa-17cb-316f-970c-1273759a6bdc",
      "7740ce81-18a4-3219-87a9-4cfc56c478ef",
      "7e59cdbc-cead-37d6-a98a-22fa1c6f7cff",
      "f06b4395-2b84-3204-9cb1-f278ae90e118"
    ],
    "notification": null,
    "patchId": "e1787937-af98-3f57-9871-eb2ef9d4b6db",
    "isRollback": true,
    "cve": [
      "CVE-2025-21328",
      "CVE-2025-21329",
      "CVE-2025-21276",
      "CVE-2025-21189",
      "CVE-2025-21332",
      "CVE-2025-21268",
      "CVE-2025-21269"
    ],
    "isFeatureUpdate": false,
    "vendor": "Microsoft",
    "kb": "KB5049994",
    "downloadMethod": "Automatic",
    "esuOsVersion": "2012",
    "id": "e1787937-af98-3f57-9871-eb2ef9d4b6db",
    "supportedOs": null,
    "architecture": [
      "X64"
    ],
    "packageDetails": null,
    "nonSupersededQid": [],
    "product": [
      "Internet Explorer 11 (x64)"
    ],
    "advisory": null,
    "vendorlink": "http://support.microsoft.com/kb/5049994",
    "osIdentifier": "WINDOWS",
    "advisoryLink": null,
    "deleted": false,
    "isSuperseded": true,
    "vulnBasedReliability": null,
    "patchFeedProviderId": 1,
    "syncDateTime": 1773407451015,
    "vendorPatchId": "281561",
    "modifiedDate": 1736899200000,
    "publishedDate": 1736812800000,
    "category": "Security Patches",
    "isEsuPatch": true,
    "supersededBy": [
      "52fd63c8-5740-3fe2-a405-4efb71ff05f2",
      "faf0725a-f973-3f32-af32-1bd668b36e88",
      "03aeec28-84ef-37e3-ae30-ca9deffb2658",
      "b2420cd1-25de-372a-b46f-19a4ee123b42",
      "caf5f1d5-f0e8-3fa5-a3b8-fa8cedaff3d8",
      "c88eea80-8a33-3c52-b34a-b8acf6b485b3"
    ],
    "bulletin": "MS25-01-IE-2K12-ESU-5049994"
  }
]

UI Release Updates

To know in detail about the UI features, enhancements and issues addressed, see Patch Management Release 3.13