Api / Memory / Entries

PATCH/v1/memory/entries/:id

Auth: tenant — Status: stable

Update any subset of {title, content, source, tags, type, artifact_id}. created_at is immutable; updated_at is bumped on a successful change.

Active rows only. Invalidated entries (those with a non-null valid_to) cannot be modified through this endpoint — historical records are immutable. To correct an invalidated entry, hard-delete it (DELETE/v1/memory/entries/:id) and re-create. See Structured memory → Temporal model.

Request

Path paramTypeDescription
idintEntry id.

Body

Any subset of:

FieldTypeConstraint
titlestring1–200 chars.
contentstring≤ 64 KiB.
sourcestring≤ 200 chars.
tagsarray<string>0–32 tags, each 1–64 chars.
typestring (enum)One of the six entry types.
artifact_idint | nullSet / clear the artifact link. null clears; positive int sets (validated against tenant catalog).
curl -X PATCH \
  -H "Authorization: Bearer atr_…" \
  -H "Content-Type: application/json" \
  -d '{"title":"Findings report (revised)"}' \
  http://arbiter.example.com/v1/memory/entries/42

Response

200 OK

The updated Entry (hydrated artifact block if linked).

Failure modes

StatusWhenBody
400Invalid JSON; field constraint violated; artifact_id doesn't exist for this tenant.{"error": "..."}
401Missing / invalid bearer.{"error": "..."}
404Id not found, belongs to another tenant, or has been invalidated.{"error": "entry not found"}

See also