Findings API Reference

FieldValue
Source specfindings/openapi/v1.json
OpenAPI version3.1.1
API version1.0.0
Operations146
Path filterAll paths

Operations

GET /api/findings/v1/alerts

PropertyValue
Operation IDListAlerts.consolidated
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json

GET /api/findings/v1/alerts/audit

PropertyValue
Operation IDGetAlertAuditByQuery.consolidated
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
alert_idqueryyes

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json
404Not Found-

GET /api/findings/v1/alerts/bundle

PropertyValue
Operation IDDownloadAlertBundleByQuery.consolidated
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
alert_idqueryyes

Responses:

StatusDescriptionContent types
200OKapplication/gzip
400Bad Requestapplication/problem+json
404Not Found-

POST /api/findings/v1/alerts/bundle/verify

PropertyValue
Operation IDVerifyAlertBundleByQuery.consolidated
TagsStellaOps.Findings.WebService
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
alert_idqueryyes

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json
404Not Found-

POST /api/findings/v1/alerts/decisions

PropertyValue
Operation IDRecordDecisionByQuery.consolidated
TagsStellaOps.Findings.WebService
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
alert_idqueryyes

Responses:

StatusDescriptionContent types
201Created-
400Bad Requestapplication/problem+json
404Not Found-

GET /api/findings/v1/alerts/summary

PropertyValue
Operation IDGetAlertByQuery.consolidated
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
alert_idqueryyes

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json
404Not Found-

GET /api/findings/v1/alerts/{alertId}

PropertyValue
Operation IDGetAlert.consolidated
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
alertIdpathyes

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json
404Not Found-

GET /api/findings/v1/alerts/{alertId}/audit

PropertyValue
Operation IDGetAlertAudit.consolidated
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
alertIdpathyes

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json
404Not Found-

GET /api/findings/v1/alerts/{alertId}/bundle

PropertyValue
Operation IDDownloadAlertBundle.consolidated
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
alertIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/gzip
400Bad Requestapplication/problem+json
404Not Found-

POST /api/findings/v1/alerts/{alertId}/bundle/verify

PropertyValue
Operation IDVerifyAlertBundle.consolidated
TagsStellaOps.Findings.WebService
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
alertIdpathyes

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json
404Not Found-

POST /api/findings/v1/alerts/{alertId}/decisions

PropertyValue
Operation IDRecordDecision.consolidated
TagsStellaOps.Findings.WebService
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
alertIdpathyes

Responses:

StatusDescriptionContent types
201Created-
400Bad Requestapplication/problem+json
404Not Found-

GET /api/findings/v1/capabilities/runtime

Get runtime instrumentation capability + tenant-scoped ingest stats

Returns whether runtime instrumentation is enabled at the platform level and, when enabled, the tenant-scoped last-ingest timestamp and ingested-trace count. Lets clients distinguish ‘feature disabled’ from ‘feature enabled but no data yet’ — both of which surface as 404 NotFound on the runtime read endpoints. Tenant scoping is enforced by the standard tenant accessor; data NEVER crosses tenants. Requires findings:read scope.

PropertyValue
Operation IDGetRuntimeCapabilities.consolidated
TagsCapabilities
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OKapplication/json
401Unauthorized-
403Forbidden-

GET /api/findings/v1/evidence-subgraph/{vulnId}

PropertyValue
Operation IDVulnExplorer_GetEvidenceSubgraph.consolidated
TagsVulnExplorer
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
vulnIdpathyes

Responses:

StatusDescriptionContent types
200OK-

POST /api/findings/v1/ledger/dispositions/consumers/{consumerId}

Register or report a finding-disposition consumer cursor

Registers/resets a remote consumer or reports its exact durable tenant cursor for the Findings-owned retention floor.

PropertyValue
Operation IDfindings.ledger.dispositions.consumer
TagsFindingDisposition
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
consumerIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json
409Conflictapplication/json

GET /api/findings/v1/ledger/dispositions/events

Retained finding.disposition.changed event feed

Returns the authenticated tenant’s ordered P6 findings.dispositions envelopes after a durable tenant cursor with explicit epoch, head, retention-horizon and bootstrap signals.

PropertyValue
Operation IDfindings.ledger.dispositions.stream
TagsFindingDisposition
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
afterSeqqueryno
limitqueryno
maxBytesqueryno
streamEpochqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json

GET /api/findings/v1/ledger/dispositions/latest

List a tenant’s enforced-cap finding dispositions (cold-start reconcile)

Returns the tenant’s currently ENFORCED-CAP dispositions — the findings whose disposition differs from the matcher default because a trusted VEX consensus was Applied. Uncapped/advisory-only findings are omitted (Platform reconstructs those from the matcher). Each item carries the agnostic FindingDisposition fields plus the correlationKey (cve|packageName) the read-model joins on. Paginated by ?limit and ?cursor; the next cursor (when more remain) is returned in the X-Next-Cursor response header so the reconciler can loop. Used by Platform’s cold-start reconcile.

PropertyValue
Operation IDGetLatestFindingDispositions.consolidated
TagsFindingDisposition
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
cursorqueryno
limitqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json

POST /api/findings/v1/ledger/events

PropertyValue
Operation IDLedgerEventAppend.consolidated
TagsLedgerEventIngestEndpoints
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OK-
201Created-
400Bad Requestapplication/problem+json
409Conflictapplication/problem+json
500Internal Server Errorapplication/problem+json

GET /api/findings/v1/ledger/ledger

List ledger events for a tenant by runId (replay determinism) or actorRef (SAR).

PropertyValue
Operation IDFindingsLedgerList.consolidated
TagsFindings / Ledger
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
actorRefqueryno
runIdqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/problem+json
404Not Foundapplication/problem+json

