दर सीमाएं
ArchiCore API उचित उपयोग सुनिश्चित करने के लिए दर सीमाएं लागू करती है।
स्तर के अनुसार सीमाएं
| स्तर | अनुरोध/दिन | अनुरोध/मिनट | प्रोजेक्ट्स |
|---|---|---|---|
| मुफ्त | 100 | 10 | 3 |
| Pro | 10,000 | 100 | 25 |
| Enterprise | असीमित | 1,000 | असीमित |
दर सीमा हेडर
प्रत्येक API प्रतिक्रिया में दर सीमा जानकारी शामिल होती है:
HTTP/1.1 200 OK
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1640000000
| हेडर | विवरण |
|---|---|
X-RateLimit-Limit | अधिकतम अनुमत अनुरोध |
X-RateLimit-Remaining | विंडो में शेष अनुरोध |
X-RateLimit-Reset | सीमा रीसेट Unix टाइमस्टैम्प |
दर सीमा पार
जब आप दर सीमा पार करते हैं:
HTTP/1.1 429 Too Many Requests
Retry-After: 60
{
"success": false,
"error": "दर सीमा पार हो गई",
"code": "RATE_LIMIT_EXCEEDED",
"retryAfter": 60
}
सर्वोत्तम प्रथाएं
1. हेडर जांचें
अनुरोध से पहले हमेशा X-RateLimit-Remaining जांचें:
async function makeRequest(url) {
const response = await fetch(url, { headers });
const remaining = response.headers.get('X-RateLimit-Remaining');
if (parseInt(remaining) < 10) {
console.warn('दर सीमा कम:', remaining);
}
return response.json();
}
2. एक्सपोनेंशियल बैकऑफ लागू करें
async function requestWithRetry(url, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const response = await fetch(url, { headers });
if (response.status !== 429) {
return response.json();
}
const retryAfter = response.headers.get('Retry-After') || 60;
await sleep(retryAfter * 1000 * Math.pow(2, i));
}
throw new Error('अधिकतम पुनः प्रयास पार हो गए');
}
3. प्रतिक्रियाएं कैश करें
API कॉल कम करने के लिए प्रतिक्रियाएं कैश करें:
const cache = new Map();
async function getCached(key, fetchFn, ttl = 60000) {
const cached = cache.get(key);
if (cached && Date.now() - cached.timestamp < ttl) {
return cached.data;
}
const data = await fetchFn();
cache.set(key, { data, timestamp: Date.now() });
return data;
}
4. बैच ऑपरेशन
उपलब्ध होने पर बैच एंडपॉइंट्स का उपयोग करें:
// कई अनुरोधों के ब जाय
for (const id of projectIds) {
await client.projects.get(id); // ❌ कई अनुरोध
}
// बैच एंडपॉइंट का उपयोग करें
await client.projects.getBatch(projectIds); // ✓ एक अनुरोध
सीमाएं बढ़ाएं
उच्च सीमाएं चाहिए? Pro में अपग्रेड करें या Enterprise प्लान के लिए संपर्क करें।