{"title":"Обзор API и базовый URL","slug":"overview","category":"api","summary":"Все эндпоинты Synapse API, базовый URL, паттерны аутентификации и форматы ответов — кратко в одном месте.","audience":["human","llm"],"tags":["api","overview","endpoints"],"difficulty":"beginner","updated":"2026-06-27","word_count":536,"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":"ru","translated":true,"requested_lang":"ru","content_markdown":"\n# Обзор API и базовый URL\n\nSynapse API — это RESTful HTTP API. Все эндпоинты возвращают JSON (кроме\nотмеченных случаев). На этой странице описано всё необходимое перед переходом\nк конкретным эндпоинтам.\n\n## Базовый URL\n\n```\nhttps://synapse.schaefer.zone\n```\n\nВсе пути в этой документации указаны относительно этого базового URL. Для\nself-hosted экземпляров замените на ваш собственный URL.\n\n## Аутентификация\n\nДва способа, оба передаются через заголовок `Authorization`:\n\n```\nAuthorization: Bearer YOUR_MIND_KEY    # for data endpoints\nAuthorization: Bearer YOUR_JWT          # for account endpoints\n```\n\nИли через query-параметр (с лимитом 60 запросов в минуту):\n\n```\n?key=YOUR_MIND_KEY\n```\n\nПодробнее см. [Аутентификация](/docs/getting-started/authentication).\n\n## Группы эндпоинтов\n\n| Группа | Аутентификация | Описание |\n|-------|------|-------------|\n| Public | Нет | Главная страница, health, 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` | Интерактивная песочница 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  (only when 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-сервер**: `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>Synapse API — это 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. Для\nself-hosted экземпляров замените на ваш собственный URL.</p>\n<h2>Аутентификация</h2>\n<p>Два способа, оба передаются через заголовок <code>Authorization</code>:</p>\n<pre><code class=\"hljs language-plaintext\">Authorization: Bearer YOUR_MIND_KEY    # for data endpoints\nAuthorization: Bearer YOUR_JWT          # for account endpoints</code></pre><p>Или через query-параметр (с лимитом 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>Главная страница, health, 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>Удалённое управление компьютерами</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>Интерактивная песочница 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  (only when 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-сервер</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"]}