POST /api/findings/v1/ledger/ledger/advanced-assurance/append

Append the advanced-assurance-golden fixture seed to the Findings ledger.

PropertyValue
Operation IDAdvancedAssuranceLedgerAppend.consolidated
TagsFindings / Ledger / Advanced Assurance
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
202Acceptedapplication/json
400Bad Requestapplication/problem+json
401Unauthorizedapplication/problem+json
403Forbiddenapplication/problem+json
409Conflictapplication/problem+json
500Internal Server Errorapplication/problem+json

GET /api/findings/v1/ledger/ledger/{ledgerId}/chain-verify

PropertyValue
Operation IDFindingsLedgerChainVerify.consolidated
TagsLedgerChainVerifyEndpoints
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
ledgerIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/problem+json

POST /api/findings/v1/ledger/scores

Calculate evidence-weighted scores for multiple findings

Computes evidence-weighted scores for up to 100 findings in a single request. Each finding is scored independently; partial results are returned if some findings are missing evidence. Batch size exceeding 100 returns 400.

PropertyValue
Operation IDCalculateFindingScoresBatch.consolidated
TagsScoring
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json
429Too Many Requests-

GET /api/findings/v1/ledger/summaries

Get paginated list of finding summaries

Returns a paginated list of finding summaries with optional filtering by status, severity, and minimum confidence score. Results are sortable by any summary field and support both ascending and descending direction.

PropertyValue
Operation IDGetFindingSummaries.consolidated
TagsFindings
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
minConfidencequeryno
pagequeryno
pageSizequeryno
severityqueryno
sortByqueryno
sortDirectionqueryno
statusqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json

GET /api/findings/v1/ledger/vex-trust-overrides

Lists the tenant’s per-case VEX-consensus trust overrides in deterministic order.

PropertyValue
Operation IDListVexTrustOverrides.consolidated
TagsVexTrustOverrides
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OK-

POST /api/findings/v1/ledger/vex-trust-overrides

Creates a per-case VEX-consensus trust override (an explicit row UNTRUSTS a (vuln, product[, source])).

PropertyValue
Operation IDCreateVexTrustOverride.consolidated
TagsVexTrustOverrides
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/ledger/vex-trust-overrides/{id}

Returns a single per-case VEX-consensus trust override.

PropertyValue
Operation IDGetVexTrustOverride.consolidated
TagsVexTrustOverrides
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OK-

PUT /api/findings/v1/ledger/vex-trust-overrides/{id}

Replaces an existing per-case VEX-consensus trust override.

PropertyValue
Operation IDUpdateVexTrustOverride.consolidated
TagsVexTrustOverrides
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OK-

DELETE /api/findings/v1/ledger/vex-trust-overrides/{id}

Deletes a per-case VEX-consensus trust override.

PropertyValue
Operation IDDeleteVexTrustOverride.consolidated
TagsVexTrustOverrides
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/ledger/{findingId}/backport

Get backport verification evidence for a finding

Returns backport verification evidence for a specific finding, detailing whether upstream patches have been ported to the affected package version and the confidence level of the backport determination.

PropertyValue
Operation IDGetBackportEvidence.consolidated
TagsBackport Evidence
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/findings/v1/ledger/{findingId}/disposition

Get a finding’s enforced, domain-agnostic disposition

Returns the finding’s ENFORCED disposition as the agnostic FindingDisposition contract (disposition/reason/sourceModel/confidence/updatedAt/provenanceRef). Mirrors the finding.disposition.changed event payload; used by Platform for cold-start reconcile. Returns 404 when the finding has no computed score/evidence.

PropertyValue
Operation IDGetFindingDisposition.consolidated
TagsFindingDisposition
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json
404Not Found-

GET /api/findings/v1/ledger/{findingId}/evidence-graph

Get evidence graph for finding visualization

Returns the evidence graph for a finding as a set of typed nodes (scanner events, attestations, runtime observations, SBOM matches) and directed edges representing causal and corroborating relationships, suitable for interactive graph visualization in the UI.

PropertyValue
Operation IDGetEvidenceGraph.consolidated
TagsEvidence Graph
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes
includeContentqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/findings/v1/ledger/{findingId}/evidence/{nodeId}

Get raw content for an evidence node

Returns the raw content payload of a specific evidence node within a finding’s evidence graph. Content format varies by node type (JSON for scanner events, JWS for signed attestations, plain text for trace logs).

PropertyValue
Operation IDGetEvidenceNodeContent.consolidated
TagsEvidence Graph
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes
nodeIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/findings/v1/ledger/{findingId}/patches

Get patch signatures for a finding

Returns the set of patch signatures associated with a finding, including cryptographic commit references and verification status used to confirm whether a given patch has been applied to the affected artifact.

PropertyValue
Operation IDGetPatches.consolidated
TagsBackport Evidence
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/findings/v1/ledger/{findingId}/reachability-map

Get condensed reachability visualization

Returns a condensed reachability mini-map for a finding, showing the call graph paths from entry points to the affected vulnerable function. Limits the number of displayed paths via the maxPaths parameter to keep the visualization manageable.

PropertyValue
Operation IDGetReachabilityMiniMap.consolidated
TagsReachability
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes
maxPathsqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/findings/v1/ledger/{findingId}/runtime-timeline

Get runtime corroboration timeline

Returns chronologically-ordered runtime timeline events for a finding within a [from, to] window. 404 NotFound when no events match. Defaults: from = now - 24h, to = now, bucketHours = 1.

PropertyValue
Operation IDGetRuntimeTimeline.consolidated
TagsRuntime
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes
bucketHoursqueryno
fromqueryno
toqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/findings/v1/ledger/{findingId}/runtime/score

