Skip to main content
POST
Record decision

Authorizations

Authorization
string
header
required

MeshQu API key passed as a bearer token: Authorization: Bearer mqu_…. Mint one in the console (Settings → API keys).

X-MeshQu-Tenant-Id
string
header
required

Tenant UUID for multi-tenant isolation. Required on authenticated routes. A missing or non-UUID value returns 400 MISSING_TENANT_ID or INVALID_TENANT_ID before API-key authentication.

Body

application/json

Request to record a decision with evaluation

Request to record a decision with evaluation

context
object
required

Canonical DecisionContext for policy evaluation

options
object
action
object

Action bound to this decision receipt

actor
object

Actor attribution — who or what made this decision

evidence_manifest_digest
string | null

Evidence manifest digest — null or absent means no evidence is bound

Pattern: ^[0-9a-f]{64}$
evidence_manifest
object | null

Full evidence manifest supplied with the recorded decision.

source
any

Accepted and not read.

Response

Response from record decision endpoint

Response from record decision endpoint

decision
object
required

A recorded decision with full context

is_new
boolean
required

False when this idempotency_key already held an identical request and the decision recorded under it was returned instead of a new one. A key reused with different content is refused with 409 IDEMPOTENCY_KEY_REUSED rather than returning either value.

duration_ms
number
required

Total request duration in milliseconds

shadow_mode
object
required
governance_source
object
required

Attribution of which tenant policies governed this decision

timing
object

Per-phase timing breakdown for the evaluation

actor
object

Actor attribution — who or what made this decision

Optional verification links. Not part of the receipt.

governance_coverage
object

UNSIGNED response-envelope advisory, not a receipt field. Present only when no applicable rule was evaluated. Stripping it does not change the signed payload; treating its absence as permission is a client error.

rule_sources
object

Rule code to the source reference its author recorded. Present only when at least one rule in the governing snapshot carries one. Not part of the signed result: join it to violations[].rule_code or na_rules[].rule_code.