{"title":"रेट लिमिट और कोटा","slug":"rate-limits","category":"api","summary":"Synapse API के लिए रेट लिमिट नीति — Bearer हेडर (असीमित), ?key= (60/min), सार्वजनिक एंडपॉइंट्स।","audience":["human","llm"],"tags":["api","rate-limits","quotas","throttling"],"difficulty":"beginner","updated":"2026-06-27","word_count":389,"read_minutes":2,"llm_context":"Mind Key (Authorization: Bearer header) → NO rate limit\nMind Key (?key= query param) → 60 req/min per IP\nJWT (Authorization: Bearer header) → NO rate limit\nPublic endpoints (/tools/*, /docs, /health, /endpoints) → NO rate limit\nRate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After\nRecommendation: ALWAYS use Authorization header. Use ?key= only for URL-only tools.\n","lang":"hi","translated":true,"requested_lang":"hi","content_markdown":"\n# रेट लिमिट और कोटा\n\nSynapse में एक सरल, अनुमानित रेट लिमिट नीति है जो दुरुपयोग को रोकने के लिए डिज़ाइन की गई है जबकि वैध उपयोग के रास्ते में नहीं आती।\n\n## रेट लिमिट नीति\n\n| प्रमाणीकरण विधि | सीमा | दायरा |\n|-------------|-------|-------|\n| Mind Key (`Authorization: Bearer`) | **कोई नहीं** | प्रति-mind |\n| Mind Key (`?key=`) | 60 req/min | प्रति-IP |\n| JWT (`Authorization: Bearer`) | **कोई नहीं** | प्रति-उपयोगकर्ता |\n| सार्वजनिक एंडपॉइंट्स | **कोई नहीं** | वैश्विक |\n\n> [!TIP]\n> **संभव होने पर हमेशा `Authorization: Bearer` हेडर का उपयोग करें।** इसकी कोई रेट लिमिट नहीं है। `?key=` का उपयोग केवल उन टूल्स के लिए करें जो कस्टम हेडर सेट नहीं कर सकते।\n\n## रेट लिमिट हेडर\n\nजब आप `?key=` प्रमाणीकरण का उपयोग करते हैं, तो प्रतिक्रियाएँ रेट लिमिट हेडर शामिल करती हैं:\n\n```\nX-RateLimit-Limit: 60\nX-RateLimit-Remaining: 42\nX-RateLimit-Reset: 1782567840\n```\n\nजब आप सीमा पार करते हैं:\n\n```\nHTTP/1.1 429 Too Many Requests\nX-RateLimit-Limit: 60\nX-RateLimit-Remaining: 0\nRetry-After: 42\nContent-Type: application/json\n\n{\n  \"statusCode\": 429,\n  \"error\": \"Too Many Requests\",\n  \"message\": \"Rate limit exceeded. Use Authorization header for unlimited access.\"\n}\n```\n\n## जब आप रेट लिमिट हिट करते हैं\n\nयदि आपको 429 मिलता है:\n\n1. **Authorization हेडर पर स्विच करें** (अनुशंसित):\n   ```bash\n   # Don't: ?key=YOUR_MIND_KEY (60/min limit)\n   curl \".../memory/recall?key=YOUR_MIND_KEY\"\n   \n   # Do: Authorization header (unlimited)\n   curl -H \"Authorization: Bearer YOUR_MIND_KEY\" .../memory/recall\n   ```\n\n2. **या `Retry-After` सेकंड प्रतीक्षा करें** और पुनः प्रयास करें।\n\n## ?key= सीमा क्यों मौजूद है\n\n`?key=` क्वेरी पैरामीटर URL-केवल टूल्स (ब्राउज़र, `open` कमांड) के लिए सुविधाजनक है, लेकिन इसके सुरक्षा और प्रदर्शन निहितार्थ हैं:\n\n- **सुरक्षा:** क्वेरी पैरामीटर सर्वर एक्सेस लॉग, ब्राउज़र इतिहास, और Referer हेडर में लॉग किए जाते हैं। उपयोग को सीमित करने से जोखिम कम होता है।\n- **प्रदर्शन:** क्वेरी-पैरामीटर प्रमाणीकरण के लिए IP-आधारित रेट लिमिटर की आवश्यकता होती है (प्रति अनुरोध Redis लुकअप), जो विलंबता जोड़ता है। हेडर प्रमाणीकरण इसे छोड़ देता है।\n- **दुरुपयोग निवारण:** लीक हुई `?key=` URL साझा और हैमर की जा सकती है। IP सीमा प्रभाव की दायरा सीमित रखती है।\n\n## अनुशंसित पैटर्न\n\n### LLM एजेंट्स\n\n```python\n# Always use header auth\nheaders = {\"Authorization\": f\"Bearer {MIND_KEY}\"}\nresponse = requests.get(f\"{URL}/memory/recall\", headers=headers)\n```\n\n### ब्राउज़र-आधारित टूल्स\n\nयदि आपका टूल केवल URL खोल सकता है:\n\n```bash\n# OK for occasional use (under 60/min)\nopen \"https://synapse.schaefer.zone/memory/recall?key=YOUR_MIND_KEY\"\n\n# For frequent use, switch to a tool that supports headers\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" .../memory/recall\n```\n\n### MCP server\n\nMCP servers हमेशा `SYNAPSE_MIND_KEY` env var के माध्यम से हेडर प्रमाणीकरण का उपयोग करते हैं — कोई रेट लिमिट लागू नहीं होती।\n\n### बल्क आयात\n\nबल्क ऑपरेशन्स (जैसे 1000 मेमोरीज़ आयात करना) के लिए, हमेशा हेडर प्रमाणीकरण का उपयोग करें। `?key=` के माध्यम से बल्क आयात 1 मिनट के भीतर रेट लिमिट हिट करेगा।\n\n## कोटा (Mind-स्तर)\n\nवर्तमान में स्टोरेज आकार या मेमोरी गिनती पर कोई प्रति-mind कोटा नहीं है। सभी सीमाएँ डेटा स्तर पर नहीं, बल्कि प्रमाणीकरण/IP स्तर पर हैं। यह भविष्य में मल्टी-टैनेंट निष्पक्षता के लिए बदल सकता है।\n\n## अपने उपयोग की निगरानी\n\n```bash\n# Check your current rate limit status (with ?key= auth)\ncurl -i \"https://synapse.schaefer.zone/memory/stats?key=YOUR_MIND_KEY\" | grep -i ratelimit\n\n# Output:\n# X-RateLimit-Limit: 60\n# X-RateLimit-Remaining: 58\n# X-RateLimit-Reset: 1782567840\n```\n\n## अगले कदम\n\n- [प्रमाणीकरण](/docs/getting-started/authentication)\n- [त्रुटियाँ और त्रुटि प्रबंधन](/docs/api/errors)\n","content_html":"<h1>रेट लिमिट और कोटा</h1>\n<p>Synapse में एक सरल, अनुमानित रेट लिमिट नीति है जो दुरुपयोग को रोकने के लिए डिज़ाइन की गई है जबकि वैध उपयोग के रास्ते में नहीं आती।</p>\n<h2>रेट लिमिट नीति</h2>\n<table>\n<thead>\n<tr>\n<th>प्रमाणीकरण विधि</th>\n<th>सीमा</th>\n<th>दायरा</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Mind Key (<code>Authorization: Bearer</code>)</td>\n<td><strong>कोई नहीं</strong></td>\n<td>प्रति-mind</td>\n</tr>\n<tr>\n<td>Mind Key (<code>?key=</code>)</td>\n<td>60 req/min</td>\n<td>प्रति-IP</td>\n</tr>\n<tr>\n<td>JWT (<code>Authorization: Bearer</code>)</td>\n<td><strong>कोई नहीं</strong></td>\n<td>प्रति-उपयोगकर्ता</td>\n</tr>\n<tr>\n<td>सार्वजनिक एंडपॉइंट्स</td>\n<td><strong>कोई नहीं</strong></td>\n<td>वैश्विक</td>\n</tr>\n</tbody></table>\n<div class=\"callout callout-ok\">**संभव होने पर हमेशा `Authorization: Bearer` हेडर का उपयोग करें।** इसकी कोई रेट लिमिट नहीं है। `?key=` का उपयोग केवल उन टूल्स के लिए करें जो कस्टम हेडर सेट नहीं कर सकते।</div><h2>रेट लिमिट हेडर</h2>\n<p>जब आप <code>?key=</code> प्रमाणीकरण का उपयोग करते हैं, तो प्रतिक्रियाएँ रेट लिमिट हेडर शामिल करती हैं:</p>\n<pre><code class=\"hljs language-plaintext\">X-RateLimit-Limit: 60\nX-RateLimit-Remaining: 42\nX-RateLimit-Reset: 1782567840</code></pre><p>जब आप सीमा पार करते हैं:</p>\n<pre><code class=\"hljs language-plaintext\">HTTP/1.1 429 Too Many Requests\nX-RateLimit-Limit: 60\nX-RateLimit-Remaining: 0\nRetry-After: 42\nContent-Type: application/json\n\n{\n  &quot;statusCode&quot;: 429,\n  &quot;error&quot;: &quot;Too Many Requests&quot;,\n  &quot;message&quot;: &quot;Rate limit exceeded. Use Authorization header for unlimited access.&quot;\n}</code></pre><h2>जब आप रेट लिमिट हिट करते हैं</h2>\n<p>यदि आपको 429 मिलता है:</p>\n<ol>\n<li><p><strong>Authorization हेडर पर स्विच करें</strong> (अनुशंसित):</p>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># Don&#x27;t: ?key=YOUR_MIND_KEY (60/min limit)</span>\ncurl <span class=\"hljs-string\">&quot;.../memory/recall?key=YOUR_MIND_KEY&quot;</span>\n\n<span class=\"hljs-comment\"># Do: Authorization header (unlimited)</span>\ncurl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> .../memory/recall</code></pre></li>\n<li><p><strong>या <code>Retry-After</code> सेकंड प्रतीक्षा करें</strong> और पुनः प्रयास करें।</p>\n</li>\n</ol>\n<h2>?key= सीमा क्यों मौजूद है</h2>\n<p><code>?key=</code> क्वेरी पैरामीटर URL-केवल टूल्स (ब्राउज़र, <code>open</code> कमांड) के लिए सुविधाजनक है, लेकिन इसके सुरक्षा और प्रदर्शन निहितार्थ हैं:</p>\n<ul>\n<li><strong>सुरक्षा:</strong> क्वेरी पैरामीटर सर्वर एक्सेस लॉग, ब्राउज़र इतिहास, और Referer हेडर में लॉग किए जाते हैं। उपयोग को सीमित करने से जोखिम कम होता है।</li>\n<li><strong>प्रदर्शन:</strong> क्वेरी-पैरामीटर प्रमाणीकरण के लिए IP-आधारित रेट लिमिटर की आवश्यकता होती है (प्रति अनुरोध Redis लुकअप), जो विलंबता जोड़ता है। हेडर प्रमाणीकरण इसे छोड़ देता है।</li>\n<li><strong>दुरुपयोग निवारण:</strong> लीक हुई <code>?key=</code> URL साझा और हैमर की जा सकती है। IP सीमा प्रभाव की दायरा सीमित रखती है।</li>\n</ul>\n<h2>अनुशंसित पैटर्न</h2>\n<h3>LLM एजेंट्स</h3>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># Always use header auth</span>\nheaders = {<span class=\"hljs-string\">&quot;Authorization&quot;</span>: <span class=\"hljs-string\">f&quot;Bearer <span class=\"hljs-subst\">{MIND_KEY}</span>&quot;</span>}\nresponse = requests.get(<span class=\"hljs-string\">f&quot;<span class=\"hljs-subst\">{URL}</span>/memory/recall&quot;</span>, headers=headers)</code></pre><h3>ब्राउज़र-आधारित टूल्स</h3>\n<p>यदि आपका टूल केवल URL खोल सकता है:</p>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># OK for occasional use (under 60/min)</span>\nopen <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory/recall?key=YOUR_MIND_KEY&quot;</span>\n\n<span class=\"hljs-comment\"># For frequent use, switch to a tool that supports headers</span>\ncurl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> .../memory/recall</code></pre><h3>MCP server</h3>\n<p>MCP servers हमेशा <code>SYNAPSE_MIND_KEY</code> env var के माध्यम से हेडर प्रमाणीकरण का उपयोग करते हैं — कोई रेट लिमिट लागू नहीं होती।</p>\n<h3>बल्क आयात</h3>\n<p>बल्क ऑपरेशन्स (जैसे 1000 मेमोरीज़ आयात करना) के लिए, हमेशा हेडर प्रमाणीकरण का उपयोग करें। <code>?key=</code> के माध्यम से बल्क आयात 1 मिनट के भीतर रेट लिमिट हिट करेगा।</p>\n<h2>कोटा (Mind-स्तर)</h2>\n<p>वर्तमान में स्टोरेज आकार या मेमोरी गिनती पर कोई प्रति-mind कोटा नहीं है। सभी सीमाएँ डेटा स्तर पर नहीं, बल्कि प्रमाणीकरण/IP स्तर पर हैं। यह भविष्य में मल्टी-टैनेंट निष्पक्षता के लिए बदल सकता है।</p>\n<h2>अपने उपयोग की निगरानी</h2>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># Check your current rate limit status (with ?key= auth)</span>\ncurl -i <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory/stats?key=YOUR_MIND_KEY&quot;</span> | grep -i ratelimit\n\n<span class=\"hljs-comment\"># Output:</span>\n<span class=\"hljs-comment\"># X-RateLimit-Limit: 60</span>\n<span class=\"hljs-comment\"># X-RateLimit-Remaining: 58</span>\n<span class=\"hljs-comment\"># X-RateLimit-Reset: 1782567840</span></code></pre><h2>अगले कदम</h2>\n<ul>\n<li><a href=\"/docs/getting-started/authentication\">प्रमाणीकरण</a></li>\n<li><a href=\"/docs/api/errors\">त्रुटियाँ और त्रुटि प्रबंधन</a></li>\n</ul>\n","urls":{"html":"/docs/api/rate-limits","text":"/docs/api/rate-limits?format=text","json":"/docs/api/rate-limits?format=json","llm":"/docs/api/rate-limits?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}