Get runtime trustworthiness score for a finding

Returns the runtime trustworthiness score (0-100) and per-component contributions. 404 NotFound when no score has been derived yet.

PropertyValue
Operation IDGetRtsScore.consolidated
TagsRuntime Evidence
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/findings/v1/ledger/{findingId}/runtime/traces

Get runtime function traces for a finding

Returns the aggregated runtime function traces recorded for a finding, sorted by hit count or recency. Returns 404 NotFound when no aggregates exist for the (tenant, finding) — clients MUST distinguish 404 from 200 + empty array.

PropertyValue
Operation IDGetRuntimeTraces.consolidated
TagsRuntime Evidence
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes
limitqueryno
sortByqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

POST /api/findings/v1/ledger/{findingId}/runtime/traces

Ingest runtime trace observation for a finding

Accepts a runtime trace observation from an eBPF or APM agent, applies privacy redaction, persists the raw trace, upserts the per-finding aggregate, and recomputes the runtime score in-line. Returns 202 Accepted with the assigned trace identifier.

PropertyValue
Operation IDIngestRuntimeTrace.consolidated
TagsRuntime Evidence
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
202Acceptedapplication/json
400Bad Requestapplication/problem+json

GET /api/findings/v1/ledger/{findingId}/score

Get cached evidence-weighted score for a finding

Returns the most recently computed evidence-weighted score for a finding without triggering a recalculation. Returns 404 if no score has been computed yet; callers should use POST /score to trigger an initial computation.

PropertyValue
Operation IDGetFindingScore.consolidated
TagsScoring
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

POST /api/findings/v1/ledger/{findingId}/score

Calculate evidence-weighted score for a finding

Computes and persists an evidence-weighted severity score for a finding by aggregating all available evidence signals (scanner severity, reachability, runtime corroboration, backport status). The result replaces any previously cached score. Returns 404 if the finding does not exist or has no evidence.

PropertyValue
Operation IDCalculateFindingScore.consolidated
TagsScoring
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json
404Not Foundapplication/json
429Too Many Requests-

GET /api/findings/v1/ledger/{findingId}/score-history

Get score history for a finding

Returns a paginated history of evidence-weighted score computations for a finding, optionally filtered by time range. Each entry records the score value, contributing evidence weights, and the policy version used for that computation.

PropertyValue
Operation IDGetFindingScoreHistory.consolidated
TagsScoring
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes
cursorqueryno
fromqueryno
limitqueryno
toqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

PATCH /api/findings/v1/ledger/{findingId}/state

PropertyValue
Operation IDTransitionFindingState.consolidated
TagsFindingStateEndpoints
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json
404Not Found-
409Conflictapplication/problem+json

GET /api/findings/v1/ledger/{findingId}/summary

Get condensed finding summary for vulnerability-first UX

Returns a condensed summary of a finding optimized for the vulnerability-first UI view, including severity, status, confidence, affected component, and evidence highlights. The findingId must be a valid GUID.

PropertyValue
Operation IDGetFindingSummary.consolidated
TagsFindings
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/problem+json
404Not Found-

GET /api/findings/v1/risk/aggregated-status

Aggregated risk status for the Security dashboard (derived from real findings)

PropertyValue
Operation IDGetAggregatedRiskStatus.consolidated
TagsRisk
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
Artifactqueryno
Digestqueryno
Environmentqueryno
Regionqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/scoring/policy

Get the active scoring policy configuration

Returns the currently active evidence-weighted scoring policy, including the version identifier, evidence type weights, severity multipliers, and effective date. The active policy is used for all new score computations.

PropertyValue
Operation IDGetActiveScoringPolicy.consolidated
TagsScoring
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OKapplication/json

GET /api/findings/v1/scoring/policy/versions

List all available scoring policy versions

Returns a list of all scoring policy versions available in the system, including version identifiers, effective dates, and which version is currently active. Used for audit log cross-referencing and policy governance.

PropertyValue
Operation IDListScoringPolicyVersions.consolidated
TagsScoring
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OKapplication/json

GET /api/findings/v1/scoring/policy/{version}

Get a specific scoring policy version

Returns the scoring policy configuration for a specific version identifier. Useful for auditing historical score computations by confirming which weights and multipliers were in effect at the time a score was recorded.

PropertyValue
Operation IDGetScoringPolicyVersion.consolidated
TagsScoring
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
versionpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/findings/v1/scoring/webhooks

List all registered webhooks

Returns all currently registered score change webhooks with their configuration, including URL, filter patterns, minimum score change threshold, and creation timestamp. Secrets are not returned in responses.

PropertyValue
Operation IDListScoringWebhooks.consolidated
TagsWebhooks
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OKapplication/json

POST /api/findings/v1/scoring/webhooks

Register a webhook for score change notifications

Registers an HTTPS callback URL to receive score change notifications. Supports optional HMAC-SHA256 signing via a shared secret, finding pattern filters, minimum score change threshold, and bucket transition triggers. The webhook is activated immediately upon registration.

PropertyValue
Operation IDRegisterScoringWebhook.consolidated
TagsWebhooks
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
201Createdapplication/json
400Bad Requestapplication/problem+json

GET /api/findings/v1/scoring/webhooks/{id}

Get a specific webhook by ID

Returns the configuration of a specific webhook by its UUID. Inactive webhooks (soft-deleted) return 404. Secrets are not included in the response body.

PropertyValue
Operation IDGetScoringWebhook.consolidated
TagsWebhooks
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

PUT /api/findings/v1/scoring/webhooks/{id}

Update a webhook configuration

Replaces the full configuration of an existing webhook. All fields in the request body are applied as-is; partial updates are not supported. To update a secret, supply the new secret value; omitting the secret field retains the existing secret.

