API Reference

Vulnerabilities API

Vulnerability management — scanners, feeds, matches, results, and AI-assisted remediation. Auto-generated from the platform OpenAPI schema so it matches the running API.

REST API for this feature — 64 operations across 48 resource paths, auto-generated from the platform's live OpenAPI schema (drf-spectacular).

Base URL https://<your-versus-host>/api · Auth Authorization: Bearer <JWT> (from POST /api/auth/token/) · 📄 Download the OpenAPI spec for Postman/Insomnia/Swagger · see the API overview for pagination, filtering, and errors.

Feed sync runs

GET /api/feed-sync-runs/

List feed sync runs

ParameterInRequiredTypeDescription
feedquerynointeger
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
statusquerynostring* running - Running

Responses: 200 → PaginatedFeedSyncRunList

GET /api/feed-sync-runs/{id}/

Retrieve feed sync run

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this feed sync run.

Responses: 200 → FeedSyncRun


Scanner

GET /api/scanner/assets/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedScannerAssetList

GET /api/scanner/assets/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this scanner asset.

Responses: 200 → ScannerAsset

GET /api/scanner/connections/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
enabledquerynoboolean
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
provider_kindquerynostring* rapid7_v4 - Rapid7 InsightVM Cloud (API v4)
searchquerynostringA search term.

Responses: 200 → PaginatedScannerConnectionList

POST /api/scanner/connections/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

Request body (application/json): ScannerConnectionRequest

Responses: 201 → ScannerConnection

GET /api/scanner/connections/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this scanner connection.

Responses: 200 → ScannerConnection

PUT /api/scanner/connections/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this scanner connection.

Request body (application/json): ScannerConnectionRequest

Responses: 200 → ScannerConnection

PATCH /api/scanner/connections/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this scanner connection.

Request body (application/json): PatchedScannerConnectionRequest

Responses: 200 → ScannerConnection

DELETE /api/scanner/connections/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this scanner connection.

Responses: 204

POST /api/scanner/connections/{id}/assess_ips/

POST {ips: ['10.0.0.1', ...]} — run a risk assessment against this connection.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this scanner connection.

Request body (application/json): ScannerConnectionRequest

Responses: 200 → ScannerConnection

GET /api/scanner/connections/{id}/summary/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this scanner connection.

Responses: 200 → ScannerConnection

POST /api/scanner/connections/{id}/sync_now/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this scanner connection.

Request body (application/json): ScannerConnectionRequest

Responses: 200 → ScannerConnection

POST /api/scanner/connections/{id}/test_connection/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this scanner connection.

Request body (application/json): ScannerConnectionRequest

Responses: 200 → ScannerConnection

GET /api/scanner/findings/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedScannerFindingList

GET /api/scanner/findings/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this scanner finding.

Responses: 200 → ScannerFinding

GET /api/scanner/risk-assessments/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
connectionquerynointeger
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.
subjectquerynostring* access_request - Firewall Access Request
verdictquerynostring* pass - Pass — no findings above threshold

Responses: 200 → PaginatedRiskAssessmentList

GET /api/scanner/risk-assessments/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this risk assessment.

Responses: 200 → RiskAssessment

GET /api/scanner/risk-assessments/{id}/report/

Return the rendered HTML report for download/display.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this risk assessment.

Responses: 200 → RiskAssessment

GET /api/scanner/scan-jobs/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
connectionquerynointeger
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.
statequerynostring* queued - Queued

Responses: 200 → PaginatedScanJobList

GET /api/scanner/scan-jobs/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this scan job.

Responses: 200 → ScanJob

POST /api/scanner/scan-jobs/{id}/poll/

Poll the scanner for the current status of an active scan job.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this scan job.

Request body (application/json): ScanJobRequest

Responses: 200 → ScanJob


Vuln ai analyses

GET /api/vuln-ai-analyses/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
cve_idquerynostring
invocationquerynointeger
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.

