API Reference: Vulnerability Scanning with Nessus Agent
Overview
Manages Tenable Nessus vulnerability scans via the REST API: scan creation, launch, monitoring, result analysis, and CSV/PDF export.
Dependencies
| Package |
Version |
Purpose |
| requests |
>= 2.28 |
HTTP client for Nessus REST API |
| urllib3 |
>= 1.26 |
TLS warning suppression |
NessusAPI Class
Constructor
NessusAPI(url="https://localhost:8834", access_key=None, secret_key=None)
Authentication via X-ApiKeys header with access/secret key pair.
Methods
| Method |
Description |
Returns |
get_server_status() |
Check Nessus server readiness |
dict |
list_scans() |
List all scans with id, name, status |
list[dict] |
get_scan_details(scan_id) |
Full scan results with severity counts and top vulns |
dict |
create_scan(name, targets, policy_id, template) |
Create new scan configuration |
dict |
launch_scan(scan_id) |
Start a configured scan |
dict |
get_scan_status(scan_id) |
Poll scan status |
str |
wait_for_scan(scan_id, poll_interval, timeout) |
Block until scan completes |
bool |
export_scan(scan_id, fmt) |
Export results as csv, html, or pdf |
bytes |
check_auth_status(scan_id) |
Verify authenticated scanning via plugin 19506 |
list[dict] |
Nessus REST API Endpoints
| Endpoint |
Method |
Purpose |
/server/status |
GET |
Server health check |
/scans |
GET |
List all scans |
/scans |
POST |
Create new scan |
/scans/{id} |
GET |
Scan details and results |
/scans/{id}/launch |
POST |
Launch scan |
/scans/{id}/export |
POST |
Initiate report export |
/scans/{id}/export/{file_id}/download |
GET |
Download exported report |
/editor/scan/templates |
GET |
Available scan templates |
Environment Variables
| Variable |
Required |
Description |
NESSUS_URL |
No |
Nessus server URL (default: https://localhost:8834) |
NESSUS_ACCESS_KEY |
Yes |
API access key |
NESSUS_SECRET_KEY |
Yes |
API secret key |
Severity Mapping
| Value |
Label |
CVSS Range |
| 4 |
Critical |
9.0-10.0 |
| 3 |
High |
7.0-8.9 |
| 2 |
Medium |
4.0-6.9 |
| 1 |
Low |
0.1-3.9 |
| 0 |
Info |
N/A |
Usage
export NESSUS_ACCESS_KEY="your-access-key"
export NESSUS_SECRET_KEY="your-secret-key"
python agent.py