{"title":"FAQ по API","slug":"api-faq","category":"faq","summary":"Типовые вопросы по API — аутентификация, лимиты, обработка ошибок, обнаружение эндпоинтов.","audience":["human","llm"],"tags":["faq","api","troubleshooting"],"difficulty":"beginner","updated":"2026-06-27","word_count":353,"read_minutes":2,"lang":"ru","translated":true,"requested_lang":"ru","content_markdown":"\n# FAQ по API\n\nТиповые вопросы по Synapse API.\n\n## Как аутентифицироваться?\n\nДва способа:\n\n1. **Mind Key** (для данных): `Authorization: Bearer mk_...`\n2. **JWT** (для аккаунтов): `Authorization: Bearer eyJ...`\n\nИли через query-параметр (лимит 60 запросов/мин): `?key=mk_...`\n\nСм. [Аутентификация](/docs/getting-started/authentication).\n\n## В чём разница между Mind Key и JWT?\n\n- **Mind Key**: область — арендатор, не истекает, для данных памяти/чата/задач\n- **JWT**: область — пользователь, истекает через 7 дней, для управления аккаунтом/mind\n\nСм. [Mind Key против JWT](/docs/getting-started/mind-key-vs-jwt).\n\n## Почему я получаю 401 Unauthorized?\n\nТипичные причины:\n\n1. Отсутствует заголовок `Authorization`\n2. Неверный Mind Key (проверьте, что начинается с `mk_`)\n3. Используется JWT там, где нужен Mind Key (или наоборот)\n4. Mind Key отозван\n\n**Решение:** Проверьте ваш токен. См. [Аутентификация](/docs/getting-started/authentication).\n\n## Почему я получаю 404 Not Found?\n\nВы использовали неверный путь эндпоинта. В Synapse существуют только пути,\nперечисленные в `GET /endpoints`.\n\n**Решение:** Вызовите `GET /endpoints`, чтобы увидеть все допустимые пути. Не угадывайте.\n\n## Почему я получаю 429 Too Many Requests?\n\nВы используете аутентификацию через query-параметр `?key=`, лимит — 60 запросов/мин.\n\n**Решение:** Перейдите на заголовок `Authorization: Bearer` (без лимита).\n\nСм. [Лимиты запросов](/docs/api/rate-limits).\n\n## Как получить список всех эндпоинтов?\n\n```bash\ncurl https://synapse.schaefer.zone/endpoints\ncurl https://synapse.schaefer.zone/endpoints?format=text\n```\n\n## Как найти нужный эндпоинт?\n\n1. Проверьте `GET /endpoints` для машиночитаемого списка\n2. Проверьте `GET /help` для полной документации API\n3. Просмотрите `GET /docs` — систему документации\n4. Используйте `GET /openapi.json` для спецификации OpenAPI 3.0\n\n## Можно ли использовать GET вместо POST?\n\nУ некоторых POST-эндпоинтов есть GET-эквиваленты для инструментов, работающих только с URL:\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\nПроверьте `GET /endpoints` на наличие GET-вариантов.\n\n## Как обрабатывать ошибки?\n\nВсе ошибки возвращают 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\nСм. [Ошибки и обработка ошибок](/docs/api/errors).\n\n## Какой лимит размера тела запроса?\n\n10 МБ. Для больших payloads (например, загрузка файлов) используйте multipart-эндпоинты.\n\n## Поддерживает ли API CORS?\n\nДа. Все эндпоинты возвращают:\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## Есть ли SDK?\n\nДа:\n\n- **Node.js**: `npm install synapse-memory-sdk`\n- **MCP**: `npx -y synapse-mcp-api@latest`\n\nПодробнее см. [Обзор API](/docs/api/overview).\n\n## Как использовать пагинацию?\n\nИспользуйте `?limit=` и `?offset=`:\n\n```bash\ncurl \".../memory?limit=50&offset=100\"\n```\n\nЛимит по умолчанию: 100. Максимум: 500.\n\n## Можно ли фильтровать воспоминания по категории или тегу?\n\nДа:\n\n```bash\ncurl \".../memory?category=project\"\ncurl \".../memory?tag=docker\"\ncurl \".../memory/by-tag?tag=production\"\n```\n\n## Как искать воспоминания?\n\nДвумя способами:\n\n1. **Полнотекстовый поиск FTS5**: `GET /memory/search?q=docker+swarm`\n2. **Семантический поиск**: `GET /memory/semantic-search?q=container+orchestration`\n\nСм. [FTS5-поиск](/docs/concepts/fts5-search) и [Семантический поиск](/docs/concepts/semantic-search).\n\n## Как обновить воспоминание?\n\nPOST `/memory` с теми же `category` + `key` — существующее воспоминание\nобновится, а не дублируется.\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## Как удалить воспоминание?\n\n```bash\ncurl -X DELETE -H \"Authorization: Bearer $KEY\" \\\n     https://synapse.schaefer.zone/memory/mem_001\n```\n\n## Можно ли удалять массово?\n\nДа:\n\n```bash\ncurl -X POST .../memory/bulk-delete \\\n  -d '{\"ids\": [\"mem_001\", \"mem_002\", \"mem_003\"]}'\n```\n\n## Следующие шаги\n\n- [Обзор API](/docs/api/overview)\n- [Ошибки и обработка ошибок](/docs/api/errors)\n- [Аутентификация](/docs/getting-started/authentication)\n","content_html":"<h1>FAQ по API</h1>\n<p>Типовые вопросы по Synapse API.</p>\n<h2>Как аутентифицироваться?</h2>\n<p>Два способа:</p>\n<ol>\n<li><strong>Mind Key</strong> (для данных): <code>Authorization: Bearer mk_...</code></li>\n<li><strong>JWT</strong> (для аккаунтов): <code>Authorization: Bearer eyJ...</code></li>\n</ol>\n<p>Или через query-параметр (лимит 60 запросов/мин): <code>?key=mk_...</code></p>\n<p>См. <a href=\"/docs/getting-started/authentication\">Аутентификация</a>.</p>\n<h2>В чём разница между Mind Key и JWT?</h2>\n<ul>\n<li><strong>Mind Key</strong>: область — арендатор, не истекает, для данных памяти/чата/задач</li>\n<li><strong>JWT</strong>: область — пользователь, истекает через 7 дней, для управления аккаунтом/mind</li>\n</ul>\n<p>См. <a href=\"/docs/getting-started/mind-key-vs-jwt\">Mind Key против JWT</a>.</p>\n<h2>Почему я получаю 401 Unauthorized?</h2>\n<p>Типичные причины:</p>\n<ol>\n<li>Отсутствует заголовок <code>Authorization</code></li>\n<li>Неверный Mind Key (проверьте, что начинается с <code>mk_</code>)</li>\n<li>Используется JWT там, где нужен Mind Key (или наоборот)</li>\n<li>Mind Key отозван</li>\n</ol>\n<p><strong>Решение:</strong> Проверьте ваш токен. См. <a href=\"/docs/getting-started/authentication\">Аутентификация</a>.</p>\n<h2>Почему я получаю 404 Not Found?</h2>\n<p>Вы использовали неверный путь эндпоинта. В Synapse существуют только пути,\nперечисленные в <code>GET /endpoints</code>.</p>\n<p><strong>Решение:</strong> Вызовите <code>GET /endpoints</code>, чтобы увидеть все допустимые пути. Не угадывайте.</p>\n<h2>Почему я получаю 429 Too Many Requests?</h2>\n<p>Вы используете аутентификацию через query-параметр <code>?key=</code>, лимит — 60 запросов/мин.</p>\n<p><strong>Решение:</strong> Перейдите на заголовок <code>Authorization: Bearer</code> (без лимита).</p>\n<p>См. <a href=\"/docs/api/rate-limits\">Лимиты запросов</a>.</p>\n<h2>Как получить список всех эндпоинтов?</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>Как найти нужный эндпоинт?</h2>\n<ol>\n<li>Проверьте <code>GET /endpoints</code> для машиночитаемого списка</li>\n<li>Проверьте <code>GET /help</code> для полной документации API</li>\n<li>Просмотрите <code>GET /docs</code> — систему документации</li>\n<li>Используйте <code>GET /openapi.json</code> для спецификации OpenAPI 3.0</li>\n</ol>\n<h2>Можно ли использовать GET вместо POST?</h2>\n<p>У некоторых POST-эндпоинтов есть GET-эквиваленты для инструментов, работающих только с URL:</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>Проверьте <code>GET /endpoints</code> на наличие GET-вариантов.</p>\n<h2>Как обрабатывать ошибки?</h2>\n<p>Все ошибки возвращают 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>См. <a href=\"/docs/api/errors\">Ошибки и обработка ошибок</a>.</p>\n<h2>Какой лимит размера тела запроса?</h2>\n<p>10 МБ. Для больших payloads (например, загрузка файлов) используйте multipart-эндпоинты.</p>\n<h2>Поддерживает ли API CORS?</h2>\n<p>Да. Все эндпоинты возвращают:</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>Есть ли SDK?</h2>\n<p>Да:</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>Подробнее см. <a href=\"/docs/api/overview\">Обзор API</a>.</p>\n<h2>Как использовать пагинацию?</h2>\n<p>Используйте <code>?limit=</code> и <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>Лимит по умолчанию: 100. Максимум: 500.</p>\n<h2>Можно ли фильтровать воспоминания по категории или тегу?</h2>\n<p>Да:</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>Как искать воспоминания?</h2>\n<p>Двумя способами:</p>\n<ol>\n<li><strong>Полнотекстовый поиск FTS5</strong>: <code>GET /memory/search?q=docker+swarm</code></li>\n<li><strong>Семантический поиск</strong>: <code>GET /memory/semantic-search?q=container+orchestration</code></li>\n</ol>\n<p>См. <a href=\"/docs/concepts/fts5-search\">FTS5-поиск</a> и <a href=\"/docs/concepts/semantic-search\">Семантический поиск</a>.</p>\n<h2>Как обновить воспоминание?</h2>\n<p>POST <code>/memory</code> с теми же <code>category</code> + <code>key</code> — существующее воспоминание\nобновится, а не дублируется.</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>Как удалить воспоминание?</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>Можно ли удалять массово?</h2>\n<p>Да:</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>Следующие шаги</h2>\n<ul>\n<li><a href=\"/docs/api/overview\">Обзор API</a></li>\n<li><a href=\"/docs/api/errors\">Ошибки и обработка ошибок</a></li>\n<li><a href=\"/docs/getting-started/authentication\">Аутентификация</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"]}