Tenable Downloads API

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.

OpenAPI Specification

tenable-downloads-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 1.0.0
  title: About Downloads 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: Downloads
  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.'
paths:
  /pages:
    get:
      summary: List product pages
      description: Returns a list of product pages.
      tags:
      - Downloads
      security: []
      responses:
        '200':
          description: Returned if the list of product pages is retrieved successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Page'
              examples:
                response:
                  value:
                  - title: Nessus
                    page_slug: nessus
                    description: 'Binary download files for Nessus Professional, Nessus Manager, and connecting Nessus Scanners to Tenable Vulnerability Management & Tenable Security Center.

                      '
                    files_index_url: https://www.tenable.com/downloads/api/v2/pages/nessus
        '500':
          description: Returned if an internal error occurred while processing the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
              examples:
                response:
                  value:
                    success: false
                    statusCode: 500
                    error: Internal Server Error
                    message: An internal server error occurred
                    trace:
                      correlationId: ecd926ba-f4be-4cdd-a9bb-4391b1c3689d
                      traceId: Root=2-abedaa56-32e211f8793b433b55245772
                      rayId: 5623bad2367aa43d-IAD
  /pages/{slug}:
    get:
      summary: List downloadable files for a product
      description: Returns a JSON hash of all download files for a given product page.
      tags:
      - Downloads
      security: []
      parameters:
      - in: path
        name: slug
        schema:
          type: string
        required: true
        description: The product page slug; for example, `nessus`.
      responses:
        '200':
          description: Returned if the list of downloadable files for the specified product was retrieved successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  releases:
                    $ref: '#/components/schemas/Releases'
                  signing_keys:
                    type: array
                    items:
                      $ref: '#/components/schemas/SigningKey'
              examples:
                response:
                  value:
                    releases:
                      latest:
                        Product Name - X.X.X:
                        - file: Nessus-8.2.1-debian6_i386.deb
                          version: 8.2.1
                          size: 67331530
                          release_date: 01/24/2019
                          product_release_date: 01/24/2019
                          md5: 098f6bcd4621d373cade4e832627b4f6
                          sha256: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
                          file_url: https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-latest-debian6_i386.deb
                          requires_auth: false
                      Product Name - X.X.X:
                      - file: Nessus-8.2.1-debian6_i386.deb
                        version: 8.2.1
                        size: 67331530
                        release_date: 01/24/2019
                        product_release_date: 01/24/2019
                        md5: 098f6bcd4621d373cade4e832627b4f6
                        sha256: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
                        file_url: https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-8.2.1-debian6_i386.deb
                        requires_auth: false
                    signing_keys:
                    - file: Tenable GPG Key - 2048 bit
                      size: 1764
                      md5: 098f6bcd4621d373cade4e832627b4f6
                      sha256: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
                      file_url: https://www.tenable.com/downloads/api/v2/pages/nessus/files/tenable-2048.gpg
                      requires_auth: false
        '404':
          description: Returned if the specified page cannot be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
              examples:
                response:
                  value:
                    success: false
                    statusCode: 404
                    error: Not Found
                    message: Page Not Found
                    trace:
                      correlationId: ecd926ba-f4be-4cdd-a9bb-4391b1c3689d
                      traceId: Root=2-abedaa56-32e211f8793b433b55245772
                      rayId: 5623bad2367aa43d-IAD
        '500':
          description: Returned if an internal error occurred while processing the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
              examples:
                response:
                  value:
                    success: false
                    statusCode: 500
                    error: Internal Server Error
                    message: An internal server error occurred
                    trace:
                      correlationId: ecd926ba-f4be-4cdd-a9bb-4391b1c3689d
                      traceId: Root=2-abedaa56-32e211f8793b433b55245772
                      rayId: 5623bad2367aa43d-IAD
  /pages/{slug}/files/{file}:
    get:
      summary: Download a file
      description: 'Downloads a requested file.


        **Note:** Some files require an authentication token to download.'
      tags:
      - Downloads
      parameters:
      - in: path
        name: slug
        schema:
          type: string
        required: true
        description: The product page slug; for example, `nessus`.
      - in: path
        name: file
        schema:
          type: string
        required: true
        description: The name of the file; for example, `Nessus-latest-x64.msi`.
      responses:
        '200':
          description: Returned if the requested file is successfully retrieved.
        '401':
          description: Returned if a file requires authentication to download and the token is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
              examples:
                response:
                  value:
                    message: Unauthorized
        '404':
          description: Returned if the specified file cannot be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
              examples:
                response:
                  value:
                    success: false
                    statusCode: 404
                    error: Not Found
                    message: Page Not Found
                    trace:
                      correlationId: ecd926ba-f4be-4cdd-a9bb-4391b1c3689d
                      traceId: Root=2-abedaa56-32e211f8793b433b55245772
                      rayId: 5623bad2367aa43d-IAD
        '500':
          description: Returned if an internal error occurred while processing the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
              examples:
                response:
                  value:
                    success: false
                    statusCode: 500
                    error: Internal Server Error
                    message: An internal server error occurred
                    trace:
                      correlationId: ecd926ba-f4be-4cdd-a9bb-4391b1c3689d
                      traceId: Root=2-abedaa56-32e211f8793b433b55245772
                      rayId: 5623bad2367aa43d-IAD
