{"title":"الأسئلة الشائعة عن الـ API","slug":"api-faq","category":"faq","summary":"أسئلة شائعة عن الـ API — المصادقة، حدود المعدل، معالجة الأخطاء، اكتشاف نقاط النهاية.","audience":["human","llm"],"tags":["faq","api","troubleshooting"],"difficulty":"beginner","updated":"2026-06-27","word_count":359,"read_minutes":2,"lang":"ar","translated":true,"requested_lang":"ar","content_markdown":"\n# الأسئلة الشائعة عن الـ API\n\nأسئلة شائعة عن واجهة Synapse API.\n\n## كيف أُصادق؟\n\nطريقتان:\n\n1. **Mind Key** (لنقاط بيانات النهاية): `Authorization: Bearer mk_...`\n2. **JWT** (لنقاط نهاية الحساب): `Authorization: Bearer eyJ...`\n\nأو عبر معامل الاستعلام (حد 60 طلبًا/دقيقة): `?key=mk_...`\n\nراجع [المصادقة](/docs/getting-started/authentication).\n\n## ما الفرق بين Mind Key و JWT؟\n\n- **Mind Key**: محدود بمستأجر، لا ينتهي، لبيانات الذاكرة/الدردشة/المهام\n- **JWT**: محدود بالمستخدم، ينتهي بعد 7 أيام، لإدارة الحساب/العقل\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تستخدم مصادقة معامل الاستعلام `?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 ميجابايت. للحمولات الأكبر (مثل رفع الملفات)، استخدم نقاط النهاية 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\nاستدعِ `POST /memory` بنفس `category` + `key` — تُحدَّث الذاكرة\nالموجودة، لا تُكرّر.\n\n```bash\n# التخزين الأول\ncurl -X POST .../memory -d '{\"category\":\"fact\",\"key\":\"user_name\",\"content\":\"Michael\"}'\n\n# التحديث (نفس المفتاح)\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>الأسئلة الشائعة عن الـ 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>أو عبر معامل الاستعلام (حد 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 أيام، لإدارة الحساب/العقل</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>تستخدم مصادقة معامل الاستعلام <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 ميجابايت. للحمولات الأكبر (مثل رفع الملفات)، استخدم نقاط النهاية 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>استدعِ <code>POST /memory</code> بنفس <code>category</code> + <code>key</code> — تُحدَّث الذاكرة\nالموجودة، لا تُكرّر.</p>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># التخزين الأول</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\"># التحديث (نفس المفتاح)</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"]}