{"title":"Огляд API та базовий URL","slug":"overview","category":"api","summary":"Усі кінцеві точки API Synapse, базовий URL, шаблони автентифікації та формати відповідей у стислому вигляді.","audience":["human","llm"],"tags":["api","overview","endpoints"],"difficulty":"beginner","updated":"2026-06-27","word_count":553,"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":"uk","translated":true,"requested_lang":"uk","content_markdown":"\n# Огляд API та базовий URL\n\nAPI Synapse — це RESTful HTTP API. Усі кінцеві точки повертають JSON (окрім\nвипадків, де зазначено інше). Ця сторінка охоплює основи, які потрібно знати\nперед вивченням конкретних кінцевих точок.\n\n## Базовий URL\n\n```\nhttps://synapse.schaefer.zone\n```\n\nУсі шляхи у цій документації вказуються відносно цього базового URL. Для\nвласних інсталяцій замініть на ваш URL.\n\n## Автентифікація\n\nДва методи, обидва передаються через заголовок `Authorization`:\n\n```\nAuthorization: Bearer YOUR_MIND_KEY    # для кінцевих точок даних\nAuthorization: Bearer YOUR_JWT          # для кінцевих точок облікового запису\n```\n\nАбо через параметр запиту (з обмеженням частоти 60/хв):\n\n```\n?key=YOUR_MIND_KEY\n```\n\nДокладніше дивіться у [Автентифікації](/docs/getting-started/authentication).\n\n## Групи кінцевих точок\n\n| Група | Автентифікація | Опис |\n|-------|------|-------------|\n| Public | Немає | Головна сторінка, перевірка стану, OpenAPI, документація |\n| Memory | Mind Key | CRUD, пошук, синхронізація, ембеддинги |\n| Chat | Mind Key / JWT | Асинхронне спілкування між людиною та агентом |\n| Tasks | Mind Key | Керування завданнями |\n| Scripts | Mind Key / JWT | Постійне сховище скриптів |\n| Scheduler | Mind Key | Cron-завдання + змінні |\n| Webhooks | Mind Key | HTTP-зворотні виклики подій |\n| Computers | Mind Key / JWT | Віддалене керування комп'ютерами |\n| User/Minds | JWT | Обліковий запис + керування mind-ами |\n| Sharing | JWT | Спільний доступ до mind-ів між користувачами |\n| Push | JWT | Підписки Web Push |\n| Tools | Немає | Час, калькулятор, випадкові значення (публічні утиліти) |\n\n## Формати відповідей\n\n- **JSON** (за замовчуванням): `{ \"key\": \"value\", ... }`\n- **Звичайний текст**: `/memory/recall` повертає текст, оптимізований для LLM\n- **HTML**: `/`, `/docs`, `/human`, `/support`, `/playground`\n\n## Стандартна обгортка відповіді\n\nУспішні відповіді повертають дані безпосередньо:\n\n```json\n{ \"id\": \"mem_001\", \"status\": \"stored\" }\n```\n\nВідповіді з помилками використовують такий формат:\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> Поле `docs` містить посилання на відповідну документацію для поширених помилок.\n\n## Коди стану HTTP\n\n| Код | Значення |\n|------|---------|\n| 200 | Успіх (GET, PUT) |\n| 201 | Створено (POST) |\n| 204 | Немає вмісту (DELETE) |\n| 400 | Некоректний запит (помилка валідації) |\n| 401 | Не автентифіковано (відсутній/недійсний токен) |\n| 403 | Заборонено (неправильний тип токена) |\n| 404 | Не знайдено (шлях не існує) |\n| 409 | Конфлікт (дублікат) |\n| 429 | Забагато запитів (обмеження частоти) |\n| 500 | Помилка сервера |\n\n## Кінцеві точки для виявлення\n\n| Кінцева точка | Призначення |\n|----------|---------|\n| `GET /` | Головна сторінка (оптимізована для LLM) |\n| `GET /endpoints` | Машиночитний список усіх кінцевих точок |\n| `GET /endpoints?format=text` | Список кінцевих точок у вигляді звичайного тексту |\n| `GET /openapi.json` | Специфікація OpenAPI 3.0 |\n| `GET /help` | Повна документація API (HTML) |\n| `GET /help?format=json` | Документація API у форматі JSON |\n| `GET /docs` | Система документації (HTML) |\n| `GET /docs?format=json` | Індекс документації (JSON) |\n| `GET /docs?format=text&scope=all` | Уся документація одним текстовим блоком |\n| `GET /playground` | Інтерактивний playground API |\n\n## Обмеження частоти\n\n| Метод автентифікації | Ліміт |\n|-------------|-------|\n| Mind Key (заголовок) | Немає |\n| Mind Key (?key=) | 60/хв на IP |\n| JWT (заголовок) | Немає |\n| Публічні кінцеві точки | Немає |\n\nВідповіді з обмеженням частоти містять:\n\n```\nX-RateLimit-Limit: 60\nX-RateLimit-Remaining: 42\nRetry-After: 30  (лише при 429)\n```\n\n## Пагінація\n\nКінцеві точки списків підтримують `?limit=` та `?offset=`:\n\n```\nGET /memory?limit=50&offset=100\nGET /mind/tasks?status=pending\n```\n\nЛіміт за замовчуванням: 100. Максимальний ліміт: 500.\n\n## CORS\n\nУсі кінцеві точки підтримують CORS для браузерних клієнтів:\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 та клієнти\n\n- **Node.js SDK**: `npm install synapse-memory-sdk` ([репозиторій](https://gitlab.com/schaefer-services/synapse-sdk-js))\n- **MCP Server**: `npx -y synapse-mcp-api@latest` ([репозиторій](https://gitlab.com/schaefer-services/synapse-mcp))\n- **HTTP-клієнт**: будь-яка HTTP-бібліотека (curl, fetch, axios тощо)\n\n## Наступні кроки\n\n- [Memory API](/docs/api/memory) — найважливіші кінцеві точки\n- [Chat API](/docs/api/chat) — асинхронне спілкування людина-агент\n- [Помилки та обробка помилок](/docs/api/errors)\n","content_html":"<h1>Огляд API та базовий URL</h1>\n<p>API Synapse — це RESTful HTTP API. Усі кінцеві точки повертають JSON (окрім\nвипадків, де зазначено інше). Ця сторінка охоплює основи, які потрібно знати\nперед вивченням конкретних кінцевих точок.</p>\n<h2>Базовий URL</h2>\n<pre><code class=\"hljs language-plaintext\">https://synapse.schaefer.zone</code></pre><p>Усі шляхи у цій документації вказуються відносно цього базового URL. Для\nвласних інсталяцій замініть на ваш URL.</p>\n<h2>Автентифікація</h2>\n<p>Два методи, обидва передаються через заголовок <code>Authorization</code>:</p>\n<pre><code class=\"hljs language-plaintext\">Authorization: Bearer YOUR_MIND_KEY    # для кінцевих точок даних\nAuthorization: Bearer YOUR_JWT          # для кінцевих точок облікового запису</code></pre><p>Або через параметр запиту (з обмеженням частоти 60/хв):</p>\n<pre><code class=\"hljs language-plaintext\">?key=YOUR_MIND_KEY</code></pre><p>Докладніше дивіться у <a href=\"/docs/getting-started/authentication\">Автентифікації</a>.</p>\n<h2>Групи кінцевих точок</h2>\n<table>\n<thead>\n<tr>\n<th>Група</th>\n<th>Автентифікація</th>\n<th>Опис</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Public</td>\n<td>Немає</td>\n<td>Головна сторінка, перевірка стану, OpenAPI, документація</td>\n</tr>\n<tr>\n<td>Memory</td>\n<td>Mind Key</td>\n<td>CRUD, пошук, синхронізація, ембеддинги</td>\n</tr>\n<tr>\n<td>Chat</td>\n<td>Mind Key / JWT</td>\n<td>Асинхронне спілкування між людиною та агентом</td>\n</tr>\n<tr>\n<td>Tasks</td>\n<td>Mind Key</td>\n<td>Керування завданнями</td>\n</tr>\n<tr>\n<td>Scripts</td>\n<td>Mind Key / JWT</td>\n<td>Постійне сховище скриптів</td>\n</tr>\n<tr>\n<td>Scheduler</td>\n<td>Mind Key</td>\n<td>Cron-завдання + змінні</td>\n</tr>\n<tr>\n<td>Webhooks</td>\n<td>Mind Key</td>\n<td>HTTP-зворотні виклики подій</td>\n</tr>\n<tr>\n<td>Computers</td>\n<td>Mind Key / JWT</td>\n<td>Віддалене керування комп&#39;ютерами</td>\n</tr>\n<tr>\n<td>User/Minds</td>\n<td>JWT</td>\n<td>Обліковий запис + керування mind-ами</td>\n</tr>\n<tr>\n<td>Sharing</td>\n<td>JWT</td>\n<td>Спільний доступ до mind-ів між користувачами</td>\n</tr>\n<tr>\n<td>Push</td>\n<td>JWT</td>\n<td>Підписки Web Push</td>\n</tr>\n<tr>\n<td>Tools</td>\n<td>Немає</td>\n<td>Час, калькулятор, випадкові значення (публічні утиліти)</td>\n</tr>\n</tbody></table>\n<h2>Формати відповідей</h2>\n<ul>\n<li><strong>JSON</strong> (за замовчуванням): <code>{ &quot;key&quot;: &quot;value&quot;, ... }</code></li>\n<li><strong>Звичайний текст</strong>: <code>/memory/recall</code> повертає текст, оптимізований для 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>Стандартна обгортка відповіді</h2>\n<p>Успішні відповіді повертають дані безпосередньо:</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>Відповіді з помилками використовують такий формат:</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\">Поле `docs` містить посилання на відповідну документацію для поширених помилок.</div><h2>Коди стану HTTP</h2>\n<table>\n<thead>\n<tr>\n<th>Код</th>\n<th>Значення</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>200</td>\n<td>Успіх (GET, PUT)</td>\n</tr>\n<tr>\n<td>201</td>\n<td>Створено (POST)</td>\n</tr>\n<tr>\n<td>204</td>\n<td>Немає вмісту (DELETE)</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Некоректний запит (помилка валідації)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Не автентифіковано (відсутній/недійсний токен)</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Заборонено (неправильний тип токена)</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Не знайдено (шлях не існує)</td>\n</tr>\n<tr>\n<td>409</td>\n<td>Конфлікт (дублікат)</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Забагато запитів (обмеження частоти)</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Помилка сервера</td>\n</tr>\n</tbody></table>\n<h2>Кінцеві точки для виявлення</h2>\n<table>\n<thead>\n<tr>\n<th>Кінцева точка</th>\n<th>Призначення</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>GET /</code></td>\n<td>Головна сторінка (оптимізована для LLM)</td>\n</tr>\n<tr>\n<td><code>GET /endpoints</code></td>\n<td>Машиночитний список усіх кінцевих точок</td>\n</tr>\n<tr>\n<td><code>GET /endpoints?format=text</code></td>\n<td>Список кінцевих точок у вигляді звичайного тексту</td>\n</tr>\n<tr>\n<td><code>GET /openapi.json</code></td>\n<td>Специфікація OpenAPI 3.0</td>\n</tr>\n<tr>\n<td><code>GET /help</code></td>\n<td>Повна документація API (HTML)</td>\n</tr>\n<tr>\n<td><code>GET /help?format=json</code></td>\n<td>Документація API у форматі JSON</td>\n</tr>\n<tr>\n<td><code>GET /docs</code></td>\n<td>Система документації (HTML)</td>\n</tr>\n<tr>\n<td><code>GET /docs?format=json</code></td>\n<td>Індекс документації (JSON)</td>\n</tr>\n<tr>\n<td><code>GET /docs?format=text&amp;scope=all</code></td>\n<td>Уся документація одним текстовим блоком</td>\n</tr>\n<tr>\n<td><code>GET /playground</code></td>\n<td>Інтерактивний playground API</td>\n</tr>\n</tbody></table>\n<h2>Обмеження частоти</h2>\n<table>\n<thead>\n<tr>\n<th>Метод автентифікації</th>\n<th>Ліміт</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Mind Key (заголовок)</td>\n<td>Немає</td>\n</tr>\n<tr>\n<td>Mind Key (?key=)</td>\n<td>60/хв на IP</td>\n</tr>\n<tr>\n<td>JWT (заголовок)</td>\n<td>Немає</td>\n</tr>\n<tr>\n<td>Публічні кінцеві точки</td>\n<td>Немає</td>\n</tr>\n</tbody></table>\n<p>Відповіді з обмеженням частоти містять:</p>\n<pre><code class=\"hljs language-plaintext\">X-RateLimit-Limit: 60\nX-RateLimit-Remaining: 42\nRetry-After: 30  (лише при 429)</code></pre><h2>Пагінація</h2>\n<p>Кінцеві точки списків підтримують <code>?limit=</code> та <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>Ліміт за замовчуванням: 100. Максимальний ліміт: 500.</p>\n<h2>CORS</h2>\n<p>Усі кінцеві точки підтримують CORS для браузерних клієнтів:</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 та клієнти</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\">репозиторій</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\">репозиторій</a>)</li>\n<li><strong>HTTP-клієнт</strong>: будь-яка HTTP-бібліотека (curl, fetch, axios тощо)</li>\n</ul>\n<h2>Наступні кроки</h2>\n<ul>\n<li><a href=\"/docs/api/memory\">Memory API</a> — найважливіші кінцеві точки</li>\n<li><a href=\"/docs/api/chat\">Chat API</a> — асинхронне спілкування людина-агент</li>\n<li><a href=\"/docs/api/errors\">Помилки та обробка помилок</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"]}