{"title":"Resumen de la API y URL base","slug":"overview","category":"api","summary":"Todos los endpoints de la API de Synapse, URL base, patrones de autenticación y formatos de respuesta de un vistazo.","audience":["human","llm"],"tags":["api","overview","endpoints"],"difficulty":"beginner","updated":"2026-06-27","word_count":602,"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":"es","translated":true,"requested_lang":"es","content_markdown":"\n# Resumen de la API y URL base\n\nLa API de Synapse es una API HTTP RESTful. Todos los endpoints devuelven JSON\n(excepto donde se indique lo contrario). Esta página cubre lo esencial que debe\nconocer antes de profundizar en endpoints específicos.\n\n## URL base\n\n```\nhttps://synapse.schaefer.zone\n```\n\nTodas las rutas de esta documentación son relativas a esta URL base. Para\ninstancias autoalojadas, sustitúyala por su propia URL.\n\n## Autenticación\n\nExisten dos métodos, ambos enviados mediante la cabecera `Authorization`:\n\n```\nAuthorization: Bearer YOUR_MIND_KEY    # para endpoints de datos\nAuthorization: Bearer YOUR_JWT          # para endpoints de cuenta\n```\n\nO mediante el parámetro de consulta (limitado a 60/min):\n\n```\n?key=YOUR_MIND_KEY\n```\n\nConsulte [Autenticación](/docs/getting-started/authentication) para más detalles.\n\n## Grupos de endpoints\n\n| Grupo | Auth | Descripción |\n|-------|------|-------------|\n| Public | Ninguna | Página de inicio, health, OpenAPI, docs |\n| Memory | Mind Key | CRUD, búsqueda, sincronización, embeddings |\n| Chat | Mind Key / JWT | Mensajería asíncrona entre humano y agente |\n| Tasks | Mind Key | Gestión de tareas |\n| Scripts | Mind Key / JWT | Almacén persistente de scripts |\n| Scheduler | Mind Key | Trabajos cron + variables |\n| Webhooks | Mind Key | Callbacks HTTP ante eventos |\n| Computers | Mind Key / JWT | Control remoto de computadoras |\n| User/Minds | JWT | Cuenta + gestión de minds |\n| Sharing | JWT | Compartir minds entre usuarios |\n| Push | JWT | Suscripciones Web Push |\n| Tools | Ninguna | Hora, calculadora, aleatorios (utilidades públicas) |\n\n## Formatos de respuesta\n\n- **JSON** (predeterminado): `{ \"key\": \"value\", ... }`\n- **Texto plano**: `/memory/recall` devuelve texto optimizado para LLM\n- **HTML**: `/`, `/docs`, `/human`, `/support`, `/playground`\n\n## Envoltorio estándar de respuesta\n\nLas respuestas exitosas devuelven los datos directamente:\n\n```json\n{ \"id\": \"mem_001\", \"status\": \"stored\" }\n```\n\nLas respuestas de error usan 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> El campo `docs` enlaza a la documentación relevante para errores comunes.\n\n## Códigos de estado HTTP\n\n| Código | Significado |\n|------|---------|\n| 200 | Éxito (GET, PUT) |\n| 201 | Creado (POST) |\n| 204 | Sin contenido (DELETE) |\n| 400 | Solicitud incorrecta (error de validación) |\n| 401 | No autorizado (token ausente/inválido) |\n| 403 | Prohibido (tipo de token incorrecto) |\n| 404 | No encontrado (la ruta no existe) |\n| 409 | Conflicto (duplicado) |\n| 429 | Demasiadas solicitudes (límite de frecuencia) |\n| 500 | Error del servidor |\n\n## Endpoints de descubrimiento\n\n| Endpoint | Propósito |\n|----------|---------|\n| `GET /` | Página de inicio (optimizada para LLM) |\n| `GET /endpoints` | Lista legible por máquina de todos los endpoints |\n| `GET /endpoints?format=text` | Lista de endpoints en texto plano |\n| `GET /openapi.json` | Especificación OpenAPI 3.0 |\n| `GET /help` | Documentación completa de la API (HTML) |\n| `GET /help?format=json` | Documentación de la API en JSON |\n| `GET /docs` | Sistema de documentación (HTML) |\n| `GET /docs?format=json` | Índice de documentación (JSON) |\n| `GET /docs?format=text&scope=all` | Toda la documentación en un bloque de texto |\n| `GET /playground` | Playground interactivo de la API |\n\n## Límites de frecuencia\n\n| Método de auth | Límite |\n|-------------|-------|\n| Mind Key (cabecera) | Ninguno |\n| Mind Key (?key=) | 60/min por IP |\n| JWT (cabecera) | Ninguno |\n| Endpoints públicos | Ninguno |\n\nLas respuestas con límite de frecuencia incluyen:\n\n```\nX-RateLimit-Limit: 60\nX-RateLimit-Remaining: 42\nRetry-After: 30  (only when 429)\n```\n\n## Paginación\n\nLos endpoints de lista admiten `?limit=` y `?offset=`:\n\n```\nGET /memory?limit=50&offset=100\nGET /mind/tasks?status=pending\n```\n\nLímite predeterminado: 100. Límite máximo: 500.\n\n## CORS\n\nTodos los endpoints admiten CORS para clientes basados en 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 y 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**: cualquier librería HTTP (curl, fetch, axios, etc.)\n\n## Próximos pasos\n\n- [API de Memory](/docs/api/memory) — los endpoints más importantes\n- [API de Chat](/docs/api/chat) — comunicación asíncrona humano-agente\n- [Errores y manejo de errores](/docs/api/errors)\n","content_html":"<h1>Resumen de la API y URL base</h1>\n<p>La API de Synapse es una API HTTP RESTful. Todos los endpoints devuelven JSON\n(excepto donde se indique lo contrario). Esta página cubre lo esencial que debe\nconocer antes de profundizar en endpoints específicos.</p>\n<h2>URL base</h2>\n<pre><code class=\"hljs language-plaintext\">https://synapse.schaefer.zone</code></pre><p>Todas las rutas de esta documentación son relativas a esta URL base. Para\ninstancias autoalojadas, sustitúyala por su propia URL.</p>\n<h2>Autenticación</h2>\n<p>Existen dos métodos, ambos enviados mediante la cabecera <code>Authorization</code>:</p>\n<pre><code class=\"hljs language-plaintext\">Authorization: Bearer YOUR_MIND_KEY    # para endpoints de datos\nAuthorization: Bearer YOUR_JWT          # para endpoints de cuenta</code></pre><p>O mediante el 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\">Autenticación</a> para más detalles.</p>\n<h2>Grupos de endpoints</h2>\n<table>\n<thead>\n<tr>\n<th>Grupo</th>\n<th>Auth</th>\n<th>Descripción</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Public</td>\n<td>Ninguna</td>\n<td>Página de inicio, health, OpenAPI, docs</td>\n</tr>\n<tr>\n<td>Memory</td>\n<td>Mind Key</td>\n<td>CRUD, búsqueda, sincronización, embeddings</td>\n</tr>\n<tr>\n<td>Chat</td>\n<td>Mind Key / JWT</td>\n<td>Mensajería asíncrona entre humano y agente</td>\n</tr>\n<tr>\n<td>Tasks</td>\n<td>Mind Key</td>\n<td>Gestión de tareas</td>\n</tr>\n<tr>\n<td>Scripts</td>\n<td>Mind Key / JWT</td>\n<td>Almacén persistente de scripts</td>\n</tr>\n<tr>\n<td>Scheduler</td>\n<td>Mind Key</td>\n<td>Trabajos cron + variables</td>\n</tr>\n<tr>\n<td>Webhooks</td>\n<td>Mind Key</td>\n<td>Callbacks HTTP ante eventos</td>\n</tr>\n<tr>\n<td>Computers</td>\n<td>Mind Key / JWT</td>\n<td>Control remoto de computadoras</td>\n</tr>\n<tr>\n<td>User/Minds</td>\n<td>JWT</td>\n<td>Cuenta + gestión de minds</td>\n</tr>\n<tr>\n<td>Sharing</td>\n<td>JWT</td>\n<td>Compartir minds entre usuarios</td>\n</tr>\n<tr>\n<td>Push</td>\n<td>JWT</td>\n<td>Suscripciones Web Push</td>\n</tr>\n<tr>\n<td>Tools</td>\n<td>Ninguna</td>\n<td>Hora, calculadora, aleatorios (utilidades públicas)</td>\n</tr>\n</tbody></table>\n<h2>Formatos de respuesta</h2>\n<ul>\n<li><strong>JSON</strong> (predeterminado): <code>{ &quot;key&quot;: &quot;value&quot;, ... }</code></li>\n<li><strong>Texto plano</strong>: <code>/memory/recall</code> devuelve texto optimizado para 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>Envoltorio estándar de respuesta</h2>\n<p>Las respuestas exitosas devuelven los datos directamente:</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>Las respuestas de error usan 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\">El campo `docs` enlaza a la documentación relevante para errores comunes.</div><h2>Códigos de estado 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>Éxito (GET, PUT)</td>\n</tr>\n<tr>\n<td>201</td>\n<td>Creado (POST)</td>\n</tr>\n<tr>\n<td>204</td>\n<td>Sin contenido (DELETE)</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Solicitud incorrecta (error de validación)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>No autorizado (token ausente/inválido)</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Prohibido (tipo de token incorrecto)</td>\n</tr>\n<tr>\n<td>404</td>\n<td>No encontrado (la ruta no existe)</td>\n</tr>\n<tr>\n<td>409</td>\n<td>Conflicto (duplicado)</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Demasiadas solicitudes (límite de frecuencia)</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Error del servidor</td>\n</tr>\n</tbody></table>\n<h2>Endpoints de descubrimiento</h2>\n<table>\n<thead>\n<tr>\n<th>Endpoint</th>\n<th>Propósito</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>GET /</code></td>\n<td>Página de inicio (optimizada para LLM)</td>\n</tr>\n<tr>\n<td><code>GET /endpoints</code></td>\n<td>Lista legible por máquina de todos los endpoints</td>\n</tr>\n<tr>\n<td><code>GET /endpoints?format=text</code></td>\n<td>Lista de endpoints en texto plano</td>\n</tr>\n<tr>\n<td><code>GET /openapi.json</code></td>\n<td>Especificación OpenAPI 3.0</td>\n</tr>\n<tr>\n<td><code>GET /help</code></td>\n<td>Documentación completa de la API (HTML)</td>\n</tr>\n<tr>\n<td><code>GET /help?format=json</code></td>\n<td>Documentación de la API en JSON</td>\n</tr>\n<tr>\n<td><code>GET /docs</code></td>\n<td>Sistema de documentación (HTML)</td>\n</tr>\n<tr>\n<td><code>GET /docs?format=json</code></td>\n<td>Índice de documentación (JSON)</td>\n</tr>\n<tr>\n<td><code>GET /docs?format=text&amp;scope=all</code></td>\n<td>Toda la documentación en un bloque de texto</td>\n</tr>\n<tr>\n<td><code>GET /playground</code></td>\n<td>Playground interactivo de la API</td>\n</tr>\n</tbody></table>\n<h2>Límites de frecuencia</h2>\n<table>\n<thead>\n<tr>\n<th>Método de auth</th>\n<th>Límite</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Mind Key (cabecera)</td>\n<td>Ninguno</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 (cabecera)</td>\n<td>Ninguno</td>\n</tr>\n<tr>\n<td>Endpoints públicos</td>\n<td>Ninguno</td>\n</tr>\n</tbody></table>\n<p>Las respuestas con límite de frecuencia incluyen:</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>Paginación</h2>\n<p>Los endpoints de lista admiten <code>?limit=</code> y <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>Límite predeterminado: 100. Límite máximo: 500.</p>\n<h2>CORS</h2>\n<p>Todos los endpoints admiten CORS para clientes basados en 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 y 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>: cualquier librería HTTP (curl, fetch, axios, etc.)</li>\n</ul>\n<h2>Próximos pasos</h2>\n<ul>\n<li><a href=\"/docs/api/memory\">API de Memory</a> — los endpoints más importantes</li>\n<li><a href=\"/docs/api/chat\">API de Chat</a> — comunicación asíncrona humano-agente</li>\n<li><a href=\"/docs/api/errors\">Errores y manejo de errores</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"]}