Skip to content

API Endpoints

All endpoints require authentication. See Authentication.

Scans

Trigger Scan

POST /api/scan/trigger?profile=quick&subnet=192.168.1.0/24
Param Default Values
profile normal quick, normal, intensive
subnet config CIDR notation

Response:

{"status": "started", "scan_id": 15, "profile": "quick", "subnet": "192.168.1.0/24"}

Scan Status

GET /api/scan/status
{"scanning": true, "scan_id": 15, "subnet": "192.168.1.0/24", "profile": "quick"}

List Scans

GET /api/scans?limit=50&offset=0

Get Scan Devices

GET /api/scans/{scan_id}/devices

Devices

List Devices

GET /api/devices
Param Description
scan_id From specific scan
risk_level critical, high, medium, low, none
is_trusted true or false
zone Zone name

Get Device

GET /api/devices/{device_id}

Full device with ports, risk details, CVEs.

Update Device

PUT /api/devices/{device_id}
{"label": "proxmox-01", "zone": "Servers", "is_trusted": true, "notes": "Main hypervisor"}

Scan Single Device

POST /api/scan/device/{ip_address}

Changes

List Changes

GET /api/changes
Param Description
scan_id Filter by scan
change_type device_added, device_removed, port_opened, port_closed, service_changed
severity Filter by severity
limit Max results

Stats

Get Stats

GET /api/stats
{"total_devices": 25, "devices_at_risk": 3, "critical": 0, "high": 1, "last_scan": "..."}
GET /api/trends?days=30

Historical data for charts.


Zones

List Zones

GET /api/zones
["Servers", "Network", "IoT", "Workstations"]

API Keys

List Keys

GET /api/keys

Create Key

POST /api/keys
{"name": "grafana"}

Revoke Key

DELETE /api/keys/{key_id}

Config

Get Config

GET /api/config

Update Config

PUT /api/config
{"network": {"subnet": "192.168.1.0/24"}, "scanning": {"port_range": "1-1000"}}

Audit

List Logs

GET /api/audit-logs?action=login_failed&limit=100

List Actions

GET /api/audit-logs/actions

Updates

Check Updates

GET /api/updates/check?force=false

Network

Detect Network

Auto-detect the local network for scan configuration.

GET /api/network/detect
{
  "local_ip": "192.168.1.50",
  "suggested_subnet": "192.168.1.0/24",
  "hostname": "argus-server"
}

Health

GET /health
{"status": "healthy", "timestamp": "..."}