PropertyValue
Operation IDUpdateScoringWebhook.consolidated
TagsWebhooks
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/problem+json
404Not Found-

DELETE /api/findings/v1/scoring/webhooks/{id}

Delete a webhook

Permanently removes a webhook registration by its UUID. No further score change notifications will be delivered to the associated URL after deletion. Returns 204 on success, 404 if the webhook does not exist.

PropertyValue
Operation IDDeleteScoringWebhook.consolidated
TagsWebhooks
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
204No Content-
404Not Found-

POST /api/findings/v1/security/advisory-generations/recovery/hold

PropertyValue
Operation IDfindings.recovery.hold
TagsFindingsRecovery
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OK-

POST /api/findings/v1/security/advisory-generations/recovery/restore

PropertyValue
Operation IDfindings.recovery.restore
TagsFindingsRecovery
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OK-

POST /api/findings/v1/security/advisory-generations/recovery/resume

PropertyValue
Operation IDfindings.recovery.resume
TagsFindingsRecovery
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OK-

POST /api/findings/v1/security/advisory-generations/recovery/rollback

PropertyValue
Operation IDfindings.recovery.rollback
TagsFindingsRecovery
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/security/artifact-triage

List tenant-scoped artifact triage facts keyed by immutable digest

PropertyValue
Operation IDListSecurityArtifactTriageV2.consolidated
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
cursorqueryno
limitqueryno
offsetqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/security/artifact-triage/detail

Get one artifact through the shared artifact-triage projector

PropertyValue
Operation IDGetSecurityArtifactTriageDetailV2.consolidated
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
digestqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/security/disposition

List consolidated security disposition projection (VEX + exceptions read-join)

PropertyValue
Operation IDListSecurityDispositionV2.consolidated
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
Environmentqueryno
Limitqueryno
Offsetqueryno
Regionqueryno
Statusqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/security/disposition/{findingId}

Get consolidated security disposition by finding id

PropertyValue
Operation IDGetSecurityDispositionV2.consolidated
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/security/findings

List consolidated security findings with pivot/facet schema

PropertyValue
Operation IDListSecurityFindingsV2.consolidated
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
Actionablequeryno
Artifactqueryno
Cursorqueryno
Digestqueryno
Dispositionqueryno
DrillDownFilterqueryno
DrillDownValuequeryno
Environmentqueryno
Limitqueryno
Offsetqueryno
Pivotqueryno
Regionqueryno
Searchqueryno
Severityqueryno
Sortqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/security/findings/summary

Get shell-safe critical findings triage count from the materialized projection

PropertyValue
Operation IDGetSecurityFindingsSummaryV2.consolidated
TagsSecurity V2
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/security/findings/vulnerability-exposure

Answer whether one exact vulnerability identifier is exposed in the tenant-scoped findings projection

Returns exposed, not_exposed, or unknown. Empty, not-observed, computing, and mixed evidence remain unknown; only all-not-present exact matches prove not_exposed.

PropertyValue
Operation IDGetSecurityVulnerabilityExposureV2.consolidated
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
Artifactqueryno
Environmentqueryno
Limitqueryno
Regionqueryno
VulnerabilityIdqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/security/freshness

Get tenant-scoped disposition and scanner freshness state

PropertyValue
Operation IDGetSecurityFreshnessV2.consolidated
TagsSecurity V2
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/security/image-context

Get per-image artifact context (reference, SBOM stats, timestamps) for a digest

PropertyValue
Operation IDGetSecurityImageContextV2.consolidated
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
digestqueryno

Responses:

StatusDescriptionContent types
200OK-

List releases whose components pin a single image digest

PropertyValue
Operation IDListSecurityImageRelatedReleasesV2.consolidated
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
digestqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/security/image-sbom

List the real SBOM component inventory for a single image digest

PropertyValue
Operation IDListSecurityImageSbomV2.consolidated
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
digestqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/security/sbom-explorer

Get consolidated SBOM explorer projection (table/graph/diff)

PropertyValue
Operation IDGetSecuritySbomExplorerV2.consolidated
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
Environmentqueryno
LeftReleaseIdqueryno
Limitqueryno
Modequeryno
Offsetqueryno
Regionqueryno
RightReleaseIdqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/security/vulnerabilities/{vulnerabilityId}

Get the per-vulnerability detail read-model (advisory metadata + affected findings)

Joins canonical advisory metadata (description, severity, authoritative CVSS, EPSS, KEV, fixed/affected versions, CWE) with a bounded tenant-scoped affected-findings sample and explicit scope/currency metadata. Accepts any identifier scheme the advisory corpus carries (CVE, GHSA, MAL, UBUNTU, USN, RUSTSEC, GO, PYSEC and others). 404 when the identifier has neither an advisory row nor any affected finding.

PropertyValue
Operation IDGetSecurityVulnerabilityDetailV2.consolidated
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
vulnerabilityIdpathyes
Artifactqueryno
Environmentqueryno
Regionqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/vex-decisions

PropertyValue
Operation IDVulnExplorer_ListVexDecisions.consolidated
TagsVulnExplorer
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
continuationTokenqueryno
limitqueryno
pageSizequeryno
pageTokenqueryno
statusqueryno
subjectqueryno
subjectNamequeryno
vulnerabilityIdqueryno

Responses:

StatusDescriptionContent types
200OK-

POST /api/findings/v1/vex-decisions

PropertyValue
Operation IDVulnExplorer_CreateVexDecision.consolidated
TagsVulnExplorer
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
x-stella-user-idheaderno
x-stella-user-nameheaderno

Responses:

StatusDescriptionContent types
200OK-

GET /api/findings/v1/vex-decisions/{id}

