{"title":"Memory API","slug":"memory","category":"api","summary":"Complete reference for the 22 memory endpoints: store, recall, search, semantic search, sync, audit, and more.","audience":["human","llm"],"tags":["api","memory","crud","search","fts5","semantic"],"difficulty":"intermediate","updated":"2026-06-27","word_count":516,"read_minutes":3,"llm_context":"Auth: Mind Key (Authorization: Bearer mk_xxx OR ?key=mk_xxx)\nALWAYS call GET /memory/recall at session start.\nPOST /memory with same category+key updates the existing memory.\nCategories: identity, preference, fact, project, skill, mistake, context, note, credentials\nPriorities: low, normal, high, critical\nSearch: GET /memory/search?q=... (FTS5 syntax: AND, OR, \"phrases\", prefix*)\nSemantic: GET /memory/semantic-search?q=... (slower, conceptual)\nSync: GET /memory/diff?since=TIMESTAMP (incremental sync)\nExport: GET /memory/mind-export (full JSON dump)\n","lang":"en","translated":true,"requested_lang":"en","content_markdown":"\n# Memory API\n\nThe Memory API is the heart of Synapse. It provides 22 endpoints for storing,\nretrieving, searching, and managing structured memories. All endpoints require\na Mind Key for authentication.\n\n> [!CRITICAL]\n> **Always call `GET /memory/recall` at the start of every session.** This is\n> the only way to rebuild context from previous sessions.\n\n## Categories\n\nMemories are organized into 8 categories:\n\n| Category | Use Case |\n|----------|----------|\n| `identity` | User name, role, contact info, preferences about self |\n| `preference` | Likes, dislikes, working style, communication prefs |\n| `fact` | Verifiable facts (project details, dates, URLs) |\n| `project` | Project status, milestones, architecture |\n| `skill` | Things the user is good at |\n| `mistake` | Past errors — avoid repeating |\n| `context` | Session-relevant context |\n| `note` | Misc notes |\n\n## Priorities\n\n- `low` — nice to know\n- `normal` — default\n- `high` — important\n- `critical` — must never forget (user identity, legal info)\n\n## Core Endpoints\n\n### GET /memory/recall\n\nReturns ALL memories as LLM-optimized plain text. Call this at every session start.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/memory/recall\n```\n\nResponse (text/plain):\n\n```\nMind: Michael's Mind\nMemories: 12 total (10 verified)\n\n[001] identity (CRITICAL)\n  user_name\n  Michael Schäfer\n  Tags: person, identity\n\n...\n```\n\n### POST /memory\n\nStore a new memory or update an existing one (same category + key = update).\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/memory \\\n  -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"category\": \"fact\",\n    \"key\": \"user_name\",\n    \"content\": \"The user's name is Michael Schäfer\",\n    \"tags\": [\"person\", \"identity\"],\n    \"priority\": \"critical\"\n  }'\n```\n\nResponse: `{ \"id\": \"mem_001\", \"status\": \"stored\" }`\n\n### GET /memory\n\nList memories with optional filters.\n\n```bash\n# All memories (JSON)\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/memory?limit=50&offset=0\"\n\n# Filter by category\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/memory?category=project\"\n\n# Filter by tag\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/memory?tag=docker\"\n```\n\n### PUT /memory/:id\n\nUpdate a specific memory by ID.\n\n```bash\ncurl -X PUT https://synapse.schaefer.zone/memory/mem_001 \\\n  -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"content\": \"Updated content\", \"priority\": \"high\"}'\n```\n\n### DELETE /memory/:id\n\nDelete a single memory.\n\n```bash\ncurl -X DELETE -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/memory/mem_001\n```\n\n## Search Endpoints\n\n### GET /memory/search\n\nFull-text search using FTS5.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/memory/search?q=docker+swarm\"\n```\n\nFTS5 syntax:\n\n- Multiple words = AND: `docker swarm`\n- Phrase: `\"docker swarm\"`\n- Prefix: `docker*`\n- Boolean: `docker OR kubernetes`\n- Exclude: `docker -swarm`\n\n### GET /memory/semantic-search\n\nConceptual search using embeddings (slower than FTS5 but understands meaning).\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/memory/semantic-search?q=container+orchestration\"\n```\n\nReturns memories that are semantically similar to the query, even if no keywords\nmatch. Useful for \"find memories about X\" where X is described differently.\n\n### GET /memory/by-tag\n\nList memories by tag.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/memory/by-tag?tag=docker\"\n```\n\n### GET /memory/related/:id\n\nFind memories related to a specific memory (via shared tags).\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/memory/related/mem_001\n```\n\n## Sync & Diff\n\n### GET /memory/diff\n\nIncremental sync — returns memories changed since a timestamp.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/memory/diff?since=1700000000\"\n```\n\nResponse: `{ \"added\": [...], \"updated\": [...], \"deleted\": [...] }`\n\n### POST /memory/sync\n\nApply a diff from another instance (for self-hosted sync).\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/memory/sync \\\n  -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"added\": [...], \"updated\": [...], \"deleted\": [...]}'\n```\n\n## Bulk Operations\n\n### POST /memory/bulk-delete\n\nDelete multiple memories by ID.\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/memory/bulk-delete \\\n  -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"ids\": [\"mem_001\", \"mem_002\", \"mem_003\"]}'\n```\n\n### POST /memory/embed-batch\n\nGenerate embeddings for memories that don't have them yet (for semantic search).\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/memory/embed-batch \\\n  -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"limit\": 100}'\n```\n\n### GET /memory/embed-batch-status\n\nCheck embedding generation progress.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/memory/embed-batch-status\n```\n\n## Verification\n\nMemories have a `verified` flag. Agent-stored memories default to unverified\n(`source=agent`); human-stored memories are verified (`source=user`).\n\n### POST /memory/verify\n\nMark a memory as verified (requires JWT, not Mind Key).\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/memory/mem_001/verify \\\n  -H \"Authorization: Bearer YOUR_JWT\"\n```\n\n### POST /memory/unverify\n\nMark a memory as unverified (requires JWT).\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/memory/mem_001/unverify \\\n  -H \"Authorization: Bearer YOUR_JWT\"\n```\n\n### GET /memory/unverified\n\nList memories awaiting human verification.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/memory/unverified?limit=100\"\n```\n\n## Statistics & Audit\n\n### GET /memory/stats\n\nAggregate statistics for the current mind.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/memory/stats\n```\n\nReturns: `{ \"total\": 12, \"verified\": 10, \"unverified\": 2, \"by_category\": {...}, \"by_priority\": {...} }`\n\n### GET /memory/audit\n\nAudit log of all state-changing operations.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/memory/audit?limit=100&action=store\"\n```\n\n### GET /memory/contradictions\n\nDetect potential contradictions in stored memories.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/memory/contradictions\n```\n\n### GET /memory/expiring\n\nList memories with expiry dates approaching.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     \"https://synapse.schaefer.zone/memory/expiring?within=7d\"\n```\n\n## Health & Export\n\n### GET /memory/health\n\nQuick health check for memory system.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/memory/health\n```\n\n### GET /memory/mind-export\n\nFull JSON export of all memories (for backup).\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/memory/mind-export > backup.json\n```\n\n### POST /memory/compact\n\nCompact similar memories (auto-summarization).\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/memory/compact \\\n  -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"dry_run\": true}'\n```\n\n## Next Steps\n\n- [Quick Start for LLMs](/docs/getting-started/quick-start-llm)\n- [Memory Best Practices](/docs/guides/memory-best-practices)\n- [FTS5 Search](/docs/concepts/fts5-search)\n- [Semantic Search](/docs/concepts/semantic-search)\n","content_html":"<h1>Memory API</h1>\n<p>The Memory API is the heart of Synapse. It provides 22 endpoints for storing,\nretrieving, searching, and managing structured memories. All endpoints require\na Mind Key for authentication.</p>\n<div class=\"callout callout-critical\">**Always call `GET /memory/recall` at the start of every session.** This is\nthe only way to rebuild context from previous sessions.</div><h2>Categories</h2>\n<p>Memories are organized into 8 categories:</p>\n<table>\n<thead>\n<tr>\n<th>Category</th>\n<th>Use Case</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>identity</code></td>\n<td>User name, role, contact info, preferences about self</td>\n</tr>\n<tr>\n<td><code>preference</code></td>\n<td>Likes, dislikes, working style, communication prefs</td>\n</tr>\n<tr>\n<td><code>fact</code></td>\n<td>Verifiable facts (project details, dates, URLs)</td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>Project status, milestones, architecture</td>\n</tr>\n<tr>\n<td><code>skill</code></td>\n<td>Things the user is good at</td>\n</tr>\n<tr>\n<td><code>mistake</code></td>\n<td>Past errors — avoid repeating</td>\n</tr>\n<tr>\n<td><code>context</code></td>\n<td>Session-relevant context</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>Misc notes</td>\n</tr>\n</tbody></table>\n<h2>Priorities</h2>\n<ul>\n<li><code>low</code> — nice to know</li>\n<li><code>normal</code> — default</li>\n<li><code>high</code> — important</li>\n<li><code>critical</code> — must never forget (user identity, legal info)</li>\n</ul>\n<h2>Core Endpoints</h2>\n<h3>GET /memory/recall</h3>\n<p>Returns ALL memories as LLM-optimized plain text. Call this at every session start.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/memory/recall</code></pre><p>Response (text/plain):</p>\n<pre><code class=\"hljs language-plaintext\">Mind: Michael&#x27;s Mind\nMemories: 12 total (10 verified)\n\n[001] identity (CRITICAL)\n  user_name\n  Michael Schäfer\n  Tags: person, identity\n\n...</code></pre><h3>POST /memory</h3>\n<p>Store a new memory or update an existing one (same category + key = update).</p>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/memory \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{\n    &quot;category&quot;: &quot;fact&quot;,\n    &quot;key&quot;: &quot;user_name&quot;,\n    &quot;content&quot;: &quot;The user&#x27;</span>s name is Michael Schäfer<span class=\"hljs-string\">&quot;,\n    &quot;</span>tags<span class=\"hljs-string\">&quot;: [&quot;</span>person<span class=\"hljs-string\">&quot;, &quot;</span>identity<span class=\"hljs-string\">&quot;],\n    &quot;</span>priority<span class=\"hljs-string\">&quot;: &quot;</span>critical<span class=\"hljs-string\">&quot;\n  }&#x27;</span></code></pre><p>Response: <code>{ &quot;id&quot;: &quot;mem_001&quot;, &quot;status&quot;: &quot;stored&quot; }</code></p>\n<h3>GET /memory</h3>\n<p>List memories with optional filters.</p>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># All memories (JSON)</span>\ncurl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory?limit=50&amp;offset=0&quot;</span>\n\n<span class=\"hljs-comment\"># Filter by category</span>\ncurl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory?category=project&quot;</span>\n\n<span class=\"hljs-comment\"># Filter by tag</span>\ncurl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory?tag=docker&quot;</span></code></pre><h3>PUT /memory/:id</h3>\n<p>Update a specific memory by ID.</p>\n<pre><code class=\"hljs language-bash\">curl -X PUT https://synapse.schaefer.zone/memory/mem_001 \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{&quot;content&quot;: &quot;Updated content&quot;, &quot;priority&quot;: &quot;high&quot;}&#x27;</span></code></pre><h3>DELETE /memory/:id</h3>\n<p>Delete a single memory.</p>\n<pre><code class=\"hljs language-bash\">curl -X DELETE -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/memory/mem_001</code></pre><h2>Search Endpoints</h2>\n<h3>GET /memory/search</h3>\n<p>Full-text search using FTS5.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory/search?q=docker+swarm&quot;</span></code></pre><p>FTS5 syntax:</p>\n<ul>\n<li>Multiple words = AND: <code>docker swarm</code></li>\n<li>Phrase: <code>&quot;docker swarm&quot;</code></li>\n<li>Prefix: <code>docker*</code></li>\n<li>Boolean: <code>docker OR kubernetes</code></li>\n<li>Exclude: <code>docker -swarm</code></li>\n</ul>\n<h3>GET /memory/semantic-search</h3>\n<p>Conceptual search using embeddings (slower than FTS5 but understands meaning).</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory/semantic-search?q=container+orchestration&quot;</span></code></pre><p>Returns memories that are semantically similar to the query, even if no keywords\nmatch. Useful for &quot;find memories about X&quot; where X is described differently.</p>\n<h3>GET /memory/by-tag</h3>\n<p>List memories by tag.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory/by-tag?tag=docker&quot;</span></code></pre><h3>GET /memory/related/:id</h3>\n<p>Find memories related to a specific memory (via shared tags).</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/memory/related/mem_001</code></pre><h2>Sync &amp; Diff</h2>\n<h3>GET /memory/diff</h3>\n<p>Incremental sync — returns memories changed since a timestamp.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory/diff?since=1700000000&quot;</span></code></pre><p>Response: <code>{ &quot;added&quot;: [...], &quot;updated&quot;: [...], &quot;deleted&quot;: [...] }</code></p>\n<h3>POST /memory/sync</h3>\n<p>Apply a diff from another instance (for self-hosted sync).</p>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/memory/sync \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{&quot;added&quot;: [...], &quot;updated&quot;: [...], &quot;deleted&quot;: [...]}&#x27;</span></code></pre><h2>Bulk Operations</h2>\n<h3>POST /memory/bulk-delete</h3>\n<p>Delete multiple memories by ID.</p>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/memory/bulk-delete \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{&quot;ids&quot;: [&quot;mem_001&quot;, &quot;mem_002&quot;, &quot;mem_003&quot;]}&#x27;</span></code></pre><h3>POST /memory/embed-batch</h3>\n<p>Generate embeddings for memories that don&#39;t have them yet (for semantic search).</p>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/memory/embed-batch \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{&quot;limit&quot;: 100}&#x27;</span></code></pre><h3>GET /memory/embed-batch-status</h3>\n<p>Check embedding generation progress.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/memory/embed-batch-status</code></pre><h2>Verification</h2>\n<p>Memories have a <code>verified</code> flag. Agent-stored memories default to unverified\n(<code>source=agent</code>); human-stored memories are verified (<code>source=user</code>).</p>\n<h3>POST /memory/verify</h3>\n<p>Mark a memory as verified (requires JWT, not Mind Key).</p>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/memory/mem_001/verify \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_JWT&quot;</span></code></pre><h3>POST /memory/unverify</h3>\n<p>Mark a memory as unverified (requires JWT).</p>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/memory/mem_001/unverify \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_JWT&quot;</span></code></pre><h3>GET /memory/unverified</h3>\n<p>List memories awaiting human verification.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory/unverified?limit=100&quot;</span></code></pre><h2>Statistics &amp; Audit</h2>\n<h3>GET /memory/stats</h3>\n<p>Aggregate statistics for the current mind.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/memory/stats</code></pre><p>Returns: <code>{ &quot;total&quot;: 12, &quot;verified&quot;: 10, &quot;unverified&quot;: 2, &quot;by_category&quot;: {...}, &quot;by_priority&quot;: {...} }</code></p>\n<h3>GET /memory/audit</h3>\n<p>Audit log of all state-changing operations.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory/audit?limit=100&amp;action=store&quot;</span></code></pre><h3>GET /memory/contradictions</h3>\n<p>Detect potential contradictions in stored memories.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/memory/contradictions</code></pre><h3>GET /memory/expiring</h3>\n<p>List memories with expiry dates approaching.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory/expiring?within=7d&quot;</span></code></pre><h2>Health &amp; Export</h2>\n<h3>GET /memory/health</h3>\n<p>Quick health check for memory system.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/memory/health</code></pre><h3>GET /memory/mind-export</h3>\n<p>Full JSON export of all memories (for backup).</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/memory/mind-export &gt; backup.json</code></pre><h3>POST /memory/compact</h3>\n<p>Compact similar memories (auto-summarization).</p>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/memory/compact \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{&quot;dry_run&quot;: true}&#x27;</span></code></pre><h2>Next Steps</h2>\n<ul>\n<li><a href=\"/docs/getting-started/quick-start-llm\">Quick Start for LLMs</a></li>\n<li><a href=\"/docs/guides/memory-best-practices\">Memory Best Practices</a></li>\n<li><a href=\"/docs/concepts/fts5-search\">FTS5 Search</a></li>\n<li><a href=\"/docs/concepts/semantic-search\">Semantic Search</a></li>\n</ul>\n","urls":{"html":"/docs/api/memory","text":"/docs/api/memory?format=text","json":"/docs/api/memory?format=json","llm":"/docs/api/memory?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}