---
title: "Optimize User Memories"
method: POST
path: "/optimize-memories"
tags: ["Memory"]
---

# Optimize User Memories

`POST /optimize-memories`

Optimize all memories for a given user using the default summarize strategy. This operation combines all memories into a single comprehensive summary, achieving maximum token reduction while preserving all key information. To use a custom model, specify the model parameter in 'provider:model_id' format (e.g., 'openai:gpt-4o-mini', 'anthropic:claude-3-5-sonnet-20241022'). If not specified, uses MemoryManager's default model (gpt-4o). Set apply=false to preview optimization results without saving to database.

## Query parameters

- `db_id` string, nullable — Database ID to use for optimization
- `table` string, nullable — Table to use for optimization

## Request body

- OptimizeMemoriesRequest — Schema for memory optimization request
  - `user_id` string, required — User ID to optimize memories for
  - `model` string, nullable — Model to use for optimization in format 'provider:model_id' (e.g., 'openai:gpt-4o-mini', 'anthropic:claude-3-5-sonnet-20241022', 'google:gemini-2.0-flash-exp'). If not specified, uses MemoryManager's default model (gpt-4o).
  - `apply` boolean — If True, apply optimization changes to database. If False, return preview only without saving.

## Response `200`

Memories optimized successfully

- OptimizeMemoriesResponse — Schema for memory optimization response
  - `memories` UserMemorySchema[], required — List of optimized memory objects
    - `memory_id` string, required — Unique identifier for the memory
    - `memory` string, required — Memory content text
    - `topics` string[], nullable — Topics or tags associated with the memory
    - `agent_id` string, nullable — Agent ID associated with this memory
    - `team_id` string, nullable — Team ID associated with this memory
    - `user_id` string, nullable — User ID who owns this memory
    - `updated_at` string, date-time, nullable — Timestamp when memory was last updated
  - `memories_before` integer, required — Number of memories before optimization
  - `memories_after` integer, required — Number of memories after optimization
  - `tokens_before` integer, required — Token count before optimization
  - `tokens_after` integer, required — Token count after optimization
  - `tokens_saved` integer, required — Number of tokens saved through optimization
  - `reduction_percentage` number, required — Percentage of token reduction achieved

## Other responses

- `400` — Bad request - User ID is required or invalid model string format
- `401` — Unauthorized
- `404` — No memories found for user
- `422` — Validation Error
- `500` — Failed to optimize memories

---

[API](https://skmtc.net/agno/apis/agno-api-reference.md) · [All operations](https://skmtc.net/agno/apis/agno-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/agno/agno-api-reference/revisions/5f6149d395d0/schema)
