GET /v1/beliefs
Query the Beliefs layer — confidence-weighted, evidence-backed claims aggregated from facts.
Authorization
bearer PASETO v4 public token (or deployment gate key). Auth-disabled dev instances accept any caller.
In: header
Query Parameters
Embedding vectors are omitted from responses by default; pass true to include summary_embedding.
falseResponse Body
curl -X GET "https://example.com/v1/beliefs?scope=string"Authorization
bearer PASETO v4 public token (or deployment gate key). Auth-disabled dev instances accept any caller.
In: header
Response Body
curl -X POST "https://example.com/v1/beliefs/build"Beliefs are empty without enrichment
The Beliefs layer is derived from Facts and is empty on a content-only self-hosted instance. Configure enrichment to populate it. See Self-hosting defaults.
Belief item shape
Real item shape — claim is a triple, confidence_interval is an object
A belief is:
{
"id": "belief_01HX...",
"claim": {
"subject": { "type": "entity", "id": "ent_acme", "name": "Acme" },
"predicate": "is_likely_to_renew",
"object": { "type": "literal", "datatype": "boolean", "value": "true" }
},
"confidence": 0.61,
"confidence_interval": { "lower": 0.48, "upper": 0.74, "method": "wilson", "level": 0.9 },
"supports": [{ "type": "fact", "id": "fact_01HX...", "weight": 0.3, "polarity": "positive" }],
"stance": "supported",
"revision_count": 2,
"revision_policy": { "trigger": "...", "min_evidence_delta": 0.1, "cooldown": "...", "max_revisions_per_hour": 4 },
"supporting_evidence_redacted": false
}Key corrections from the v1 docs: id (not belief_id); no about field — the subject is
inside claim.subject; claim is an object (a triple), not a string; confidence_interval is
an object { lower, upper, method, level }, not a 2-array; supports is an array of objects
{ type, id, weight, polarity }, not string ids.
The stance value is 'supported'
Every live belief carried stance: "supported" — a value not in the v1 docs' enum (supports,
likely_true, …). Treat supported as the emitted value.
Filters and sub-endpoints
- Envelope:
{ items, next_cursor, has_more }. Theaboutfilter works (about=ent_Alice→ 3) — a notable contrast with the broken factssubjectfilter. min_confidence/as_of/limitaccepted.GET /v1/beliefs/why?belief_id=→{ belief, support_graph: { nodes, edges }, narrative, narrative_model }. Self-hosted,narrative_modelis the configured answer LLM (e.g.gpt-4o), not the cloud default.POST /v1/beliefs/build { scope }→{ built: N, items: [...] }forces a build pass and does returnsummary_embedding.
include_vectors is a no-op on the GET
include_vectors=true does not add summary_embedding back on GET /v1/beliefs (it is correctly
omitted by default, but the toggle is a no-op — same as facts). The build
endpoint returns the embedding.