PropertyValue
Operation IDVulnExplorer_GetVexDecision.consolidated
TagsVulnExplorer
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OK-

PATCH /api/findings/v1/vex-decisions/{id}

PropertyValue
Operation IDVulnExplorer_UpdateVexDecision.consolidated
TagsVulnExplorer
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OK-

GET /api/risk/aggregated-status

Aggregated risk status for the Security dashboard (derived from real findings)

PropertyValue
Operation IDGetAggregatedRiskStatus
TagsRisk
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
Artifactqueryno
Digestqueryno
Environmentqueryno
Regionqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/v1/buildinfo

API alias for /buildinfo.json (same payload).

PropertyValue
Operation IDStellaOpsBuildInfoApi
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OK-

GET /api/v1/capabilities/runtime

Get runtime instrumentation capability + tenant-scoped ingest stats

Returns whether runtime instrumentation is enabled at the platform level and, when enabled, the tenant-scoped last-ingest timestamp and ingested-trace count. Lets clients distinguish ‘feature disabled’ from ‘feature enabled but no data yet’ — both of which surface as 404 NotFound on the runtime read endpoints. Tenant scoping is enforced by the standard tenant accessor; data NEVER crosses tenants. Requires findings:read scope.

PropertyValue
Operation IDGetRuntimeCapabilities
TagsCapabilities
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OKapplication/json
401Unauthorized-
403Forbidden-

GET /api/v1/findings/dispositions/latest

List a tenant’s enforced-cap finding dispositions (cold-start reconcile)

Returns the tenant’s currently ENFORCED-CAP dispositions — the findings whose disposition differs from the matcher default because a trusted VEX consensus was Applied. Uncapped/advisory-only findings are omitted (Platform reconstructs those from the matcher). Each item carries the agnostic FindingDisposition fields plus the correlationKey (cve|packageName) the read-model joins on. Paginated by ?limit and ?cursor; the next cursor (when more remain) is returned in the X-Next-Cursor response header so the reconciler can loop. Used by Platform’s cold-start reconcile.

PropertyValue
Operation IDGetLatestFindingDispositions
TagsFindingDisposition
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
cursorqueryno
limitqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json

GET /api/v1/findings/ledger

List ledger events for a tenant by runId (replay determinism) or actorRef (SAR).

PropertyValue
Operation IDFindingsLedgerList
TagsFindings / Ledger
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
actorRefqueryno
runIdqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/problem+json
404Not Foundapplication/problem+json

POST /api/v1/findings/ledger/advanced-assurance/append

Append the advanced-assurance-golden fixture seed to the Findings ledger.

PropertyValue
Operation IDAdvancedAssuranceLedgerAppend
TagsFindings / Ledger / Advanced Assurance
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
202Acceptedapplication/json
400Bad Requestapplication/problem+json
401Unauthorizedapplication/problem+json
403Forbiddenapplication/problem+json
409Conflictapplication/problem+json
500Internal Server Errorapplication/problem+json

GET /api/v1/findings/ledger/{ledgerId}/chain-verify

PropertyValue
Operation IDFindingsLedgerChainVerify
TagsLedgerChainVerifyEndpoints
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
ledgerIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/problem+json

POST /api/v1/findings/scores

Calculate evidence-weighted scores for multiple findings

Computes evidence-weighted scores for up to 100 findings in a single request. Each finding is scored independently; partial results are returned if some findings are missing evidence. Batch size exceeding 100 returns 400.

PropertyValue
Operation IDCalculateFindingScoresBatch
TagsScoring
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json
429Too Many Requests-

GET /api/v1/findings/summaries

Get paginated list of finding summaries

Returns a paginated list of finding summaries with optional filtering by status, severity, and minimum confidence score. Results are sortable by any summary field and support both ascending and descending direction.

PropertyValue
Operation IDGetFindingSummaries
TagsFindings
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
minConfidencequeryno
pagequeryno
pageSizequeryno
severityqueryno
sortByqueryno
sortDirectionqueryno
statusqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json

GET /api/v1/findings/vex-trust-overrides

Lists the tenant’s per-case VEX-consensus trust overrides in deterministic order.

PropertyValue
Operation IDListVexTrustOverrides
TagsVexTrustOverrides
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OK-

POST /api/v1/findings/vex-trust-overrides

Creates a per-case VEX-consensus trust override (an explicit row UNTRUSTS a (vuln, product[, source])).

PropertyValue
Operation IDCreateVexTrustOverride
TagsVexTrustOverrides
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OK-

GET /api/v1/findings/vex-trust-overrides/{id}

Returns a single per-case VEX-consensus trust override.

PropertyValue
Operation IDGetVexTrustOverride
TagsVexTrustOverrides
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OK-

PUT /api/v1/findings/vex-trust-overrides/{id}

Replaces an existing per-case VEX-consensus trust override.

PropertyValue
Operation IDUpdateVexTrustOverride
TagsVexTrustOverrides
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OK-

DELETE /api/v1/findings/vex-trust-overrides/{id}

Deletes a per-case VEX-consensus trust override.

PropertyValue
Operation IDDeleteVexTrustOverride
TagsVexTrustOverrides
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OK-

GET /api/v1/findings/{findingId}/backport

Get backport verification evidence for a finding

Returns backport verification evidence for a specific finding, detailing whether upstream patches have been ported to the affected package version and the confidence level of the backport determination.

PropertyValue
Operation IDGetBackportEvidence
TagsBackport Evidence
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/v1/findings/{findingId}/disposition

Get a finding’s enforced, domain-agnostic disposition

