Tenable Exports (Vulnerabilities) API
The Exports (Vulnerabilities) API from Tenable — 5 operation(s) for exports (vulnerabilities).
The Exports (Vulnerabilities) API from Tenable — 5 operation(s) for exports (vulnerabilities).
openapi: 3.0.0
info:
version: 1.0.0
title: Downloads About Exports (Vulnerabilities) API
description: 'The Downloads API enables customers to access and download installation and update files for available Tenable products. You can use the API endpoints to list product pages, list downloads available for a specific product, and to download a file. The endpoints can also be used to determine and download the latest version of a file to facilitate the automation of an installation.
**Note:** The Tenable Downloads API uses a different server URL than the Tenable Vulnerability Management API:
`https://www.tenable.com/downloads/api/v2/pages`.
### Authentication
Like the Downloads website, certain files require authentication to download. When files have a `"requires_auth": true` attribute on the product list page, the Downloads API uses bearer token authentication and requires a valid token in the Authorization header to download the file:
```
Authorization: Bearer AbCdEf123456
```
To access or reset your authentication token, navigate to the [Authentication Token](https://www.tenable.com/downloads/api-docs) page.
Examples of product downloads that **do not** require authentication include Nessus and Nessus Agents.'
servers:
- url: https://www.tenable.com/downloads/api/v2
security:
- Bearer: []
tags:
- name: Exports (Vulnerabilities)
x-displayName: Exports (Vulnerabilities)
paths:
/vulns/export:
post:
summary: Export vulnerabilities
description: "Exports vulnerabilities that match the request criteria. \n\nUsers need at least the Basic [16] user permission or the `VM.VM_EXPLORE.VM_EXPLORE.EXPORT` custom role privilege. Additionally, requires the Can View access control permission for the asset objects to be exported. The Can View access control permission can be set for all assets with the `All Assets` object. Administrator [64] users can export without the explicit Can View access control permission. \n\nFor more information about this endpoint, see guidelines and limitations described in [Retrieve Vulnerability Data from Vulnerability Management](doc:retrieve-vulnerability-data-from-tenableio). For request examples, see [Refine Vulnerability Export Requests](doc:refine-vulnerability-export-requests). \n\n **Caution**: The `vpr_v2_score` filter parameter is scheduled for deprecation on July 1, 2026 as part of the transition to VPR v2. To ensure continued functionality, update all integrations to use the `vpr_score` filter parameter. On the deprecation date, the system will update `vpr_score` to support the new VPR model. For more information, see [Vulnerability Priority Rating: Transition to VPR Version 2](changelog:vulnerability-priority-rating-transition-to-version-2). \n\n**Note:** There are limits for concurrent export requests. For more information, see [Concurrency Limiting](doc:concurrency-limiting) and [Rate Limiting](doc:rate-limiting). <div class=\"perms-callout\">Requires the Basic [16] user role or the `VM.VM_EXPLORE.VM_EXPLORE.EXPORT` custom role privilege. Additionally, requires the Can View access control permission for the asset objects to be exported. Administrator [64] users can export without the explicit Can View access control permission. See [Roles](doc:roles) and [Permissions](doc:permissions).</div>"
operationId: exports-vulns-request-export
tags:
- Exports (Vulnerabilities)
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
num_assets:
type: integer
description: Specifies the number of assets used to chunk the vulnerabilities. The vulnerabilities export is split up by number of asset IDs in a chunk. The exported data of a chunk is the sum of all the vulnerabilities for each asset in that chunk. The range for number of assets in a chunk is a minimum of 50 (the default size) to a maximum of 5,000. If you specify a value outside this range, the system uses the upper or lower-bound value.
format: int32
default: 50
minimum: 50
maximum: 5000
include_unlicensed:
type: boolean
default: false
description: Specifies whether or not to include unlicensed assets. The default is `false` when no parameter is specified.
include_software_vulns:
type: boolean
default: false
description: Specifies whether to include software package attribution data in the export output. If set to `true`, the system populates each vulnerability record with a `software_vulns` array containing details such as the package identifier, version, vendor, available fixes, and confidence classification. If omitted, the system uses the default value of `false` and excludes this data.
filters:
type: object
description: 'Specifies filters to apply to the vulnerabilities export.
**Note:** By default, vulnerability exports will only include accepted and non-accepted vulnerabilities found or fixed within the last 30 days if no time-based filters are submitted with the request.'
properties:
since:
type: integer
description: "The start date for the range of data you want to export. The date must be provided as a 10-digit Unix timestamp (in seconds). Use this filter in conjunction with the state filter as follows:\n - If the state filter is set to `OPEN` or `REOPENED`, the export includes data for vulnerabilities that were seen on or after the since date you specify.\n - If the state filter is set to `FIXED`, the export includes data for vulnerabilities that were fixed on or after the since date you specify.\n - If you do not include the `state` filter in your request, the export includes data for `OPEN` and `REOPENED` vulnerabilities that were seen on or after the since date you specify, and `FIXED` vulnerabilities that were fixed on or after the since date you specify.\n\n**Note:** This filter cannot be used in conjunction with the `first_found`, `first_seen`, `last_found`, `last_seen`, or `last_fixed` filters."
format: int64
first_found:
type: integer
description: 'Returns vulnerabilities first discovered on or after the specified date. The date must be provided as a 10-digit Unix timestamp (in seconds).
**Note:** This filter parameter is functionally equivalent to `first_seen`. You can use either one.'
format: int64
first_seen:
type: integer
description: 'Returns vulnerabilities first discovered on or after the specified date. The date must be provided as a 10-digit Unix timestamp (in seconds).
**Note:** This filter parameter is functionally equivalent to `first_found`. You can use either one.'
format: int64
last_found:
type: integer
description: 'Returns vulnerabilities last found on or after the specified date. The date must be provided as a 10-digit Unix timestamp (in seconds).
**Note:** This filter parameter is functionally equivalent to `last_seen`. You can use either one.'
format: int64
last_seen:
type: integer
description: 'Returns vulnerabilities last found on or after the specified date. The date must be provided as a 10-digit Unix timestamp (in seconds).
**Note:** This filter parameter is functionally equivalent to `last_found`. You can use either one.'
format: int64
indexed_at:
type: integer
description: Returns vulnerabilities that were indexed in Tenable Vulnerability Management on the specified date. The date must be provided as a 10-digit Unix timestamp (in seconds).
format: int64
last_fixed:
type: integer
description: Returns vulnerabilities that were last fixed between the specified date and the present. The date must be provided as a 10-digit Unix timestamp (in seconds).
format: int64
time_taken_to_fix:
$ref: '#/components/schemas/Export_Vulnerabilities_time_taken_to_fix_filter'
resurfaced_date:
description: Returns vulnerabilities that resurfaced between the specified date and the present. The date must be provided as a 10-digit Unix timestamp (in seconds).
type: integer
format: int64
cidr_range:
description: Restricts search for vulnerabilities to assets assigned an IP address within the specified CIDR range. For example, 0.0.0.0/0 restricts the search to 0.0.0.1 and 255.255.255.254.
type: string
cve_id:
description: Filters results to vulnerabilities matching the specified Common Vulnerabilities and Exposures (CVE) ID(s). Accepts a maximum of 200 IDs.
type: array
maxItems: 200
items:
type: string
example: CVE-2026-10289
cve_category:
description: "Returns vulnerabilities that match the specified CVE category. For more information about categories, see [Vulnerability Categories](https://docs.tenable.com/vulnerability-management/Content/vulnerability-intelligence/vulnerability-categories.htm) in the *Tenable Vulnerability Management User Guide*. Supported category values are:\n - `cisa known exploitable`—Vulnerabilities that appear in the [CISA Known Exploited Vulnerabilities Catalog](https://www.cisa.gov/known-exploited-vulnerabilities-catalog).\n - `emerging threats`—Vulnerabilities actively monitored by Tenable and that are currently being publicly discussed.\n - `in the news`—Vulnerabilities that are widely reported in the press with notable coverage over the past 30 days.\n - `persistently exploited`—Vulnerabilities leveraged by threat actors over an extended period of time in targeted attacks, ransomware, or malware campaigns.\n - `ransomware`—Vulnerabilities used in current or historical ransomware attacks.\n - `recent active exploitation`—Vulnerabilities for which Tenable has evidence of active exploitation and that have notable coverage in the press over the past 30 days.\n - `top 50 vpr`—Vulnerabilities included in Tenable's top 50 vulnerabilities according to the Vulnerability Priority Rating (VPR). For more information about VPR, see [Vulnerability Priority Rating](https://docs.tenable.com/vulnerability-management/Content/Explore/Findings/RiskMetrics.htm#Vulnerability-Priority-Rating-) in the *Tenable Vulnerability Management User Guide*."
type: array
items:
type: string
cvss4_base_score:
$ref: '#/components/schemas/Export_Vulnerabilities_cvss4_filter'
epss_score:
$ref: '#/components/schemas/Export_Vulnerabilities_epss_filter'
exploit_maturity:
description: "Returns vulnerabilities that match the specified exploit maturity. Tenable assigns exploit maturity values to vulnerabilities based on availability and sophistication of exploit code. Supported values are:\n - `high`—Exploit code is widely available, reliable, and easy to use.\n - `functional`—Exploit code exists but may require some skill.\n - `poc`—Exploit code exists but is not reliable.\n - `unproven`—There is no known exploit code."
type: array
items:
type: string
initiative_id:
type: string
format: uuid
description: "The unique identifier (UUID) of the Exposure Response initiative for which to retrieve associated vulnerabilities. This filter enables scoping results to a specific initiative within the Exposure Response workflow. For more information, see [Exposure Response](https://docs.tenable.com/vulnerability-management/Content/exposure-response/exposure-response-intro.htm) in the _Tenable Vulnerability Management User Guide_. \n\n**Note:** This filter can only be used in combination with one or more of the following filters: `indexed_at`, `since`, `severity`, `state` or `severity_modification_type`."
network_id:
type: string
format: uuid
description: The ID of the network associated with the scanners that detected the vulnerabilities you want to export. The default network ID is `00000000-0000-0000-0000-000000000000`. To determine the ID of a custom network, use the [GET /networks](ref:networks-list) endpoint. For more information about network objects, see [Manage Networks](doc:manage-networks-tio).
plugin_family:
items:
type: string
description: A list of plugin families for which you want to filter the vulnerabilities returned in the vulnerability export. This filter is case-sensitive. If your request omits this parameter, the export includes all vulnerabilities regardless of plugin family. For a list of supported plugin family values, use the [GET /plugins/families](ref:io-plugins-families-list) endpoint.
type: array
plugin_id:
items:
type: integer
description: A list of plugin IDs for which you want to filter the vulnerabilities returned in the vulnerability export. If your request omits this parameter, the export includes all vulnerabilities regardless of plugin ID.
type: array
plugin_type:
description: The plugin type for which you want to filter the vulnerabilities returned in the vulnerability export. For example, `remote`, `local`, `combined`, etc. If your request omits this parameter, the export includes all vulnerabilities regardless of plugin type.
type: string
scan_uuid:
type: string
format: uuid
description: The UUID of the scan that most recently discovered the vulnerabilities to be exported.
severity:
description: "Returns vulnerabilities with the specified severity. Defaults to all severity levels. The severity of a vulnerability is defined using the Common Vulnerability Scoring System (CVSS) base score. Supported array values are:\n - info—The vulnerability has a CVSS score of 0.\n - low—The vulnerability has a CVSS score between 0.1 and 3.9.\n - medium—The vulnerability has a CVSS score between 4.0 and 6.9.\n - high—The vulnerability has a CVSS score between 7.0 and 9.9.\n - critical—The vulnerability has a CVSS score of 10.0."
type: array
items:
type: string
enum:
- info
- low
- medium
- high
- critical
severity_modification_type:
items:
type: string
enum:
- NONE
- RECASTED
- ACCEPTED
description: "Returns vulnerabilities with the specified severity modification type. This filter can be used to return vulnerabilities with a modified severity due to a recast or accept rule. Supported case-sensitive values are:\n - NONE—No modification to the severity has been made.\n - RECASTED—A user has recast the risk associated with the vulnerability.\n - ACCEPTED—A user has accepted the risk associated with the vulnerability."
type: array
software_vulns_potential:
type: boolean
description: 'Filters results based on the confirmation status of the software vulnerabilities. If set to `true`, the export includes only potential vulnerabilities where presence cannot be confirmed with certainty. If set to `false`, the export includes only confirmed vulnerabilities. If omitted, the system includes both types.
**Note:** This parameter cannot be set to `false` when the request includes the `software_vulns_potential_reasons` parameter.'
software_vulns_potential_reasons:
type: array
minItems: 1
items:
type: string
enum:
- Managed
- Component
- Config Required
- Low Fidelity
- Incomplete Version
- Backported
description: 'Filters results to software vulnerabilities classified as potential for the specified reasons. When used without the `software_vulns_potential` parameter, the export includes matching vulnerabilities across both confirmed and potential results. Supported values include `Managed`, `Component`, `Config Required`, `Low Fidelity`, `Incomplete Version`, and `Backported`.
**Note:** This parameter cannot be used if `software_vulns_potential` is set to `false`.'
source:
items:
type: string
description: "Returns vulnerabilities identified by the specified source. A source is the entity that reported the vulnerability details. Sources can include sensors, connectors, and API imports. If your request specifies multiple sources, Tenable Vulnerability Management returns all vulnerabilities seen by any of the specified sources.\n\n The items in the `source` array must correspond to the names of the sources as defined in your organization's implementation of Tenable Vulnerability Management. Commonly used source names include:\n - AGENT—The vulnerability data was obtained from a Tenable Nessus Agent scan.\n - NNM—The vulnerability data was obtained from a Tenable Nessus Network Monitor (NNM) scan.\n - NESSUS—The vulnerability data was obtained from a Tenable Nessus scan."
type: array
state:
description: "Returns vulnerabilities with the specified state. Supported, case-insensitive values are:\n - OPEN—The vulnerability is currently present on a host.\n - REOPENED—The vulnerability was previously marked as fixed on a host but has returned.\n - FIXED—The vulnerability was present on a host but is no longer detected.\n\nThis parameter is required if your request includes `first_found`, `last_found`, or `last_fixed` parameters. If your request omits this parameter, the export includes default states `OPEN` and `REOPENED` only.\n\nNote that the API uses different terms for vulnerability states than the user interface. The `new` and `active` states in the user interface map to the `OPEN` state in the API. The `resurfaced` state in the user interface maps to the `REOPENED` state in the API. The `FIXED` state is the same."
type: array
items:
type: string
enum:
- OPEN
- REOPENED
- FIXED
tag.<category>:
type: array
items:
type: string
description: "Returns vulnerabilities on assets with the specified asset tags. \n\nThe tag filter format is defined as \"tag\", a period (\".\"), and then tag category name. For example, `tag.Location`. You can specify multiple tag categories and multiple tag values. When multiple tag categories are provided, the logical operation applied to the tag categories is an `AND` operation. When multiple tag values are provided, the logical operation applied to the values is an `OR` operation. For examples using the tag filter, see the examples listed in the [Refine Vulnerability Export Requests](doc:refine-vulnerability-export-requests) documentation. \n\n<span style=\"color:red\">**Caution:** Due to the limitations of OpenAPI, this parameter does not work with the \"Try It!\" button in the developer portal. If your request includes this parameter you must replace the `<category>` keyword with your actual tag category and manually run the request. For examples using the tag filter, see the examples listed in the [Refine Vulnerability Export Requests](doc:refine-vulnerability-export-requests) documentation.</span> \n\nFor more information about tags, see the <a href=\"https://docs.tenable.com/vulnerability-management/Content/Settings/Tagging/Tags.htm\" target=\"_blank\">Tags</a> in the Tenable Vulnerability Management User Guide."
vpr_score:
$ref: '#/components/schemas/Export_Vulnerabilities_vpr_filter'
vpr_v2_score:
$ref: '#/components/schemas/Export_Vulnerabilities_vpr_v2_filter'
vpr_threat_intensity:
description: Returns vulnerabilities that match the specified threat intensity. The threat intensity of a vulnerability is based on the number and frequency of recently observed threat events. Supported values include `very high`, `high`, `medium`, `low`, or `very low`.
type: array
items:
type: string
weaponization:
description: "Returns vulnerabilities that match the specified weaponization. Weaponized vulnerabilities are vulnerabilities that are ready for use in a particular type of cyberattack. Supported values are:\n - `apt` (advanced persistent threat)\n - `botnet`\n - `malware` \n - `ransomware`\n - `rootkit`"
type: array
items:
type: string
zero_day:
description: Filters vulnerabilities by zero-day status. If omitted, both zero-day and non–zero-day vulnerabilities are included in the export results. Zero-day vulnerabilities are those for which no official patch or fix was available at the time of disclosure.
type: boolean
responses:
'200':
description: Returned if a vulnerability export request was queued successfully.
content:
application/json:
schema:
type: object
properties:
export_uuid:
type: string
description: The UUID of the vulnerabilities export job.
examples:
response:
value:
export_uuid: bf765455-53aa-4e70-9ef3-87cfca1d2be0
'400':
description: Returned if your request specified invalid parameters or if your request was improperly formatted.
'401':
description: Returned if the API keys specified in your request are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Export_Vulnerabilities_ErrorResponse'
examples:
response:
value:
statusCode: 401
error: Unauthorized
message: Invalid credentials.
'403':
description: Returned if you do not have permission to export vulnerabilities.
'409':
description: Returned if your request was a duplicate of an ongoing export that was already submitted. Tenable Vulnerability Management prevents duplicate exports from running concurrently. For example, export requests with the same filters.
content:
application/json:
schema:
type: object
properties:
active_job_id:
type: string
description: The UUID of ongoing vulnerabilities export job that was already submitted.
failure_reason:
type: string
description: A description of the conflict.
examples:
response:
value:
active_job_id: 1f3381e3-a551-4b9b-9c17-b019412cc35c
failure_reason: The request could not be completed due to a conflict with the ongoing export
'429':
description: Returned if you attempt to send too many requests in a specific period of time. For more information, see [Rate Limiting](doc:rate-limiting) and [Concurrency Limiting](doc:concurrency-limiting).
content:
text/html:
examples:
response:
value: "<html>\n\n<head>\n <title>429 Too Many Requests</title>\n</head>\n\n<body bgcolor=\"white\">\n <center>\n <h1>429 Too Many Requests</h1>\n </center>\n <hr>\n <center>nginx</center>\n</body>\n\n</html>"
'500':
description: Returned if an internal error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/Export_Vulnerabilities_ErrorResponse'
examples:
response:
value:
statusCode: 500
error: Internal Server Error
message: An internal server error occurred. Please wait a moment and try your request again.
security:
- Export_Vulnerabilities_cloud: []
/vulns/export/{export_uuid}/status:
get:
summary: Get vulnerability export status
description: "Returns the status of a vulnerability export request. Tenable Vulnerability Management processes the chunks in parallel so the chunks may not complete in order, and the chunk IDs may not be arranged sequentially in the completed output.\n\n **Note:** Output for an individual plugin is limited to 1,024 KB (1 MB). <div class=\"perms-callout\">Requires the Basic [16] user role or the `VM.VM_EXPLORE.VM_EXPLORE.EXPORT` custom role privilege. See [Roles](doc:roles).</div>"
operationId: exports-vulns-export-status
tags:
- Exports (Vulnerabilities)
parameters:
- description: The UUID for the vulnerabilities export request to retrieve the status for.
required: true
name: export_uuid
in: path
schema:
type: string
description: The unique identifier of an export request. This value corresponds to the value returned in the [/vulns/export](ref:exports-vulns-request-export) response message.
responses:
'200':
description: Returned if the status for the specified vulnerabilities export was retrieved successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Export_Vulnerabilities_response-vulns-export-status'
examples:
response:
value:
uuid: 1d896500-2f92-467c-aa4d-6fe8d007b127
status: FINISHED
chunks_available:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
chunks_failed: []
chunks_cancelled: []
total_chunks: 10
chunks_available_count: 10
empty_chunks_count: 0
finished_chunks: 10
filters:
severity:
- CRITICAL
state:
- OPEN
tags:
tag.Location:
- Dallas
since: 0
first_found: 1540350772
last_found: 0
last_fixed: 0
first_seen: 0
last_seen: 0
indexed_at: 0
indexed_at_end_value: 0
cve_id:
- CVE-2025-44228
- CVE-2025-0589
resurfaced_date: 0
cve_category:
- in_the_news
- persistently_exploited
- ransomware
exploit_maturity:
- unproven
- poc
vpr_threat_intensity:
- Low
- Medium
- Very Low
weaponization:
- botnet
- apt
- malware
num_assets_per_chunk: 50
created: 1732582396387
'400':
description: Returned if your request specified invalid parameters or if your request was improperly formatted.
'401':
description: Returned if the API keys specified in your request are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Export_Vulnerabilities_ErrorResponse'
examples:
response:
value:
statusCode: 401
error: Unauthorized
message: Invalid credentials.
'403':
description: Returned if you do not have permission to view the vulnerabilities export status.
'404':
description: Returned if Tenable Vulnerability Management could not find the specified vulnerabilities export job.
'429':
description: Returned if you attempt to send too many requests in a specific period of time. For more information, see [Rate Limiting](doc:rate-limiting).
content:
text/html:
examples:
response:
value: "<html>\n\n<head>\n <title>429 Too Many Requests</title>\n</head>\n\n<body bgcolor=\"white\">\n <center>\n <h1>429 Too Many Requests</h1>\n </center>\n <hr>\n <center>nginx</center>\n</body>\n\n</html>"
'500':
description: Returned if an internal error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/Export_Vulnerabilities_ErrorResponse'
examples:
response:
value:
statusCode: 500
error: Internal Server Error
message: An internal server error occurred. Please wait a moment and try your request again.
security:
- Export_Vulnerabilities_cloud: []
/vulns/export/status:
get:
summary: List vuln export jobs
description: Retrieves a list of vulnerability export jobs. This list includes the 1,000 most recent export jobs regardless of status. However, this list includes completed jobs only if the job completed in the previous three days. <div class="perms-callout">Requires the Basic [16] user role or the `VM.VM_EXPLORE.VM_EXPLORE.EXPORT` custom role privilege. See [Roles](doc:roles).</div>
operationId: exports-vulns-export-status-recent
tags:
- Exports (Vulnerabilities)
responses:
'200':
description: Returned if the list of vulnerability export jobs was retrieved successfully.
content:
applicati
# --- truncated at 32 KB (132 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tenable/refs/heads/main/openapi/tenable-exports-vulnerabilities-api-openapi.yml