Tenable Scanner Profiles API

The Scanner Profiles API from Tenable — 2 operation(s) for scanner profiles.

Operations 3

POST /scanners/scanners/bulkAssignToProfile Assign to scanner profile #
DELETE /scanners/scanners/bulkAssignToProfile Remove from scanner profile #
GET /scanners/request-status/{request_status_id} Get scanner task status #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tenable-scanner-profiles-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

tenable-scanner-profiles-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tenable Platform & Settings Scanner Profiles API
  version: 1.0.0
servers:
- url: https://cloud.tenable.com
tags:
- name: Scanner Profiles
  x-displayName: Scanner Profiles
paths:
  /scanners/scanners/bulkAssignToProfile:
    post:
      summary: Assign to scanner profile
      description: 'Assigns one or more scanners to a specific scanner profile. This request initiates an asynchronous bulk operation task to process the assignments.


        **Note:** You can create a scanner profile using the Create profile endpoint.

        Requires the Scan Manager [40] user role or the `VM.VM_SENSOR.VM_SCANNER.EDIT` custom role privilege. See Roles.'
      operationId: scanner-profile-assign-bulk
      tags:
      - Scanner Profiles
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                profile_uuid:
                  description: The unique identifier (UUID) of the scanner profile to which you want to assign scanners.
                  type: string
                  format: uuid
                scanner_uuids:
                  type: array
                  description: A list of unique identifiers (UUIDs) of the scanners that you want to assign to the specified profile.
                  items:
                    type: string
                    format: uuid
      responses:
        '200':
          description: Returned if the bulk operation task to assign the specified scanners to the specified profile was created successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    description: A short message confirming if the request was received or denied.
                    type: string
                  request_status_id:
                    description: The unique identifier (UUID) of the asynchronous task. You can use the [Get scanner task status](ref:scanner-task-status) endpoint to check the status of the task.
                    type: string
                    format: uuid
              examples:
                response:
                  value:
                    message: Request has been received.
                    request_status_id: c2e286d0-fe88-47ce-ba57-1c8e8a69eeb2
        '401':
          description: Returned if the API keys specified in your request are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scanner_Profiles_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 401
                    error: Unauthorized
                    message: Invalid credentials.
        '403':
          description: Returned if you do not have permission to assign scanners to scanner profiles.
        '404':
          description: Returned if one of the specified scanner profiles were not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scanner_Profiles_ErrorResponse-400'
              examples:
                response:
                  value:
                    error: Scanner Profile UUID not found
        '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/Scanner_Profiles_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:
      - Scanner_Profiles_cloud: []
    delete:
      summary: Remove from scanner profile
      description: 'Removes one or more scanners from a specific scanner profile. This request initiates an asynchronous bulk operation task to process the removals.

        Requires the Scan Manager [40] user role or the `VM.VM_SENSOR.VM_SCANNER.EDIT` custom role privilege. See Roles.'
      operationId: scanner-profile-remove-bulk
      tags:
      - Scanner Profiles
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                profile_uuid:
                  description: The unique identifier (UUID) of the scanner profile for which you want to remove scanners.
                  type: string
                  format: uuid
                scanner_uuids:
                  type: array
                  description: A list of unique identifiers (UUIDs) of the scanners that you want to remove from the specified profile.
                  items:
                    type: string
                    format: uuid
      responses:
        '200':
          description: Returned if the bulk operation task to remove the specified scanners from the specified profile was created successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    description: A short message confirming if the request was received or denied.
                    type: string
                  request_status_id:
                    description: The unique identifier (UUID) of the asynchronous task. You can use the [Get scanner task status](ref:scanner-task-status) endpoint to check the status of the task.
                    type: string
                    format: uuid
              examples:
                response:
                  value:
                    message: Request has been received.
                    request_status_id: c2e286d0-fe88-47ce-ba57-1c8e8a69eeb2
        '401':
          description: Returned if the API keys specified in your request are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scanner_Profiles_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 401
                    error: Unauthorized
                    message: Invalid credentials.
        '403':
          description: Returned if you do not have permission to remove scanners to scanner profiles.
        '404':
          description: Returned if one of the specified scanner profiles were not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scanner_Profiles_ErrorResponse-400'
              examples:
                response:
                  value:
                    error: Scanner Profile UUID not found
        '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/Scanner_Profiles_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:
      - Scanner_Profiles_cloud: []
  /scanners/request-status/{request_status_id}:
    get:
      summary: Get scanner task status
      description: 'Retrieves the current status of a specific asynchronous bulk operation task.


        Use the `request_status_id` or `id` value returned by supported endpoints to track the progress or completion of the asynchronous task.


        **Note:** This endpoint currently only supports task status retrieval for operations initiated by the Assign to scanner profile and Remove from scanner profile endpoints.

        Requires the Scan Manager [40] user role or one of the following custom role privileges: `VM.VM_SENSOR.VM_SCANNER.READ`, `VM.VM_SENSOR.VM_WAS_SCANNER.READ`, or `VM.VM_SENSOR.VM_NETWORK_MONITOR.READ`. See Roles.'
      operationId: scanner-task-status
      tags:
      - Scanner Profiles
      parameters:
      - name: request_status_id
        in: path
        required: true
        description: The unique identifier of the asynchronous task whose status you want to retrieve. This identifier corresponds to the `request_status_id` or `id` returned by supported endpoints.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Returned if the status of the asynchronous scanner task was retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scanner_Profiles_response-scanner-task-status'
              examples:
                response:
                  value:
                    container_uuid: c050dec4-78a7-4d9a-9905-ab9cb3757766
                    type: service-scanner-bulk-operation
                    id: e0ab9f07-dd4e-4891-9eed-01b47db5ead6
                    status: completed
                    created: 1738350594
                    modified: 1738350594
                    expiration: 1738352394
        '401':
          description: Returned if the API keys specified in your request are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scanner_Profiles_ErrorResponse'
              examples:
                response:
                  value:
                    statusCode: 401
                    error: Unauthorized
                    message: Invalid credentials.
        '403':
          description: Returned if you do not have permission to retrieve the status of the scanner task.
        '404':
          description: Returned if the specified scanner task was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scanner_Profiles_ErrorResponse-400'
              examples:
                response:
                  value:
                    error: No shared collection found with uuid=f5751411-308d-4c56-b85e-48829707c5f3
        '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:
              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:
      - Scanner_Profiles_cloud: []