components:
  schemas:
    InternalServerError:
      type: object
      properties:
        success:
          type: boolean
          description: Indicates whether the server successfully processed the request or not.
          example: false
        statusCode:
          type: integer
          description: The HTTP response status code of request.
          example: 500
        error:
          type: string
          description: The error that corresponds to the HTTP response status code.
          example: Internal Server Error
        message:
          type: string
          description: Additional details about the error.
          example: An internal server error occurred
        trace:
          type: object
          properties:
            correlationId:
              type: string
              description: The correlation ID of the request.
              example: 2c9448e0-21e4-4f8e-a6c9-1455a37fc75e
            traceId:
              type: string
              description: The trace ID of the request.
              example: Root=2-abedaa56-32e211f8793b433b55245772
            rayId:
              type: string
              description: The ray ID of the request.
              example: 5623bad2367aa43d-IAD
    SigningKey:
      type: object
      properties:
        file:
          type: string
          description: The name of the file.
          example: Tenable GPG Key - 2048 bit
        size:
          type: integer
          description: The size of the file in bytes.
          example: 1764
        md5:
          type: string
          description: The MD5 hash of the file.
          example: 098f6bcd4621d373cade4e832627b4f6
        sha256:
          type: string
          description: The SHA256 hash of the file.
          example: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
        file_url:
          type: string
          description: The URL to download the file.
          example: https://www.tenable.com/downloads/api/v2/pages/nessus/files/tenable-2048.gpg
        requires_auth:
          type: boolean
          description: Indicates whether or not the file requires a bearer authentication token to download.
          example: false
    Releases:
      type: object
      properties:
        latest:
          properties:
            Product Name - X.X.X:
              type: array
              items:
                $ref: '#/components/schemas/LatestDownload'
        Product Name - X.X.X:
          type: array
          items:
            $ref: '#/components/schemas/Download'
    LatestDownload:
      type: object
      properties:
        file:
          type: string
          description: The name of the file available for download.
          example: Nessus-8.2.1-debian6_i386.deb
        version:
          type: string
          description: The product version number.
          example: 8.2.1
        size:
          type: integer
          description: The size of the file in bytes.
          example: 67331530
        release_date:
          type: string
          description: The date the file was built. This date is only used for internal tracking.
          example: 01/24/2019
        product_release_date:
          type: string
          description: The date the product version and file was publicly released.
          example: 01/24/2019
        md5:
          type: string
          description: The MD5 hash of the file.
          example: 098f6bcd4621d373cade4e832627b4f6
        sha256:
          type: string
          description: The SHA256 hash of the file.
          example: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
        file_url:
          type: string
          description: The URL to download the latest version of this file.
          example: https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-latest-debian6_i386.deb
        requires_auth:
          type: boolean
          description: Indicates whether or not the file requires a bearer authentication token to download.
          example: false
    Page:
      type: object
      properties:
        title:
          type: string
          description: The name of the product.
          example: Nessus
        page_slug:
          type: string
          description: Product page slug, for example, `nessus`.
          example: nessus
        description:
          type: string
          description: The description of a product.
          example: Binary download files for Nessus Professional, Nessus Manager, and connecting Nessus Scanners to Tenable Vulnerability Management & Tenable Security Center.
        files_index_url:
          type: string
          description: The URL to list the product files available for download.
          example: https://www.tenable.com/downloads/api/v2/pages/nessus
    Download:
      type: object
      properties:
        file:
          type: string
          description: The name of the file available for download.
          example: Nessus-8.2.1-debian6_i386.deb
        version:
          type: string
          description: The product version number.
          example: 8.2.1
        size:
          type: integer
          description: The size of the file in bytes.
          example: 67331530
        release_date:
          type: string
          description: The date the file was built. This date is only used for internal tracking.
          example: 01/24/2019
        product_release_date:
          type: string
          description: The date the product version and file was publicly released.
          example: 01/24/2019
        md5:
          type: string
          description: The MD5 hash of the file.
          example: 098f6bcd4621d373cade4e832627b4f6
        sha256:
          type: string
          description: The SHA256 hash of the file.
          example: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
        file_url:
          type: string
          description: The URL to download the file.
          example: https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-8.2.1-debian6_i386.deb
        requires_auth:
          type: boolean
          description: Indicates whether or not the file requires a bearer authentication token to download.
          example: false
    NotFound:
      type: object
      properties:
        success:
          type: boolean
          description: Indicates whether the server successfully found the requested item or not.
          example: false
        statusCode:
          type: integer
          description: The HTTP response status code of request.
          example: 404
        error:
          type: string
          description: The error that corresponds to the HTTP response status code.
          example: Not Found
        message:
          type: string
          description: Additional details about the error.
          example: Page Not Found
        trace:
          type: object
          properties:
            correlationId:
              type: string
              description: The correlation ID of the request.
              example: 2c9448e0-21e4-4f8e-a6c9-1455a37fc75e
            traceId:
              type: string
              description: The trace ID of the request.
              example: Root=2-abedaa56-32e211f8793b433b55245772
            rayId:
              type: string
              description: The ray ID of the request.
              example: 5623bad2367aa43d-IAD
    Unauthorized:
      type: object
      properties:
        message:
          type: string
          description: Unauthorized
          example: Unauthorized
  securitySchemes:
    Bearer:
      type: apiKey
      in: header
      name: Authorization
      description: 'Example: Bearer {{token}}'
x-readme:
  proxy-enabled: false
  explorer-enabled: true
  samples-enabled: true
  samples-languages:
  - python
  - curl
  - node
  - powershell
  - ruby
  - javascript
  - objectivec
  - java
  - php
  - csharp
  - go
  - swift
  - kotlin