Responses: 200 → PaginatedVulnAIAnalysisList

GET /api/vuln-ai-analyses/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vuln ai analysis.

Responses: 200 → VulnAIAnalysis


Vuln feeds

GET /api/vuln-feeds/

CRUD + on-demand fetch for vulnerability feed sources.

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.

Responses: 200 → PaginatedVulnFeedSourceList

POST /api/vuln-feeds/

CRUD + on-demand fetch for vulnerability feed sources.

Request body (application/json): VulnFeedSourceRequest

Responses: 201 → VulnFeedSource

GET /api/vuln-feeds/{id}/

CRUD + on-demand fetch for vulnerability feed sources.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vuln feed source.

Responses: 200 → VulnFeedSource

PUT /api/vuln-feeds/{id}/

CRUD + on-demand fetch for vulnerability feed sources.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vuln feed source.

Request body (application/json): VulnFeedSourceRequest

Responses: 200 → VulnFeedSource

PATCH /api/vuln-feeds/{id}/

CRUD + on-demand fetch for vulnerability feed sources.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vuln feed source.

Request body (application/json): PatchedVulnFeedSourceRequest

Responses: 200 → VulnFeedSource

DELETE /api/vuln-feeds/{id}/

CRUD + on-demand fetch for vulnerability feed sources.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vuln feed source.

Responses: 204

POST /api/vuln-feeds/{id}/fetch/

Trigger a background fetch for this specific feed source.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vuln feed source.

Request body (application/json): VulnFeedSourceRequest

Responses: 200 → VulnFeedSource

GET /api/vuln-feeds/{id}/sync_runs/

Last 20 FeedSyncRun rows for this feed.

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vuln feed source.

Responses: 200 → VulnFeedSource


Vuln invocations

GET /api/vuln-invocations/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
statusquerynostring* running - Running
triggerquerynostring* feed_sync - Feed Sync
workflow_namequerynostring

Responses: 200 → PaginatedWorkflowInvocationListList

POST /api/vuln-invocations/manual_invoke/

Assemble a batch from supplied CVE IDs and trigger

Request body (application/json): WorkflowInvocationListRequest

Responses: 200 → WorkflowInvocationList

GET /api/vuln-invocations/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this workflow invocation.

Responses: 200 → WorkflowInvocationDetail

POST /api/vuln-invocations/{id}/cancel/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this workflow invocation.

Request body (application/json): WorkflowInvocationListRequest

Responses: 200 → WorkflowInvocationList


Vuln matches

GET /api/vuln-matches/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
devicequerynointeger
in_rangequerynoboolean
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
statusquerynostring* active - Active
vendor_typequerynostring
vulnerabilityquerynointeger

Responses: 200 → PaginatedVulnerabilityMatchList

GET /api/vuln-matches/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vulnerability match.

Responses: 200 → VulnerabilityMatch

POST /api/vuln-matches/{id}/mark_not_applicable/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vulnerability match.

Request body (application/json): VulnerabilityMatchRequest

Responses: 200 → VulnerabilityMatch

POST /api/vuln-matches/{id}/suppress/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vulnerability match.

Request body (application/json): VulnerabilityMatchRequest

Responses: 200 → VulnerabilityMatch


Vuln remediation runs

GET /api/vuln-remediation-runs/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
cve_idquerynostring
invocationquerynointeger
modequerynostring* script - AI Script
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
statequerynostring* awaiting_approval - Awaiting Approval
vendor_typequerynostring

Responses: 200 → PaginatedRemediationRunList

GET /api/vuln-remediation-runs/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this remediation run.

Responses: 200 → RemediationRun

POST /api/vuln-remediation-runs/{id}/cancel/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this remediation run.

Request body (application/json): RemediationRunRequest

Responses: 200 → RemediationRun


Vuln results

GET /api/vuln-results/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
devicequerynointeger
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
statusquerynostring* potentially_affected - Potentially Affected
vulnerabilityquerynointeger
vulnerability__in_kevquerynoboolean
vulnerability__severityquerynostring* critical - Critical

