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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/tenable-directory-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
OpenAPI Specification
openapi: 3.2.0
info:
version: 1.0.0
title: Downloads About Directory 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: Directory
description: Represents an Active directory
paths:
/api/directories:
get:
summary: Retrieve all directory instances.
description: 'Required license type: ioa, ioaPreview, ioe'
responses:
'200':
description: ''
content:
application/json:
schema:
description: Validates the GET /directory response
type: array
items:
description: Directory
type: object
additionalProperties: false
required:
- id
- name
- ip
- type
- ldapPort
- globalCatalogPort
- smbPort
- dns
- infrastructureId
- infrastructureName
- ldapInitialized
- sysvolInitialized
- ldapCrawlingStatus
- sysvolCrawlingStatus
- sensitiveDataCollectionIsEnabled
- ioaProcedureInstalled
- ioaProcedureFailureReason
- ioaProcedureFailureDescription
- relayId
properties:
id:
type: integer
description: Unique numeric identifier of the directory
name:
type: string
description: User-defined name of the directory
ip:
type: string
description: IP address or hostname of the Primary Domain Controller
type:
type: string
description: Type of directory
enum:
- ADDS
x-$comment: Always "ADDS" for directories created via the web UI
ldapPort:
type: integer
description: LDAP port of the Primary Domain Controller
globalCatalogPort:
type: integer
description: Global Catalog port of the Primary Domain Controller
smbPort:
type: integer
description: SMB port of the Primary Domain Controller
dns:
type: string
description: Fully qualified domain name of the domain
infrastructureId:
type: number
description: Identifier of the infrastructure to which the directory belongs
infrastructureName:
type: string
description: Name of the infrastructure to which the directory belongs
ldapInitialized:
oneOf:
- not: {}
format: int64
description: Identifier of the event at which the last LDAP crawling ended
sysvolInitialized:
oneOf:
- not: {}
format: int64
description: Identifier of the event at which the last SYSVOL crawling ended
ldapCrawlingStatus:
description: LDAP crawling status
type: string
enum:
- none
- ongoing
- failure
- success
sysvolCrawlingStatus:
description: SYSVOL crawling status
type: string
enum:
- none
- ongoing
- failure
- success
honeyAccountAdObjectId:
type:
- integer
- 'null'
description: Identifier of the AD object configured to be the directory's Honey Account
honeyAccountDistinguishedName:
type:
- string
- 'null'
description: Distinguished name of the AD object configured to be the directory's Honey Account
honeyAccountConfigurationStatus:
type: string
enum:
- none
- pending
- missing
- misconfigured
- configured
description: Configuration status of the directory's Honey Account
sensitiveDataCollectionIsEnabled:
type: boolean
sensitiveDataCollectionStatus:
description: Connectivity status of the sensitive data collection
type: string
enum:
- none
- ongoing
- failure
- success
ioaProcedureInstalled:
type: boolean
ioaProcedureFailureReason:
description: Directory ioa procedure failure reason
type:
- string
- 'null'
enum:
- unknown
- gpo_not_found
- directory_missing
- file_not_writable
- insufficient_right
- configuration_not_sync
- evt_listener_not_installed
- evt_listener_blocking_errors
- null
ioaProcedureFailureDescription:
type:
- string
- 'null'
relayId:
oneOf:
- type:
- integer
- 'null'
description: The relayId
relayUuid:
oneOf:
- type:
- string
- 'null'
description: The relayUuid
directoryUuid:
type: string
format: uuid
description: The directoryUuid
'401':
description: Unauthorized
'500':
description: Internal server error
tags:
- Directory
x-tenablead-required-product-license-type:
- ioa
- ioaPreview
- ioe
parameters:
- name: x-api-key
description: The user's API key
in: header
schema:
type: string
default: put-your-api-key-here
required: true
deprecated: false
security:
- ApiKey: []
post:
summary: Create directory instance.
description: 'Required license type: ioa, ioaPreview, ioe'
responses:
'201':
description: ''
content:
application/json:
schema:
description: Validates the POST /directory response
type: array
minItems: 1
items:
description: Directory
type: object
additionalProperties: false
required:
- id
- name
- ip
- type
- ldapPort
- globalCatalogPort
- smbPort
- dns
- infrastructureId
- infrastructureName
- ldapInitialized
- sysvolInitialized
- ldapCrawlingStatus
- sysvolCrawlingStatus
- sensitiveDataCollectionIsEnabled
- ioaProcedureInstalled
- ioaProcedureFailureReason
- ioaProcedureFailureDescription
- relayId
properties:
id:
type: integer
description: Unique numeric identifier of the directory
name:
type: string
description: User-defined name of the directory
ip:
type: string
description: IP address or hostname of the Primary Domain Controller
type:
type: string
description: Type of directory
enum:
- ADDS
x-$comment: Always "ADDS" for directories created via the web UI
ldapPort:
type: integer
description: LDAP port of the Primary Domain Controller
globalCatalogPort:
type: integer
description: Global Catalog port of the Primary Domain Controller
smbPort:
type: integer
description: SMB port of the Primary Domain Controller
dns:
type: string
description: Fully qualified domain name of the domain
infrastructureId:
type: number
description: Identifier of the infrastructure to which the directory belongs
infrastructureName:
type: string
description: Name of the infrastructure to which the directory belongs
ldapInitialized:
oneOf:
- not: {}
format: int64
description: Identifier of the event at which the last LDAP crawling ended
sysvolInitialized:
oneOf:
- not: {}
format: int64
description: Identifier of the event at which the last SYSVOL crawling ended
ldapCrawlingStatus:
description: LDAP crawling status
type: string
enum:
- none
- ongoing
- failure
- success
sysvolCrawlingStatus:
description: SYSVOL crawling status
type: string
enum:
- none
- ongoing
- failure
- success
honeyAccountAdObjectId:
type:
- integer
- 'null'
description: Identifier of the AD object configured to be the directory's Honey Account
honeyAccountDistinguishedName:
type:
- string
- 'null'
description: Distinguished name of the AD object configured to be the directory's Honey Account
honeyAccountConfigurationStatus:
type: string
enum:
- none
- pending
- missing
- misconfigured
- configured
description: Configuration status of the directory's Honey Account
sensitiveDataCollectionIsEnabled:
type: boolean
sensitiveDataCollectionStatus:
description: Connectivity status of the sensitive data collection
type: string
enum:
- none
- ongoing
- failure
- success
ioaProcedureInstalled:
type: boolean
ioaProcedureFailureReason:
description: Directory ioa procedure failure reason
type:
- string
- 'null'
enum:
- unknown
- gpo_not_found
- directory_missing
- file_not_writable
- insufficient_right
- configuration_not_sync
- evt_listener_not_installed
- evt_listener_blocking_errors
- null
ioaProcedureFailureDescription:
type:
- string
- 'null'
relayId:
oneOf:
- type:
- integer
- 'null'
description: The relayId
relayUuid:
oneOf:
- type:
- string
- 'null'
description: The relayUuid
directoryUuid:
type: string
format: uuid
description: The directoryUuid
'401':
description: Unauthorized
'500':
description: Internal server error
tags:
- Directory
x-tenablead-required-product-license-type:
- ioa
- ioaPreview
- ioe
parameters:
- name: x-api-key
description: The user's API key
in: header
schema:
type: string
default: put-your-api-key-here
required: true
deprecated: false
security:
- ApiKey: []
requestBody:
required: true
content:
application/json:
schema:
description: Validates the POST /directory request
type: array
minItems: 1
items:
type: object
additionalProperties: false
required:
- name
- ip
- infrastructureId
- dns
properties:
infrastructureId:
type: number
minimum: 0
maximum: 2147483647
name:
type: string
ip:
type: string
type:
type: string
enum:
- ADDS
ldapPort:
type: integer
globalCatalogPort:
type: integer
smbPort:
type: integer
dns:
type: string
sensitiveDataCollectionIsEnabled:
type: boolean
relayId:
oneOf:
- type:
- integer
- 'null'
/api/directories/{id}:
get:
summary: Get directory instance by id.
description: 'Required license type: ioa, ioaPreview, ioe'
responses:
'200':
description: ''
content:
application/json:
schema:
description: Directory
type: object
additionalProperties: false
required:
- id
- name
- ip
- type
- ldapPort
- globalCatalogPort
- smbPort
- dns
- infrastructureId
- infrastructureName
- ldapInitialized
- sysvolInitialized
- ldapCrawlingStatus
- sysvolCrawlingStatus
- sensitiveDataCollectionIsEnabled
- ioaProcedureInstalled
- ioaProcedureFailureReason
- ioaProcedureFailureDescription
- relayId
properties:
id:
type: integer
description: Unique numeric identifier of the directory
name:
type: string
description: User-defined name of the directory
ip:
type: string
description: IP address or hostname of the Primary Domain Controller
type:
type: string
description: Type of directory
enum:
- ADDS
x-$comment: Always "ADDS" for directories created via the web UI
ldapPort:
type: integer
description: LDAP port of the Primary Domain Controller
globalCatalogPort:
type: integer
description: Global Catalog port of the Primary Domain Controller
smbPort:
type: integer
description: SMB port of the Primary Domain Controller
dns:
type: string
description: Fully qualified domain name of the domain
infrastructureId:
type: number
description: Identifier of the infrastructure to which the directory belongs
infrastructureName:
type: string
description: Name of the infrastructure to which the directory belongs
ldapInitialized:
oneOf:
- not: {}
format: int64
description: Identifier of the event at which the last LDAP crawling ended
sysvolInitialized:
oneOf:
- not: {}
format: int64
description: Identifier of the event at which the last SYSVOL crawling ended
ldapCrawlingStatus:
description: LDAP crawling status
type: string
enum:
- none
- ongoing
- failure
- success
sysvolCrawlingStatus:
description: SYSVOL crawling status
type: string
enum:
- none
- ongoing
- failure
- success
honeyAccountAdObjectId:
type:
- integer
- 'null'
description: Identifier of the AD object configured to be the directory's Honey Account
honeyAccountDistinguishedName:
type:
- string
- 'null'
description: Distinguished name of the AD object configured to be the directory's Honey Account
honeyAccountConfigurationStatus:
type: string
enum:
- none
- pending
- missing
- misconfigured
- configured
description: Configuration status of the directory's Honey Account
sensitiveDataCollectionIsEnabled:
type: boolean
sensitiveDataCollectionStatus:
description: Connectivity status of the sensitive data collection
type: string
enum:
- none
- ongoing
- failure
- success
ioaProcedureInstalled:
type: boolean
ioaProcedureFailureReason:
description: Directory ioa procedure failure reason
type:
- string
- 'null'
enum:
- unknown
- gpo_not_found
- directory_missing
- file_not_writable
- insufficient_right
- configuration_not_sync
- evt_listener_not_installed
- evt_listener_blocking_errors
- null
ioaProcedureFailureDescription:
type:
- string
- 'null'
relayId:
oneOf:
- type:
- integer
- 'null'
description: The relayId
relayUuid:
oneOf:
- type:
- string
- 'null'
description: The relayUuid
directoryUuid:
type: string
format: uuid
description: The directoryUuid
'401':
description: Unauthorized
'500':
description: Internal server error
tags:
- Directory
x-tenablead-required-product-license-type:
- ioa
- ioaPreview
- ioe
parameters:
- name: x-api-key
description: The user's API key
in: header
schema:
type: string
default: put-your-api-key-here
required: true
deprecated: false
- name: id
in: path
schema:
type: string
pattern: ^[0-9]+$
x-patternError: should be a numerical string
required: true
deprecated: false
security:
- ApiKey: []
/api/infrastructures/{infrastructureId}/directories:
get:
summary: Get all directories for a given infrastructure
description: 'Required license type: ioa, ioaPreview, ioe'
responses:
'200':
description: ''
content:
application/json:
schema:
description: Validates the GET /infrastructure/:infrastructureId/directories response
type: array
items:
description: Directory
type: object
additionalProperties: false
required:
- id
- name
- ip
- type
- ldapPort
- globalCatalogPort
- smbPort
- dns
- infrastructureId
- infrastructureName
- ldapInitialized
- sysvolInitialized
- ldapCrawlingStatus
- sysvolCrawlingStatus
- sensitiveDataCollectionIsEnabled
- ioaProcedureInstalled
- ioaProcedureFailureReason
- ioaProcedureFailureDescription
- relayId
properties:
id:
type: integer
description: Unique numeric identifier of the directory
name:
type: string
description: User-defined name of the directory
ip:
type: string
description: IP address or hostname of the Primary Domain Controller
type:
type: string
description: Type of directory
enum:
- ADDS
x-$comment: Always "ADDS" for directories created via the web UI
ldapPort:
type: integer
description: LDAP port of the Primary Domain Controller
globalCatalogPort:
type: integer
description: Global Catalog port of the Primary Domain Controller
smbPort:
type: integer
description: SMB port of the Primary Domain Controller
dns:
type: string
description: Fully qualified domain name of the domain
infrastructureId:
type: number
description: Identifier of the infrastructure to which the directory belongs
infrastructureName:
type: string
description: Name of the infrastructure to which the directory belongs
ldapInitialized:
oneOf:
- not: {}
format: int64
description: Identifier of the event at which the last LDAP crawling ended
sysvolInitialized:
oneOf:
- not: {}
format: int64
description: Identifier of the event at which the last SYSVOL crawling ended
ldapCrawlingStatus:
description: LDAP crawling status
type: string
enum:
- none
- ongoing
- failure
- success
sysvolCrawlingStatus:
description: SYSVOL crawling status
type: string
enum:
- none
- ongoing
- failure
- success
honeyAccountAdObjectId:
type:
- integer
- 'null'
description: Identifier of the AD object configured to be the directory's Honey Account
honeyAccountDistinguishedName:
type:
- string
- 'null'
description: Distinguished name of the AD object configured to be the directory's Honey Account
honeyAccountConfigurationStatus:
type: string
enum:
- none
- pending
- missing
- misconfigured
- configured
description: Configuration status of the directory's Honey Account
sensitiveDataCollectionIsEnabled:
type: boolean
sensitiveDataCollectionStatus:
description: Connectivity status of the sensitive data collection
type: string
enum:
- none
- ongoing
- failure
- success
ioaProcedureInstalled:
type: boolean
ioaProcedureFailureReason:
description: Directory ioa procedure failure reason
type:
- string
- 'null'
enum:
- unknown
- gpo_not_found
- directory_missing
- file_not_writable
- insufficient_right
- configuration_not_sync
- evt_listener_not_installed
- evt_listener_blocking_errors
- null
ioaProcedureFailureDescription:
type:
- string
- 'null'
relayId:
oneOf:
- type:
- integer
- 'null'
description: The relayId
relayUuid:
oneOf:
- type:
- string
- 'null'
description: The relayUuid
directoryUuid:
type: string
format: uuid
description: The directoryUuid
'401':
description: Unauthorized
'500':
description: Internal server error
tags:
- Directory
x-tenablead-required-product-license-type:
- ioa
- ioaPreview
- ioe
parameters:
- name: x-api-key
description: The user's API key
in: header
schema:
type: string
default: put-your-api-key-here
required: true
deprecated: false
- name: infrastructureId
in: path
schema:
type: string
pattern: ^[0-9]+$
x-patternError: should be a numerical string
required: true
deprecated: false
security:
- ApiKey: []
/api/infrastructures/{infrastructureId}/directories/{id}:
get:
summary: Get directory instance by id.
description: 'Required license type: ioa, ioaPreview, ioe'
responses:
'200':
description: ''
content:
application/json:
schema:
description: Directory
type: object
additionalProperties: false
required:
- id
- name
- ip
- type
- ldapPort
- globalCatalogPort
- smbPort
- dns
- infrastructureId
- infrastructureName
- ldapInitialized
- sysvolInitialized
- ldapCrawlingStatus
- sysvolCrawlingStatus
- sensitiveDataCollectionIsEnabled
- ioaProcedureInstalled
- ioaProcedureFailureReason
- ioaProcedureFailureDescription
- relayId
properties:
id:
type: integer
description: Unique numeric identifier of the directory
name:
type: string
description: User-defined name of the directory
ip:
type: string
description: IP address or hostname of the Primary Domain Controller
type:
type: string
description: Type of directory
enum:
# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tenable/refs/heads/main/openapi/tenable-directory-api-openapi.yml