Skip to content

Get node posture risk score

GET
/api/v1/nodes/{env}/node/{uuid}/posture/score
curl --request GET \
--url https://osctrl.net/api/v1/nodes/example/node/example/posture/score \
--header 'Authorization: <Authorization>'

Returns a security and compliance risk score based on posture data.

env
required
string

Environment name or UUID

uuid
required
string

Node UUID

OK

Media typeapplication/json
object
controls
Array<object>
object
category

Posture category the evidence came from

string
control_id

E.g. “A.8.24” or “CC6.6”

string
description
string
detail

Human-readable explanation

string
framework
string
Allowed values: SOC2 ISO27001
max_score

MaxScore is the risk points this control would contribute if it failed outright (its weight). A passing control still reports this so callers can renormalize the total after excluding controls — e.g. the SPA’s “what if I ignore this check” recompute — without needing the evaluation rules themselves.

integer
score

0 = pass, otherwise earned risk points

integer
severity
string
Allowed values: critical high medium low
status

“pass”, “warn”, “fail”

string
title
string
fail_count
integer
node_uuid
string
pass_count
integer
risk_level

“low”, “medium”, “high”, “critical”

string
timestamp
string
total_score

0-100 normalized, lower is better

integer
warn_count
integer
Example
{
"controls": [
{
"framework": "SOC2",
"severity": "critical"
}
]
}

Unauthorized

Media typeapplication/json
object
code
string
error
string
Examplegenerated
{
"code": "example",
"error": "example"
}

Forbidden

Media typeapplication/json
object
code
string
error
string
Examplegenerated
{
"code": "example",
"error": "example"
}

Not found

Media typeapplication/json
object
code
string
error
string
Examplegenerated
{
"code": "example",
"error": "example"
}

Service unavailable

Media typeapplication/json
object
code
string
error
string
Examplegenerated
{
"code": "example",
"error": "example"
}