{"title":"Visão geral da API e URL base","slug":"overview","category":"api","summary":"Todos os endpoints da API do Synapse, URL base, padrões de autenticação e formatos de resposta em um só lugar.","audience":["human","llm"],"tags":["api","overview","endpoints"],"difficulty":"beginner","updated":"2026-06-27","word_count":590,"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":"pt","translated":true,"requested_lang":"pt","content_markdown":"\n# Visão geral da API e URL base\n\nA API do Synapse é uma API HTTP RESTful. Todos os endpoints retornam JSON (exceto\nquando indicado de outra forma). Esta página cobre o essencial que você precisa\nantes de explorar endpoints específicos.\n\n## URL base\n\n```\nhttps://synapse.schaefer.zone\n```\n\nTodos os caminhos nesta documentação são relativos a esta URL base. Para\ninstâncias auto-hospedadas, substitua pela sua própria URL.\n\n## Autenticação\n\nDois métodos, ambos enviados via cabeçalho `Authorization`:\n\n```\nAuthorization: Bearer YOUR_MIND_KEY    # para endpoints de dados\nAuthorization: Bearer YOUR_JWT          # para endpoints de conta\n```\n\nOu via parâmetro de consulta (limitado a 60/min):\n\n```\n?key=YOUR_MIND_KEY\n```\n\nConsulte [Autenticação](/docs/getting-started/authentication) para detalhes.\n\n## Grupos de endpoints\n\n| Grupo | Auth | Descrição |\n|-------|------|-----------|\n| Público | Nenhuma | Página inicial, health, OpenAPI, docs |\n| Memória | Mind Key | CRUD, busca, sincronização, embeddings |\n| Chat | Mind Key / JWT | Mensagens assíncronas entre humano e agente |\n| Tarefas | Mind Key | Gerenciamento de tarefas |\n| Scripts | Mind Key / JWT | Armazenamento persistente de scripts |\n| Agendador | Mind Key | Cron jobs + variáveis |\n| Webhooks | Mind Key | Callbacks HTTP em eventos |\n| Computadores | Mind Key / JWT | Controle de computadores remotos |\n| Usuário/Minds | JWT | Conta + gerenciamento de minds |\n| Compartilhamento | JWT | Compartilhamento de minds entre usuários |\n| Push | JWT | Assinaturas Web Push |\n| Ferramentas | Nenhuma | Hora, calc, aleatório (utilidades públicas) |\n\n## Formatos de resposta\n\n- **JSON** (padrão): `{ \"key\": \"value\", ... }`\n- **Texto puro**: `/memory/recall` retorna texto otimizado para LLMs\n- **HTML**: `/`, `/docs`, `/human`, `/support`, `/playground`\n\n## Envelope de resposta padrão\n\nRespostas de sucesso retornam os dados diretamente:\n\n```json\n{ \"id\": \"mem_001\", \"status\": \"stored\" }\n```\n\nRespostas de erro usam este formato:\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> O campo `docs` aponta para a documentação relevante dos erros comuns.\n\n## Códigos de status HTTP\n\n| Código | Significado |\n|--------|-------------|\n| 200 | Sucesso (GET, PUT) |\n| 201 | Criado (POST) |\n| 204 | Sem conteúdo (DELETE) |\n| 400 | Requisição inválida (erro de validação) |\n| 401 | Não autorizado (token ausente/inválido) |\n| 403 | Proibido (tipo de token incorreto) |\n| 404 | Não encontrado (caminho não existe) |\n| 409 | Conflito (duplicado) |\n| 429 | Muitas requisições (rate limit) |\n| 500 | Erro de servidor |\n\n## Endpoints de descoberta\n\n| Endpoint | Finalidade |\n|----------|------------|\n| `GET /` | Página inicial (otimizada para LLMs) |\n| `GET /endpoints` | Lista legível por máquina de todos os endpoints |\n| `GET /endpoints?format=text` | Lista de endpoints em texto puro |\n| `GET /openapi.json` | Especificação OpenAPI 3.0 |\n| `GET /help` | Documentação completa da API (HTML) |\n| `GET /help?format=json` | Docs da API em JSON |\n| `GET /docs` | Sistema de documentação (HTML) |\n| `GET /docs?format=json` | Índice da documentação (JSON) |\n| `GET /docs?format=text&scope=all` | Todas as docs em um único bloco de texto |\n| `GET /playground` | Playground interativo da API |\n\n## Limites de taxa (rate limits)\n\n| Método de auth | Limite |\n|----------------|--------|\n| Mind Key (header) | Nenhum |\n| Mind Key (?key=) | 60/min por IP |\n| JWT (header) | Nenhum |\n| Endpoints públicos | Nenhum |\n\nRespostas com limite de taxa incluem:\n\n```\nX-RateLimit-Limit: 60\nX-RateLimit-Remaining: 42\nRetry-After: 30  (only when 429)\n```\n\n## Paginação\n\nEndpoints de listagem suportam `?limit=` e `?offset=`:\n\n```\nGET /memory?limit=50&offset=100\nGET /mind/tasks?status=pending\n```\n\nLimite padrão: 100. Limite máximo: 500.\n\n## CORS\n\nTodos os endpoints suportam CORS para clientes baseados em navegador:\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## SDKs e clientes\n\n- **SDK Node.js**: `npm install synapse-memory-sdk` ([repo](https://gitlab.com/schaefer-services/synapse-sdk-js))\n- **Servidor MCP**: `npx -y synapse-mcp-api@latest` ([repo](https://gitlab.com/schaefer-services/synapse-mcp))\n- **Cliente HTTP**: qualquer biblioteca HTTP (curl, fetch, axios, etc.)\n\n## Próximos passos\n\n- [API de Memória](/docs/api/memory) — os endpoints mais importantes\n- [API de Chat](/docs/api/chat) — comunicação assíncrona humano-agente\n- [Erros e tratamento de erros](/docs/api/errors)\n","content_html":"<h1>Visão geral da API e URL base</h1>\n<p>A API do Synapse é uma API HTTP RESTful. Todos os endpoints retornam JSON (exceto\nquando indicado de outra forma). Esta página cobre o essencial que você precisa\nantes de explorar endpoints específicos.</p>\n<h2>URL base</h2>\n<pre><code class=\"hljs language-plaintext\">https://synapse.schaefer.zone</code></pre><p>Todos os caminhos nesta documentação são relativos a esta URL base. Para\ninstâncias auto-hospedadas, substitua pela sua própria URL.</p>\n<h2>Autenticação</h2>\n<p>Dois métodos, ambos enviados via cabeçalho <code>Authorization</code>:</p>\n<pre><code class=\"hljs language-plaintext\">Authorization: Bearer YOUR_MIND_KEY    # para endpoints de dados\nAuthorization: Bearer YOUR_JWT          # para endpoints de conta</code></pre><p>Ou via parâmetro de consulta (limitado a 60/min):</p>\n<pre><code class=\"hljs language-plaintext\">?key=YOUR_MIND_KEY</code></pre><p>Consulte <a href=\"/docs/getting-started/authentication\">Autenticação</a> para detalhes.</p>\n<h2>Grupos de endpoints</h2>\n<table>\n<thead>\n<tr>\n<th>Grupo</th>\n<th>Auth</th>\n<th>Descrição</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Público</td>\n<td>Nenhuma</td>\n<td>Página inicial, health, OpenAPI, docs</td>\n</tr>\n<tr>\n<td>Memória</td>\n<td>Mind Key</td>\n<td>CRUD, busca, sincronização, embeddings</td>\n</tr>\n<tr>\n<td>Chat</td>\n<td>Mind Key / JWT</td>\n<td>Mensagens assíncronas entre humano e agente</td>\n</tr>\n<tr>\n<td>Tarefas</td>\n<td>Mind Key</td>\n<td>Gerenciamento de tarefas</td>\n</tr>\n<tr>\n<td>Scripts</td>\n<td>Mind Key / JWT</td>\n<td>Armazenamento persistente de scripts</td>\n</tr>\n<tr>\n<td>Agendador</td>\n<td>Mind Key</td>\n<td>Cron jobs + variáveis</td>\n</tr>\n<tr>\n<td>Webhooks</td>\n<td>Mind Key</td>\n<td>Callbacks HTTP em eventos</td>\n</tr>\n<tr>\n<td>Computadores</td>\n<td>Mind Key / JWT</td>\n<td>Controle de computadores remotos</td>\n</tr>\n<tr>\n<td>Usuário/Minds</td>\n<td>JWT</td>\n<td>Conta + gerenciamento de minds</td>\n</tr>\n<tr>\n<td>Compartilhamento</td>\n<td>JWT</td>\n<td>Compartilhamento de minds entre usuários</td>\n</tr>\n<tr>\n<td>Push</td>\n<td>JWT</td>\n<td>Assinaturas Web Push</td>\n</tr>\n<tr>\n<td>Ferramentas</td>\n<td>Nenhuma</td>\n<td>Hora, calc, aleatório (utilidades públicas)</td>\n</tr>\n</tbody></table>\n<h2>Formatos de resposta</h2>\n<ul>\n<li><strong>JSON</strong> (padrão): <code>{ &quot;key&quot;: &quot;value&quot;, ... }</code></li>\n<li><strong>Texto puro</strong>: <code>/memory/recall</code> retorna texto otimizado para LLMs</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>Envelope de resposta padrão</h2>\n<p>Respostas de sucesso retornam os dados diretamente:</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>Respostas de erro usam este formato:</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\">O campo `docs` aponta para a documentação relevante dos erros comuns.</div><h2>Códigos de status HTTP</h2>\n<table>\n<thead>\n<tr>\n<th>Código</th>\n<th>Significado</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>200</td>\n<td>Sucesso (GET, PUT)</td>\n</tr>\n<tr>\n<td>201</td>\n<td>Criado (POST)</td>\n</tr>\n<tr>\n<td>204</td>\n<td>Sem conteúdo (DELETE)</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Requisição inválida (erro de validação)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Não autorizado (token ausente/inválido)</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Proibido (tipo de token incorreto)</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Não encontrado (caminho não existe)</td>\n</tr>\n<tr>\n<td>409</td>\n<td>Conflito (duplicado)</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Muitas requisições (rate limit)</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Erro de servidor</td>\n</tr>\n</tbody></table>\n<h2>Endpoints de descoberta</h2>\n<table>\n<thead>\n<tr>\n<th>Endpoint</th>\n<th>Finalidade</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>GET /</code></td>\n<td>Página inicial (otimizada para LLMs)</td>\n</tr>\n<tr>\n<td><code>GET /endpoints</code></td>\n<td>Lista legível por máquina de todos os endpoints</td>\n</tr>\n<tr>\n<td><code>GET /endpoints?format=text</code></td>\n<td>Lista de endpoints em texto puro</td>\n</tr>\n<tr>\n<td><code>GET /openapi.json</code></td>\n<td>Especificação OpenAPI 3.0</td>\n</tr>\n<tr>\n<td><code>GET /help</code></td>\n<td>Documentação completa da API (HTML)</td>\n</tr>\n<tr>\n<td><code>GET /help?format=json</code></td>\n<td>Docs da API em JSON</td>\n</tr>\n<tr>\n<td><code>GET /docs</code></td>\n<td>Sistema de documentação (HTML)</td>\n</tr>\n<tr>\n<td><code>GET /docs?format=json</code></td>\n<td>Índice da documentação (JSON)</td>\n</tr>\n<tr>\n<td><code>GET /docs?format=text&amp;scope=all</code></td>\n<td>Todas as docs em um único bloco de texto</td>\n</tr>\n<tr>\n<td><code>GET /playground</code></td>\n<td>Playground interativo da API</td>\n</tr>\n</tbody></table>\n<h2>Limites de taxa (rate limits)</h2>\n<table>\n<thead>\n<tr>\n<th>Método de auth</th>\n<th>Limite</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Mind Key (header)</td>\n<td>Nenhum</td>\n</tr>\n<tr>\n<td>Mind Key (?key=)</td>\n<td>60/min por IP</td>\n</tr>\n<tr>\n<td>JWT (header)</td>\n<td>Nenhum</td>\n</tr>\n<tr>\n<td>Endpoints públicos</td>\n<td>Nenhum</td>\n</tr>\n</tbody></table>\n<p>Respostas com limite de taxa incluem:</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>Paginação</h2>\n<p>Endpoints de listagem suportam <code>?limit=</code> e <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>Limite padrão: 100. Limite máximo: 500.</p>\n<h2>CORS</h2>\n<p>Todos os endpoints suportam CORS para clientes baseados em navegador:</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>SDKs e clientes</h2>\n<ul>\n<li><strong>SDK Node.js</strong>: <code>npm install synapse-memory-sdk</code> (<a href=\"https://gitlab.com/schaefer-services/synapse-sdk-js\">repo</a>)</li>\n<li><strong>Servidor MCP</strong>: <code>npx -y synapse-mcp-api@latest</code> (<a href=\"https://gitlab.com/schaefer-services/synapse-mcp\">repo</a>)</li>\n<li><strong>Cliente HTTP</strong>: qualquer biblioteca HTTP (curl, fetch, axios, etc.)</li>\n</ul>\n<h2>Próximos passos</h2>\n<ul>\n<li><a href=\"/docs/api/memory\">API de Memória</a> — os endpoints mais importantes</li>\n<li><a href=\"/docs/api/chat\">API de Chat</a> — comunicação assíncrona humano-agente</li>\n<li><a href=\"/docs/api/errors\">Erros e tratamento de erros</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"]}