{"title":"User 및 Minds API","slug":"user","category":"api","summary":"계정 관리 — 가입, 로그인, 마인드 생성, 마인드 나열, 마인드 삭제. JWT로 보호됨.","audience":["human","llm"],"tags":["api","user","account","minds","jwt"],"difficulty":"beginner","updated":"2026-06-27","word_count":244,"read_minutes":1,"llm_context":"Auth: JWT (from /register or /login)\nRegister: POST /register { email, password, display_name? } → returns JWT\nLogin: POST /login { email, password } → returns JWT\nCreate mind: POST /minds { name, description? } → returns mind_key (shown once!)\nList minds: GET /minds\nDelete mind: DELETE /minds/:id (irreversible — deletes all memories!)\nJWT expires after 7 days. Mind Key never expires.\nMind Key is shown only once at creation — save it permanently.\n","lang":"ko","translated":true,"requested_lang":"ko","content_markdown":"\n# User 및 Minds API\n\nUser 및 Minds API는 계정 관리를 처리합니다. 이 엔드포인트들은 계정\n수준에서 작동하므로 (마인드 수준이 아님) Mind Key가 아닌 JWT 인증을\n사용합니다.\n\n## 인증 엔드포인트\n\n### POST /register\n\n새 사용자 계정을 생성합니다.\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/register \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"email\": \"you@example.com\",\n    \"password\": \"your-secure-password\",\n    \"display_name\": \"Michael\"\n  }'\n```\n\n응답:\n\n```json\n{\n  \"jwt\": \"eyJhbGci...\",\n  \"user\": {\n    \"id\": \"u_abc123\",\n    \"email\": \"you@example.com\",\n    \"display_name\": \"Michael\",\n    \"created_at\": \"2026-06-27T...\"\n  }\n}\n```\n\n### POST /login\n\n기존 계정에 로그인합니다.\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/login \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"email\": \"you@example.com\",\n    \"password\": \"your-secure-password\"\n  }'\n```\n\n응답: `/register`와 동일.\n\n## 마인드 엔드포인트\n\n### POST /minds\n\n새 마인드를 생성합니다. Mind Key를 반환합니다 — **즉시 저장하십시오**,\n한 번만 표시됩니다.\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/minds \\\n  -H \"Authorization: Bearer YOUR_JWT\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"name\": \"Work Mind\",\n    \"description\": \"Job-related memories\"\n  }'\n```\n\n응답:\n\n```json\n{\n  \"id\": \"m_xyz789\",\n  \"name\": \"Work Mind\",\n  \"description\": \"Job-related memories\",\n  \"mind_key\": \"mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789\",\n  \"created_at\": \"2026-06-27T...\"\n}\n```\n\n> [!CRITICAL]\n> `mind_key`는 한 번만 표시됩니다. 분실하면 복구할 수 없으며 — 마인드를\n> 삭제하고 새로 만들어야 합니다 (저장된 모든 메모리가 손실됨).\n\n### GET /minds\n\n현재 사용자의 모든 마인드를 나열합니다.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_JWT\" \\\n     https://synapse.schaefer.zone/minds\n```\n\n응답:\n\n```json\n{\n  \"minds\": [\n    {\n      \"id\": \"m_xyz789\",\n      \"name\": \"Work Mind\",\n      \"description\": \"Job-related memories\",\n      \"created_at\": \"2026-06-27T...\",\n      \"memory_count\": 142,\n      \"last_activity\": \"2026-06-27T...\"\n    }\n  ]\n}\n```\n\n### DELETE /minds/:id\n\n마인드를 영구적으로 삭제합니다.\n\n```bash\ncurl -X DELETE -H \"Authorization: Bearer YOUR_JWT\" \\\n     https://synapse.schaefer.zone/minds/m_xyz789\n```\n\n> [!WARNING]\n> 마인드 삭제는 **되돌릴 수 없습니다**. 해당 마인드의 모든 메모리, 작업,\n> 채팅 기록, 스크립트가 영구적으로 손실됩니다. 백업이 필요한 경우 먼저\n> `GET /memory/mind-export`로 내보내십시오.\n\n## 다중 마인드 패턴\n\n대부분의 사용자는 컨텍스트를 격리하기 위해 여러 마인드를 사용하면\n이점이 있습니다:\n\n```bash\n# Create minds for different contexts\ncurl -X POST .../minds -d '{\"name\": \"work\", \"description\": \"Job\"}'\n# → mind_key: mk_work...\n\ncurl -X POST .../minds -d '{\"name\": \"personal\", \"description\": \"Personal life\"}'\n# → mind_key: mk_personal...\n\ncurl -X POST .../minds -d '{\"name\": \"project-synapse\", \"description\": \"Synapse dev\"}'\n# → mind_key: mk_synapse...\n```\n\n다른 LLM 세션에서 다른 Mind Key를 사용하여 컨텍스트를 격리하십시오.\n\n## 계정 보안\n\n### 비밀번호 요구 사항\n\n- 최소 6자\n- 최대값 없음 (비밀번호 관리자 사용)\n- bcrypt 해시로 저장 (평문 저장 안 함)\n\n### JWT 만료\n\nJWT는 **7일** 후에 만료됩니다. 만료되면 `/login`을 다시 호출하십시오.\n\n### Mind Key 보안\n\nMind Key는 만료되지 않습니다. Mind Key가 노출된 경우:\n\n1. `POST /minds`로 새 마인드 생성\n2. 새 Mind Key로 LLM 구성 업데이트\n3. `DELETE /minds/:id`로 노출된 마인드 삭제\n\n## 다음 단계\n\n- [Authentication](/docs/getting-started/authentication) — 전체 인증 가이드\n- [Mind Key vs JWT](/docs/getting-started/mind-key-vs-jwt) — 결정 가이드\n- [Sharing API](/docs/api/user) — 다른 사용자와 마인드 공유\n","content_html":"<h1>User 및 Minds API</h1>\n<p>User 및 Minds API는 계정 관리를 처리합니다. 이 엔드포인트들은 계정\n수준에서 작동하므로 (마인드 수준이 아님) Mind Key가 아닌 JWT 인증을\n사용합니다.</p>\n<h2>인증 엔드포인트</h2>\n<h3>POST /register</h3>\n<p>새 사용자 계정을 생성합니다.</p>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/register \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{\n    &quot;email&quot;: &quot;you@example.com&quot;,\n    &quot;password&quot;: &quot;your-secure-password&quot;,\n    &quot;display_name&quot;: &quot;Michael&quot;\n  }&#x27;</span></code></pre><p>응답:</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;jwt&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;eyJhbGci...&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;user&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">{</span>\n    <span class=\"hljs-attr\">&quot;id&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;u_abc123&quot;</span><span class=\"hljs-punctuation\">,</span>\n    <span class=\"hljs-attr\">&quot;email&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;you@example.com&quot;</span><span class=\"hljs-punctuation\">,</span>\n    <span class=\"hljs-attr\">&quot;display_name&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;Michael&quot;</span><span class=\"hljs-punctuation\">,</span>\n    <span class=\"hljs-attr\">&quot;created_at&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;2026-06-27T...&quot;</span>\n  <span class=\"hljs-punctuation\">}</span>\n<span class=\"hljs-punctuation\">}</span></code></pre><h3>POST /login</h3>\n<p>기존 계정에 로그인합니다.</p>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/login \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{\n    &quot;email&quot;: &quot;you@example.com&quot;,\n    &quot;password&quot;: &quot;your-secure-password&quot;\n  }&#x27;</span></code></pre><p>응답: <code>/register</code>와 동일.</p>\n<h2>마인드 엔드포인트</h2>\n<h3>POST /minds</h3>\n<p>새 마인드를 생성합니다. Mind Key를 반환합니다 — <strong>즉시 저장하십시오</strong>,\n한 번만 표시됩니다.</p>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/minds \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_JWT&quot;</span> \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{\n    &quot;name&quot;: &quot;Work Mind&quot;,\n    &quot;description&quot;: &quot;Job-related memories&quot;\n  }&#x27;</span></code></pre><p>응답:</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;id&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;m_xyz789&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;name&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;Work Mind&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;description&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;Job-related memories&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;mind_key&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;created_at&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;2026-06-27T...&quot;</span>\n<span class=\"hljs-punctuation\">}</span></code></pre><div class=\"callout callout-critical\">`mind_key`는 한 번만 표시됩니다. 분실하면 복구할 수 없으며 — 마인드를\n삭제하고 새로 만들어야 합니다 (저장된 모든 메모리가 손실됨).</div><h3>GET /minds</h3>\n<p>현재 사용자의 모든 마인드를 나열합니다.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_JWT&quot;</span> \\\n     https://synapse.schaefer.zone/minds</code></pre><p>응답:</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;minds&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">[</span>\n    <span class=\"hljs-punctuation\">{</span>\n      <span class=\"hljs-attr\">&quot;id&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;m_xyz789&quot;</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;name&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;Work Mind&quot;</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;description&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;Job-related memories&quot;</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;created_at&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;2026-06-27T...&quot;</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;memory_count&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-number\">142</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;last_activity&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;2026-06-27T...&quot;</span>\n    <span class=\"hljs-punctuation\">}</span>\n  <span class=\"hljs-punctuation\">]</span>\n<span class=\"hljs-punctuation\">}</span></code></pre><h3>DELETE /minds/:id</h3>\n<p>마인드를 영구적으로 삭제합니다.</p>\n<pre><code class=\"hljs language-bash\">curl -X DELETE -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_JWT&quot;</span> \\\n     https://synapse.schaefer.zone/minds/m_xyz789</code></pre><div class=\"callout callout-warn\">마인드 삭제는 **되돌릴 수 없습니다**. 해당 마인드의 모든 메모리, 작업,\n채팅 기록, 스크립트가 영구적으로 손실됩니다. 백업이 필요한 경우 먼저\n`GET /memory/mind-export`로 내보내십시오.</div><h2>다중 마인드 패턴</h2>\n<p>대부분의 사용자는 컨텍스트를 격리하기 위해 여러 마인드를 사용하면\n이점이 있습니다:</p>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># Create minds for different contexts</span>\ncurl -X POST .../minds -d <span class=\"hljs-string\">&#x27;{&quot;name&quot;: &quot;work&quot;, &quot;description&quot;: &quot;Job&quot;}&#x27;</span>\n<span class=\"hljs-comment\"># → mind_key: mk_work...</span>\n\ncurl -X POST .../minds -d <span class=\"hljs-string\">&#x27;{&quot;name&quot;: &quot;personal&quot;, &quot;description&quot;: &quot;Personal life&quot;}&#x27;</span>\n<span class=\"hljs-comment\"># → mind_key: mk_personal...</span>\n\ncurl -X POST .../minds -d <span class=\"hljs-string\">&#x27;{&quot;name&quot;: &quot;project-synapse&quot;, &quot;description&quot;: &quot;Synapse dev&quot;}&#x27;</span>\n<span class=\"hljs-comment\"># → mind_key: mk_synapse...</span></code></pre><p>다른 LLM 세션에서 다른 Mind Key를 사용하여 컨텍스트를 격리하십시오.</p>\n<h2>계정 보안</h2>\n<h3>비밀번호 요구 사항</h3>\n<ul>\n<li>최소 6자</li>\n<li>최대값 없음 (비밀번호 관리자 사용)</li>\n<li>bcrypt 해시로 저장 (평문 저장 안 함)</li>\n</ul>\n<h3>JWT 만료</h3>\n<p>JWT는 <strong>7일</strong> 후에 만료됩니다. 만료되면 <code>/login</code>을 다시 호출하십시오.</p>\n<h3>Mind Key 보안</h3>\n<p>Mind Key는 만료되지 않습니다. Mind Key가 노출된 경우:</p>\n<ol>\n<li><code>POST /minds</code>로 새 마인드 생성</li>\n<li>새 Mind Key로 LLM 구성 업데이트</li>\n<li><code>DELETE /minds/:id</code>로 노출된 마인드 삭제</li>\n</ol>\n<h2>다음 단계</h2>\n<ul>\n<li><a href=\"/docs/getting-started/authentication\">Authentication</a> — 전체 인증 가이드</li>\n<li><a href=\"/docs/getting-started/mind-key-vs-jwt\">Mind Key vs JWT</a> — 결정 가이드</li>\n<li><a href=\"/docs/api/user\">Sharing API</a> — 다른 사용자와 마인드 공유</li>\n</ul>\n","urls":{"html":"/docs/api/user","text":"/docs/api/user?format=text","json":"/docs/api/user?format=json","llm":"/docs/api/user?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}