Tenable Scan Results API
The Scan Results API from Tenable — 3 operation(s) for scan results.
The Scan Results API from Tenable — 3 operation(s) for scan results.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/tenable-scan-results-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Vulnerability Management Scan Results API
version: 1.0.0
servers:
- url: https://cloud.tenable.com
tags:
- name: Scan Results
x-displayName: Scan Results
paths:
/scans/{scan_uuid}/hosts/{host_id}:
get:
summary: Get host details
description: 'Returns details for the specified host.
**Note:** This endpoint can only return scan results that are younger than 35 days. For scan results that are older than 35 days, use the POST /scans/{scan_id}/export endpoint instead.
Requires the Scan Operator [24] user role and Can View [16] scan permissions. See Roles and Permissions.'
operationId: scans-host-details
tags:
- Scan Results
parameters:
- description: The identifier for the scan. This identifier can be the either the `schedule_uuid` or the numeric `id` attribute for the scan. We recommend that you use `schedule_uuid`.
required: true
name: scan_uuid
in: path
schema:
type: string
- description: The ID of the host to retrieve.
required: true
name: host_id
in: path
schema:
type: integer
format: int32
- description: 'The unique identifier of the historical data that you want Tenable Vulnerability Management to return. This identifier corresponds to the `history.id` attribute of the response message from the [GET /scans/{scan_id}/history](ref:scans-history) endpoint. '
name: history_id
in: query
schema:
type: integer
format: int32
- description: The UUID of the historical data that you want Tenable Vulnerability Management to return. This identifier corresponds to the `history.scan_uuid` attribute of the response message from the [GET /scans/{scan_id}/history](ref:scans-history) endpoint.
name: history_uuid
in: query
schema:
type: string
format: uuid
responses:
'200':
description: Returns the host details.
content:
application/json:
schema:
type: object
properties:
info:
type: object
compliance:
type: array
items:
$ref: '#/components/schemas/Scan_Results_host_compliance'
vulnerabilities:
type: array
items:
$ref: '#/components/schemas/Scan_Results_host_vulnerability'
examples:
response:
value:
info:
mac-address: null
host-fqdn: matrixcentos5_matrix
host-ip: 192.0.2.57
operating-system:
- Linux Kernel 2.6.18-274.el5PAE on CentOS release 5.7 (Final)
host_end: Fri Dec 7 21:46:59 2018
host_start: Fri Dec 7 21:46:59 2018
vulnerabilities:
- count: 7
host_id: 9
hostname: 192.0.2.57
plugin_family: Port scanners
plugin_id: 14272
plugin_name: Netstat Portscanner (SSH)
severity: 0
severity_index: 0
vuln_index: 0
- count: 7
host_id: 9
hostname: 192.0.2.57
plugin_family: Service detection
plugin_id: 25221
plugin_name: Remote listeners enumeration (Linux / AIX)
severity: 0
severity_index: 0
vuln_index: 0
- count: 4
host_id: 9
hostname: 192.0.2.57
plugin_family: Service detection
plugin_id: 11111
plugin_name: RPC Services Enumeration
severity: 0
severity_index: 0
vuln_index: 0
compliance:
- count: 1
host_id: 9
hostname: 192.0.2.57
plugin_family: Unix Compliance Checks
plugin_id: 0042cf05a8358f531c68c8bd249a4874
plugin_name: 'BSI-100-2: S 4.105: Telnet should be replaced by SSH.'
severity: 1
severity_index: 0
- count: 1
host_id: 9
hostname: 192.0.2.57
plugin_family: Unix Compliance Checks
plugin_id: 0483f10c66f3ecf1f2ec55cf47365416
plugin_name: 'BSI-100-2: S 4.105: /usr/X11R6/bin/startx - `xhost +` should never be used.'
severity: 3
severity_index: 1
- count: 1
host_id: 9
hostname: 192.0.2.57
plugin_family: Unix Compliance Checks
plugin_id: 04a999b7e2dbe28fc1c76b15237a39a2
plugin_name: Red Hat 6 is not installed on target
severity: 2
severity_index: 2
'401':
description: Returned if the API keys specified in your request are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Scan_Results_ErrorResponse'
examples:
response:
value:
statusCode: 401
error: Unauthorized
message: Invalid credentials.
'404':
description: "Returned under the following conditions:\n - Tenable Vulnerability Management cannot find the specified scan.\n - The requested scan results are older than 35 days. Use the [POST /scans/{scan_id}/export](ref:scans-export-request) endpoint instead."
'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/Scan_Results_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:
- Scan_Results_cloud: []
/scans/{scan_uuid}/hosts/{host_id}/plugins/{plugin_id}:
get:
summary: Get plugin output
description: 'Returns the output for a specified plugin.
**Caution:** This endpoint is deprecated. Tenable recommends that you use the Export scan endpoint instead. Please update any existing integrations that your organization has since this endpoint will be removed.
**Note:** This endpoint can only return scan results that are younger than 35 days. For scan results that are older than 35 days, use the POST /scans/{scan_id}/export endpoint instead. Output for an individual plugin is limited to 1,024 KB (1 MB). Additionally, this endpoint has a rate limit of 4 requests per minute. For more information, see Rate Limiting.
Requires the Scan Operator [24] user role and Can View [16] scan permissions. See Roles and Permissions.'
operationId: scans-plugin-output
deprecated: true
tags:
- Scan Results
parameters:
- description: The identifier for the scan. This identifier can be the either the `schedule_uuid` or the numeric `id` attribute for the scan. We recommend that you use `schedule_uuid`.
required: true
name: scan_uuid
in: path
schema:
type: string
- description: The ID of the host to retrieve.
required: true
name: host_id
in: path
schema:
type: integer
format: int32
- description: The ID of the plugin to retrieve.
required: true
name: plugin_id
in: path
schema:
type: integer
format: int32
- description: 'The unique identifier of the historical data that you want Tenable Vulnerability Management to return. This identifier corresponds to the `history.id` attribute of the response message from the [GET /scans/{scan_id}/history](ref:scans-history) endpoint. '
name: history_id
in: query
schema:
type: integer
format: int32
- description: The UUID of the historical data that you want Tenable Vulnerability Management to return. This identifier corresponds to the `history.scan_uuid` attribute of the response message from the [GET /scans/{scan_id}/history](ref:scans-history) endpoint.
name: history_uuid
in: query
schema:
type: string
format: uuid
responses:
'200':
description: Returns the plugin output.
content:
application/json:
schema:
type: object
properties:
output:
type: array
items:
$ref: '#/components/schemas/Scan_Results_plugin_output'
info:
type: object
properties:
host-fqdn:
type: string
description: The host's fully qualified domain name; optional.
host_fqdn:
type: string
description: The FQDN of the host. Normally, this is populated with the value used to scan the host in the target list of the last scan that was ran where it was seen; always present.
host-ip:
type: string
description: The host's IPv4 address; optional.
host-uuid:
type: string
description: The host's UUID generated by Tenable Vulnerability Management for identification purposes; always present.
host_start:
type: string
description: The last time a scan was started for this host as an ISO 8601 timestamp; always present.
host_end:
type: string
description: The last time a scan was completed for this host as an ISO 8601 timestamp; always present.
mac-address:
type: string
description: The host's mac addresses in a newline-separated list; optional.
examples:
response:
value:
outputs:
- ports:
22 /TCP / ssh:
- hostname: 192.0.2.57
has_attachment: 0
severity: 0
plugin_output: An SSH server is running on this port.
hosts: null
custom_description: null
- ports:
80 / TCP / www:
- hostname: 192.0.2.57
has_attachment: 0
severity: 0
plugin_output: A web server is running on this port.
hosts: null
custom_description: null
info:
plugindescription:
severity: 0
pluginname: Service Detection
pluginattributes:
risk_information:
risk_factor: None
plugin_information:
plugin_version: '1.194'
plugin_id: 22964
plugin_type: remote
plugin_family: Service detection
plugin_publication_date: '2007-08-19T00:00:00Z'
plugin_modification_date: '2024-03-26T00:00:00Z'
has_patch: false
synopsis: The remote service could be identified.
description: Nessus was able to identify the remote service by its banner or by looking at the error message it sends when it receives an HTTP request.
solution: null
pluginfamily: Service detection
pluginid: '22964'
'401':
description: Returned if the API keys specified in your request are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Scan_Results_ErrorResponse'
examples:
response:
value:
statusCode: 401
error: Unauthorized
message: Invalid credentials.
'404':
description: "Returned under the following conditions:\n - Tenable Vulnerability Management cannot find the specified scan.\n - The requested scan results are older than 35 days. Use the [POST /scans/{scan_id}/export](ref:scans-export-request) endpoint instead."
'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/Scan_Results_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:
- Scan_Results_cloud: []
/scans/{scan_id}/attachments/{attachment_id}:
get:
summary: Get scan attachment file
description: 'Gets the requested scan attachment file.
**Note:** Scan attachments are not available if the scan results are older than 60 days. To retrieve scan data in `.nessus` and `.csv` format, use the POST /scans/{scan_id}/export endpoint.
Requires the Scan Operator [24] user role and Can View [16] scan permissions. See Roles and Permissions.'
operationId: scans-attachments
tags:
- Scan Results
parameters:
- description: The unique identifier for the scan containing the attachment. This identifier can be either the `scans.schedule_uuid` or the `scans.id` attribute in the response message from the [GET /scans](ref:scans-list) endpoint. Tenable recommends that you use `scans.schedule_uuid`.
required: true
name: scan_id
in: path
schema:
type: string
- description: The ID of the scan attachment.
required: true
name: attachment_id
in: path
schema:
type: string
- description: The attachment access token if applicable.
name: key
in: query
schema:
type: string
- description: The accept header to use with the request. Use `application/json` for most cases. Use `application/octet-stream` if the scan attachment file is a binary file.
in: header
name: accept
required: true
schema:
type: string
default: application/json
enum:
- application/json
- application/octet-stream
responses:
'200':
description: Returned if the specified scan attachment was retrieved successfully.
content:
application/json:
schema: {}
examples:
response:
value: {}
application/octet-stream:
schema: {}
examples:
response:
value: {}
'401':
description: Returned if the API keys specified in your request are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Scan_Results_ErrorResponse'
examples:
response:
value:
statusCode: 401
error: Unauthorized
message: Invalid credentials.
'404':
description: 'Returned if Tenable Vulnerability Management cannot find the specified attachment file.
**Note:** Scan attachments are not available if the scan results are older than 60 days. To retrieve scan data in `.nessus` and `.csv` format, use the [POST /scans/{scan_id}/export](ref:scans-attachments) endpoint.'
'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/Scan_Results_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:
- Scan_Results_cloud: []
components:
schemas:
Scan_Results_ErrorResponse:
type: object
properties:
statusCode:
type: integer
description: The HTTP status code of the error.
error:
type: string
description: The standard HTTP error name.
message:
type: string
description: A brief message about the cause of the error.
Scan_Results_host_vulnerability:
type: object
properties:
host_id:
type: integer
description: The unique ID of the host.
hostname:
type: string
description: The name of the host.
plugin_id:
type: integer
description: The unique ID of the vulnerability plugin.
plugin_name:
type: string
description: The name of the vulnerability plugin.
plugin_family:
type: string
description: The parent family of the vulnerability plugin.
count:
type: integer
description: The number of vulnerabilities found.
vuln_index:
type: integer
description: The index of the vulnerability plugin.
severity_index:
type: integer
description: The severity index order of the plugin.
severity:
type: integer
description: The severity of plugin.
Scan_Results_plugin_output:
type: object
properties:
ports:
type: object
properties: {}
has_attachment:
type: integer
description: If the value is 1, the plugin output contains files that may be exported.
custom_description:
type: string
description: A custom description of the plugin.
plugin_output:
type: string
description: The text of the plugin output.
hosts:
type: string
description: Other hosts with the same output.
severity:
type: integer
description: The severity the output.
Scan_Results_host_compliance:
type: object
properties:
host_id:
type: integer
description: The unique ID of the host.
hostname:
type: string
description: The name of the host.
plugin_id:
type: integer
description: The unique ID of the vulnerability plugin.
plugin_name:
type: string
description: The name of the vulnerability plugin.
plugin_family:
type: string
description: The parent family of the vulnerability plugin.
count:
type: integer
description: The number of vulnerabilities found.
severity_index:
type: integer
description: The severity index order of the plugin.
severity:
type: integer
description: The severity of plugin.
securitySchemes:
assets_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
Asset_Custom_Attributes_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
editor_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
Export_Assets_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
Export_Compliance_Data_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
Export_Vulnerabilities_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
file_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
filters_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
folders_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
plugins_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
policies_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
Reports_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
scans_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
Scan_Control_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
Scan_Exports_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
Scan_History_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
Scan_Results_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
Scan_Status_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
Scan_Tasks_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
Shared_Collections_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
Remediation_Scans_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
vulnerabilities_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
workbenches_cloud:
type: apiKey
in: header
name: X-ApiKeys
description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
x-readme:
proxy-enabled: false
samples-languages:
- python
- curl
- node
- powershell
- ruby
- javascript
- objectivec
- java
- php
- csharp
- go
- swift
- kotlin