Tenable Exports (Assets) API
The Exports (Assets) API from Tenable — 6 operation(s) for exports (assets).
The Exports (Assets) API from Tenable — 6 operation(s) for exports (assets).
openapi: 3.0.0
info:
version: 1.0.0
title: Downloads About Exports (Assets) 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 (Assets)
x-displayName: Exports (Assets)
paths:
/assets/export:
post:
summary: Export assets v1
description: "Exports all assets 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 Asset Data from Vulnerability Management](doc:retrieve-asset-data-from-tenableio). \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: export-assets-v1
tags:
- Exports (Assets)
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
chunk_size:
type: integer
description: "Specifies the number of assets per exported chunk. The range is 100-10000. If you specify a value outside of that range, Tenable Vulnerability Management returns a 400 error. \n\nUsing smaller chunks size can improve performance. Tenable does not recommend using a chunk size larger than 5000 as the potential for an error increases above this size. \n\n**Caution:** If using the `include_resource_tags` parameter, the chunk size is limited to 1000 for best performance, and Tenable Vulnerability Management returns a 400 error if you attempt to use a larger chunk size."
format: int32
minimum: 100
maximum: 10000
example: 5000
include_open_ports:
type: boolean
description: 'Specifies whether or not to include open port findings from info-level plugins. If this parameter is omitted, Tenable Vulnerability Management uses a default value of `false`.
**Caution:** Including open port findings can significantly increase the size of the API response and exports take longer to complete. Additionally, Tenable does not recommend including both open port findings and resource tags in the same export.'
include_resource_tags:
type: boolean
description: "Specifies whether or not to include resource tags. Resource tags are imported from a cloud provider like AWS, Azure, or GCP by a Cloud Discovery Connector and are used to identify cloud assets. If this parameter is omitted, Tenable Vulnerability Management uses a default value of `false`.\n\n**Note:** Tenable is enabling this update for customers in a rolling fashion and availability is limited. For more information, contact your Tenable representative. \n\n**Caution:** Including resource tags can significantly increase the size of the API response and exports take longer to complete. Tenable does not recommend including both resource tags and open port findings in the same export. Additionally, when including resource tags, the chunk size is limited to 1000 for best performance and Tenable Vulnerability Management returns a 400 error if you attempt to use a larger chunk size."
filters:
type: object
description: 'Specifies filters for exported assets. To return all assets, omit the filters object. If your request specifies multiple filters, the system combines the filters using the AND search operator.
**Note:** If you submit an asset export request with filters that are identical to a previously submitted asset export request then the old export is canceled and a new export is submitted.'
properties:
created_at:
type: integer
description: Returns all assets created later than the date specified. The date must be specified in the Unix timestamp format.
format: int64
updated_at:
type: integer
description: Returns all assets updated later than the date specified. The date must be specified in the Unix timestamp format.
format: int64
terminated_at:
type: integer
description: Returns all assets terminated later than the date specified. The date must be specified in the Unix timestamp format.
format: int64
is_terminated:
type: boolean
description: When set to `true`, returns assets which have a defined `terminated_at` attribute.
deleted_at:
type: integer
description: Returns all assets deleted later than the date specified. The date must be specified in the Unix timestamp format.
format: int64
is_deleted:
type: boolean
description: When set to `true`, returns assets which have a defined `deleted_at` attribute.
is_licensed:
type: boolean
description: Specifies whether the asset is included in the asset count for the Tenable Vulnerability Management instance. If `true`, Tenable Vulnerability Management returns only licensed assets. If `false`, Tenable Vulnerability Management returns only unlicensed assets. If this filter is omitted, Tenable Vulnerability Management returns both licensed and unlicensed assets.
first_scan_time:
type: integer
description: Returns all assets with a first scan time later than the date specified. The date must be specified in the Unix timestamp format.
format: int64
last_authenticated_scan_time:
type: integer
description: Returns all assets with a last credentialed scan time later than the date specified. The date must be specified in the Unix timestamp format.
format: int64
last_assessed:
type: integer
description: Returns all assets with a last assessed time later than the date specified. Tenable Vulnerability Management considers an asset assessed if it has been scanned by a credentialed or non-credentialed scan. The date must be specified in the Unix timestamp format.
format: int64
last_scan_id:
type: string
description: Returns all assets that were last scanned by the specified scan configuration UUID.
has_plugin_results:
type: boolean
description: Filter by whether or not the asset has plugin results associated with it. If `true`, Tenable Vulnerability Management returns all assets that have plugin results. If `false`, Tenable Vulnerability Management returns all assets that do not have plugin results. An asset may not have plugin results if the asset details originated from a connector or an API import.
network_id:
type: string
description: The unique identifier of the network assigned to the scanners that identified the assets 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).
servicenow_sysid:
type: boolean
description: If `true`, returns all assets that have a ServiceNow Sys ID, regardless of value. If `false`, returns all assets that do not have a ServiceNow Sys ID.
sources:
items:
type: string
description: "Returns assets that have the specified asset source. An asset source is the entity that reported the asset details. Sources can include sensors, connectors, and API imports. If your request specifies multiple sources, Tenable Vulnerability Management returns all assets seen by any of the specified sources.\n\nThe items in the `sources` array must correspond to the names of the sources as defined in your organization's implementation of Tenable Vulnerability Management. Commonly used names include:\n - AWS—The asset data was obtained from an Amazon Web Services connector.\n - NESSUS_AGENT—The asset data was obtained from a Tenable Nessus Agent scan.\n - PVS—The asset data from a Tenable Nessus Network Monitor (NNM) scan.\n - NESSUS_SCAN—The asset data was obtained from a Tenable Nessus scan.\n - WAS—The asset data was obtained from a Tenable Web App Scanning scan."
type: array
tag.<category>:
description: "Returns all assets with the specified 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 Asset Export Requests](doc:refine-asset-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 Asset Export Requests](doc:refine-asset-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."
type: array
items:
type: string
required:
- chunk_size
responses:
'200':
description: Returned if an assets export request was queued successfully.
content:
application/json:
schema:
type: object
properties:
export_uuid:
type: string
description: The UUID of the assets v1 export job.
examples:
response:
value:
export_uuid: 60a26f04-c844-49a6-b67b-995a6ed79471
'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_Assets_ErrorResponse'
examples:
response:
value:
statusCode: 401
error: Unauthorized
message: Invalid credentials.
'403':
description: Returned if you do not have permission to export assets.
'409':
description: Returned if your export request is identical to a request already in progress. For more information, see [Concurrency Limiting](doc:concurrency-limiting).
'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_Assets_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_Assets_cloud: []
/assets/v2/export:
post:
summary: Export assets v2
description: "Exports all assets that match the request criteria. \n\nThis endpoint supersedes the [Export assets v1](ref:export-assets-v1) endpoint. Export assets v2 adds support for Tenable Web App Scanning assets. WAS assets can be included in the export by specifying `WAS` with the `sources` parameter or `webapp` with the `types` parameter. The Export assets v2 endpoint supports most filters supported by [Export assets v1](ref:export-assets-v1) in addition to the new `types` and `since` parameters. The tag filter (`tag.<category>`) available in Export assets v1 is not supported in this endpoint. Additionally, the asset chunks are returned using an improved data model. See [Download assets chunk](ref:exports-assets-download-chunk) for the assets v2 data model specification.\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. FedRAMP customers who use the GovCloud region must have the Administrator [64] user permission. \n\nFor more information about this endpoint, see guidelines and limitations described in [Retrieve Asset Data from Vulnerability Management](doc:retrieve-asset-data-from-tenableio). \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. FedRAMP customers who use the GovCloud region must have the Administrator [64] user permission. See [Roles](doc:roles) and [Permissions](doc:permissions).</div>"
operationId: export-assets-v2
tags:
- Exports (Assets)
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
chunk_size:
type: integer
description: "Specifies the number of assets per exported chunk. The range is 100-10000. If you specify a value outside of that range, Tenable Vulnerability Management returns a 400 error. \n\nUsing smaller chunks size can improve performance. Tenable does not recommend using a chunk size larger than 5000 as the potential for an error increases above this size. \n\n**Caution:** if using the `include_resource_tags` parameter, the chunk size is limited to 1000 for best performance, and Tenable Vulnerability Management returns a 400 error if you attempt to use a larger chunk size."
format: int32
minimum: 100
maximum: 10000
example: 5000
include_open_ports:
type: boolean
description: 'Specifies whether or not to include open port findings from info-level plugins. If this parameter is omitted, Tenable Vulnerability Management uses a default value of `false`.
**Caution:** Including open port findings can significantly increase the size of the API response and exports take longer to complete. Additionally, Tenable does not recommend including both open port findings and resource tags in the same export.'
include_resource_tags:
type: boolean
description: "Specifies whether or not to include resource tags. Resource tags are imported from a cloud provider like AWS, Azure, or GCP by a Cloud Discovery Connector and are used to identify cloud assets. If this parameter is omitted, Tenable Vulnerability Management uses a default value of `false`.\n\n**Note:** Tenable is enabling this update for customers in a rolling fashion and availability is limited. For more information, contact your Tenable representative. \n\n**Caution:** Including resource tags can significantly increase the size of the API response and exports take longer to complete. Tenable does not recommend including both resource tags and open port findings in the same export. Additionally, when including resource tags, the chunk size is limited to 1000 for best performance and Tenable Vulnerability Management returns a 400 error if you attempt to use a larger chunk size."
filters:
type: object
description: 'Specifies filters for exported assets. To return all assets, omit the filters object. If your request specifies multiple filters, the system combines the filters using the AND search operator.
**Note:** If you submit an asset export request with filters that are identical to a previously submitted asset export request then the old export is canceled and a new export is submitted.'
properties:
created_at:
type: integer
description: Returns all assets created later than the date specified. The date must be specified in the Unix timestamp format.
format: int64
updated_at:
type: integer
description: Returns all assets updated later than the date specified. The date must be specified in the Unix timestamp format.
format: int64
terminated_at:
type: integer
description: Returns all assets terminated later than the date specified. The date must be specified in the Unix timestamp format.
format: int64
is_terminated:
type: boolean
description: When set to `true`, returns assets which have any value for the `terminated_at` attribute.
deleted_at:
type: integer
description: Returns all assets deleted later than the date specified. The specified date must in the Unix timestamp format.
format: int64
is_deleted:
type: boolean
description: When set to `true`, returns assets which have any value for the `deleted_at` attribute.
is_licensed:
type: boolean
description: Specifies whether the asset is included in the asset count for the Tenable Vulnerability Management instance. If `true`, Tenable Vulnerability Management returns only licensed assets. If `false`, Tenable Vulnerability Management returns only unlicensed assets. If this filter is omitted, Tenable Vulnerability Management returns both licensed and unlicensed assets.
first_scan_time:
type: integer
description: Returns all assets with a first scan time later than the date specified. The date must be specified in the Unix timestamp format.
format: int64
last_authenticated_scan_time:
type: integer
description: Returns all assets with a last credentialed scan time later than the date specified. The date must be specified in the Unix timestamp format.
format: int64
last_assessed:
type: integer
description: Returns all assets with a last assessed time later than the date specified. Tenable Vulnerability Management considers an asset assessed if it has been scanned by a credentialed or non-credentialed scan. The date must be specified in the Unix timestamp format.
format: int64
last_scan_id:
type: string
description: Returns all assets that were last scanned by the specified scan configuration UUID.
has_plugin_results:
type: boolean
description: Filter by whether or not the asset has plugin results associated with it. If `true`, Tenable Vulnerability Management returns all assets that have plugin results. If `false`, Tenable Vulnerability Management returns all assets that do not have plugin results. An asset may not have plugin results if the asset details originated from a connector or an API import.
network_id:
type: string
description: The unique identifier of the network object assigned to the scanners that identified the assets 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).
servicenow_sysid:
type: boolean
description: If `true`, returns all assets that have a ServiceNow Sys ID, regardless of value. If `false`, returns all assets that do not have a ServiceNow Sys ID.
since:
type: integer
description: Returns all assets that were updated, deleted, or terminated since the specified date. The date must be specified in the Unix timestamp format.
format: int64
sources:
description: "Returns assets that have the specified asset source. An asset source is the entity that reported the asset details. Sources can include sensors, connectors, and API imports. If your request specifies multiple sources, Tenable Vulnerability Management returns all assets seen by any of the specified sources.\n\nThe items in the `sources` array must correspond to the names of the sources as defined in your organization's implementation of Tenable Vulnerability Management. Commonly used names include:\n - AWS—The asset data was obtained from an Amazon Web Services connector.\n - NESSUS_AGENT—The asset data was obtained from a Tenable Nessus Agent scan.\n - PVS—The asset data from a Tenable Nessus Network Monitor (NNM) scan.\n - NESSUS_SCAN—The asset data was obtained from a Tenable Nessus scan.\n - WAS—The asset data was obtained from a Tenable Web App Scanning scan."
type: array
items:
type: string
types:
description: Returns all assets of the specified types. Supported asset types are `host` and `webapp`. If this parameter is omitted, Tenable Vulnerability Management uses the default value `host`.
type: array
items:
type: string
enum:
- host
- webapp
required:
- chunk_size
responses:
'200':
description: Returned if an assets export request was queued successfully.
content:
application/json:
schema:
type: object
properties:
export_uuid:
type: string
description: The UUID of the assets v2 export job.
examples:
response:
value:
export_uuid: 60a26f04-c844-49a6-b67b-995a6ed79471
'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_Assets_ErrorResponse'
examples:
response:
value:
statusCode: 401
error: Unauthorized
message: Invalid credentials.
'403':
description: Returned if you do not have permission to export assets.
'409':
description: Returned if your export request is identical to a request already in progress. For more information, see [Concurrency Limiting](doc:concurrency-limiting).
'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_Assets_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_Assets_cloud: []
/assets/export/{export_uuid}/status:
get:
summary: Get assets export status
description: Returns the status of an assets 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. <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-assets-export-status
tags:
- Exports (Assets)
parameters:
- description: The UUID for the export request.
required: true
name: export_uuid
in: path
schema:
type: string
responses:
'200':
description: Returns the status of the specified assets export job.
content:
application/json:
schema:
type: object
properties:
status:
type: string
description: "The status of the asset export request. Possible values include:\n - QUEUED—Tenable Vulnerability Management has queued the export request until earlier requests have completed.\n - PROCESSING—Tenable Vulnerability Management is currently processing the export request.\n - FINISHED—Tenable Vulnerability Management has completed processing the export request. All chunks are available.\n - CANCELLED—An administrator has cancelled the export request.\n - ERROR—An error occurred while processing the export request. Retry the request. If the error persists on retry, contact Tenable Support."
reason:
type: string
description: "A human-readable description explaining the reason the export failed. This property is only present when the export status is `ERROR`. Possible values include:\n - \"The export request timed out. Try again.\"\n - \"An unexpected error occurred while processing the export. Try again later.\"\n - \"The export could not be completed. If this issue persists, please contact support.\""
chunks_available:
type: array
description: A comma-separated list of completed chunks available for download.
items:
type: integer
format: int32
examples:
response:
value:
status: FINISHED
chunks_available:
- 1
- 2
- 3
- 4
'401':
description: Returned if the API keys specified in your request are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Export_Assets_ErrorResponse'
examples:
response:
value:
statusCode: 401
error: Unauthorized
message: Invalid credentials.
'403':
description: Returned if you do not have permission to view the assets export status.
'404':
description: Returned if Tenable Vulnerability Management cannot find an assets export with the specified UUID.
'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>"
# --- truncated at 32 KB (113 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tenable/refs/heads/main/openapi/tenable-exports-assets-api-openapi.yml