Delete Memory - Mem0
Remove Memories Safely
Deleting memories is how you honor compliance requests, undo bad data, or clean up expired sessions. Mem0 lets you delete a specific memory, a list of IDs, or everything that matches a filter.
Why it matters
- Satisfies user erasure (GDPR/CCPA) without touching the rest of your data.
- Keeps knowledge bases accurate by removing stale or incorrect facts.
- Works for both the managed Platform API and the OSS SDK.
Key terms
- memory_id: Unique ID returned by
add/searchidentifying the record to delete. - batch_delete: API call that removes up to 1000 memories in one request.
- delete_all: Filter-based deletion by user, agent, run, or metadata.
- immutable: Flagged memories that cannot be updated; delete + re-add instead.
How the delete flow works
Choose the scope Decide whether you’re removing a single memory, a list, or everything that matches a filter.
Submit the delete call Call
delete,batch_delete, ordelete_allwith the required IDs or filters.Verify Confirm the response message, then re-run
searchor check the dashboard/logs to ensure the memory is gone.
Delete a single memory (Platform)
Python
from mem0 import MemoryClient
client = MemoryClient(api_key="your-api-key")
memory_id = "your_memory_id"
client.delete(memory_id=memory_id)
JavaScript
import MemoryClient from 'mem0ai';
const client = new MemoryClient({ apiKey: "your-api-key" });
client.delete("your_memory_id")
.then(result => console.log(result))
.catch(error => console.error(error));
You’ll receive a confirmation payload. The dashboard reflects the removal within seconds.
Batch delete multiple memories (Platform)
Python
from mem0 import MemoryClient
client = MemoryClient(api_key="your-api-key")
delete_memories = [
{"memory_id": "id1"},
{"memory_id": "id2"}
]
response = client.batch_delete(delete_memories)
print(response)
JavaScript
import MemoryClient from 'mem0ai';
const client = new MemoryClient({ apiKey: "your-api-key" });
const deleteMemories = [
{ memory_id: "id1" },
{ memory_id: "id2" }
];
client.batchDelete(deleteMemories)
.then(response => console.log('Batch delete response:', response))
.catch(error => console.error(error));
Delete memories by filter (Platform)
Python
from mem0 import MemoryClient
client = MemoryClient(api_key="your-api-key")
# Delete all memories for a specific user
client.delete_all(user_id="alice")
# Delete all memories for a specific agent
client.delete_all(agent_id="support-bot")
# Delete all memories for a specific run
client.delete_all(run_id="session-xyz")
JavaScript
import MemoryClient from 'mem0ai';
const client = new MemoryClient({ apiKey: "your-api-key" });
client.deleteAll({ userId: "alice" })
.then(result => console.log(result))
.catch(error => console.error(error));
You can also filter by other parameters such as:
agent_idrun_idmetadata(as JSON string)
Breaking change:delete_all previously wiped all project memories when called with no filters. It now raises an error if no filters are provided. Use "*" wildcards for intentional bulk deletion (see below).
Wildcard deletes
Setting a filter to "*" deletes all memories for that entity type across the entire project.
Python
from mem0 import MemoryClient
client = MemoryClient(api_key="your-api-key")
# Delete all memories across every user in the project
client.delete_all(user_id="*")
# Delete all memories across every agent in the project
client.delete_all(agent_id="*")
# Full project wipe: all four filters must be explicitly set to "*"
client.delete_all(user_id="*", agent_id="*", app_id="*", run_id="*")
JavaScript
import MemoryClient from 'mem0ai';
const client = new MemoryClient({ apiKey: "your-api-key" });
// Delete all memories across every user in the project
client.deleteAll({ userId: "*" })
.then(result => console.log(result))
.catch(error => console.error(error));
// Full project wipe: all four filters must be explicitly set to "*"
client.deleteAll({ userId: "*", agentId: "*", appId: "*", runId: "*" })
.then(result => console.log(result))
.catch(error => console.error(error));
A full project wipe requires all four filters set to "*". Setting only some to "*" deletes memories only for those entity types, not the entire project.
Delete with Mem0 OSS
Python
from mem0 import Memory
memory = Memory()
memory.delete(memory_id="mem_123")
memory.delete_all(user_id="alice")
TypeScript
import { Memory } from "mem0ai/oss";
const memory = new Memory();
await memory.delete("mem_123");
await memory.deleteAll({ userId: "alice" });
Use cases recap
- Forget a user’s preferences at their request.
- Remove outdated or incorrect facts before they spread.
- Clean up memories after session expiration or retention deadlines.
- Comply with privacy legislation (GDPR, CCPA) and internal policies.
MCP Alternative: With Mem0 MCP, AI agents can delete their own memories when data becomes irrelevant or at user request.
Method comparison
| Method | Use when | IDs required | Filters |
|---|---|---|---|
delete(memory_id) |
You know the exact record | ✔️ | ✖️ |
batch_delete([...]) |
You have a list of IDs to purge | ✔️ | ✖️ |
delete_all(...) |
You need to forget a user/agent/run | ✖️ | ✔️ |
Put it into practice
- Review the Delete Memory API reference, plus Batch Delete and Filtered Delete.
- Pair deletes with the expiration date field to automate retention.
See it live
- Support Inbox with Mem0 demonstrates compliance-driven deletes.
- Data Management tooling shows how deletes fit into broader lifecycle flows.