Tenable Scanner Profiles API
The Scanner Profiles API from Tenable — 2 operation(s) for scanner profiles.
The Scanner Profiles API from Tenable — 2 operation(s) for scanner profiles.
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-scanner-profiles-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: 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