Returns the finding’s ENFORCED disposition as the agnostic FindingDisposition contract (disposition/reason/sourceModel/confidence/updatedAt/provenanceRef). Mirrors the finding.disposition.changed event payload; used by Platform for cold-start reconcile. Returns 404 when the finding has no computed score/evidence.

PropertyValue
Operation IDGetFindingDisposition
TagsFindingDisposition
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json
404Not Found-

GET /api/v1/findings/{findingId}/evidence-graph

Get evidence graph for finding visualization

Returns the evidence graph for a finding as a set of typed nodes (scanner events, attestations, runtime observations, SBOM matches) and directed edges representing causal and corroborating relationships, suitable for interactive graph visualization in the UI.

PropertyValue
Operation IDGetEvidenceGraph
TagsEvidence Graph
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes
includeContentqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/v1/findings/{findingId}/evidence/{nodeId}

Get raw content for an evidence node

Returns the raw content payload of a specific evidence node within a finding’s evidence graph. Content format varies by node type (JSON for scanner events, JWS for signed attestations, plain text for trace logs).

PropertyValue
Operation IDGetEvidenceNodeContent
TagsEvidence Graph
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes
nodeIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/v1/findings/{findingId}/patches

Get patch signatures for a finding

Returns the set of patch signatures associated with a finding, including cryptographic commit references and verification status used to confirm whether a given patch has been applied to the affected artifact.

PropertyValue
Operation IDGetPatches
TagsBackport Evidence
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/v1/findings/{findingId}/reachability-map

Get condensed reachability visualization

Returns a condensed reachability mini-map for a finding, showing the call graph paths from entry points to the affected vulnerable function. Limits the number of displayed paths via the maxPaths parameter to keep the visualization manageable.

PropertyValue
Operation IDGetReachabilityMiniMap
TagsReachability
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes
maxPathsqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/v1/findings/{findingId}/runtime-timeline

Get runtime corroboration timeline

Returns chronologically-ordered runtime timeline events for a finding within a [from, to] window. 404 NotFound when no events match. Defaults: from = now - 24h, to = now, bucketHours = 1.

PropertyValue
Operation IDGetRuntimeTimeline
TagsRuntime
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes
bucketHoursqueryno
fromqueryno
toqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/v1/findings/{findingId}/runtime/score

Get runtime trustworthiness score for a finding

Returns the runtime trustworthiness score (0-100) and per-component contributions. 404 NotFound when no score has been derived yet.

PropertyValue
Operation IDGetRtsScore
TagsRuntime Evidence
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/v1/findings/{findingId}/runtime/traces

Get runtime function traces for a finding

Returns the aggregated runtime function traces recorded for a finding, sorted by hit count or recency. Returns 404 NotFound when no aggregates exist for the (tenant, finding) — clients MUST distinguish 404 from 200 + empty array.

PropertyValue
Operation IDGetRuntimeTraces
TagsRuntime Evidence
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes
limitqueryno
sortByqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

POST /api/v1/findings/{findingId}/runtime/traces

Ingest runtime trace observation for a finding

Accepts a runtime trace observation from an eBPF or APM agent, applies privacy redaction, persists the raw trace, upserts the per-finding aggregate, and recomputes the runtime score in-line. Returns 202 Accepted with the assigned trace identifier.

PropertyValue
Operation IDIngestRuntimeTrace
TagsRuntime Evidence
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
202Acceptedapplication/json
400Bad Requestapplication/problem+json

GET /api/v1/findings/{findingId}/score

Get cached evidence-weighted score for a finding

Returns the most recently computed evidence-weighted score for a finding without triggering a recalculation. Returns 404 if no score has been computed yet; callers should use POST /score to trigger an initial computation.

PropertyValue
Operation IDGetFindingScore
TagsScoring
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

POST /api/v1/findings/{findingId}/score

Calculate evidence-weighted score for a finding

Computes and persists an evidence-weighted severity score for a finding by aggregating all available evidence signals (scanner severity, reachability, runtime corroboration, backport status). The result replaces any previously cached score. Returns 404 if the finding does not exist or has no evidence.

PropertyValue
Operation IDCalculateFindingScore
TagsScoring
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/json
404Not Foundapplication/json
429Too Many Requests-

GET /api/v1/findings/{findingId}/score-history

Get score history for a finding

Returns a paginated history of evidence-weighted score computations for a finding, optionally filtered by time range. Each entry records the score value, contributing evidence weights, and the policy version used for that computation.

PropertyValue
Operation IDGetFindingScoreHistory
TagsScoring
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes
cursorqueryno
fromqueryno
limitqueryno
toqueryno

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

PATCH /api/v1/findings/{findingId}/state

PropertyValue
Operation IDTransitionFindingState
TagsFindingStateEndpoints
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json
404Not Found-
409Conflictapplication/problem+json

GET /api/v1/findings/{findingId}/summary

Get condensed finding summary for vulnerability-first UX

Returns a condensed summary of a finding optimized for the vulnerability-first UI view, including severity, status, confidence, affected component, and evidence highlights. The findingId must be a valid GUID.

PropertyValue
Operation IDGetFindingSummary
TagsFindings
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/problem+json
404Not Found-

GET /api/v1/scoring/policy

Get the active scoring policy configuration

Returns the currently active evidence-weighted scoring policy, including the version identifier, evidence type weights, severity multipliers, and effective date. The active policy is used for all new score computations.

PropertyValue
Operation IDGetActiveScoringPolicy
TagsScoring
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OKapplication/json

GET /api/v1/scoring/policy/versions

List all available scoring policy versions

Returns a list of all scoring policy versions available in the system, including version identifiers, effective dates, and which version is currently active. Used for audit log cross-referencing and policy governance.

PropertyValue
Operation IDListScoringPolicyVersions
TagsScoring
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OKapplication/json

