Skip to main content
POST
Supersede a belief
Record that a belief was superseded (old -> superseded_by -> new). The successor is either a NEW node created from content (Voyage-embedded) or an already-owned node named by nodeId. Authority transfers per the internal adaptive semantics: the successor inherits max(old, new) and the superseded node decays by 1 - confidence. Both nodes must be owned by the effective subject; anything else is 404. This is the default “wrong belief” verb (forget = erasure only).

Authorization

This route requires the graph:write scope. A key carrying memory:forget or write also qualifies. A missing or invalid credential returns 401 authentication_error. A valid credential without the scope returns 403 permission_denied, and the problem body names the exact scope required.

Headers

These are request conventions the contract does not declare as parameters, so they do not appear in the schema tables below.

Success responses

Errors

Beyond the shared statuses, this route can answer with idempotency_in_flight, idempotency_key_reuse. Every problem body names its own code, and the type URI always resolves to the matching page. Every error is an RFC 9457 application/problem+json body carrying a stable code, a requestId, and a suggestedAction where Exo has one. See Errors.

Notes

  • Exo never overwrites a belief. Supersede keeps the old node, links the new one to it, and transfers authority. The trail is readable afterwards at GET /v1/graph/nodes/{node_id}/history.
  • Give it either an existing nodeId or new content. With content a successor node is created for you and created comes back true.
  • This is how you close a contradiction. There is no resolve route: supersede the side that lost.

Authorizations

X-Exo-API-Key
string
header
required

An Exo API key (exo_...) sent as the X-Exo-API-Key header.

Path Parameters

node_id
string
required

The knowledge-graph node id.

Body

application/json

Body for POST /v1/graph/nodes/{id}/supersede.

Exactly one of content (create a successor node from text) or nodeId (link an already-owned node as the successor) must be set. confidence in [0,1] drives the authority transfer (the superseded belief decays by 1 - confidence; default 1.0 fully demotes it, matching the internal adaptive supersession semantics).

confidence
number
default:1
content
string | null
Maximum string length: 100000
nodeId
string | null
Maximum string length: 512
reason
string | null
Maximum string length: 4000

Response

Successful Response

Result of a belief supersession.

created
boolean
required
edgeId
string
required
newAuthority
number
required
newNodeId
string
required
oldNodeId
string
required