{"title":"Vue d'ensemble de l'API & URL de base","slug":"overview","category":"api","summary":"Tous les endpoints de l'API Synapse, l'URL de base, les schémas d'authentification et les formats de réponse en un coup d'œil.","audience":["human","llm"],"tags":["api","overview","endpoints"],"difficulty":"beginner","updated":"2026-06-27","word_count":615,"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":"fr","translated":true,"requested_lang":"fr","content_markdown":"\n# Vue d'ensemble de l'API & URL de base\n\nL'API Synapse est une API HTTP RESTful. Tous les endpoints renvoient du JSON (sauf\nmention contraire). Cette page couvre l'essentiel à connaître avant d'explorer des\nendpoints spécifiques.\n\n## URL de base\n\n```\nhttps://synapse.schaefer.zone\n```\n\nTous les chemins de cette documentation sont relatifs à cette URL de base. Pour les\ninstances auto-hébergées, remplacez par votre propre URL.\n\n## Authentification\n\nDeux méthodes, toutes deux envoyées via l'en-tête `Authorization` :\n\n```\nAuthorization: Bearer YOUR_MIND_KEY    # pour les endpoints de données\nAuthorization: Bearer YOUR_JWT          # pour les endpoints de compte\n```\n\nOu via un paramètre de requête (limité à 60/min) :\n\n```\n?key=YOUR_MIND_KEY\n```\n\nVoir [Authentification](/docs/getting-started/authentication) pour plus de détails.\n\n## Groupes d'endpoints\n\n| Groupe | Auth | Description |\n|-------|------|-------------|\n| Public | Aucune | Page d'accueil, santé, OpenAPI, docs |\n| Memory | Mind Key | CRUD, recherche, sync, embeddings |\n| Chat | Mind Key / JWT | Messagerie asynchrone entre humain et agent |\n| Tasks | Mind Key | Gestion des tâches |\n| Scripts | Mind Key / JWT | Stockage persistant de scripts |\n| Scheduler | Mind Key | Tâches cron + variables |\n| Webhooks | Mind Key | Rappels HTTP sur événements |\n| Computers | Mind Key / JWT | Contrôle à distance d'ordinateurs |\n| User/Minds | JWT | Compte + gestion des minds |\n| Sharing | JWT | Partage de minds entre utilisateurs |\n| Push | JWT | Abonnements Web Push |\n| Tools | Aucune | Heure, calculatrice, aléatoire (utilitaires publics) |\n\n## Formats de réponse\n\n- **JSON** (par défaut) : `{ \"key\": \"value\", ... }`\n- **Texte brut** : `/memory/recall` renvoie du texte optimisé pour les LLM\n- **HTML** : `/`, `/docs`, `/human`, `/support`, `/playground`\n\n## Enveloppe de réponse standard\n\nLes réponses de succès renvoient directement les données :\n\n```json\n{ \"id\": \"mem_001\", \"status\": \"stored\" }\n```\n\nLes réponses d'erreur utilisent ce format :\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> Le champ `docs` renvoie vers la documentation pertinente pour les erreurs courantes.\n\n## Codes d'état HTTP\n\n| Code | Signification |\n|------|---------|\n| 200 | Succès (GET, PUT) |\n| 201 | Créé (POST) |\n| 204 | Aucun contenu (DELETE) |\n| 400 | Requête incorrecte (erreur de validation) |\n| 401 | Non autorisé (jeton manquant/invalide) |\n| 403 | Interdit (mauvais type de jeton) |\n| 404 | Introuvable (le chemin n'existe pas) |\n| 409 | Conflit (doublon) |\n| 429 | Trop de requêtes (limite de débit) |\n| 500 | Erreur serveur |\n\n## Endpoints de découvrabilité\n\n| Endpoint | Rôle |\n|----------|---------|\n| `GET /` | Page d'accueil (optimisée LLM) |\n| `GET /endpoints` | Liste lisible par machine de tous les endpoints |\n| `GET /endpoints?format=text` | Liste d'endpoints en texte brut |\n| `GET /openapi.json` | Spécification OpenAPI 3.0 |\n| `GET /help` | Documentation complète de l'API (HTML) |\n| `GET /help?format=json` | Docs de l'API en JSON |\n| `GET /docs` | Système de documentation (HTML) |\n| `GET /docs?format=json` | Index de documentation (JSON) |\n| `GET /docs?format=text&scope=all` | Toutes les docs en un bloc de texte |\n| `GET /playground` | Terrain de jeu interactif pour l'API |\n\n## Limites de débit\n\n| Méthode d'auth | Limite |\n|-------------|-------|\n| Mind Key (en-tête) | Aucune |\n| Mind Key (?key=) | 60/min par IP |\n| JWT (en-tête) | Aucune |\n| Endpoints publics | Aucune |\n\nLes réponses soumises à limite de débit incluent :\n\n```\nX-RateLimit-Limit: 60\nX-RateLimit-Remaining: 42\nRetry-After: 30  (uniquement en cas de 429)\n```\n\n## Pagination\n\nLes endpoints de liste prennent en charge `?limit=` et `?offset=` :\n\n```\nGET /memory?limit=50&offset=100\nGET /mind/tasks?status=pending\n```\n\nLimite par défaut : 100. Limite maximale : 500.\n\n## CORS\n\nTous les endpoints prennent en charge CORS pour les clients basés sur navigateur :\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 & Clients\n\n- **SDK Node.js** : `npm install synapse-memory-sdk` ([dépôt](https://gitlab.com/schaefer-services/synapse-sdk-js))\n- **Serveur MCP** : `npx -y synapse-mcp-api@latest` ([dépôt](https://gitlab.com/schaefer-services/synapse-mcp))\n- **Client HTTP** : n'importe quelle bibliothèque HTTP (curl, fetch, axios, etc.)\n\n## Prochaines étapes\n\n- [API Memory](/docs/api/memory) — les endpoints les plus importants\n- [API Chat](/docs/api/chat) — communication asynchrone humain-agent\n- [Erreurs & gestion des erreurs](/docs/api/errors)\n","content_html":"<h1>Vue d&#39;ensemble de l&#39;API &amp; URL de base</h1>\n<p>L&#39;API Synapse est une API HTTP RESTful. Tous les endpoints renvoient du JSON (sauf\nmention contraire). Cette page couvre l&#39;essentiel à connaître avant d&#39;explorer des\nendpoints spécifiques.</p>\n<h2>URL de base</h2>\n<pre><code class=\"hljs language-plaintext\">https://synapse.schaefer.zone</code></pre><p>Tous les chemins de cette documentation sont relatifs à cette URL de base. Pour les\ninstances auto-hébergées, remplacez par votre propre URL.</p>\n<h2>Authentification</h2>\n<p>Deux méthodes, toutes deux envoyées via l&#39;en-tête <code>Authorization</code> :</p>\n<pre><code class=\"hljs language-plaintext\">Authorization: Bearer YOUR_MIND_KEY    # pour les endpoints de données\nAuthorization: Bearer YOUR_JWT          # pour les endpoints de compte</code></pre><p>Ou via un paramètre de requête (limité à 60/min) :</p>\n<pre><code class=\"hljs language-plaintext\">?key=YOUR_MIND_KEY</code></pre><p>Voir <a href=\"/docs/getting-started/authentication\">Authentification</a> pour plus de détails.</p>\n<h2>Groupes d&#39;endpoints</h2>\n<table>\n<thead>\n<tr>\n<th>Groupe</th>\n<th>Auth</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Public</td>\n<td>Aucune</td>\n<td>Page d&#39;accueil, santé, OpenAPI, docs</td>\n</tr>\n<tr>\n<td>Memory</td>\n<td>Mind Key</td>\n<td>CRUD, recherche, sync, embeddings</td>\n</tr>\n<tr>\n<td>Chat</td>\n<td>Mind Key / JWT</td>\n<td>Messagerie asynchrone entre humain et agent</td>\n</tr>\n<tr>\n<td>Tasks</td>\n<td>Mind Key</td>\n<td>Gestion des tâches</td>\n</tr>\n<tr>\n<td>Scripts</td>\n<td>Mind Key / JWT</td>\n<td>Stockage persistant de scripts</td>\n</tr>\n<tr>\n<td>Scheduler</td>\n<td>Mind Key</td>\n<td>Tâches cron + variables</td>\n</tr>\n<tr>\n<td>Webhooks</td>\n<td>Mind Key</td>\n<td>Rappels HTTP sur événements</td>\n</tr>\n<tr>\n<td>Computers</td>\n<td>Mind Key / JWT</td>\n<td>Contrôle à distance d&#39;ordinateurs</td>\n</tr>\n<tr>\n<td>User/Minds</td>\n<td>JWT</td>\n<td>Compte + gestion des minds</td>\n</tr>\n<tr>\n<td>Sharing</td>\n<td>JWT</td>\n<td>Partage de minds entre utilisateurs</td>\n</tr>\n<tr>\n<td>Push</td>\n<td>JWT</td>\n<td>Abonnements Web Push</td>\n</tr>\n<tr>\n<td>Tools</td>\n<td>Aucune</td>\n<td>Heure, calculatrice, aléatoire (utilitaires publics)</td>\n</tr>\n</tbody></table>\n<h2>Formats de réponse</h2>\n<ul>\n<li><strong>JSON</strong> (par défaut) : <code>{ &quot;key&quot;: &quot;value&quot;, ... }</code></li>\n<li><strong>Texte brut</strong> : <code>/memory/recall</code> renvoie du texte optimisé pour les 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>Enveloppe de réponse standard</h2>\n<p>Les réponses de succès renvoient directement les données :</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>Les réponses d&#39;erreur utilisent ce format :</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\">Le champ `docs` renvoie vers la documentation pertinente pour les erreurs courantes.</div><h2>Codes d&#39;état HTTP</h2>\n<table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Signification</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>200</td>\n<td>Succès (GET, PUT)</td>\n</tr>\n<tr>\n<td>201</td>\n<td>Créé (POST)</td>\n</tr>\n<tr>\n<td>204</td>\n<td>Aucun contenu (DELETE)</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Requête incorrecte (erreur de validation)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Non autorisé (jeton manquant/invalide)</td>\n</tr>\n<tr>\n<td>403</td>\n<td>Interdit (mauvais type de jeton)</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Introuvable (le chemin n&#39;existe pas)</td>\n</tr>\n<tr>\n<td>409</td>\n<td>Conflit (doublon)</td>\n</tr>\n<tr>\n<td>429</td>\n<td>Trop de requêtes (limite de débit)</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Erreur serveur</td>\n</tr>\n</tbody></table>\n<h2>Endpoints de découvrabilité</h2>\n<table>\n<thead>\n<tr>\n<th>Endpoint</th>\n<th>Rôle</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>GET /</code></td>\n<td>Page d&#39;accueil (optimisée LLM)</td>\n</tr>\n<tr>\n<td><code>GET /endpoints</code></td>\n<td>Liste lisible par machine de tous les endpoints</td>\n</tr>\n<tr>\n<td><code>GET /endpoints?format=text</code></td>\n<td>Liste d&#39;endpoints en texte brut</td>\n</tr>\n<tr>\n<td><code>GET /openapi.json</code></td>\n<td>Spécification OpenAPI 3.0</td>\n</tr>\n<tr>\n<td><code>GET /help</code></td>\n<td>Documentation complète de l&#39;API (HTML)</td>\n</tr>\n<tr>\n<td><code>GET /help?format=json</code></td>\n<td>Docs de l&#39;API en JSON</td>\n</tr>\n<tr>\n<td><code>GET /docs</code></td>\n<td>Système de documentation (HTML)</td>\n</tr>\n<tr>\n<td><code>GET /docs?format=json</code></td>\n<td>Index de documentation (JSON)</td>\n</tr>\n<tr>\n<td><code>GET /docs?format=text&amp;scope=all</code></td>\n<td>Toutes les docs en un bloc de texte</td>\n</tr>\n<tr>\n<td><code>GET /playground</code></td>\n<td>Terrain de jeu interactif pour l&#39;API</td>\n</tr>\n</tbody></table>\n<h2>Limites de débit</h2>\n<table>\n<thead>\n<tr>\n<th>Méthode d&#39;auth</th>\n<th>Limite</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Mind Key (en-tête)</td>\n<td>Aucune</td>\n</tr>\n<tr>\n<td>Mind Key (?key=)</td>\n<td>60/min par IP</td>\n</tr>\n<tr>\n<td>JWT (en-tête)</td>\n<td>Aucune</td>\n</tr>\n<tr>\n<td>Endpoints publics</td>\n<td>Aucune</td>\n</tr>\n</tbody></table>\n<p>Les réponses soumises à limite de débit incluent :</p>\n<pre><code class=\"hljs language-plaintext\">X-RateLimit-Limit: 60\nX-RateLimit-Remaining: 42\nRetry-After: 30  (uniquement en cas de 429)</code></pre><h2>Pagination</h2>\n<p>Les endpoints de liste prennent en charge <code>?limit=</code> et <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 par défaut : 100. Limite maximale : 500.</p>\n<h2>CORS</h2>\n<p>Tous les endpoints prennent en charge CORS pour les clients basés sur navigateur :</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 &amp; Clients</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\">dépôt</a>)</li>\n<li><strong>Serveur MCP</strong> : <code>npx -y synapse-mcp-api@latest</code> (<a href=\"https://gitlab.com/schaefer-services/synapse-mcp\">dépôt</a>)</li>\n<li><strong>Client HTTP</strong> : n&#39;importe quelle bibliothèque HTTP (curl, fetch, axios, etc.)</li>\n</ul>\n<h2>Prochaines étapes</h2>\n<ul>\n<li><a href=\"/docs/api/memory\">API Memory</a> — les endpoints les plus importants</li>\n<li><a href=\"/docs/api/chat\">API Chat</a> — communication asynchrone humain-agent</li>\n<li><a href=\"/docs/api/errors\">Erreurs &amp; gestion des erreurs</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"]}