DELETE /v1/memories/{id}
Delete a memory by ID. Supports two deletion modes:
- Soft delete (default) — marks the memory as
deprecated. It is immediately excluded from all search results but remains in the database. Reversible via the dashboard. - Hard delete (
?hard=true) — permanently removes the memory from all stores: the relational database, vector index, search cache, and archive. Irreversible. Use for GDPR erasure requests.
memory:delete
Request
Soft delete
Hard delete (GDPR erasure)
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string (UUID) | yes | The memory’s unique identifier. |
Query parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
hard | boolean | no | false | Set to true for permanent erasure. Irreversible. |
Response
204 No Content
Empty body. The memory has been deleted (or flagged for deletion).
Soft delete vs hard delete
| Soft delete | Hard delete | |
|---|---|---|
| Default | Yes (hard omitted or false) | No — must pass ?hard=true |
| Effect on search | Immediately excluded | Permanently removed |
| Data retained | Yes — status set to deprecated | No — removed from all stores |
| Reversible | Yes — via dashboard | No — irreversible |
| Use case | Standard deletion, debugging | GDPR right-to-erasure requests |
Examples
- Python
- TypeScript
Errors
| Status | Code | Description |
|---|---|---|
401 | unauthorized | Missing or invalid API key |
401 | forbidden | API key lacks memory:delete scope |
404 | not_found | Memory does not exist, has already been hard-deleted, or belongs to a different organization |
429 | rate_limited | Rate limit exceeded |
500 | internal_error | Server error |