Assessment API
Authorize scan scope, start and cancel runs, review coverage, and verify findings.
Assessment mutations require Administrator authority over the approved target set. Credential references are write-only secrets managed through the credential workflow.
Use the shared API contract for authentication, pagination, request headers, idempotency, and error responses.
Create a scope
/organizations/{organization_id}/assessment-scopesCreates an authorized assessment boundary. An ownership or authorization check failure rejects admission.
namestringrequiredDisplay name; does not change resource identity.
asset_idsstring[]requiredExisting assets visible to the caller; duplicates reject the request.
allowed_cidrsstring[]requiredExplicit permitted scan networks; addresses outside them are excluded.
excluded_cidrsstring[]optionalAdditional networks never scanned.
[]authorization_referencestringrequiredApproved owner authorization reference.
Returns scope ID, revision, authorized targets, and ETag.
Start a scan
/organizations/{organization_id}/scan-runsStarts a scan pinned to the approved scope revision and profile. Invalid credentials do not silently establish authenticated coverage.
scope_idstringrequiredApproved assessment scope.
scope_revisionintegerrequiredReviewed scope revision.
scanner_idstringrequiredEnrolled scanner allowed for this scope.
profile_idstringrequiredInstalled scan profile including intensity and fallback behavior.
credential_idstringoptionalOptional credential permitted for these targets; omission runs unauthenticated.
The response is similar to the following:
{
"data": {
"id": "scan_001",
"state": "queued",
"scope_id": "scp_001",
"scope_revision": 2
},
"operation": {
"id": "op_scan01",
"state": "queued"
},
"request_id": "req_scan01"
}List scan runs
/organizations/{organization_id}/scan-runsReturns run, scope revision, scanner, credential version when used, and target coverage counts. Standard limit and cursor apply. Unknown filters return 422.
scope_idstringoptionalFilter approved scope.
statestringoptionalExecution state.
Returns a data array and pagination.next_cursor. Entries include stable IDs and the resource fields described for this collection.
Read a scan run
/organizations/{organization_id}/scan-runs/{scan_id}Returns per-target reachability, authenticated access level, completed and skipped checks, errors, and finding references. Unreachable targets remain not_assessed.
Returns data and request_id.
Cancel a scan
/organizations/{organization_id}/scan-runs/{scan_id}/cancelCancels future and cancelable scan checks. Send an empty object; already sent network requests and collected observations remain.
Returns run data and its canceling operation. Poll until the terminal scan state is observed.
List findings
/organizations/{organization_id}/findingsReturns technical severity, affected component, authentication basis, first/last seen, owner, and risk context. Standard limit and cursor apply. Unknown filters return 422.
asset_idstringoptionalFilter affected asset.
cvestringoptionalExact CVE identifier.
statestringoptionalRemediation state.
Returns a data array and pagination.next_cursor. Entries include stable IDs and the resource fields described for this collection.
Review a finding
/organizations/{organization_id}/findings/{finding_id}Updates a finding's review state or owner. Requires If-Match; risk acceptance requires its separate grant. Directly setting resolved is not permitted.
statestringoptionalRequested review state.
owner_idstringoptionalResponsible organization member.
expires_attimestampoptionalRequired future expiry for accepted risk; forbidden for false-positive disposition.
reasonstringrequiredAudited justification. Empty values are invalid.
Returns updated finding and ETag. Original detector evidence is preserved.
Verify remediation
/organizations/{organization_id}/findings/{finding_id}/verifyStarts a verification scan using an authorized matching check and sufficient authentication coverage. Requires If-Match.
scope_idstringrequiredApproved scope containing the affected asset.
scanner_idstringrequiredAuthorized scanner.
profile_idstringrequiredProfile containing the affected check.
credential_idstringoptionalRequired when verification needs authenticated coverage.
Returns finding in pending verification and an operation. Failed coverage leaves the finding unresolved.