CortexDB Docs
API Reference

GET /v1/beliefs

Query the Beliefs layer — confidence-weighted, evidence-backed claims aggregated from facts.

GET
/v1/beliefs
AuthorizationBearer <token>

PASETO v4 public token (or deployment gate key). Auth-disabled dev instances accept any caller.

In: header

Query Parameters

scope*string
include_vectors?boolean

Embedding vectors are omitted from responses by default; pass true to include summary_embedding.

Defaultfalse

Response Body

curl -X GET "https://example.com/v1/beliefs?scope=string"
Empty
POST
/v1/beliefs/build
AuthorizationBearer <token>

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"
Empty

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 }. The about filter works (about=ent_Alice → 3) — a notable contrast with the broken facts subject filter.
  • min_confidence / as_of / limit accepted.
  • GET /v1/beliefs/why?belief_id={ belief, support_graph: { nodes, edges }, narrative, narrative_model }. Self-hosted, narrative_model is 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 return summary_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.

On this page