Look up one recent decision by the decision_id from the API response or
the outcome.produced webhook. The analytics log is bounded and ephemeral: a 404 means ‘rotated out of the recent window or never existed’ — billing truth lives…
GET
the
outcome.produced webhook. The analytics log is bounded and
ephemeral: a 404 means ‘rotated out of the recent window or never
existed’ — billing truth lives in the metering pipeline.
Required scope: read
Path parameters
string
required
Response
DecisionRecord
boolean
required
True when the decision came through
/v1/decisions/batch.boolean
required
string[]
required
Rule ids cited in the proof chain.
number (double)
The confidence the decision reported, in [0, 1]. Stored so calibration can bucket decisions by what they claimed and compare against what actually happened (see
outcome).integer (int64)
required
string
required
approved | denied | refused.string
The
decision_id returned in the API response and carried by the outcome.produced webhook — the correlation key for audits.string[]
Org rules that fired during hydration but were dropped from the proof as unrelated — the audit record of standing-rule noise per decision.
string
Optional client-supplied correlation key (their order id, case id, claim number…). This is what closes the outcome loop from REAL events: a chargeback or override webhook knows the order id, not our
decision_id, so POST /v1/decisions/outcome-by-ref records the outcome by this key. None when the caller didn’t supply one.integer (int64)
required
string[]
Deduped predicate names from a refused decision’s
refusal.missing_facts — the KB coverage gaps that blocked it. Empty for approvals/denials and safety-gated refusals (which carry none).string
The real-world outcome, recorded AFTER the fact via
POST /v1/decisions/{id}/outcome: honored (the decision held up), reversed (e.g. an approved refund was charged back), overridden (a human changed it), or escalated. None until reported. This is the ground truth that turns confidence from a heuristic into a calibrated, measurable number.string
required
The decision query, truncated to 200 chars for memory hygiene.
object
string
sha256:<hex> over the request-scoped policy the decision was evaluated against (see DecisionProof::request_policy_hash) — lets an audit confirm a replay uses the same policy inputs.string (date-time)
required