GET /api/v1/scoring/policy/{version}

Get a specific scoring policy version

Returns the scoring policy configuration for a specific version identifier. Useful for auditing historical score computations by confirming which weights and multipliers were in effect at the time a score was recorded.

PropertyValue
Operation IDGetScoringPolicyVersion
TagsScoring
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
versionpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

GET /api/v1/scoring/webhooks

List all registered webhooks

Returns all currently registered score change webhooks with their configuration, including URL, filter patterns, minimum score change threshold, and creation timestamp. Secrets are not returned in responses.

PropertyValue
Operation IDListScoringWebhooks
TagsWebhooks
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OKapplication/json

POST /api/v1/scoring/webhooks

Register a webhook for score change notifications

Registers an HTTPS callback URL to receive score change notifications. Supports optional HMAC-SHA256 signing via a shared secret, finding pattern filters, minimum score change threshold, and bucket transition triggers. The webhook is activated immediately upon registration.

PropertyValue
Operation IDRegisterScoringWebhook
TagsWebhooks
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
201Createdapplication/json
400Bad Requestapplication/problem+json

GET /api/v1/scoring/webhooks/{id}

Get a specific webhook by ID

Returns the configuration of a specific webhook by its UUID. Inactive webhooks (soft-deleted) return 404. Secrets are not included in the response body.

PropertyValue
Operation IDGetScoringWebhook
TagsWebhooks
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
404Not Found-

PUT /api/v1/scoring/webhooks/{id}

Update a webhook configuration

Replaces the full configuration of an existing webhook. All fields in the request body are applied as-is; partial updates are not supported. To update a secret, supply the new secret value; omitting the secret field retains the existing secret.

PropertyValue
Operation IDUpdateScoringWebhook
TagsWebhooks
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OKapplication/json
400Bad Requestapplication/problem+json
404Not Found-

DELETE /api/v1/scoring/webhooks/{id}

Delete a webhook

Permanently removes a webhook registration by its UUID. No further score change notifications will be delivered to the associated URL after deletion. Returns 204 on success, 404 if the webhook does not exist.

PropertyValue
Operation IDDeleteScoringWebhook
TagsWebhooks
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
204No Content-
404Not Found-

GET /api/v2/security/artifact-triage

List tenant-scoped artifact triage facts keyed by immutable digest

PropertyValue
Operation IDListSecurityArtifactTriageV2
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
cursorqueryno
limitqueryno
offsetqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/v2/security/artifact-triage/detail

Get one artifact through the shared artifact-triage projector

PropertyValue
Operation IDGetSecurityArtifactTriageDetailV2
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
digestqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/v2/security/disposition

List consolidated security disposition projection (VEX + exceptions read-join)

PropertyValue
Operation IDListSecurityDispositionV2
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
Environmentqueryno
Limitqueryno
Offsetqueryno
Regionqueryno
Statusqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/v2/security/disposition/{findingId}

Get consolidated security disposition by finding id

PropertyValue
Operation IDGetSecurityDispositionV2
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
findingIdpathyes

Responses:

StatusDescriptionContent types
200OK-

GET /api/v2/security/findings

List consolidated security findings with pivot/facet schema

PropertyValue
Operation IDListSecurityFindingsV2
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
Actionablequeryno
Artifactqueryno
Cursorqueryno
Digestqueryno
Dispositionqueryno
DrillDownFilterqueryno
DrillDownValuequeryno
Environmentqueryno
Limitqueryno
Offsetqueryno
Pivotqueryno
Regionqueryno
Searchqueryno
Severityqueryno
Sortqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/v2/security/findings/summary

Get shell-safe critical findings triage count from the materialized projection

PropertyValue
Operation IDGetSecurityFindingsSummaryV2
TagsSecurity V2
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OK-

GET /api/v2/security/findings/vulnerability-exposure

Answer whether one exact vulnerability identifier is exposed in the tenant-scoped findings projection

Returns exposed, not_exposed, or unknown. Empty, not-observed, computing, and mixed evidence remain unknown; only all-not-present exact matches prove not_exposed.

PropertyValue
Operation IDGetSecurityVulnerabilityExposureV2
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
Artifactqueryno
Environmentqueryno
Limitqueryno
Regionqueryno
VulnerabilityIdqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/v2/security/freshness

Get tenant-scoped disposition and scanner freshness state

PropertyValue
Operation IDGetSecurityFreshnessV2
TagsSecurity V2
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OK-

GET /api/v2/security/image-context

Get per-image artifact context (reference, SBOM stats, timestamps) for a digest

PropertyValue
Operation IDGetSecurityImageContextV2
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
digestqueryno

Responses:

StatusDescriptionContent types
200OK-

List releases whose components pin a single image digest

PropertyValue
Operation IDListSecurityImageRelatedReleasesV2
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
digestqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/v2/security/image-sbom

List the real SBOM component inventory for a single image digest

PropertyValue
Operation IDListSecurityImageSbomV2
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
digestqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/v2/security/sbom-explorer

Get consolidated SBOM explorer projection (table/graph/diff)

PropertyValue
Operation IDGetSecuritySbomExplorerV2
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
Environmentqueryno
LeftReleaseIdqueryno
Limitqueryno
Modequeryno
Offsetqueryno
Regionqueryno
RightReleaseIdqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /api/v2/security/vulnerabilities/{vulnerabilityId}

Get the per-vulnerability detail read-model (advisory metadata + affected findings)

Joins canonical advisory metadata (description, severity, authoritative CVSS, EPSS, KEV, fixed/affected versions, CWE) with a bounded tenant-scoped affected-findings sample and explicit scope/currency metadata. Accepts any identifier scheme the advisory corpus carries (CVE, GHSA, MAL, UBUNTU, USN, RUSTSEC, GO, PYSEC and others). 404 when the identifier has neither an advisory row nor any affected finding.