Responses: 200 → PaginatedDeviceVulnerabilityResultList

POST /api/vuln-results/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

Request body (application/json): DeviceVulnerabilityResultRequest

Responses: 201 → DeviceVulnerabilityResult

GET /api/vuln-results/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this device vulnerability result.

Responses: 200 → DeviceVulnerabilityResult

PUT /api/vuln-results/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this device vulnerability result.

Request body (application/json): DeviceVulnerabilityResultRequest

Responses: 200 → DeviceVulnerabilityResult

PATCH /api/vuln-results/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this device vulnerability result.

Request body (application/json): PatchedDeviceVulnerabilityResultRequest

Responses: 200 → DeviceVulnerabilityResult

DELETE /api/vuln-results/{id}/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this device vulnerability result.

Responses: 204

POST /api/vuln-results/{id}/mark_not_affected/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this device vulnerability result.

Request body (application/json): DeviceVulnerabilityResultRequest

Responses: 200 → DeviceVulnerabilityResult

POST /api/vuln-results/{id}/mark_patched/

Deploy-safe base for making an existing DRF ModelViewSet tenant-isolated

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this device vulnerability result.

Request body (application/json): DeviceVulnerabilityResultRequest

Responses: 200 → DeviceVulnerabilityResult


Vulnerabilities

GET /api/vulnerabilities/

List vulnerabilitys

ParameterInRequiredTypeDescription
in_kevquerynoboolean
kev_ransomwarequerynoboolean
orderingquerynostringWhich field to use when ordering the results.
pagequerynointegerA page number within the paginated result set.
page_sizequerynointegerNumber of results to return per page.
searchquerynostringA search term.
severityquerynostring* critical - Critical
sourcequerynostring* nvd - NVD

Responses: 200 → PaginatedVulnerabilityListList

POST /api/vulnerabilities/

Create vulnerability

Request body (application/json): VulnerabilityRequest

Responses: 201 → Vulnerability

GET /api/vulnerabilities/built_in_feeds/

List built in feeds

Responses: 200 → Vulnerability

POST /api/vulnerabilities/ingest_feeds/

Phase 0+ ingestion path: sync feeds via the new pipeline,

Request body (application/json): VulnerabilityRequest

Responses: 200 → Vulnerability

POST /api/vulnerabilities/scan_devices/

Create scan device

Request body (application/json): VulnerabilityRequest

Responses: 200 → Vulnerability

GET /api/vulnerabilities/summary/

List summarys

Responses: 200 → Vulnerability

POST /api/vulnerabilities/sync_feeds/

Trigger a full feed sync in the background (legacy path).

Request body (application/json): VulnerabilityRequest

Responses: 200 → Vulnerability

GET /api/vulnerabilities/sync_logs/

List sync logs

Responses: 200 → Vulnerability

POST /api/vulnerabilities/toggle_built_in_feed/

Create toggle built in feed

Request body (application/json): VulnerabilityRequest

Responses: 200 → Vulnerability

GET /api/vulnerabilities/{id}/

Retrieve vulnerability

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vulnerability.

Responses: 200 → Vulnerability

PUT /api/vulnerabilities/{id}/

Update vulnerability

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vulnerability.

Request body (application/json): VulnerabilityRequest

Responses: 200 → Vulnerability

PATCH /api/vulnerabilities/{id}/

Update vulnerability

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vulnerability.

Request body (application/json): PatchedVulnerabilityRequest

Responses: 200 → Vulnerability

DELETE /api/vulnerabilities/{id}/

Delete vulnerability

ParameterInRequiredTypeDescription
idpathyesintegerA unique integer value identifying this vulnerability.

Responses: 204


Auto-generated from drf-spectacular OpenAPI. Endpoint descriptions come from viewset docstrings/serializers; enriching those improves this page on the next generation.