Skip to content

Forget

Forget removes a memory from active use. It will no longer appear in recall results or be accessible through standard queries. Datahike retracts the data — this is a logical delete, not a physical one.

For permanent deletion (GDPR compliance), use evict instead.

POST /forget {memory-id}
┌──────────────────────────────────┐
│ DATAHIKE (Transaction) │
│ 1. Retract memory │
│ 2. Retract relationships │
│ All-or-nothing: COMMIT/ROLLBACK │
└──────────────┬───────────────────┘
┌───────┴───────┐
▼ ▼
ForgetResponse VECTOR STORE
(remove embedding)
DataRecovery
MemoryDatahike history (queryable via as-of)
RelationshipsDatahike history
EmbeddingCan be re-generated from history
PropertyGuarantee
AtomicityDatahike retractions are transactional (all-or-nothing)
IdempotencyForgetting a non-existent memory succeeds with 0 counts
HistoryMemory is preserved in Datahike history, queryable via as-of
ConsistencyMemory will not appear in future recall results

Non-existent memory: Returns success with memories-removed: 0. Intentionally idempotent.

Vector store failure: Logged but doesn’t fail the operation. Orphaned embeddings may exist temporarily. Datahike is the source of truth.

Terminal window
curl -X POST http://localhost:8080/api/v1/forget \
-H "Content-Type: application/json" \
-d '{"memory-id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}'
FieldTypeRequiredDescription
memory-idUUID stringYesThe memory to forget

Response:

{
"memories-removed": 1,
"relationships-removed": 2
}