Custom Categories
Mem0 automatically tags every memory, but the default labels (travel, sports, music, etc.) may not match the names your app uses. Custom categories let you replace that list so the tags line up with your own wording.Use custom categories when…
- You need Mem0 to tag memories with names your product team already uses.
- You want clean reports or automations that rely on those tags.
- You’re moving from the open-source version and want the same labels here.
Per-request overrides (
custom_categories=... on client.add) are not supported on the managed API yet. Set categories at the project level, then ingest memories as usual.Configure access
- Ensure
MEM0_API_KEYis set in your environment or pass it to the SDK constructor. - If you scope work to a specific organization/project, initialize the client with those identifiers.
How it works
- Default list — Each project starts with 15 broad categories like
travel,sports, andmusic. - Project override — When you call
project.update(custom_categories=[...]), that list replaces the defaults for future memories. - Automatic tags — As new memories come in, Mem0 picks the closest matches from your list and saves them in the
categoriesfield.
Default catalog:
personal_details, family, professional_details, sports, travel, food, music, health, technology, hobbies, fashion, entertainment, milestones, user_preferences, misc.Configure it
1. Set custom categories at the project level
2. Confirm the active catalog
See it in action
Add a memory (uses the project catalog automatically)
Retrieve memories and inspect categories
Sample memory payload
Need ad-hoc labels for a single call? Store them in
metadata until per-request overrides become available.Default categories (fallback)
If you do nothing, memories are tagged with the built-in set below.Verify the feature is working
client.project.get(["custom_categories"])returns the category list you set.client.get_all(filters={"user_id": ...})shows populatedcategorieslists on new memories.- The Mem0 dashboard (Project → Memories) displays the custom labels in the Category column.
Best practices
- Keep category descriptions concise but specific; the classifier uses them to disambiguate.
- Review memories with empty
categoriesto see where you might extend or rename your list. - Stick with project-level overrides until per-request support is released; mixing approaches causes confusion.