{"title":"FAQ API","slug":"api-faq","category":"faq","summary":"Częste pytania o API — autoryzacja, limity, obsługa błędów, wykrywanie endpointów.","audience":["human","llm"],"tags":["faq","api","troubleshooting"],"difficulty":"beginner","updated":"2026-06-27","word_count":361,"read_minutes":2,"lang":"pl","translated":true,"requested_lang":"pl","content_markdown":"\n# FAQ API\n\nCzęste pytania dotyczące API Synapse.\n\n## Jak się autoryzować?\n\nDwie metody:\n\n1. **Mind Key** (dla endpointów danych): `Authorization: Bearer mk_...`\n2. **JWT** (dla endpointów konta): `Authorization: Bearer eyJ...`\n\nLub przez parametr zapytania (limit 60 żądań/min): `?key=mk_...`\n\nPatrz [Autoryzacja](/docs/getting-started/authentication).\n\n## Jaka jest różnica między Mind Key a JWT?\n\n- **Mind Key**: zakres dzierżawcy, nigdy nie wygasa, do danych memory/chat/tasks\n- **JWT**: zakres użytkownika, wygasa po 7 dniach, do zarządzania kontem/umysłami\n\nPatrz [Mind Key vs JWT](/docs/getting-started/mind-key-vs-jwt).\n\n## Dlaczego otrzymuję 401 Unauthorized?\n\nTypowe przyczyny:\n\n1. Brak nagłówka `Authorization`\n2. Nieprawidłowy Mind Key (zweryfikować, czy zaczyna się od `mk_`)\n3. Użycie JWT tam, gdzie wymagany jest Mind Key (lub odwrotnie)\n4. Mind Key został cofnięty\n\n**Rozwiązanie:** Zweryfikować token. Patrz [Autoryzacja](/docs/getting-started/authentication).\n\n## Dlaczego otrzymuję 404 Not Found?\n\nUżyto błędnej ścieżki endpointu. Synapse ma tylko ścieżki wymienione w\n`GET /endpoints`.\n\n**Rozwiązanie:** Wywołać `GET /endpoints`, aby zobaczyć wszystkie poprawne ścieżki.\nNie zgadywać.\n\n## Dlaczego otrzymuję 429 Too Many Requests?\n\nUżywana jest autoryzacja parametrem zapytania `?key=`, która ma limit 60/min.\n\n**Rozwiązanie:** Przełączyć się na nagłówek `Authorization: Bearer` (bez limitu).\n\nPatrz [Limity żądań](/docs/api/rate-limits).\n\n## Jak wylistować wszystkie endpointy?\n\n```bash\ncurl https://synapse.schaefer.zone/endpoints\ncurl https://synapse.schaefer.zone/endpoints?format=text\n```\n\n## Jak znaleźć właściwy endpoint?\n\n1. Sprawdzić `GET /endpoints` dla listy czytelnej maszynowo\n2. Sprawdzić `GET /help` dla pełnej dokumentacji API\n3. Przeglądać `GET /docs` w systemie dokumentacji\n4. Użyć `GET /openapi.json` dla specyfikacji OpenAPI 3.0\n\n## Czy mogę użyć GET zamiast POST?\n\nNiektóre endpointy POST mają odpowiedniki GET dla narzędzi obsługujących tylko\nURL-e:\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\nSprawdzić `GET /endpoints`, aby zobaczyć dostępne warianty GET.\n\n## Jak obsługiwać błędy?\n\nWszystkie błędy zwracają 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\nPatrz [Błędy i ich obsługa](/docs/api/errors).\n\n## Jaki jest limit treści żądania?\n\n10 MB. Dla większych payloadów (np. przesyłanie plików) należy użyć endpointów\nmultipart.\n\n## Czy API obsługuje CORS?\n\nTak. Wszystkie endpointy zwracają:\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## Czy istnieje SDK?\n\nTak:\n\n- **Node.js**: `npm install synapse-memory-sdk`\n- **MCP**: `npx -y synapse-mcp-api@latest`\n\nSzczegóły w sekcji [Przegląd API](/docs/api/overview).\n\n## Jak paginować?\n\nUżyć `?limit=` i `?offset=`:\n\n```bash\ncurl \".../memory?limit=50&offset=100\"\n```\n\nDomyślny limit: 100. Maksymalny: 500.\n\n## Czy mogę filtrować wspomnienia po kategorii lub tagu?\n\nTak:\n\n```bash\ncurl \".../memory?category=project\"\ncurl \".../memory?tag=docker\"\ncurl \".../memory/by-tag?tag=production\"\n```\n\n## Jak wyszukiwać wspomnienia?\n\nDwa sposoby:\n\n1. **Wyszukiwanie słów kluczowych FTS5**: `GET /memory/search?q=docker+swarm`\n2. **Wyszukiwanie semantyczne**: `GET /memory/semantic-search?q=container+orchestration`\n\nPatrz [Wyszukiwanie FTS5](/docs/concepts/fts5-search) i [Wyszukiwanie semantyczne](/docs/concepts/semantic-search).\n\n## Jak zaktualizować wspomnienie?\n\nWykonać POST `/memory` z tym samym `category` + `key` — istniejące wspomnienie\njest aktualizowane, a nie duplikowane.\n\n```bash\n# Początkowy zapis\ncurl -X POST .../memory -d '{\"category\":\"fact\",\"key\":\"user_name\",\"content\":\"Michael\"}'\n\n# Aktualizacja (ten sam klucz)\ncurl -X POST .../memory -d '{\"category\":\"fact\",\"key\":\"user_name\",\"content\":\"Michael Schäfer\"}'\n```\n\n## Jak usunąć wspomnienie?\n\n```bash\ncurl -X DELETE -H \"Authorization: Bearer $KEY\" \\\n     https://synapse.schaefer.zone/memory/mem_001\n```\n\n## Czy mogę usuwać masowo?\n\nTak:\n\n```bash\ncurl -X POST .../memory/bulk-delete \\\n  -d '{\"ids\": [\"mem_001\", \"mem_002\", \"mem_003\"]}'\n```\n\n## Następne kroki\n\n- [Przegląd API](/docs/api/overview)\n- [Błędy i ich obsługa](/docs/api/errors)\n- [Autoryzacja](/docs/getting-started/authentication)\n","content_html":"<h1>FAQ API</h1>\n<p>Częste pytania dotyczące API Synapse.</p>\n<h2>Jak się autoryzować?</h2>\n<p>Dwie metody:</p>\n<ol>\n<li><strong>Mind Key</strong> (dla endpointów danych): <code>Authorization: Bearer mk_...</code></li>\n<li><strong>JWT</strong> (dla endpointów konta): <code>Authorization: Bearer eyJ...</code></li>\n</ol>\n<p>Lub przez parametr zapytania (limit 60 żądań/min): <code>?key=mk_...</code></p>\n<p>Patrz <a href=\"/docs/getting-started/authentication\">Autoryzacja</a>.</p>\n<h2>Jaka jest różnica między Mind Key a JWT?</h2>\n<ul>\n<li><strong>Mind Key</strong>: zakres dzierżawcy, nigdy nie wygasa, do danych memory/chat/tasks</li>\n<li><strong>JWT</strong>: zakres użytkownika, wygasa po 7 dniach, do zarządzania kontem/umysłami</li>\n</ul>\n<p>Patrz <a href=\"/docs/getting-started/mind-key-vs-jwt\">Mind Key vs JWT</a>.</p>\n<h2>Dlaczego otrzymuję 401 Unauthorized?</h2>\n<p>Typowe przyczyny:</p>\n<ol>\n<li>Brak nagłówka <code>Authorization</code></li>\n<li>Nieprawidłowy Mind Key (zweryfikować, czy zaczyna się od <code>mk_</code>)</li>\n<li>Użycie JWT tam, gdzie wymagany jest Mind Key (lub odwrotnie)</li>\n<li>Mind Key został cofnięty</li>\n</ol>\n<p><strong>Rozwiązanie:</strong> Zweryfikować token. Patrz <a href=\"/docs/getting-started/authentication\">Autoryzacja</a>.</p>\n<h2>Dlaczego otrzymuję 404 Not Found?</h2>\n<p>Użyto błędnej ścieżki endpointu. Synapse ma tylko ścieżki wymienione w\n<code>GET /endpoints</code>.</p>\n<p><strong>Rozwiązanie:</strong> Wywołać <code>GET /endpoints</code>, aby zobaczyć wszystkie poprawne ścieżki.\nNie zgadywać.</p>\n<h2>Dlaczego otrzymuję 429 Too Many Requests?</h2>\n<p>Używana jest autoryzacja parametrem zapytania <code>?key=</code>, która ma limit 60/min.</p>\n<p><strong>Rozwiązanie:</strong> Przełączyć się na nagłówek <code>Authorization: Bearer</code> (bez limitu).</p>\n<p>Patrz <a href=\"/docs/api/rate-limits\">Limity żądań</a>.</p>\n<h2>Jak wylistować wszystkie endpointy?</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>Jak znaleźć właściwy endpoint?</h2>\n<ol>\n<li>Sprawdzić <code>GET /endpoints</code> dla listy czytelnej maszynowo</li>\n<li>Sprawdzić <code>GET /help</code> dla pełnej dokumentacji API</li>\n<li>Przeglądać <code>GET /docs</code> w systemie dokumentacji</li>\n<li>Użyć <code>GET /openapi.json</code> dla specyfikacji OpenAPI 3.0</li>\n</ol>\n<h2>Czy mogę użyć GET zamiast POST?</h2>\n<p>Niektóre endpointy POST mają odpowiedniki GET dla narzędzi obsługujących tylko\nURL-e:</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>Sprawdzić <code>GET /endpoints</code>, aby zobaczyć dostępne warianty GET.</p>\n<h2>Jak obsługiwać błędy?</h2>\n<p>Wszystkie błędy zwracają 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>Patrz <a href=\"/docs/api/errors\">Błędy i ich obsługa</a>.</p>\n<h2>Jaki jest limit treści żądania?</h2>\n<p>10 MB. Dla większych payloadów (np. przesyłanie plików) należy użyć endpointów\nmultipart.</p>\n<h2>Czy API obsługuje CORS?</h2>\n<p>Tak. Wszystkie endpointy zwracają:</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>Czy istnieje SDK?</h2>\n<p>Tak:</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>Szczegóły w sekcji <a href=\"/docs/api/overview\">Przegląd API</a>.</p>\n<h2>Jak paginować?</h2>\n<p>Użyć <code>?limit=</code> i <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>Domyślny limit: 100. Maksymalny: 500.</p>\n<h2>Czy mogę filtrować wspomnienia po kategorii lub tagu?</h2>\n<p>Tak:</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>Jak wyszukiwać wspomnienia?</h2>\n<p>Dwa sposoby:</p>\n<ol>\n<li><strong>Wyszukiwanie słów kluczowych FTS5</strong>: <code>GET /memory/search?q=docker+swarm</code></li>\n<li><strong>Wyszukiwanie semantyczne</strong>: <code>GET /memory/semantic-search?q=container+orchestration</code></li>\n</ol>\n<p>Patrz <a href=\"/docs/concepts/fts5-search\">Wyszukiwanie FTS5</a> i <a href=\"/docs/concepts/semantic-search\">Wyszukiwanie semantyczne</a>.</p>\n<h2>Jak zaktualizować wspomnienie?</h2>\n<p>Wykonać POST <code>/memory</code> z tym samym <code>category</code> + <code>key</code> — istniejące wspomnienie\njest aktualizowane, a nie duplikowane.</p>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># Początkowy zapis</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\"># Aktualizacja (ten sam klucz)</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>Jak usunąć wspomnienie?</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>Czy mogę usuwać masowo?</h2>\n<p>Tak:</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>Następne kroki</h2>\n<ul>\n<li><a href=\"/docs/api/overview\">Przegląd API</a></li>\n<li><a href=\"/docs/api/errors\">Błędy i ich obsługa</a></li>\n<li><a href=\"/docs/getting-started/authentication\">Autoryzacja</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"]}