{"title":"API FAQ","slug":"api-faq","category":"faq","summary":"일반적인 API 질문 — 인증, 속도 제한, 오류 처리, 엔드포인트 검색.","audience":["human","llm"],"tags":["faq","api","troubleshooting"],"difficulty":"beginner","updated":"2026-06-27","word_count":336,"read_minutes":2,"lang":"ko","translated":true,"requested_lang":"ko","content_markdown":"\n# API FAQ\n\nSynapse API에 대한 일반적인 질문입니다.\n\n## 인증은 어떻게 합니까?\n\n두 가지 방법이 있습니다:\n\n1. **Mind Key** (데이터 엔드포인트용): `Authorization: Bearer mk_...`\n2. **JWT** (계정 엔드포인트용): `Authorization: Bearer eyJ...`\n\n또는 쿼리 파라미터로 (분당 60회 제한): `?key=mk_...`\n\n[Authentication](/docs/getting-started/authentication)을 참조하십시오.\n\n## Mind Key와 JWT의 차이는 무엇입니까?\n\n- **Mind Key**: 테넌트 범위, 만료 없음, memory/chat/tasks 데이터용\n- **JWT**: 사용자 범위, 7일 만료, 계정/마인드 관리용\n\n[Mind Key vs JWT](/docs/getting-started/mind-key-vs-jwt)를 참조하십시오.\n\n## 왜 401 Unauthorized가 발생합니까?\n\n일반적인 원인:\n\n1. `Authorization` 헤더 누락\n2. 잘못된 Mind Key (`mk_`로 시작하는지 확인)\n3. Mind Key가 필요한 곳에 JWT 사용 (또는 그 반대)\n4. Mind Key가 취소됨\n\n**해결:** 토큰을 확인하십시오. [Authentication](/docs/getting-started/authentication)을 참조하십시오.\n\n## 왜 404 Not Found가 발생합니까?\n\n잘못된 엔드포인트 경로를 사용했습니다. Synapse에는 `GET /endpoints`에\n나열된 경로만 있습니다.\n\n**해결:** `GET /endpoints`를 호출하여 모든 유효한 경로를 확인하십시오. 추측하지 마십시오.\n\n## 왜 429 Too Many Requests가 발생합니까?\n\n속도 제한이 분당 60회인 `?key=` 쿼리 파라미터 인증을 사용 중입니다.\n\n**해결:** `Authorization: Bearer` 헤더로 전환하십시오 (속도 제한 없음).\n\n[속도 제한](/docs/api/rate-limits)을 참조하십시오.\n\n## 모든 엔드포인트를 어떻게 나열합니까?\n\n```bash\ncurl https://synapse.schaefer.zone/endpoints\ncurl https://synapse.schaefer.zone/endpoints?format=text\n```\n\n## 올바른 엔드포인트를 어떻게 찾습니까?\n\n1. `GET /endpoints`에서 기계 판독 가능 목록 확인\n2. `GET /help`에서 전체 API 문서 확인\n3. `GET /docs`에서 문서 시스템 탐색\n4. `GET /openapi.json`에서 OpenAPI 3.0 사양 사용\n\n## POST 대신 GET을 사용할 수 있습니까?\n\n일부 POST 엔드포인트에는 URL 전용 도구를 위한 GET 동등물이 있습니다:\n\n- `POST /memory` ↔ `GET /memory/store?content=...`\n- `POST /mind/task` ↔ `GET /mind/task?title=...`\n- `POST /chat/reply` ↔ `GET /chat/reply?content=...`\n\n사용 가능한 GET 변형은 `GET /endpoints`에서 확인하십시오.\n\n## 오류는 어떻게 처리합니까?\n\n모든 오류는 JSON을 반환합니다:\n\n```json\n{\n  \"statusCode\": 401,\n  \"error\": \"Unauthorized\",\n  \"message\": \"Mind Key fehlt oder ungültig.\",\n  \"docs\": \"https://synapse.schaefer.zone/docs/getting-started/authentication\"\n}\n```\n\n[오류 및 오류 처리](/docs/api/errors)를 참조하십시오.\n\n## 요청 본문 제한은 어떻게 됩니까?\n\n10 MB입니다. 더 큰 페이로드 (예: 파일 업로드)의 경우 multipart 엔드포인트를\n사용하십시오.\n\n## API는 CORS를 지원합니까?\n\n네. 모든 엔드포인트는 다음을 반환합니다:\n\n```\nAccess-Control-Allow-Origin: *\nAccess-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS\nAccess-Control-Allow-Headers: Authorization, Content-Type, X-Synapse-JWT\n```\n\n## SDK가 있습니까?\n\n네:\n\n- **Node.js**: `npm install synapse-memory-sdk`\n- **MCP**: `npx -y synapse-mcp-api@latest`\n\n자세한 내용은 [API 개요](/docs/api/overview)를 참조하십시오.\n\n## 페이지네이션은 어떻게 합니까?\n\n`?limit=` 및 `?offset=`을 사용하십시오:\n\n```bash\ncurl \".../memory?limit=50&offset=100\"\n```\n\n기본 limit: 100. 최대: 500.\n\n## 카테고리나 태그로 메모리를 필터링할 수 있습니까?\n\n네:\n\n```bash\ncurl \".../memory?category=project\"\ncurl \".../memory?tag=docker\"\ncurl \".../memory/by-tag?tag=production\"\n```\n\n## 메모리를 어떻게 검색합니까?\n\n두 가지 방법:\n\n1. **FTS5 키워드 검색**: `GET /memory/search?q=docker+swarm`\n2. **의미론적 검색**: `GET /memory/semantic-search?q=container+orchestration`\n\n[FTS5 검색](/docs/concepts/fts5-search) 및 [의미론적 검색](/docs/concepts/semantic-search)을 참조하십시오.\n\n## 메모리를 어떻게 업데이트합니까?\n\n동일한 `category` + `key`로 `/memory`를 POST하십시오 — 기존 메모리가\n업데이트되며 중복되지 않습니다.\n\n```bash\n# Initial store\ncurl -X POST .../memory -d '{\"category\":\"fact\",\"key\":\"user_name\",\"content\":\"Michael\"}'\n\n# Update (same key)\ncurl -X POST .../memory -d '{\"category\":\"fact\",\"key\":\"user_name\",\"content\":\"Michael Schäfer\"}'\n```\n\n## 메모리를 어떻게 삭제합니까?\n\n```bash\ncurl -X DELETE -H \"Authorization: Bearer $KEY\" \\\n     https://synapse.schaefer.zone/memory/mem_001\n```\n\n## 대량 삭제할 수 있습니까?\n\n네:\n\n```bash\ncurl -X POST .../memory/bulk-delete \\\n  -d '{\"ids\": [\"mem_001\", \"mem_002\", \"mem_003\"]}'\n```\n\n## 다음 단계\n\n- [API 개요](/docs/api/overview)\n- [오류 및 오류 처리](/docs/api/errors)\n- [Authentication](/docs/getting-started/authentication)\n","content_html":"<h1>API FAQ</h1>\n<p>Synapse API에 대한 일반적인 질문입니다.</p>\n<h2>인증은 어떻게 합니까?</h2>\n<p>두 가지 방법이 있습니다:</p>\n<ol>\n<li><strong>Mind Key</strong> (데이터 엔드포인트용): <code>Authorization: Bearer mk_...</code></li>\n<li><strong>JWT</strong> (계정 엔드포인트용): <code>Authorization: Bearer eyJ...</code></li>\n</ol>\n<p>또는 쿼리 파라미터로 (분당 60회 제한): <code>?key=mk_...</code></p>\n<p><a href=\"/docs/getting-started/authentication\">Authentication</a>을 참조하십시오.</p>\n<h2>Mind Key와 JWT의 차이는 무엇입니까?</h2>\n<ul>\n<li><strong>Mind Key</strong>: 테넌트 범위, 만료 없음, memory/chat/tasks 데이터용</li>\n<li><strong>JWT</strong>: 사용자 범위, 7일 만료, 계정/마인드 관리용</li>\n</ul>\n<p><a href=\"/docs/getting-started/mind-key-vs-jwt\">Mind Key vs JWT</a>를 참조하십시오.</p>\n<h2>왜 401 Unauthorized가 발생합니까?</h2>\n<p>일반적인 원인:</p>\n<ol>\n<li><code>Authorization</code> 헤더 누락</li>\n<li>잘못된 Mind Key (<code>mk_</code>로 시작하는지 확인)</li>\n<li>Mind Key가 필요한 곳에 JWT 사용 (또는 그 반대)</li>\n<li>Mind Key가 취소됨</li>\n</ol>\n<p><strong>해결:</strong> 토큰을 확인하십시오. <a href=\"/docs/getting-started/authentication\">Authentication</a>을 참조하십시오.</p>\n<h2>왜 404 Not Found가 발생합니까?</h2>\n<p>잘못된 엔드포인트 경로를 사용했습니다. Synapse에는 <code>GET /endpoints</code>에\n나열된 경로만 있습니다.</p>\n<p><strong>해결:</strong> <code>GET /endpoints</code>를 호출하여 모든 유효한 경로를 확인하십시오. 추측하지 마십시오.</p>\n<h2>왜 429 Too Many Requests가 발생합니까?</h2>\n<p>속도 제한이 분당 60회인 <code>?key=</code> 쿼리 파라미터 인증을 사용 중입니다.</p>\n<p><strong>해결:</strong> <code>Authorization: Bearer</code> 헤더로 전환하십시오 (속도 제한 없음).</p>\n<p><a href=\"/docs/api/rate-limits\">속도 제한</a>을 참조하십시오.</p>\n<h2>모든 엔드포인트를 어떻게 나열합니까?</h2>\n<pre><code class=\"hljs language-bash\">curl https://synapse.schaefer.zone/endpoints\ncurl https://synapse.schaefer.zone/endpoints?format=text</code></pre><h2>올바른 엔드포인트를 어떻게 찾습니까?</h2>\n<ol>\n<li><code>GET /endpoints</code>에서 기계 판독 가능 목록 확인</li>\n<li><code>GET /help</code>에서 전체 API 문서 확인</li>\n<li><code>GET /docs</code>에서 문서 시스템 탐색</li>\n<li><code>GET /openapi.json</code>에서 OpenAPI 3.0 사양 사용</li>\n</ol>\n<h2>POST 대신 GET을 사용할 수 있습니까?</h2>\n<p>일부 POST 엔드포인트에는 URL 전용 도구를 위한 GET 동등물이 있습니다:</p>\n<ul>\n<li><code>POST /memory</code> ↔ <code>GET /memory/store?content=...</code></li>\n<li><code>POST /mind/task</code> ↔ <code>GET /mind/task?title=...</code></li>\n<li><code>POST /chat/reply</code> ↔ <code>GET /chat/reply?content=...</code></li>\n</ul>\n<p>사용 가능한 GET 변형은 <code>GET /endpoints</code>에서 확인하십시오.</p>\n<h2>오류는 어떻게 처리합니까?</h2>\n<p>모든 오류는 JSON을 반환합니다:</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;statusCode&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-number\">401</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;error&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;Unauthorized&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;message&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;Mind Key fehlt oder ungültig.&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;docs&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/docs/getting-started/authentication&quot;</span>\n<span class=\"hljs-punctuation\">}</span></code></pre><p><a href=\"/docs/api/errors\">오류 및 오류 처리</a>를 참조하십시오.</p>\n<h2>요청 본문 제한은 어떻게 됩니까?</h2>\n<p>10 MB입니다. 더 큰 페이로드 (예: 파일 업로드)의 경우 multipart 엔드포인트를\n사용하십시오.</p>\n<h2>API는 CORS를 지원합니까?</h2>\n<p>네. 모든 엔드포인트는 다음을 반환합니다:</p>\n<pre><code class=\"hljs language-plaintext\">Access-Control-Allow-Origin: *\nAccess-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS\nAccess-Control-Allow-Headers: Authorization, Content-Type, X-Synapse-JWT</code></pre><h2>SDK가 있습니까?</h2>\n<p>네:</p>\n<ul>\n<li><strong>Node.js</strong>: <code>npm install synapse-memory-sdk</code></li>\n<li><strong>MCP</strong>: <code>npx -y synapse-mcp-api@latest</code></li>\n</ul>\n<p>자세한 내용은 <a href=\"/docs/api/overview\">API 개요</a>를 참조하십시오.</p>\n<h2>페이지네이션은 어떻게 합니까?</h2>\n<p><code>?limit=</code> 및 <code>?offset=</code>을 사용하십시오:</p>\n<pre><code class=\"hljs language-bash\">curl <span class=\"hljs-string\">&quot;.../memory?limit=50&amp;offset=100&quot;</span></code></pre><p>기본 limit: 100. 최대: 500.</p>\n<h2>카테고리나 태그로 메모리를 필터링할 수 있습니까?</h2>\n<p>네:</p>\n<pre><code class=\"hljs language-bash\">curl <span class=\"hljs-string\">&quot;.../memory?category=project&quot;</span>\ncurl <span class=\"hljs-string\">&quot;.../memory?tag=docker&quot;</span>\ncurl <span class=\"hljs-string\">&quot;.../memory/by-tag?tag=production&quot;</span></code></pre><h2>메모리를 어떻게 검색합니까?</h2>\n<p>두 가지 방법:</p>\n<ol>\n<li><strong>FTS5 키워드 검색</strong>: <code>GET /memory/search?q=docker+swarm</code></li>\n<li><strong>의미론적 검색</strong>: <code>GET /memory/semantic-search?q=container+orchestration</code></li>\n</ol>\n<p><a href=\"/docs/concepts/fts5-search\">FTS5 검색</a> 및 <a href=\"/docs/concepts/semantic-search\">의미론적 검색</a>을 참조하십시오.</p>\n<h2>메모리를 어떻게 업데이트합니까?</h2>\n<p>동일한 <code>category</code> + <code>key</code>로 <code>/memory</code>를 POST하십시오 — 기존 메모리가\n업데이트되며 중복되지 않습니다.</p>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># Initial store</span>\ncurl -X POST .../memory -d <span class=\"hljs-string\">&#x27;{&quot;category&quot;:&quot;fact&quot;,&quot;key&quot;:&quot;user_name&quot;,&quot;content&quot;:&quot;Michael&quot;}&#x27;</span>\n\n<span class=\"hljs-comment\"># Update (same key)</span>\ncurl -X POST .../memory -d <span class=\"hljs-string\">&#x27;{&quot;category&quot;:&quot;fact&quot;,&quot;key&quot;:&quot;user_name&quot;,&quot;content&quot;:&quot;Michael Schäfer&quot;}&#x27;</span></code></pre><h2>메모리를 어떻게 삭제합니까?</h2>\n<pre><code class=\"hljs language-bash\">curl -X DELETE -H <span class=\"hljs-string\">&quot;Authorization: Bearer <span class=\"hljs-variable\">$KEY</span>&quot;</span> \\\n     https://synapse.schaefer.zone/memory/mem_001</code></pre><h2>대량 삭제할 수 있습니까?</h2>\n<p>네:</p>\n<pre><code class=\"hljs language-bash\">curl -X POST .../memory/bulk-delete \\\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><h2>다음 단계</h2>\n<ul>\n<li><a href=\"/docs/api/overview\">API 개요</a></li>\n<li><a href=\"/docs/api/errors\">오류 및 오류 처리</a></li>\n<li><a href=\"/docs/getting-started/authentication\">Authentication</a></li>\n</ul>\n","urls":{"html":"/docs/faq/api-faq","text":"/docs/faq/api-faq?format=text","json":"/docs/faq/api-faq?format=json","llm":"/docs/faq/api-faq?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}