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

Key terms

How the delete flow works

  1. Choose the scope Decide whether you’re removing a single memory, a list, or everything that matches a filter.

  2. Submit the delete call Call delete, batch_delete, or delete_all with the required IDs or filters.

  3. Verify Confirm the response message, then re-run search or 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:

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

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

See it live