Skip to main content
POST
Assert a fact

Authorizations

Authorization
string
header
required

Organization-scoped Auth0 user access token issued to an approved first-party client or exchanged by a trusted OBO resource server.

Body

application/json

Immutable typed assertion; an idempotency key is valid only with a stable observedAt timestamp.

definitionId
string
required

Opaque Arbol resource identifier; the endpoint and tenant-scoped lookup determine its resource type.

Maximum string length: 64
Pattern: ^[a-z][a-z0-9]{1,15}_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Example:

"agt_018f47a2-4f4d-7d61-9e2c-1d7b8e9a0c31"

subject
object
required
value
object
required
confidence
number | null
Required range: 0 <= x <= 1
idempotencyKey
string
Required string length: 1 - 200
observedAt
string<date-time>

ISO 8601 timestamp with an explicit UTC offset.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
Example:

"2026-08-29T14:30:00Z"

reason
string | null
Maximum string length: 2000

Response

OK

Recorded immutable assertion with its Definition snapshot, provenance, and review state.

confidence
number | null
required
Required range: 0 <= x <= 1
definition
object
required
id
string
required

Opaque Arbol resource identifier; the endpoint and tenant-scoped lookup determine its resource type.

Maximum string length: 64
Pattern: ^[a-z][a-z0-9]{1,15}_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Example:

"agt_018f47a2-4f4d-7d61-9e2c-1d7b8e9a0c31"

observedAt
string<date-time>
required

ISO 8601 timestamp with an explicit UTC offset.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
Example:

"2026-08-29T14:30:00Z"

reason
string | null
required
Maximum string length: 2000
recordedAt
string<date-time>
required

ISO 8601 timestamp with an explicit UTC offset.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
Example:

"2026-08-29T14:30:00Z"

setBy
enum<string>
required

Origin category recorded for a Fact assertion.

Available options:
ai,
user,
system,
import,
rule
Example:

"user"

subject
object
required
value
Fact value · object
required

Typed value of an immutable Fact assertion; unset is an explicit tombstone.

verificationStatus
enum<string>
required

Human review state of a Fact assertion.

Available options:
unreviewed,
confirmed,
rejected
Example:

"unreviewed"