{"title":"API-overzicht & Base URL","slug":"overview","category":"api","summary":"Alle Synapse API-eindpunten, base URL, auth-patronen en responsformaten in één oogopslag.","audience":["human","llm"],"tags":["api","overview","endpoints"],"difficulty":"beginner","updated":"2026-06-27","word_count":506,"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":"nl","translated":true,"requested_lang":"nl","content_markdown":"\n# API-overzicht & Base URL\n\nDe Synapse API is een RESTful HTTP-API. Alle eindpunten retourneren JSON (behalve waar\nvermeld). Deze pagina behandelt de essentiële zaken voordat u naar specifieke\neindpunten duikt.\n\n## Base URL\n\n```\nhttps://synapse.schaefer.zone\n```\n\nAlle paden in deze documentatie zijn relatief ten opzichte van deze base URL. Voor\nself-hosted instanties vervangt u dit door uw eigen URL.\n\n## Authenticatie\n\nTwee methoden, beide via de `Authorization`-header:\n\n```\nAuthorization: Bearer YOUR_MIND_KEY    # voor data-eindpunten\nAuthorization: Bearer YOUR_JWT          # voor account-eindpunten\n```\n\nOf via queryparameter (ratelimited tot 60/min):\n\n```\n?key=YOUR_MIND_KEY\n```\n\nZie [Authenticatie](/docs/getting-started/authentication) voor details.\n\n## Eindpuntgroepen\n\n| Groep | Auth | Beschrijving |\n|-------|------|--------------|\n| Public | Geen | Landingspagina, health, OpenAPI, docs |\n| Memory | Mind Key | CRUD, zoeken, synchroniseren, embeddings |\n| Chat | Mind Key / JWT | Asynchrone berichtenuitwisseling tussen mens en agent |\n| Tasks | Mind Key | Taakbeheer |\n| Scripts | Mind Key / JWT | Permanente script-opslag |\n| Scheduler | Mind Key | Cron-jobs + variabelen |\n| Webhooks | Mind Key | HTTP-callbacks bij gebeurtenissen |\n| Computers | Mind Key / JWT | Bediening van computers op afstand |\n| User/Minds | JWT | Account + mind-beheer |\n| Sharing | JWT | Mind delen tussen gebruikers |\n| Push | JWT | Web Push-abonnementen |\n| Tools | Geen | Tijd, calc, random (openbare hulpmiddelen) |\n\n## Responsformaten\n\n- **JSON** (standaard): `{ \"key\": \"value\", ... }`\n- **Platte tekst**: `/memory/recall` retourneert op LLM geoptimaliseerde tekst\n- **HTML**: `/`, `/docs`, `/human`, `/support`, `/playground`\n\n## Standaard respons-envelope\n\nSuccesresponsen retourneren de data direct:\n\n```json\n{ \"id\": \"mem_001\", \"status\": \"stored\" }\n```\n\nFoutresponsen gebruiken dit formaat:\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> Het `docs`-veld verwijst naar relevante documentatie voor veelvoorkomende fouten.\n\n## HTTP-statuscodes\n\n| Code | Betekenis |\n|------|-----------|\n| 200 | Succes (GET, PUT) |\n| 201 | Aangemaakt (POST) |\n| 204 | Geen inhoud (DELETE) |\n| 400 | Onjuist verzoek (validatiefout) |\n| 401 | Niet-geautoriseerd (ontbrekend/ongeldig token) |\n| 403 | Verboden (verkeerd tokentype) |\n| 404 | Niet gevonden (pad bestaat niet) |\n| 409 | Conflict (dubbeling) |\n| 429 | Te veel verzoeken (ratelimit) |\n| 500 | Serverfout |\n\n## Ontdekkings-eindpunten\n\n| Eindpunt | Doel |\n|----------|------|\n| `GET /` | Landingspagina (op LLM geoptimaliseerd) |\n| `GET /endpoints` | Machineleesbare lijst van alle eindpunten |\n| `GET /endpoints?format=text` | Plattetekst eindpuntlijst |\n| `GET /openapi.json` | OpenAPI 3.0-specificatie |\n| `GET /help` | Volledige API-documentatie (HTML) |\n| `GET /help?format=json` | API-documentatie als JSON |\n| `GET /docs` | Documentatiesysteem (HTML) |\n| `GET /docs?format=json` | Documentatie-index (JSON) |\n| `GET /docs?format=text&scope=all` | Alle documentatie als één tekstblok |\n| `GET /playground` | Interactieve API-playground |\n\n## Ratelimits\n\n| Auth-methode | Limiet |\n|--------------|--------|\n| Mind Key (header) | Geen |\n| Mind Key (?key=) | 60/min per IP |\n| JWT (header) | Geen |\n| Openbare eindpunten | Geen |\n\nRatelimited responsen bevatten:\n\n```\nX-RateLimit-Limit: 60\nX-RateLimit-Remaining: 42\nRetry-After: 30  (only when 429)\n```\n\n## Paginering\n\nLijst-eindpunten ondersteunen `?limit=` en `?offset=`:\n\n```\nGET /memory?limit=50&offset=100\nGET /mind/tasks?status=pending\n```\n\nStandaardlimiet: 100. Maximale limiet: 500.\n\n## CORS\n\nAlle eindpunten ondersteunen CORS voor browser-gebaseerde clients:\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's & Clients\n\n- **Node.js SDK**: `npm install synapse-memory-sdk` ([repo](https://gitlab.com/schaefer-services/synapse-sdk-js))\n- **MCP Server**: `npx -y synapse-mcp-api@latest` ([repo](https://gitlab.com/schaefer-services/synapse-mcp))\n- **HTTP-client**: elke HTTP-bibliotheek (curl, fetch, axios, enz.)\n\n## Volgende stappen\n\n- [Memory API](/docs/api/memory) — de belangrijkste eindpunten\n- [Chat API](/docs/api/chat) — asynchrone communicatie tussen mens en agent\n- [Fouten & Foutafhandeling](/docs/api/errors)\n","content_html":"<h1>API-overzicht &amp; Base URL</h1>\n<p>De Synapse API is een RESTful HTTP-API. Alle eindpunten retourneren JSON (behalve waar\nvermeld). Deze pagina behandelt de essentiële zaken voordat u naar specifieke\neindpunten duikt.</p>\n<h2>Base URL</h2>\n<pre><code class=\"hljs language-plaintext\">https://synapse.schaefer.zone</code></pre><p>Alle paden in deze documentatie zijn relatief ten opzichte van deze base URL. Voor\nself-hosted instanties vervangt u dit door uw eigen URL.</p>\n<h2>Authenticatie</h2>\n<p>Twee methoden, beide via de <code>Authorization</code>-header:</p>\n<pre><code class=\"hljs language-plaintext\">Authorization: Bearer YOUR_MIND_KEY    # voor data-eindpunten\nAuthorization: Bearer YOUR_JWT          # voor account-eindpunten</code></pre><p>Of via queryparameter (ratelimited tot 60/min):</p>\n<pre><code class=\"hljs language-plaintext\">?key=YOUR_MIND_KEY</code></pre><p>Zie <a href=\"/docs/getting-started/authentication\">Authenticatie</a> voor details.</p>\n<h2>Eindpuntgroepen</h2>\n<table>\n<thead>\n<tr>\n<th>Groep</th>\n<th>Auth</th>\n<th>Beschrijving</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Public</td>\n<td>Geen</td>\n<td>Landingspagina, health, OpenAPI, docs</td>\n</tr>\n<tr>\n<td>Memory</td>\n<td>Mind Key</td>\n<td>CRUD, zoeken, synchroniseren, embeddings</td>\n</tr>\n<tr>\n<td>Chat</td>\n<td>Mind Key / JWT</td>\n<td>Asynchrone berichtenuitwisseling tussen mens en agent</td>\n</tr>\n<tr>\n<td>Tasks</td>\n<td>Mind Key</td>\n<td>Taakbeheer</td>\n</tr>\n<tr>\n<td>Scripts</td>\n<td>Mind Key / JWT</td>\n<td>Permanente script-opslag</td>\n</tr>\n<tr>\n<td>Scheduler</td>\n<td>Mind Key</td>\n<td>Cron-jobs + variabelen</td>\n</tr>\n<tr>\n<td>Webhooks</td>\n<td>Mind Key</td>\n<td>HTTP-callbacks bij gebeurtenissen</td>\n</tr>\n<tr>\n<td>Computers</td>\n<td>Mind Key / JWT</td>\n<td>Bediening van computers op afstand</td>\n</tr>\n<tr>\n<td>User/Minds</td>\n<td>JWT</td>\n<td>Account + mind-beheer</td>\n</tr>\n<tr>\n<td>Sharing</td>\n<td>JWT</td>\n<td>Mind delen tussen gebruikers</td>\n</tr>\n<tr>\n<td>Push</td>\n<td>JWT</td>\n<td>Web Push-abonnementen</td>\n</tr>\n<tr>\n<td>Tools</td>\n<td>Geen</td>\n<td>Tijd, calc, random (openbare hulpmiddelen)</td>\n</tr>\n</tbody></table>\n<h2>Responsformaten</h2>\n<ul>\n<li><strong>JSON</strong> (standaard): <code>{ &quot;key&quot;: &quot;value&quot;, ... }</code></li>\n<li><strong>Platte tekst</strong>: <code>/memory/recall</code> retourneert op LLM geoptimaliseerde tekst</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>Standaard respons-envelope</h2>\n<p>Succesresponsen retourneren de data direct:</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>Foutresponsen gebruiken dit formaat:</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\">Het `docs`-veld verwijst naar relevante documentatie voor veelvoorkomende fouten.</div><h2>HTTP-statuscodes</h2>\n<table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Betekenis</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>200</td>\n<td>Succes (GET, PUT)</td>\n</tr>\n<tr>\n<td>201</td>\n<td>Aangemaakt (POST)</td>\n</tr>\n<tr>\n<td>204</td>\n<td>Geen inhoud (DELETE)</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Onjuist verzoek (validatiefout)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Niet-geautoriseerd (ontbrekend/ongeldig token)</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Verboden (verkeerd tokentype)</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Niet gevonden (pad bestaat niet)</td>\n</tr>\n<tr>\n<td>409</td>\n<td>Conflict (dubbeling)</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Te veel verzoeken (ratelimit)</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Serverfout</td>\n</tr>\n</tbody></table>\n<h2>Ontdekkings-eindpunten</h2>\n<table>\n<thead>\n<tr>\n<th>Eindpunt</th>\n<th>Doel</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>GET /</code></td>\n<td>Landingspagina (op LLM geoptimaliseerd)</td>\n</tr>\n<tr>\n<td><code>GET /endpoints</code></td>\n<td>Machineleesbare lijst van alle eindpunten</td>\n</tr>\n<tr>\n<td><code>GET /endpoints?format=text</code></td>\n<td>Plattetekst eindpuntlijst</td>\n</tr>\n<tr>\n<td><code>GET /openapi.json</code></td>\n<td>OpenAPI 3.0-specificatie</td>\n</tr>\n<tr>\n<td><code>GET /help</code></td>\n<td>Volledige API-documentatie (HTML)</td>\n</tr>\n<tr>\n<td><code>GET /help?format=json</code></td>\n<td>API-documentatie als JSON</td>\n</tr>\n<tr>\n<td><code>GET /docs</code></td>\n<td>Documentatiesysteem (HTML)</td>\n</tr>\n<tr>\n<td><code>GET /docs?format=json</code></td>\n<td>Documentatie-index (JSON)</td>\n</tr>\n<tr>\n<td><code>GET /docs?format=text&amp;scope=all</code></td>\n<td>Alle documentatie als één tekstblok</td>\n</tr>\n<tr>\n<td><code>GET /playground</code></td>\n<td>Interactieve API-playground</td>\n</tr>\n</tbody></table>\n<h2>Ratelimits</h2>\n<table>\n<thead>\n<tr>\n<th>Auth-methode</th>\n<th>Limiet</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Mind Key (header)</td>\n<td>Geen</td>\n</tr>\n<tr>\n<td>Mind Key (?key=)</td>\n<td>60/min per IP</td>\n</tr>\n<tr>\n<td>JWT (header)</td>\n<td>Geen</td>\n</tr>\n<tr>\n<td>Openbare eindpunten</td>\n<td>Geen</td>\n</tr>\n</tbody></table>\n<p>Ratelimited responsen bevatten:</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>Paginering</h2>\n<p>Lijst-eindpunten ondersteunen <code>?limit=</code> en <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>Standaardlimiet: 100. Maximale limiet: 500.</p>\n<h2>CORS</h2>\n<p>Alle eindpunten ondersteunen CORS voor browser-gebaseerde clients:</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&#39;s &amp; Clients</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\">repo</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\">repo</a>)</li>\n<li><strong>HTTP-client</strong>: elke HTTP-bibliotheek (curl, fetch, axios, enz.)</li>\n</ul>\n<h2>Volgende stappen</h2>\n<ul>\n<li><a href=\"/docs/api/memory\">Memory API</a> — de belangrijkste eindpunten</li>\n<li><a href=\"/docs/api/chat\">Chat API</a> — asynchrone communicatie tussen mens en agent</li>\n<li><a href=\"/docs/api/errors\">Fouten &amp; Foutafhandeling</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"]}