PropertyValue
Operation IDGetSecurityVulnerabilityDetailV2
TagsSecurity V2
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
vulnerabilityIdpathyes
Artifactqueryno
Environmentqueryno
Regionqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /buildinfo.json

Image build provenance (module, gitSha, gitCommitTime, imageBuiltAt, branch) for drift detection.

PropertyValue
Operation IDStellaOpsBuildInfoFile
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OK-

GET /doctor/findings-web/checks

PropertyValue
Operation ID-
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OK-

GET /v1/alerts

PropertyValue
Operation IDListAlerts
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json

GET /v1/alerts/audit

PropertyValue
Operation IDGetAlertAuditByQuery
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
alert_idqueryyes

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json
404Not Found-

GET /v1/alerts/bundle

PropertyValue
Operation IDDownloadAlertBundleByQuery
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
alert_idqueryyes

Responses:

StatusDescriptionContent types
200OKapplication/gzip
400Bad Requestapplication/problem+json
404Not Found-

POST /v1/alerts/bundle/verify

PropertyValue
Operation IDVerifyAlertBundleByQuery
TagsStellaOps.Findings.WebService
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
alert_idqueryyes

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json
404Not Found-

POST /v1/alerts/decisions

PropertyValue
Operation IDRecordDecisionByQuery
TagsStellaOps.Findings.WebService
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
alert_idqueryyes

Responses:

StatusDescriptionContent types
201Created-
400Bad Requestapplication/problem+json
404Not Found-

GET /v1/alerts/summary

PropertyValue
Operation IDGetAlertByQuery
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
alert_idqueryyes

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json
404Not Found-

GET /v1/alerts/{alertId}

PropertyValue
Operation IDGetAlert
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
alertIdpathyes

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json
404Not Found-

GET /v1/alerts/{alertId}/audit

PropertyValue
Operation IDGetAlertAudit
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
alertIdpathyes

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json
404Not Found-

GET /v1/alerts/{alertId}/bundle

PropertyValue
Operation IDDownloadAlertBundle
TagsStellaOps.Findings.WebService
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
alertIdpathyes

Responses:

StatusDescriptionContent types
200OKapplication/gzip
400Bad Requestapplication/problem+json
404Not Found-

POST /v1/alerts/{alertId}/bundle/verify

PropertyValue
Operation IDVerifyAlertBundle
TagsStellaOps.Findings.WebService
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
alertIdpathyes

Responses:

StatusDescriptionContent types
200OK-
400Bad Requestapplication/problem+json
404Not Found-

POST /v1/alerts/{alertId}/decisions

PropertyValue
Operation IDRecordDecision
TagsStellaOps.Findings.WebService
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
alertIdpathyes

Responses:

StatusDescriptionContent types
201Created-
400Bad Requestapplication/problem+json
404Not Found-

POST /v1/audit-bundles

PropertyValue
Operation IDVulnExplorer_CreateAuditBundle
TagsVulnExplorer
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OK-

GET /v1/evidence-subgraph/{vulnId}

PropertyValue
Operation IDVulnExplorer_GetEvidenceSubgraph
TagsVulnExplorer
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
vulnIdpathyes

Responses:

StatusDescriptionContent types
200OK-

POST /v1/fix-verifications

PropertyValue
Operation IDVulnExplorer_CreateFixVerification
TagsVulnExplorer
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OK-

PATCH /v1/fix-verifications/{cveId}

PropertyValue
Operation IDVulnExplorer_UpdateFixVerification
TagsVulnExplorer
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
cveIdpathyes

Responses:

StatusDescriptionContent types
200OK-

GET /v1/vex-decisions

PropertyValue
Operation IDVulnExplorer_ListVexDecisions
TagsVulnExplorer
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
continuationTokenqueryno
limitqueryno
pageSizequeryno
pageTokenqueryno
statusqueryno
subjectqueryno
subjectNamequeryno
vulnerabilityIdqueryno

Responses:

StatusDescriptionContent types
200OK-

POST /v1/vex-decisions

PropertyValue
Operation IDVulnExplorer_CreateVexDecision
TagsVulnExplorer
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
x-stella-user-idheaderno
x-stella-user-nameheaderno

Responses:

StatusDescriptionContent types
200OK-

GET /v1/vex-decisions/{id}

PropertyValue
Operation IDVulnExplorer_GetVexDecision
TagsVulnExplorer
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OK-

PATCH /v1/vex-decisions/{id}

PropertyValue
Operation IDVulnExplorer_UpdateVexDecision
TagsVulnExplorer
AuthNot declared
Request bodyapplication/json

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OK-

GET /v1/vulns

PropertyValue
Operation IDVulnExplorer_ListVulns
TagsVulnExplorer
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
cvequeryno
exploitabilityqueryno
fixAvailablequeryno
pageSizequeryno
pageTokenqueryno
policyVersionqueryno
purlqueryno
severityqueryno

Responses:

StatusDescriptionContent types
200OK-

GET /v1/vulns/{id}

PropertyValue
Operation IDVulnExplorer_GetVuln
TagsVulnExplorer
AuthNot declared
Request body-

Parameters:

NameInRequiredDescription
idpathyes

Responses:

StatusDescriptionContent types
200OK-

POST /vuln/ledger/events

PropertyValue
Operation IDLedgerEventAppend
TagsLedgerEventIngestEndpoints
AuthNot declared
Request bodyapplication/json

Responses:

StatusDescriptionContent types
200OK-
201Created-
400Bad Requestapplication/problem+json
409Conflictapplication/problem+json
500Internal Server Errorapplication/problem+json