Skip to main content
POST

Authorizations

Authorization
string
header
required

JWT issued by the identity provider. A producer calls with a service credential issued for the tenant it sends facts for; a reader calls with a user token or a service credential. The tenant is always taken from the token, never from the request path, query or body.

Body

application/json
data
any
required

Payload validated against the contract's JSON Schema.

Example:
envelopeVersion
integer<int64>
required

Envelope format version. Always 1.

Example:

1

factId
string
required

Identifier the producer assigns to this occurrence (UUID). Redelivering the same content with the same factId is an idempotent replay.

Example:

"01a15493-ba10-7b21-9d44-3c1f8e2a9b01"

namespace
string
required

Namespace the contract was registered under.

Example:

"acme.checkout"

occurredAt
string<date-time>
required

When the business event happened, as an RFC 3339 timestamp; it is stored and returned in UTC.

Example:

"2026-10-19T14:32:10Z"

producer
string
required

Producer that emits the fact, as declared in the contract.

Example:

"checkout-api"

schemaVersion
string
required

Contract version (semantic version) the payload follows. The version must be active.

Example:

"1.0.0"

subject
object
required

Business entity the fact is about.

type
string
required

Fact type, as declared in the contract.

Example:

"checkout.order_placed"

references
object[] | null

Typed references that correlate this fact with facts of other producers into one flow. Omit it only when the contract declares no required reference.

Response

Duplicate delivery: this producer and factId are already stored with the same content. Nothing changed; the body carries duplicate: true.

duplicate
boolean
required

True when this delivery repeated a stored fact with the same content: an idempotent replay that stored nothing new.

factId
string
required

Identifier the producer assigned to the fact.

flowAggregationId
string
required

Current id of the flow the fact belongs to, assigned by the server and opaque.

ingestedAt
string<date-time>
required

When System Facts first stored the fact; a replay returns the original time. RFC 3339, UTC.

producer
string
required

Producer that sent the fact.