Migrate from Open Source to Platform
Move your Mem0 implementation to managed infrastructure with enterprise features.| Scope | Effort | Downtime |
|---|---|---|
| Infrastructure & Code | Low (~30 mins) | None (Parallel run possible) |
Why migrate to Platform?
- Time to Market: Set up in 5 minutes vs 30+ minutes for OSS configuration
- Enterprise Ready: SOC2 Type II compliance, GDPR support, audit logs
- Advanced Features: Webhooks, memory export, analytics dashboard, custom categories
- Multi-tenancy: Organizations, projects, and team management out of the box
- Zero Infrastructure: No vector database, LLM provider, or maintenance overhead
- Enhanced Search: Reranking, keyword expansion, and advanced filters
- Production Grade: Auto-scaling, high availability, dedicated support
Plan
- Sign up: Create an account on Mem0 Platform.
- Get API Key: Navigate to Settings > API Keys and generate a new key.
- Review Usage: Identify where you instantiate
Memoryand where you callsearchorget_all.
Migrate
1. Install or Update SDK
Ensure you have the latest version of the SDK, which supports both OSS and Platform clients.2. Update Initialization
Switch from the localMemory class to the managed MemoryClient.
Open Source (Old)
Platform (New)
Run
client.get_all(filters={"user_id": "test_connection"}) to verify your API key works. It should return an empty list or valid results.3. Update Retrieval Calls (Critical)
| Method | Open Source | Platform |
|---|---|---|
search() | m.search(query, user_id="alex") | client.search(query, filters={"user_id": "alex"}) |
get_all() | m.get_all(user_id="alex") | client.get_all(filters={"user_id": "alex"}) |
add() | m.add(memory, user_id="alex") | client.add(memory, user_id="alex") |
delete() | m.delete(memory_id) | client.delete(memory_id) |
delete_all() | m.delete_all(user_id="alex") | client.delete_all(user_id="alex") |
add() and delete() methods remain unchanged. The update() method is not available in Platform - use delete + add pattern instead.
Search Memories
Search Memories
Get All Memories
Get All Memories
Add Memories
Add Memories
Delete Memories
Delete Memories
Update Memory
Update Memory
Platform-Exclusive Features
The Platform introduces powerful capabilities not available in OSS:Organizations & Multi-tenancy
Organizations & Multi-tenancy
Why it matters: Manage multiple teams and projects with hierarchical access control.
Webhooks for Real-time Events
Webhooks for Real-time Events
Why it matters: Instantly react to memory changes in your application. Build features like notifications, audit logs, or sync with external systems.
Memory Export
Memory Export
Why it matters: Export your data for compliance, analytics, or migration with custom schemas and filters.
Enhanced Search
Enhanced Search
Why it matters: Get better search results with AI-powered reranking and keyword expansion.
Custom Categories
Custom Categories
Why it matters: Use domain-specific categories instead of generic ones for better organization.
Events API for Analytics
Events API for Analytics
Why it matters: Track all memory operations for audit trails, usage analytics, and debugging.
Summary of Changes
| Feature | Open Source | Platform | Action Required |
|---|---|---|---|
| Initialization | Memory.from_config(config) | MemoryClient(api_key) | Replace config object with API key |
| Search Method | m.search(query, user_id="x") | client.search(query, filters={"user_id": "x"}) | Move filtering params into filters dict |
| Get All Method | m.get_all(user_id="x") | client.get_all(filters={"user_id": "x"}) | Move filtering params into filters dict |
| Add Method | m.add(memory, user_id="x") | client.add(memory, user_id="x") | No change |
| Delete Method | m.delete(memory_id) | client.delete(memory_id) | No change |
| Delete All | m.delete_all(user_id="x") | client.delete_all(user_id="x") | No change |
| Update Method | m.update(memory_id, new_memory) | Use delete + add pattern | Replace with delete then add |
| Config | Local vector store + LLM config | Managed cloud infrastructure | Remove local config setup |
Rollback plan
If you encounter issues, you can revert immediately by switching your import back.- Revert Code: Change
MemoryClientback toMemory. - Restore Config: Uncomment your local vector store and LLM configuration.
- Verify: Ensure your local vector database is still running and accessible.
Next Steps
- Platform Dashboard - Monitor usage and manage settings.
- Webhooks Setup - Configure real-time event notifications.
- Organizations & Projects - Set up multi-tenancy for your team.