{"title":"API FAQ","slug":"api-faq","category":"faq","summary":"Vanliga API-frågor — autentisering, hastighetsgränser, felhantering, endpoint-upptäckning.","audience":["human","llm"],"tags":["faq","api","troubleshooting"],"difficulty":"beginner","updated":"2026-06-27","word_count":348,"read_minutes":2,"lang":"sv","translated":true,"requested_lang":"sv","content_markdown":"\n# API FAQ\n\nVanliga frågor om Synapse API.\n\n## Hur autentiserarar jag?\n\nTvå metoder:\n\n1. **Mind Key** (för data-endpoints): `Authorization: Bearer mk_...`\n2. **JWT** (för konto-endpoints): `Authorization: Bearer eyJ...`\n\nEller via queryparameter (60 req/min-gräns): `?key=mk_...`\n\nSe [Autentisering](/docs/getting-started/authentication).\n\n## Vad är skillnaden mellan Mind Key och JWT?\n\n- **Mind Key**: klientomfattande, löper aldrig ut, för minnes-/chatt-/uppgiftsdata\n- **JWT**: användaromfattande, 7 dagars giltighet, för konto-/mind-hantering\n\nSe [Mind Key vs JWT](/docs/getting-started/mind-key-vs-jwt).\n\n## Varför får jag 401 Unauthorized?\n\nVanliga orsaker:\n\n1. Saknad `Authorization`-header\n2. Ogiltig Mind Key (verifiera att den börjar med `mk_`)\n3. Användning av en JWT där en Mind Key krävs (eller tvärtom)\n4. Mind Key har återkallats\n\n**Lösning:** Verifiera din token. Se [Autentisering](/docs/getting-started/authentication).\n\n## Varför får jag 404 Not Found?\n\nNi använde en felaktig endpointsökväg. Synapse har endast de sökvägar som listas\ni `GET /endpoints`.\n\n**Lösning:** Anropa `GET /endpoints` för att se alla giltiga sökvägar. Gissa inte.\n\n## Varför får jag 429 Too Many Requests?\n\nNi använder `?key=`-queryparameter-autentisering, som är begränsad till 60/min.\n\n**Lösning:** Byt till `Authorization: Bearer`-header (ingen hastighetsgräns).\n\nSe [Hastighetsgränser](/docs/api/rate-limits).\n\n## Hur listar jag alla endpoints?\n\n```bash\ncurl https://synapse.schaefer.zone/endpoints\ncurl https://synapse.schaefer.zone/endpoints?format=text\n```\n\n## Hur hittar jag rätt endpoint?\n\n1. Kontrollera `GET /endpoints` för den maskinläsbara listan\n2. Kontrollera `GET /help` för fullständig API-dokumentation\n3. Bläddra i `GET /docs` för dokumentationssystemet\n4. Använd `GET /openapi.json` för OpenAPI 3.0-specifikation\n\n## Kan jag använda GET istället för POST?\n\nVissa POST-endpoints har GET-motsvarigheter för URL-endast-verktyg:\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\nKontrollera `GET /endpoints` för tillgängliga GET-varianter.\n\n## Hur hanterar jag fel?\n\nAlla fel returnerar 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\nSe [Fel & felhantering](/docs/api/errors).\n\n## Vad är gränsen för begärans body?\n\n10 MB. För större payloads (t.ex. filuppladdningar), använd multipart-endpoints.\n\n## Stöder API:et CORS?\n\nJa. Alla endpoints returnerar:\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## Finns det ett SDK?\n\nJa:\n\n- **Node.js**: `npm install synapse-memory-sdk`\n- **MCP**: `npx -y synapse-mcp-api@latest`\n\nSe [API-översikt](/docs/api/overview) för detaljer.\n\n## Hur paginerar jag?\n\nAnvänd `?limit=` och `?offset=`:\n\n```bash\ncurl \".../memory?limit=50&offset=100\"\n```\n\nStandardgräns: 100. Max: 500.\n\n## Kan jag filtrera minnen efter kategori eller tagg?\n\nJa:\n\n```bash\ncurl \".../memory?category=project\"\ncurl \".../memory?tag=docker\"\ncurl \".../memory/by-tag?tag=production\"\n```\n\n## Hur söker jag bland minnen?\n\nPå två sätt:\n\n1. **FTS5 nyckelordssökning**: `GET /memory/search?q=docker+swarm`\n2. **Semantisk sökning**: `GET /memory/semantic-search?q=container+orchestration`\n\nSe [FTS5-sökning](/docs/concepts/fts5-search) och [Semantisk sökning](/docs/concepts/semantic-search).\n\n## Hur uppdaterar jag ett minne?\n\nPOST `/memory` med samma `category` + `key` — det befintliga minnet uppdateras,\ninte dupliceras.\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## Hur tar jag bort ett minne?\n\n```bash\ncurl -X DELETE -H \"Authorization: Bearer $KEY\" \\\n     https://synapse.schaefer.zone/memory/mem_001\n```\n\n## Kan jag ta bort i bulk?\n\nJa:\n\n```bash\ncurl -X POST .../memory/bulk-delete \\\n  -d '{\"ids\": [\"mem_001\", \"mem_002\", \"mem_003\"]}'\n```\n\n## Nästa steg\n\n- [API-översikt](/docs/api/overview)\n- [Fel & felhantering](/docs/api/errors)\n- [Autentisering](/docs/getting-started/authentication)\n","content_html":"<h1>API FAQ</h1>\n<p>Vanliga frågor om Synapse API.</p>\n<h2>Hur autentiserarar jag?</h2>\n<p>Två metoder:</p>\n<ol>\n<li><strong>Mind Key</strong> (för data-endpoints): <code>Authorization: Bearer mk_...</code></li>\n<li><strong>JWT</strong> (för konto-endpoints): <code>Authorization: Bearer eyJ...</code></li>\n</ol>\n<p>Eller via queryparameter (60 req/min-gräns): <code>?key=mk_...</code></p>\n<p>Se <a href=\"/docs/getting-started/authentication\">Autentisering</a>.</p>\n<h2>Vad är skillnaden mellan Mind Key och JWT?</h2>\n<ul>\n<li><strong>Mind Key</strong>: klientomfattande, löper aldrig ut, för minnes-/chatt-/uppgiftsdata</li>\n<li><strong>JWT</strong>: användaromfattande, 7 dagars giltighet, för konto-/mind-hantering</li>\n</ul>\n<p>Se <a href=\"/docs/getting-started/mind-key-vs-jwt\">Mind Key vs JWT</a>.</p>\n<h2>Varför får jag 401 Unauthorized?</h2>\n<p>Vanliga orsaker:</p>\n<ol>\n<li>Saknad <code>Authorization</code>-header</li>\n<li>Ogiltig Mind Key (verifiera att den börjar med <code>mk_</code>)</li>\n<li>Användning av en JWT där en Mind Key krävs (eller tvärtom)</li>\n<li>Mind Key har återkallats</li>\n</ol>\n<p><strong>Lösning:</strong> Verifiera din token. Se <a href=\"/docs/getting-started/authentication\">Autentisering</a>.</p>\n<h2>Varför får jag 404 Not Found?</h2>\n<p>Ni använde en felaktig endpointsökväg. Synapse har endast de sökvägar som listas\ni <code>GET /endpoints</code>.</p>\n<p><strong>Lösning:</strong> Anropa <code>GET /endpoints</code> för att se alla giltiga sökvägar. Gissa inte.</p>\n<h2>Varför får jag 429 Too Many Requests?</h2>\n<p>Ni använder <code>?key=</code>-queryparameter-autentisering, som är begränsad till 60/min.</p>\n<p><strong>Lösning:</strong> Byt till <code>Authorization: Bearer</code>-header (ingen hastighetsgräns).</p>\n<p>Se <a href=\"/docs/api/rate-limits\">Hastighetsgränser</a>.</p>\n<h2>Hur listar jag alla endpoints?</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>Hur hittar jag rätt endpoint?</h2>\n<ol>\n<li>Kontrollera <code>GET /endpoints</code> för den maskinläsbara listan</li>\n<li>Kontrollera <code>GET /help</code> för fullständig API-dokumentation</li>\n<li>Bläddra i <code>GET /docs</code> för dokumentationssystemet</li>\n<li>Använd <code>GET /openapi.json</code> för OpenAPI 3.0-specifikation</li>\n</ol>\n<h2>Kan jag använda GET istället för POST?</h2>\n<p>Vissa POST-endpoints har GET-motsvarigheter för URL-endast-verktyg:</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>Kontrollera <code>GET /endpoints</code> för tillgängliga GET-varianter.</p>\n<h2>Hur hanterar jag fel?</h2>\n<p>Alla fel returnerar 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>Se <a href=\"/docs/api/errors\">Fel &amp; felhantering</a>.</p>\n<h2>Vad är gränsen för begärans body?</h2>\n<p>10 MB. För större payloads (t.ex. filuppladdningar), använd multipart-endpoints.</p>\n<h2>Stöder API:et CORS?</h2>\n<p>Ja. Alla endpoints returnerar:</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>Finns det ett SDK?</h2>\n<p>Ja:</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>Se <a href=\"/docs/api/overview\">API-översikt</a> för detaljer.</p>\n<h2>Hur paginerar jag?</h2>\n<p>Använd <code>?limit=</code> och <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>Standardgräns: 100. Max: 500.</p>\n<h2>Kan jag filtrera minnen efter kategori eller tagg?</h2>\n<p>Ja:</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>Hur söker jag bland minnen?</h2>\n<p>På två sätt:</p>\n<ol>\n<li><strong>FTS5 nyckelordssökning</strong>: <code>GET /memory/search?q=docker+swarm</code></li>\n<li><strong>Semantisk sökning</strong>: <code>GET /memory/semantic-search?q=container+orchestration</code></li>\n</ol>\n<p>Se <a href=\"/docs/concepts/fts5-search\">FTS5-sökning</a> och <a href=\"/docs/concepts/semantic-search\">Semantisk sökning</a>.</p>\n<h2>Hur uppdaterar jag ett minne?</h2>\n<p>POST <code>/memory</code> med samma <code>category</code> + <code>key</code> — det befintliga minnet uppdateras,\ninte dupliceras.</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>Hur tar jag bort ett minne?</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>Kan jag ta bort i bulk?</h2>\n<p>Ja:</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>Nästa steg</h2>\n<ul>\n<li><a href=\"/docs/api/overview\">API-översikt</a></li>\n<li><a href=\"/docs/api/errors\">Fel &amp; felhantering</a></li>\n<li><a href=\"/docs/getting-started/authentication\">Autentisering</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"]}