{"title":"Przegląd API i bazowy URL","slug":"overview","category":"api","summary":"Wszystkie endpointy API Synapse, bazowy URL, wzorce autoryzacji i formaty odpowiedzi w jednym miejscu.","audience":["human","llm"],"tags":["api","overview","endpoints"],"difficulty":"beginner","updated":"2026-06-27","word_count":544,"read_minutes":3,"llm_context":"Base URL: https://synapse.schaefer.zone\nAuth: Authorization: Bearer YOUR_MIND_KEY (header, no rate limit)\n      OR ?key=YOUR_MIND_KEY (query, 60 req/min)\nAll responses are JSON except /memory/recall (text/plain) and /docs (HTML/text/json)\nAll 404 responses mean the path does not exist — do NOT guess paths.\nGET /endpoints returns machine-readable list of all valid endpoints.\n","lang":"pl","translated":true,"requested_lang":"pl","content_markdown":"\n# Przegląd API i bazowy URL\n\nAPI Synapse jest RESTfulowym interfejsem HTTP. Wszystkie endpointy zwracają JSON\n(z wyjątkiem miejsc, w których zaznaczono inaczej). Niniejsza strona zawiera\npodstawowe informacje potrzebne przed przejściem do szczegółowych endpointów.\n\n## Bazowy URL\n\n```\nhttps://synapse.schaefer.zone\n```\n\nWszystkie ścieżki w niniejszej dokumentacji są względne wobec tego bazowego URL-a.\nW przypadku instancji self-hosted należy użyć własnego adresu URL.\n\n## Autoryzacja\n\nDwie metody, obie wysyłane nagłówkiem `Authorization`:\n\n```\nAuthorization: Bearer YOUR_MIND_KEY    # dla endpointów danych\nAuthorization: Bearer YOUR_JWT          # dla endpointów konta\n```\n\nLub przez parametr zapytania (ograniczony do 60/min):\n\n```\n?key=YOUR_MIND_KEY\n```\n\nSzczegóły znajdują się w sekcji [Autoryzacja](/docs/getting-started/authentication).\n\n## Grupy endpointów\n\n| Grupa | Autoryzacja | Opis |\n|-------|-------------|------|\n| Publiczne | Brak | Strona główna, health, OpenAPI, dokumentacja |\n| Memory | Mind Key | CRUD, wyszukiwanie, synchronizacja, osadzenia |\n| Chat | Mind Key / JWT | Asynchroniczne wiadomości między człowiekiem a agentem |\n| Tasks | Mind Key | Zarządzanie zadaniami |\n| Scripts | Mind Key / JWT | Trwały magazyn skryptów |\n| Scheduler | Mind Key | Zadania cron i zmienne |\n| Webhooks | Mind Key | Wywołania zwrotne HTTP przy zdarzeniach |\n| Computers | Mind Key / JWT | Zdalne sterowanie komputerami |\n| User/Minds | JWT | Konto i zarządzanie umysłami |\n| Sharing | JWT | Współdzielenie umysłów między użytkownikami |\n| Push | JWT | Subskrypcje Web Push |\n| Tools | Brak | Czas, kalkulator, losowość (narzędzia publiczne) |\n\n## Formaty odpowiedzi\n\n- **JSON** (domyślnie): `{ \"key\": \"value\", ... }`\n- **Zwykły tekst**: `/memory/recall` zwraca tekst zoptymalizowany dla LLM\n- **HTML**: `/`, `/docs`, `/human`, `/support`, `/playground`\n\n## Standardowa koperta odpowiedzi\n\nOdpowiedzi pomyślne zwracają dane bezpośrednio:\n\n```json\n{ \"id\": \"mem_001\", \"status\": \"stored\" }\n```\n\nOdpowiedzi błędne używają następującego formatu:\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> [!NOTE]\n> Pole `docs` zawiera link do dokumentacji istotnej dla częstych błędów.\n\n## Kody stanu HTTP\n\n| Kod | Znaczenie |\n|------|-----------|\n| 200 | Sukces (GET, PUT) |\n| 201 | Utworzono (POST) |\n| 204 | Brak treści (DELETE) |\n| 400 | Nieprawidłowe żądanie (błąd walidacji) |\n| 401 | Brak autoryzacji (brak/nieprawidłowy token) |\n| 403 | Zabronione (nieprawidłowy typ tokena) |\n| 404 | Nie znaleziono (ścieżka nie istnieje) |\n| 409 | Konflikt (duplikat) |\n| 429 | Zbyt wiele żądań (limit) |\n| 500 | Błąd serwera |\n\n## Endpointy wykrywalności\n\n| Endpoint | Przeznaczenie |\n|----------|---------------|\n| `GET /` | Strona główna (zoptymalizowana dla LLM) |\n| `GET /endpoints` | Czytelna maszynowo lista wszystkich endpointów |\n| `GET /endpoints?format=text` | Lista endpointów w postaci zwykłego tekstu |\n| `GET /openapi.json` | Specyfikacja OpenAPI 3.0 |\n| `GET /help` | Pełna dokumentacja API (HTML) |\n| `GET /help?format=json` | Dokumentacja API jako JSON |\n| `GET /docs` | System dokumentacji (HTML) |\n| `GET /docs?format=json` | Indeks dokumentacji (JSON) |\n| `GET /docs?format=text&scope=all` | Cała dokumentacja jako jeden blok tekstowy |\n| `GET /playground` | Interaktywny playground API |\n\n## Limity żądań\n\n| Metoda autoryzacji | Limit |\n|-------------|-------|\n| Mind Key (nagłówek) | Brak |\n| Mind Key (?key=) | 60/min na IP |\n| JWT (nagłówek) | Brak |\n| Endpointy publiczne | Brak |\n\nOdpowiedzi objęte limitem zawierają:\n\n```\nX-RateLimit-Limit: 60\nX-RateLimit-Remaining: 42\nRetry-After: 30  (tylko przy 429)\n```\n\n## Paginacja\n\nEndpointy list obsługują `?limit=` oraz `?offset=`:\n\n```\nGET /memory?limit=50&offset=100\nGET /mind/tasks?status=pending\n```\n\nDomyślny limit: 100. Maksymalny limit: 500.\n\n## CORS\n\nWszystkie endpointy obsługują CORS dla klientów opartych na przeglądarce:\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, Mcp-Session-Id, Mcp-Tool-Profile\n```\n\n## SDK i klienci\n\n- **Node.js SDK**: `npm install synapse-memory-sdk` ([repozytorium](https://gitlab.com/schaefer-services/synapse-sdk-js))\n- **MCP Server**: `npx -y synapse-mcp-api@latest` ([repozytorium](https://gitlab.com/schaefer-services/synapse-mcp))\n- **Klient HTTP**: dowolna biblioteka HTTP (curl, fetch, axios itp.)\n\n## Następne kroki\n\n- [Memory API](/docs/api/memory) — najważniejsze endpointy\n- [Chat API](/docs/api/chat) — asynchroniczna komunikacja człowiek-agent\n- [Błędy i ich obsługa](/docs/api/errors)\n","content_html":"<h1>Przegląd API i bazowy URL</h1>\n<p>API Synapse jest RESTfulowym interfejsem HTTP. Wszystkie endpointy zwracają JSON\n(z wyjątkiem miejsc, w których zaznaczono inaczej). Niniejsza strona zawiera\npodstawowe informacje potrzebne przed przejściem do szczegółowych endpointów.</p>\n<h2>Bazowy URL</h2>\n<pre><code class=\"hljs language-plaintext\">https://synapse.schaefer.zone</code></pre><p>Wszystkie ścieżki w niniejszej dokumentacji są względne wobec tego bazowego URL-a.\nW przypadku instancji self-hosted należy użyć własnego adresu URL.</p>\n<h2>Autoryzacja</h2>\n<p>Dwie metody, obie wysyłane nagłówkiem <code>Authorization</code>:</p>\n<pre><code class=\"hljs language-plaintext\">Authorization: Bearer YOUR_MIND_KEY    # dla endpointów danych\nAuthorization: Bearer YOUR_JWT          # dla endpointów konta</code></pre><p>Lub przez parametr zapytania (ograniczony do 60/min):</p>\n<pre><code class=\"hljs language-plaintext\">?key=YOUR_MIND_KEY</code></pre><p>Szczegóły znajdują się w sekcji <a href=\"/docs/getting-started/authentication\">Autoryzacja</a>.</p>\n<h2>Grupy endpointów</h2>\n<table>\n<thead>\n<tr>\n<th>Grupa</th>\n<th>Autoryzacja</th>\n<th>Opis</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Publiczne</td>\n<td>Brak</td>\n<td>Strona główna, health, OpenAPI, dokumentacja</td>\n</tr>\n<tr>\n<td>Memory</td>\n<td>Mind Key</td>\n<td>CRUD, wyszukiwanie, synchronizacja, osadzenia</td>\n</tr>\n<tr>\n<td>Chat</td>\n<td>Mind Key / JWT</td>\n<td>Asynchroniczne wiadomości między człowiekiem a agentem</td>\n</tr>\n<tr>\n<td>Tasks</td>\n<td>Mind Key</td>\n<td>Zarządzanie zadaniami</td>\n</tr>\n<tr>\n<td>Scripts</td>\n<td>Mind Key / JWT</td>\n<td>Trwały magazyn skryptów</td>\n</tr>\n<tr>\n<td>Scheduler</td>\n<td>Mind Key</td>\n<td>Zadania cron i zmienne</td>\n</tr>\n<tr>\n<td>Webhooks</td>\n<td>Mind Key</td>\n<td>Wywołania zwrotne HTTP przy zdarzeniach</td>\n</tr>\n<tr>\n<td>Computers</td>\n<td>Mind Key / JWT</td>\n<td>Zdalne sterowanie komputerami</td>\n</tr>\n<tr>\n<td>User/Minds</td>\n<td>JWT</td>\n<td>Konto i zarządzanie umysłami</td>\n</tr>\n<tr>\n<td>Sharing</td>\n<td>JWT</td>\n<td>Współdzielenie umysłów między użytkownikami</td>\n</tr>\n<tr>\n<td>Push</td>\n<td>JWT</td>\n<td>Subskrypcje Web Push</td>\n</tr>\n<tr>\n<td>Tools</td>\n<td>Brak</td>\n<td>Czas, kalkulator, losowość (narzędzia publiczne)</td>\n</tr>\n</tbody></table>\n<h2>Formaty odpowiedzi</h2>\n<ul>\n<li><strong>JSON</strong> (domyślnie): <code>{ &quot;key&quot;: &quot;value&quot;, ... }</code></li>\n<li><strong>Zwykły tekst</strong>: <code>/memory/recall</code> zwraca tekst zoptymalizowany dla LLM</li>\n<li><strong>HTML</strong>: <code>/</code>, <code>/docs</code>, <code>/human</code>, <code>/support</code>, <code>/playground</code></li>\n</ul>\n<h2>Standardowa koperta odpowiedzi</h2>\n<p>Odpowiedzi pomyślne zwracają dane bezpośrednio:</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span> <span class=\"hljs-attr\">&quot;id&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;mem_001&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-attr\">&quot;status&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;stored&quot;</span> <span class=\"hljs-punctuation\">}</span></code></pre><p>Odpowiedzi błędne używają następującego formatu:</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><div class=\"callout callout-note\">Pole `docs` zawiera link do dokumentacji istotnej dla częstych błędów.</div><h2>Kody stanu HTTP</h2>\n<table>\n<thead>\n<tr>\n<th>Kod</th>\n<th>Znaczenie</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>200</td>\n<td>Sukces (GET, PUT)</td>\n</tr>\n<tr>\n<td>201</td>\n<td>Utworzono (POST)</td>\n</tr>\n<tr>\n<td>204</td>\n<td>Brak treści (DELETE)</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Nieprawidłowe żądanie (błąd walidacji)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Brak autoryzacji (brak/nieprawidłowy token)</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Zabronione (nieprawidłowy typ tokena)</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Nie znaleziono (ścieżka nie istnieje)</td>\n</tr>\n<tr>\n<td>409</td>\n<td>Konflikt (duplikat)</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Zbyt wiele żądań (limit)</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Błąd serwera</td>\n</tr>\n</tbody></table>\n<h2>Endpointy wykrywalności</h2>\n<table>\n<thead>\n<tr>\n<th>Endpoint</th>\n<th>Przeznaczenie</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>GET /</code></td>\n<td>Strona główna (zoptymalizowana dla LLM)</td>\n</tr>\n<tr>\n<td><code>GET /endpoints</code></td>\n<td>Czytelna maszynowo lista wszystkich endpointów</td>\n</tr>\n<tr>\n<td><code>GET /endpoints?format=text</code></td>\n<td>Lista endpointów w postaci zwykłego tekstu</td>\n</tr>\n<tr>\n<td><code>GET /openapi.json</code></td>\n<td>Specyfikacja OpenAPI 3.0</td>\n</tr>\n<tr>\n<td><code>GET /help</code></td>\n<td>Pełna dokumentacja API (HTML)</td>\n</tr>\n<tr>\n<td><code>GET /help?format=json</code></td>\n<td>Dokumentacja API jako JSON</td>\n</tr>\n<tr>\n<td><code>GET /docs</code></td>\n<td>System dokumentacji (HTML)</td>\n</tr>\n<tr>\n<td><code>GET /docs?format=json</code></td>\n<td>Indeks dokumentacji (JSON)</td>\n</tr>\n<tr>\n<td><code>GET /docs?format=text&amp;scope=all</code></td>\n<td>Cała dokumentacja jako jeden blok tekstowy</td>\n</tr>\n<tr>\n<td><code>GET /playground</code></td>\n<td>Interaktywny playground API</td>\n</tr>\n</tbody></table>\n<h2>Limity żądań</h2>\n<table>\n<thead>\n<tr>\n<th>Metoda autoryzacji</th>\n<th>Limit</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Mind Key (nagłówek)</td>\n<td>Brak</td>\n</tr>\n<tr>\n<td>Mind Key (?key=)</td>\n<td>60/min na IP</td>\n</tr>\n<tr>\n<td>JWT (nagłówek)</td>\n<td>Brak</td>\n</tr>\n<tr>\n<td>Endpointy publiczne</td>\n<td>Brak</td>\n</tr>\n</tbody></table>\n<p>Odpowiedzi objęte limitem zawierają:</p>\n<pre><code class=\"hljs language-plaintext\">X-RateLimit-Limit: 60\nX-RateLimit-Remaining: 42\nRetry-After: 30  (tylko przy 429)</code></pre><h2>Paginacja</h2>\n<p>Endpointy list obsługują <code>?limit=</code> oraz <code>?offset=</code>:</p>\n<pre><code class=\"hljs language-plaintext\">GET /memory?limit=50&amp;offset=100\nGET /mind/tasks?status=pending</code></pre><p>Domyślny limit: 100. Maksymalny limit: 500.</p>\n<h2>CORS</h2>\n<p>Wszystkie endpointy obsługują CORS dla klientów opartych na przeglądarce:</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, Mcp-Session-Id, Mcp-Tool-Profile</code></pre><h2>SDK i klienci</h2>\n<ul>\n<li><strong>Node.js SDK</strong>: <code>npm install synapse-memory-sdk</code> (<a href=\"https://gitlab.com/schaefer-services/synapse-sdk-js\">repozytorium</a>)</li>\n<li><strong>MCP Server</strong>: <code>npx -y synapse-mcp-api@latest</code> (<a href=\"https://gitlab.com/schaefer-services/synapse-mcp\">repozytorium</a>)</li>\n<li><strong>Klient HTTP</strong>: dowolna biblioteka HTTP (curl, fetch, axios itp.)</li>\n</ul>\n<h2>Następne kroki</h2>\n<ul>\n<li><a href=\"/docs/api/memory\">Memory API</a> — najważniejsze endpointy</li>\n<li><a href=\"/docs/api/chat\">Chat API</a> — asynchroniczna komunikacja człowiek-agent</li>\n<li><a href=\"/docs/api/errors\">Błędy i ich obsługa</a></li>\n</ul>\n","urls":{"html":"/docs/api/overview","text":"/docs/api/overview?format=text","json":"/docs/api/overview?format=json","llm":"/docs/api/overview?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}