Policy Audit Release 1.9 API
March 6, 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.
We have implemented versioning for APIs. For more information on API versioning, refer to the Updates on API Versioning Standards & Deprecation Timelines blog.
Retrieve and Import Library Polices
With this release, we are introducing new Library Policy APIs. These APIs allow you to retrieve and import library policies. They make the process faster and more efficient, helping users save both time and effort.
To retrieve and import library polices, use the following APIs:
Library Policy API
| New or Updated API | New |
| API Endpoint (New Version) |
/pcas/v1/library/policy/list |
| Method | GET |
With this API, you can list all policies associated with a specific label ID. The response displays details such as the policy ID, title, version, and date. The results are filtered based on the specified label and technology.
Input ParametersInput Parameters
| Parameter Name | Required / Optional | Data Type | Description |
| Authorization | Required | String | Enter the Bearer token. |
| labelId={value} | Optional | Integer | List policies associated to the label ID.
If the label ID is not provided, all supported library policy details are displayed. |
| technologyId={value} | Optional | Integer | List policies associated with the technology ID. You can enter multiple IDs separated by comma.
If the technology ID is not provided, display policies from all technologies. |
| includeDescription={value} | Optional | Boolean | Specify 'true' to display the description else specify 'false'. |
| updatedAfter | Optional | Integer | Filters response based on the given date. Policies updated on and after the provided date are displayed. Date format - dd/mm/yyyy. |
Sample 1 - List policy IDs and their namesSample 1 - List policy IDs and their names
API Request
curl -X 'GET' '<qualys_base_url>/pcas/v1/library/policy/list '
-H 'accept: application/json'
-H 'Authorization: Bearer <AuthToken>
JSON Response
[
{
"policyId": 1464200,
"policyTitle": "CIS Benchmark for Apple macOS 10.12, v1.1.0[Scored, Level 1 and Level 2]",
"version": 1,
"date": "02/06/2025"
},
{
"policyId": 1464300,
"policyTitle": "DISA Security Technical Implementation Guide(STIG) for Windows Server 2008 non-R2 MS, V6R46",
"version": 1,
"date": "02/06/2025"
}
]
Sample 2 - List policies for a label IDSample 2 - List policies for a label ID
API Request
curl -X 'GET' '<qualys_base_url>/pcas/v1/library/policy/list?labelId=<label_id>'
-H 'accept: application/json'
-H 'Authorization: Bearer <AuthToken>'
JSON Response
[
[
{
"policyId": 1465339,
"policyTitle": "CIS Benchmark for Microsoft Windows Server 2016, v3.0.0 [Automated and Manual, Level 1 - Domain controller]",
"version": 1,
"date": "13/11/2024"
},
{
"policyId": 1465356,
"policyTitle": "CIS Benchmark for Microsoft Windows Server 2025, v1.0.0 [Automated and Manual, Level 1 - Domain controller, Level 2 - Domain controller]",
"version": 1,
"date": "09/05/2025"
}
]
]
Sample 3 - List policies for a label ID and technology IDSample 3 - List policies for a label ID and technology ID
API Request
curl -X 'GET' '<qualys_base_url>/pcas/v1/library/policy/list?labelId=<labelId>&technologyId=<technologyId>'
-H 'accept: application/json'
-H 'Authorization: Bearer <AuthToken>'
JSON Response
[
[
{
"policyId": 1464495,
"policyTitle": "CIS Benchmark for Red Hat Enterprise Linux 8, v3.0.0 [Automated and Manual, Level 1 and Level 2]",
"version": 16,
"date": "08/08/2025"
},
{
"policyId": 1441206,
"policyTitle": "CIS Benchmark for IBM DB2 11.x, v1.1.0 [Automated and Manual, Level 1 - RDBMS]",
"version": 3,
"date": "02/06/2025"
}
]
]
Sample 4 - List policies for a label ID, technology ID, and include a descriptionSample 4 - List policies for a label ID, technology ID, and include a description
API Request
curl -X 'GET' '<qualys_base_url>/pcas/v1/library/policy/list?labelId=<label_id>&technologyId=<technologyId>&includeDescription=true'
-H 'accept: application/json'
-H 'Authorization: Bearer <AuthToken>'
JSON Response
[
[
{
"policyId": 1464495,
"policyTitle": "CIS Benchmark for Red Hat Enterprise Linux 8, v3.0.0 [Automated and Manual, Level 1 and Level 2]",
"description": "This CIS certified policy for Red Hat Enterprise Linux 8 is based on the CIS Benchmark for Red Hat Enterprise Linux 8, v3.0.0. The policy contains Level 1 and Level 2, Automated, and Manual types of checks from the benchmark. The controls within the policy are configured on the basis of values provided by the CIS benchmark.",
"version": 16,
"date": "08/08/2025"
},
{
"policyId": 1441206,
"policyTitle": "CIS Benchmark for IBM DB2 11.x, v1.1.0 [Automated and Manual, Level 1 - RDBMS]",
"description": "This CIS certified policy for IBM DB2 11 is based on the CIS Benchmark for IBM DB2 11, v1.1.0. The policy contains Automated and Manual types of checks which are of Level 1 - RDBMS profile. The controls within the policy are configured on the basis of values provided by CIS benchmark.",
"version": 3,
"date": "02/06/2025"
}
]
]
Sample 5 - List policies for a label ID, technology ID, include a description, and the updated dateSample 5 - List policies for a label ID, technology ID, include a description, and the updated date
API Request
curl -X 'GET' '<qualys_base_url>/pcas/v1/library/policy/list?labelId=<labelId>&technologyId=<technologyId>&includeDescription=true&updatedAfter=08-08-2025'
-H 'accept: application/json'
-H 'Authorization: Bearer <AuthToken>'
JSON Response
[
{
"policyId": 1464495,
"policyTitle": "CIS Benchmark for Red Hat Enterprise Linux 8, v3.0.0 [Automated and Manual, Level 1 and Level 2]",
"description": "This CIS certified policy for Red Hat Enterprise Linux 8 is based on the CIS Benchmark for Red Hat Enterprise Linux 8, v3.0.0. The policy contains Level 1 and Level 2, Automated, and Manual types of checks from the benchmark. The controls within the policy are configured on the basis of values provided by the CIS benchmark.",
"version": 16,
"date": "08/08/2025"
},
{
"policyId": 1464494,
"policyTitle": "CIS Benchmark for Red Hat Enterprise Linux 8, v3.0.0 [Automated and Manual, Level 1]",
"description": "This CIS certified policy for Red Hat Enterprise Linux 8 is based on the CIS Benchmark for Red Hat Enterprise Linux 8, v3.0.0. The policy contains Level 1, Automated, and Manual types of checks from the benchmark. The controls within the policy are configured on the basis of values provided by the CIS benchmark.",
"version": 17,
"date": "08/08/2025"
}
]
Library Policy Details API
| New or Updated API | New |
| API Endpoint (New Version) |
/pcas/v1/library/policy |
| Method | GET |
With this API, you can get the details about a specific library policy using policy ID or the title of the policy.
Input ParametersInput Parameters
| Parameter Name | Required / Optional | Data Type | Description |
| Authorization | Required | String | Enter the Bearer token. |
| policyId={value} | Optional | Integer | Specify the policy ID for which details are to be returned. |
| policyTitle={value} | Optional | String | Specify the policy title for which details are to be displayed.
The policy title must be encoded. For example, Security Configuration in encoded format displays as Security%20Configuration. |
| details={basic|full} | Optional | String | Specify the level of details to be displayed:
|
For getting the policy details, provide any one of the two parameters - policyID or policyTitle.
Sample 1 - List policy details based on policy IDSample 1 - List policy details based on policy ID
API Request
curl -X 'GET' '<qualys_base_url>/pcas/v1/library/policy?policyTitle=<policytitle>&details=basic'
-H 'accept: application/json'
-H 'Authorization: Bearer <AuthToken>'
JSON Response
{
"policyId": 1464240,
"policyTitle": "CIS Benchmark for CentOS Linux 7, v4.0.0 [Automated and Manual, Level 1 and Level 2]",
"coverPage": "This CIS certified policy for CentOS Linux 7 is based on the CIS Benchmark for Oracle Linux 7, v4.0.0. The policy contains Level 1 and Level 2, Automated, and Manual types of checks from the benchmark. The controls within the policy are configured on the basis of values provided by the CIS benchmark. As this policy and the controls within the policy are certified by CIS, the policy is LOCKED to prohibit any changes to the controls or their configuration values. If the organizational security policy requires different configuration values or changes to the policy, please make a copy of this policy and modify the configured values for the required controls as per the need of the organization's security/configuration policy.\n\nIn the case of CIS-required Control duplication (where a Control requirement appears in more than one section of the benchmark), Policy Editor limits the existence of any Controls within a single policy to one (1) occurrence of each control.\n\nCIS has stated that these settings should be considered as minimum allowable values; if an Organization requires more stringency than the CIS minimum, these more restrictive and/or stringent values shall all be considered as a PASS. The settings assigned to any given control by CIS are not guaranteed to be appropriate for any particular environment and all settings should be reviewed and applied according to the needs of the business. Before you apply the recommendations from the policy, check the relevant vendor documentation to avoid discrepancies. Also, it is recommended that these values be tested before applying to the Production Environment.\n\nAdditional Information:\n\n1) The following list of Control(s) in this policy is configured with default configuration value (.*) because the configuration is specific to the needs of an organization. Controls with default configuration values always result in PASS and should be configured as appropriate to the needs of the business and/or as per the need of the organization's security/configuration policy.\n\nCIS Ref #4.2.4:5215 - Status of the 'AllowGroups' setting in the 'sshd_config' file\nCIS Ref #4.2.4:5217 - Status of the 'AllowUsers' setting in the 'sshd_config' file\nCIS Ref #4.2.4:5224 - Status of the 'DenyGroups' setting in the 'sshd_config' file\nCIS Ref #4.2.4:5225 - Status of the 'DenyUsers' setting in the 'sshd_config' file\n\n2) The following list of Manual types of checks from the benchmark is set as INACTIVE in the policy:\n1.2.1, 1.2.3, 1.2.4, 1.2.5, 2.2.22, 3.1.1, 3.4.2.3, 3.4.2.4, 3.4.3.2, 3.4.3.6, 3.4.4.2.2, 3.4.4.3.2, 4.4.2.2.4, 5.1.1.2, 5.1.1.3, 5.1.1.6, 5.1.2.1.1, 5.1.2.1.2, 5.1.2.1.3, 5.1.2.5, 5.1.2.6, 5.1.3, 5.2.3.21, 6.1.13, 6.1.14\n\n3) Being procedural, the following requirement is not part of this policy:\n5.1.1.5\n\n4) The controls for all the requirements are configured as per the CIS recommendation. If you have any alternative methods implemented for the CIS checks through which CIS requirements are met, you can find the controls from the library and replace the controls in this policy by importing the policy and creating your own customized policy or you can take an exception for those CIS checks.\n\nE.g.: For firewalls, the firewalld, nftables and iptables cannot be used at the same time. So if you are using firewalld, you can remove/reconfigure the controls for iptables and nftables or take an exception for those CIS checks.",
"technologies": [
{
"technologyId": 80,
"technologyName": "CentOS 7.x"
}
],
"sections": [
{
"sectionNumber": 1,
"sectionHeading": "Initial Setup"
},
{
"sectionNumber": 2,
"sectionHeading": "Services"
},
{
"sectionNumber": 3,
"sectionHeading": "Network"
},
{
"sectionNumber": 4,
"sectionHeading": "Access, Authentication and Authorization"
},
{
"sectionNumber": 5,
"sectionHeading": "Logging and Auditing"
},
{
"sectionNumber": 6,
"sectionHeading": "System Maintenance"
}
]
}
Sample 2 - List policy details based on policy titleSample 2 - List policy details based on policy title
API Request
curl -X 'GET' '<qualys_base_url>/pcas/v1/library/policy?policyTitle=<policytitle>'
-H 'accept: application/json'
-H 'Authorization: Bearer <AuthToken>'
JSON Response
{
"policyId": 1464495,
"policyTitle": "CIS Benchmark for Red Hat Enterprise Linux 8, v3.0.0 [Automated and Manual, Level 1 and Level 2]",
"coverPage": "This CIS certified policy for Red Hat Enterprise Linux 8 is based on the CIS Benchmark for Red Hat Enterprise Linux 8, v3.0.0. The policy contains Level 1 and Level 2, Automated, and Manual types of checks from the benchmark. The controls within the policy are configured on the basis of values provided by the CIS benchmark. As this policy and the controls within the policy are certified by CIS, the policy is LOCKED for prohibiting any changes to the controls or their configuration values. If the organizational security policy requires different configuration values or changes to the policy, please make a copy of this policy and modify the configured values for the required controls as per the need of the organization's security/configuration policy.\n\nIn the case of CIS-required Control duplication (where a Control requirement appears in more than one section of the benchmark), Policy Editor limits the existence of any Controls within a single policy to one (1) occurrence of each control.\n\nCIS has stated that these settings should be considered as minimum allowable values; if an Organization requires more stringency than the CIS minimum, these more restrictive and/or stringent values shall all be considered as a PASS. The settings assigned to any given control by CIS are not guaranteed to be appropriate for any particular environment and all settings should be reviewed and applied according to the needs of the business. Before you apply the recommendations from the policy, check the relevant vendor documentation to avoid discrepancies. Also, it is recommended that these values be tested before applying to the Production Environment.\n\nAdditional Notes:\n\n1. Being procedural, the following requirements are not part of the policy:\n5.1.1.5\n\n2. The following list of Manual types of checks from the benchmark is set as INACTIVE in the policy:\n1.2.1, 1.2.3, 1.2.4, 1.2.5, 2.2.22, 3.1.1, 3.4.2.3, 3.4.2.4, 4.4.3.2.3, 5.1.3, 5.1.1.2, 5.1.1.3, 5.1.1.5, 5.1.1.6, 5.1.2.1.1, 5.1.2.1.2, 5.1.2.1.3, 5.1.2.5, 5.1.2.6, 5.2.3.21, 6.1.13, 6.1.14\n\n3. The following requirements in the policy are configured with default values of '.*' or '.+' as the configuration is specific to the needs of an organization. They should be reviewed and configured per the business's needs and the organization's security policies:\n1.2.1, 1.2.5, 1.8.2, 2.2.22, 3.4.2.3, 5.1.1.6, 5.1.2.1.2, 5.1.3, 5.2.2.1, 6.1.13, 6.1.14\n\n4) The controls for all the requirements are configured as per the CIS recommendation. If you have any alternative methods implemented for the CIS checks through which CIS requirements are met, you can find the controls from the library and replace the controls in this policy by importing the policy and creating your own customized policy, or you can take an exception for those CIS checks.\n\n5) For the 4.2.2 requirement, the group name is considered as \"ssh_keys|_?ssh\" as specified by CIS. If you have any other designated group name for SSH, you can include it in this requirement's regex.\n\nExamples:\n - For firewalls, firewalld, nftables, and iptables cannot be used at the same time. If you are using firewalld, you can remove/reconfigure the controls for iptables and nftables or take an exception for those CIS checks.\n - For logging, the requirements in the benchmark may be separated between journald and rsyslog. If you are using journald, you can remove/reconfigure the controls for rsyslog or take an exception for those CIS checks.",
"technologies": [
{
"technologyId": 217,
"technologyName": "Red Hat Enterprise Linux 8.x"
}
],
"sections": [
{
"sectionNumber": 1,
"sectionHeading": "Initial Setup"
},
{
"sectionNumber": 2,
"sectionHeading": "Services"
},
{
"sectionNumber": 3,
"sectionHeading": "Network"
},
{
"sectionNumber": 4,
"sectionHeading": "Access, Authentication and Authorization"
},
{
"sectionNumber": 5,
"sectionHeading": "Logging and Auditing"
},
{
"sectionNumber": 6,
"sectionHeading": "System Maintenance"
}
]
}
Sample 3 - List policy details based on policy ID and policy detailsSample 3 - List policy details based on policy ID and policy details
API Request
curl -X 'GET' '<qualys_base_url>/pcas/v1/library/policy?policyTitle=<policytitle>&details=basic'
-H 'accept: application/json'
-H 'Authorization: Bearer <AuthToken>'
JSON Response
{
"policyId": 1464495,
"policyTitle": "CIS Benchmark for Red Hat Enterprise Linux 8, v3.0.0 [Automated and Manual, Level 1 and Level 2]",
"exported": "16-09-2025 10:39:48",
"coverPage": "This CIS certified policy for Red Hat Enterprise Linux 8 is based on the CIS Benchmark for Red Hat Enterprise Linux 8, v3.0.0. The policy contains Level 1 and Level 2, Automated, and Manual types of checks from the benchmark. The controls within the policy are configured on the basis of values provided by the CIS benchmark. As this policy and the controls within the policy are certified by CIS, the policy is LOCKED for prohibiting any changes to the controls or their configuration values. If the organizational security policy requires different configuration values or changes to the policy, please make a copy of this policy and modify the configured values for the required controls as per the need of the organization's security/configuration policy.\n\nIn the case of CIS-required Control duplication (where a Control requirement appears in more than one section of the benchmark), Policy Editor limits the existence of any Controls within a single policy to one (1) occurrence of each control.\n\nCIS has stated that these settings should be considered as minimum allowable values; if an Organization requires more stringency than the CIS minimum, these more restrictive and/or stringent values shall all be considered as a PASS. The settings assigned to any given control by CIS are not guaranteed to be appropriate for any particular environment and all settings should be reviewed and applied according to the needs of the business. Before you apply the recommendations from the policy, check the relevant vendor documentation to avoid discrepancies. Also, it is recommended that these values be tested before applying to the Production Environment.\n\nAdditional Notes:\n\n1. Being procedural, the following requirements are not part of the policy:\n5.1.1.5\n\n2. The following list of Manual types of checks from the benchmark is set as INACTIVE in the policy.\n1.2.1, 1.2.3, 1.2.4, 1.2.5, 2.2.22, 3.1.1, 3.4.2.3, 3.4.2.4, 4.4.3.2.3, 5.1.3, 5.1.1.2, 5.1.1.3, 5.1.1.5, 5.1.1.6, 5.1.2.1.1, 5.1.2.1.2, 5.1.2.1.3, 5.1.2.5, 5.1.2.6, 5.2.3.21, 6.1.13, 6.1.14\n\n3. The following requirements in the policy are configured with default values of '.*' or '.+' as the configuration is specific to the needs of an organization. They should be reviewed and configured per the business's needs and the organization's security policies.\n1.2.1, 1.2.5, 1.8.2, 2.2.22, 3.4.2.3, 5.1.1.6, 5.1.2.1.2, 5.1.3, 5.2.2.1, 6.1.13, 6.1.14\n\n4) The controls for all the requirements are configured as per the CIS recommendation. If you have any alternative methods implemented for the CIS checks through which CIS requirements are met, you can find the controls from the library and replace the controls in this policy by importing the policy and create their own customized policy or you can take an exception for those CIS checks.\n\n5) For the 4.2.2 requirement, the group name is considered as \"ssh_keys|_?ssh\" as specified by CIS. If you have any other designated group name for SSH, you can include it in this requirement's regex.\n\nE.g.\n - For firewalls, the firewalld, nftables and iptables cannot be used at the same time. So if you are using firewalld, you can remove/reconfigure the controls for iptables and nftables or take an exception for those CIS checks.\n - For logging, the requirements in the benchmark may be separated between journald and rsyslog. So if you are using journald, you can remove/reconfigure the controls for rsyslog or take an exception for those CIS checks.",
"technologies": [
{
"technologyId": 217,
"technologyName": "Red Hat Enterprise Linux 8.x"
}
],
"sections": [
{
"sectionNumber": 1,
"sectionHeading": "Initial Setup",
"controls": [
{
"controlId": 28951,
"sectionNumber": 1,
"controlNumber": 1,
"statement": "Status of the cramfs kernel module available in any installed kernel",
"criticality": "SERIOUS",
"isControlDisable": false,
"referenceText": "1.1.1.1.a",
"technologies": [
{
"technologyId": 217,
"technologyName": "Red Hat Enterprise Linux 8.x",
"evaluate": {
"dp": {
"k": "oel9.secman.general.kernel_module_cramfs",
"v": [".+"],
"l": 0,
"description": "The List String value of <B>X</B> indicates the status of the file system <B>cramfs kernel module</B> loaded in the kernel using <b>lsmod</b> utility.",
"op": "xre",
"cd": "does not contain",
"fv": [
{
"value": "161803399999999",
"set": "1",
"description": "Module exists but is not loaded"
},
{
"value": "314159265358979",
"set": "1",
"description": "Module does not exist"
}
]
}
},
"remediation": "Configure this setting as per the business requirements or the organization's security policy.\n\nEdit or create the file /etc/modprobe.d/CIS.conf and add the following line as appropriate:\ninstall cramfs /bin/true",
"rationale": "Cramfs (Compressed ROM File System) is a read-only file system designed for use in embedded systems and situations where storage space is limited. Misconfiguration can lead to security risks such as unauthorized access to sensitive data, data corruption, or exploitation of vulnerabilities. Configure this setting based on business requirements or security policy."
}
]
},
{
"controlId": 29271,
"sectionNumber": 1,
"controlNumber": 2,
"statement": "Status of 'install cramfs' setting from '/lib/modprobe.d/*.conf /etc/modprobe.d/*.conf /run/modprobe.d/*.conf'",
"criticality": "SERIOUS",
"isControlDisable": false,
"referenceText": "1.1.1.1.b",
"technologies": [
{
"technologyId": 217,
"technologyName": "Red Hat Enterprise Linux 8.x",
"evaluate": {
"dp": {
"k": "oel9.secman.install_module_cramfs",
"v": [
".+:\\s*install\\s+cramfs\\s+/bin/(true|false)"
],
"l": 0,
"description": "The List String value of <B>X</B> indicates the status of the <B>cramfs kernel module</B>.",
"op": "xre",
"cd": "matches",
"fv": [
{
"value": "161803399999999",
"set": "0",
"description": "Setting not found"
},
{
"value": "314159265358979",
"set": "1",
"description": "Module does not exist"
}
]
}
},
"remediation": "Configure this setting as per policy.\n\n1. Add this line to /etc/modprobe.d/cramfs.conf:\ninstall cramfs /bin/false\n2. Add this line:\nblacklist cramfs\n3. Run:\nsudo rmmod cramfs",
"rationale": "The cramfs kernel module is used to mount compressed read-only filesystems. Misconfiguration may expose the system to security risks including unauthorized access and denial of service. Configure this based on business requirements."
}
]
}
]
}
]
}
Import Library Policy API
| New or Updated API | New |
| API Endpoint (New Version) |
/pcas/v1/library/policy/import |
| Method | POST |
With this API, you can import a library policy with configurable options, such as selecting specific technology IDs, importing the policy in an unlocked state, activating it immediately, and optionally assigning a custom policy title.
Input ParametersInput Parameters
| Parameter Name | Required / Optional | Data Type | Description |
| Authorization | Required | String | Enter the Bearer token. |
| policyId={value} | Required | Integer | Specify the policy ID generated using the Library Policy Details API for which the details are to be imported. |
| technologyId={value} | Optional | Integer |
Specify the technology ID associated with the policy for which the details are to be imported.
If no technology ID is provided, the details of the mapped technologies for the policy are imported. |
| importAsUnlocked={true|false} | Optional | Boolean | Specify 'true' to import policy as unlocked. Specify 'false to import policy as locked. |
| activatePolicy={true|false} | Optional | Boolean | Specify 'true' to import policy as active. Specify 'false to import policy as inactive. |
| policyTitle={value} | Optional | String | Add a title for the policy. |
Sample - Import a library policySample - Import a library policy
API Request
curl --location '<qualys_base_url>/pcas/v1/library/policy/import'\
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <AuthToken>'
\
--data ' {
"policyId": "<policyId>",
"technologyIds": [
"<technologyId>"
],
"importAsUnlocked": true,
"activatePolicy": true,
"policyTitle": "New policy api"
}'
JSON Response
{
"message": "Policy imported successfully",
"policyId": 1666428,
"imported": true,
"active": true
}
Library Label API
| New or Updated API | New |
| API Endpoint (New Version) |
/pcas/v1/library/label |
| Method | GET |
With this API, you can list all library label details (ID and name) that are currently supported.
Input ParametersInput Parameters
| Parameter Name | Required / Optional | Data Type | Description |
| Authorization |
Required | String | Enter the Bearer token |
Sample - List label IDs and their namesSample - List label IDs and their names
API Request
curl -X 'GET' '<qualys_base_url>/pcas/v1/library/label' -H 'accept: application/json' -H 'Authorization: Bearer <AuthToken>
JSON Response
[
{
"labelId": 1000,
"labelName": "Qualys"
},
{
"labelId": 1051,
"labelName": "Vendor"
},
{
"labelId": 1017,
"labelName": "Mandate"
},
{
"labelId": 7325,
"labelName": "Ransomware"
},
{
"labelId": 2050,
"labelName": "DISA STIG"
},
{
"labelId": 5019,
"labelName": "Remote"
},
{
"labelId": 1001,
"labelName": "CIS"
},
{
"labelId": 4051,
"labelName": "OCA"
},
{
"labelId": 4286,
"labelName": "SCSEM"
}
]
Library Label Technology API
| New or Updated API | New |
| API Endpoint (New Version) |
/pcas/v1/library/technology |
| Method | GET |
With this API, you can list all technology IDs and names associated with the label ID.
Input ParametersInput Parameters
| Parameter Name | Required / Optional | Data Type | Description |
| Authorization | Required | String | Enter the Bearer token |
| labelId={value} |
Optional | Integer |
Label ID for which associated technologies are to be displayed. If no label ID is specified, technology details associated with all labels are returned. |
Sample - List technologies for a labelSample - List technologies for a label
API Request
curl -X 'GET' '<qualys_base_url>/pcas/v1/library/technology?labelId=<labelId> '
-H 'accept: application/json'
-H 'Authorization: Bearer <AuthToken>
JSON Response
{
"technologies": [
{
"technologyId": 346,
"technologyName": "Debian GNU/Linux 11.x"
},
{
"technologyId": 391,
"technologyName": "ISC BIND 9.x"
},
{
"technologyId": 78,
"technologyName": "MariaDB 10.x"
}
]
}
Get Posture Info API: View Scan Source and Last Detection Date
| New or Updated API | Updated |
| API Endpoint | /pcrs/4.0/posture/postureInfo/ |
| EOS Timeline: May 2026 | |
| EOL Timeline: November 2026 | |
| API Endpoint (New Version) |
/pcrs/5.0/posture/postureInfo/ |
| Method | POST |
In the previous release, two enhancements were introduced to the Get Posture AP, viewing the QDS score in the API response and retrieving posture information using the Posture ID. With this release, the Get Posture Info API response now also includes the scan source and the date when the asset was last detected by the scanner or agent.
To enable this feature for your subscription, contact your Technical Account Manager (TAM) or Qualys Support.
Input ParametersInput Parameters
| Parameter Name | Required / Optional | Data Type | Description |
| scanSourceRequired={0|1} | Optional | Boolean | Specify '1' to display the source of scan and the date on which the scanner was last detected, else specify '0'. |
Sample - View scan source and last detection date of the scannerSample - View scan source and last detection date of the scanner
API Request
curl -X POST "<qualys_base_url>/5.0/posture/postureInfo?scanSourceRequired=1" \
-H "Authorization: Bearer <AuthToken>" \
-H "Content-Type: application/json" \
-d '[
{
"subscriptionId": "2062014",
"postureId": "35796574,35796575,35796576"
}
]'
API Response
[
{
"id": 35796574,
"instance": "os",
"policyId": 5298742,
"policyTitle": "Agent PC + IP SCA same IP",
"netBios": null,
"controlId": 1071,
"controlStatement": "Status of the 'Minimum Password Length' setting",
"rationale": "Among the several characteristics that make 'user identification' via password a secure and workable solution is setting a 'minimum password length' requirement. Each character that is added to the password length squares the difficulty of breaking the password via 'brute force,' which attempts using every combination possible within the password symbol set-space, in order to discover a user's password. While no 'minimum length' can be guaranteed secure, eight (8) is commonly considered to be the minimum for most application access, along with requiring other password security factors, such as increasing the size of the symbol set-space by requiring mixed-cases, along with other forms of password variability creation, increases the difficulty of breaking any password by brute-force attack.",
"remediation": "To specify password length requirements for new accounts, edit the file \"/etc/login.defs\" and add or correct the following lines: \n\nPASS_MIN_LEN <required value>\n\nexample:\n\nPASS_MIN_LEN 14\n\n\nNote:\nThe DoD requirement is \"14\". If a program consults \"/etc/login.defs\" and also another PAM module (such as \"pam_cracklib\") during a password change operation, then the most restrictive must be satisfied.",
"category": "Access Control Requirements",
"subCategory": "Authentication/Passwords",
"controlReference": null,
"technologyId": 80,
"status": "Failed",
"previousStatus": "Failed",
"firstFailDate": "2025-12-12T08:43:48Z",
"lastFailDate": "2026-02-16T09:52:56Z",
"firstPassDate": "",
"lastPassDate": "",
"postureModifiedDate": "2025-12-12T08:43:48Z",
"lastEvaluatedDate": "2026-02-16T09:52:56Z",
"created": "2026-02-25T09:23:49Z",
"hostId": 17523783,
"ip": "10.115.126.187",
"trackingMethod": "AGENT",
"os": "CentOS Linux 7.9.2009",
"osCpe": "cpe:/o:centos:centos_linux:7.9.2009:::",
"domainName": "qweba.rdlab.in03.qualys.com",
"dns": "qweba.rdlab.in03.qualys.com",
"qgHostid": "cxxxxxx1-cxxx-4xxx-9xxx-6xxxxxxxxxxa",
"networkId": 0,
"networkName": "Global Default Network",
"complianceLastScanDate": "2026-02-25T08:57:09Z",
"customerUuid": "0xxxxxxe-exxx-4xxx-8xxx-3xxxxxxxxxxa",
"customerId": "1xxxxx2",
"assetId": 82016748,
"technology": {
"id": 80,
"name": "CentOS 7.x"
},
"criticality": {
"label": "URGENT_3",
"value": 5
},
"evidence": {
"expectedValues": "\nless than\n0",
"currentValues": [
"5"
],
"actualValues": null,
"directoryFimUdc": null,
"lastUpdated": "2026-02-25T08:44:44Z",
"extendedEvidence": "Row 1:File name,Setting,Value\nRow 2:/etc/login.defs,PASS_MIN_LEN,5\n",
"description": "The following Integer value X indicates the current value of the PASS_MIN_LEN setting as defined within the /etc/login.defs file."
},
"causeOfFailure": {
"missing": {
"logic": null,
"value": []
},
"unexpected": {
"value": [
"5"
]
}
},
"userDefinedAttributesList": null,
"currentDataSizeKB": "3.07",
"totalDataSizeKB": "3.07",
"currentBatch": 1,
"totalBatches": 1,
"scannerLastDetectedDate": "2026-02-10T08:33:14Z",
"agentLastDetectedDate": "2026-02-16T09:50:56Z",
"scanSource": "Agent + ML Scanner",
"CLOUD_RESOURCE_ID": null
},
]