MemorySync
API Reference

Forget Memory

Soft-delete one or more memories. The handler flips retention_status past active, removes the records from every recall path immediately, and queues hard deletion through the retention worker.
DELETE/memory/forget

Authentication

Accepts a JWT bearer token (Authorization: Bearer eyJ…) or an API key (X-API-Key: ms_live_…). API-key callers should send X-Project-ID unless the key is project-locked. Cross-tenant operators must send X-Tenant-ID.

Request body

FieldTypeRequiredDescription
memory_idsinteger[]requiredIds to forget. Caller must own each id.
reasonstringoptionalStored on the audit row.
request.json
{
"memory_ids": [
184213,
184214
],
"reason": "user request"
}

Response

Returns 200 OK with the following body.

FieldTypeRequiredDescription
(array of integers)integer[]optionalIds that were soft-deleted. Ids the caller did not own are silently skipped.
200.json
[
184213,
184214
]

Errors

StatusCodeDescription
400validation_errorBody or query failed schema validation. The error includes the offending field name.
401unauthenticatedMissing or invalid bearer token / API key.
403forbiddenAuthenticated principal lacks the required scope, role, or project access.
404not_foundTarget resource does not exist or is not visible to the calling tenant.
429rate_limitedPer-IP or per-route limit exceeded. Respect the Retry-After header.
500internal_errorUnhandled server error. Quote the request_id when contacting support.

Examples

cURL
curl -X DELETE https://api.memorysync.io/memory/forget \
-H "Authorization: Bearer $MEMORYSYNC_KEY" \
-H "Content-Type: application/json" \
-d '{
"memory_ids": [
184213,
184214
],
"reason": "user request"
}'
javascript
import { MemorySync } from 'memorysync'
const client = new MemorySync({ apiKey: process.env.MEMORYSYNC_KEY })
const result = await client.request({
method: 'DELETE',
path: '/memory/forget',
body: {
"memory_ids": [
184213,
184214
],
"reason": "user request"
},
})
console.log(result)
python
from memorysync import Client
client = Client(api_key=os.environ["MEMORYSYNC_KEY"])
result = client.request(
method="DELETE",
path="/memory/forget",
json={
"memory_ids": [
184213,
184214
],
"reason": "user request"
},
)
print(result)

Behavior & notes

Returns the list of ids that were transitioned. Hard deletion is performed asynchronously by the retention worker; recall is blocked immediately on the soft-delete write.