components:
  schemas:
    Scanner_Profiles_ErrorResponse:
      type: object
      properties:
        statusCode:
          type: integer
          description: The HTTP status code of the error.
        error:
          type: integer
          description: The standard HTTP error name.
        message:
          type: string
          description: A brief message about the cause of the error.
    Scanner_Profiles_ErrorResponse-400:
      type: object
      properties:
        error:
          type: string
          description: A brief message about the cause of the error.
    Scanner_Profiles_response-scanner-task-status:
      type: object
      properties:
        container_uuid:
          type: string
          format: uuid
          description: The unique identifier (UUID) of the container where the task took place.
          example: 999ec76a-1a16-4bfb-bf20-f23908475372
        type:
          type: string
          description: The type of asynchronous task. For scanners, the type is always `service-scanner-bulk-operation`.
          example: service-scanner-bulk-operation
        id:
          type: string
          format: uuid
          description: The unique identifier (UUID) for tracking the status of the asynchronous task. This identifier corresponds to the `request_status_id` or `id` returned by supported endpoints.
          example: 62a9f498-1738-42d1-bb1b-01b68fce7cc3
        status:
          type: string
          description: The status of the asynchronous operation. The possible statuses are `completed`, `received`, `processing`, and `aborted`.
          example: completed
        created:
          type: string
          description: A Unix timestamp indicating the date and time when the asynchronous task was created.
          example: '1734376507'
        modified:
          type: string
          description: A Unix timestamp indicating the date and time when the asynchronous task was modified.
          example: '1734376665'
  securitySchemes:
    Access_Control_API_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    Access_Control_Groups_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    Access_Control_Permissions_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    Access_Control_Roles_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    Access_Control_Users_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    access-groups_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    access-groups_v2_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    activity-log_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    agents_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    Agent_Config_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    agent-exclusions_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    agent-groups_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    agent-bulk-operations_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    Cloud_Connectors_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    credentials_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    exclusions_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    networks_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    OT_Connectors_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    permissions_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    Profiles_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    recast-rules_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    Scanners_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    Scanner_Config_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    Scanner_Groups_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    Scanner_Profiles_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    Scanner_Tasks_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    server_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    tags_cloud:
      type: apiKey
      in: header
      name: X-ApiKeys
      description: Format - accessKey=ACCESS_KEY;secretKey=SECRET_KEY
    target-groups_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