تحديد المعدل والحصص

افهم حدود معدل Smart Money API، والحصص اليومية لكل مستوى اشتراك، واستراتيجيات التحسين لتعظيم استخدامك لواجهة برمجة التطبيقات.

نظرة عامة

تطبق Smart Money API حصص الطلبات اليومية لضمان جودة الخدمة والعدل بين جميع المستخدمين. يتضمن كل مستوى اشتراك حدًا يوميًا مختلفًا. عند تجاوز الحصة اليومية، ستتلقى خطأ 429 Too Many Requests حتى يتم إعادة تعيين الحصة في منتصف الليل بالتوقيت العالمي المنسق (UTC).

يتم تطبيق حدود المعدل لكل مفتاح API. لكل مفتاح حصته المستقلة. يمكنك إنشاء مفاتيح متعددة لتطبيقات مختلفة ومراقبة الاستخدام لكل منها بشكل منفصل.

الحصص حسب مستوى الاشتراك

المستوى الطلبات اليومية السعر الميزات
مجاني 100 طلبًا/يوم $0 BTC, ETH, SOL, معدلات التمويل، التصفيات
تاجر 400 طلب/يوم 29 دولارًا/شهر جميع الرموز، مراكز الحيتان، بيانات OI
محترف 4,000 طلب/يوم 79 دولارًا/شهر درجات التأكيد، بيانات السلسلة، webhooks
مؤسسة مخصص مخصص دعم مخصص، تكاملات مخصصة

رؤوس استجابة حد المعدل

تتضمن كل استجابة API رؤوسًا تشير إلى حالة الحصة الحالية:

رؤوس HTTP
X-Requests-Limit: 200 X-Requests-Remaining: 147 X-Requests-Reset: 1711116000 X-Requests-Reset-ISO: 2026-03-22T00:00:00Z
الرأس الوصف
X-Requests-Limit إجمالي الطلبات المسموح بها يوميًا (مثال: 200 للتاجر)
X-Requests-Remaining الطلبات المتبقية في اليوم الحالي
X-Requests-Reset طابع زمني يونيكس لإعادة تعيين الحصة
X-Requests-Reset-ISO طابع زمني ISO 8601 لإعادة تعيين الحصة

فحص الحصة قبل تقديم الطلبات

بايثون
import requests from datetime import datetime def check_quota_before_request(api_key): response = requests.head( "https://api.smartmoneyapi.com/v1/whales/events", headers={"Authorization": f"Bearer {api_key}"} ) limit = int(response.headers.get("X-Requests-Limit", 0)) remaining = int(response.headers.get("X-Requests-Remaining", 0)) reset_unix = int(response.headers.get("X-Requests-Reset", 0)) reset_time = datetime.fromtimestamp(reset_unix) percent_used = (limit - remaining) / limit * 100 print(f"Quota: {remaining}/{limit} requests ({percent_used:.1f}% used)") print(f"Resets at: {reset_time}") if remaining < 5: print("WARNING: Approaching quota limit!") return False return True # Check before making requests if check_quota_before_request("sk_live_abc123xyz789"): print("Safe to proceed with API calls")

نافذة المعدل اليومية

تعمل حدود المعدل على نافذة متداولة مدتها 24 ساعة. يتم إعادة تعيين الحصة يوميًا في منتصف الليل بالتوقيت العالمي المنسق (00:00 UTC). يتم توفير وقت إعادة التعيين الدقيق في X-Requests-Reset-ISO الرأس.

مثال: مستوى التاجر (400 طلب/يوم)

  • اليوم 1 (21 مارس): 200 طلب متاح في 00:00 UTC
  • 10:30 UTC: تم تقديم 75 طلبًا، 125 متبقية
  • 15:45 UTC: تم تقديم 100 طلب إضافي، 25 متبقية
  • 23:59 UTC: لا يزال 25 طلبًا متبقية (لا يمكن ترحيلها)
  • اليوم 2 (22 مارس، 00:00 UTC): تم إعادة تعيين الحصة إلى 200

استراتيجيات التحسين

1. تخزين استجابات API مؤقتًا

لا تتغير مراكز الحيتان كل ثانية. قم بتخزين النتائج لمدة 30-60 ثانية وخدم البيانات المخزنة بدلاً من إجراء مكالمات API جديدة.

بايثون
import requests import time class CachedClient: def __init__(self, api_key, cache_ttl=60): self.api_key = api_key self.cache_ttl = cache_ttl self.cache = {} self.cache_time = {} def get_whale_positions(self, symbol): cache_key = f"whales:{symbol}" now = time.time() # Return cached data if still fresh if cache_key in self.cache: age = now - self.cache_time[cache_key] if age < self.cache_ttl: print(f"Served from cache (age: {age:.1f}s)") return self.cache[cache_key] # Fetch fresh data response = requests.get( f"https://api.smartmoneyapi.com/v1/whales/events?symbol={symbol}", headers={"Authorization": f"Bearer {self.api_key}"} ) data = response.json() self.cache[cache_key] = data self.cache_time[cache_key] = now return data # Usage: Cache for 60 seconds client = CachedClient("sk_live_abc123xyz789", cache_ttl=60) whales1 = client.get_whale_positions("BTCUSDT") # API call whales2 = client.get_whale_positions("BTCUSDT") # From cache whales3 = client.get_whale_positions("BTCUSDT") # From cache

2. استخدام WebSocket للبيانات في الوقت الحقيقي

توفر اتصالات WebSocket تحديثات فورية دون احتسابها ضمن حد المعدل الخاص بك. اشترك في التدفقات واستقبل التحديثات عند حدوثها، مما يقلل من عدد مكالمات REST API المطلوبة.

3. تجميع الطلبات بشكل استراتيجي

قم بتقديم طلب واحد يحتوي على رموز متعددة عندما يكون ذلك ممكنًا بدلاً من طلبات منفصلة لكل رمز. هذا يقلل من مكالمات API بمقدار يصل إلى 10x.

4. استخدام التصفية في وقت الطلب

قم بتطبيق عوامل التصفية (الرمز، البورصة، min_position_size) في معلمات الاستعلام للحصول على البيانات التي تحتاجها بالضبط، وتجنب الحاجة إلى المعالجة اللاحقة.

التعامل مع أخطاء حد المعدل

إعادة المحاولة مع التراجع الأسي

بايثون
import requests import time def request_with_retry(url, api_key, max_retries=5): for attempt in range(max_retries): try: response = requests.get( url, headers={"Authorization": f"Bearer {api_key}"}, timeout=10 ) if response.status_code == 200: return response.json() elif response.status_code == 429: # Rate limited - back off exponentially wait_time = min(2 ** attempt, 300) # Max 5 minutes reset_time = response.headers.get("X-Requests-Reset-ISO") print(f"Rate limited. Retrying in {wait_time}s (resets at {reset_time})") time.sleep(wait_time) elif response.status_code >= 500: # Server error - retry wait_time = 2 ** attempt print(f"Server error {response.status_code}. Retrying in {wait_time}s") time.sleep(wait_time) else: # Other error - don't retry raise Exception(f"HTTP {response.status_code}: {response.text}") except requests.exceptions.Timeout: wait_time = 2 ** attempt print(f"Timeout. Retrying in {wait_time}s") time.sleep(wait_time) raise Exception("Max retries exceeded") # Usage data = request_with_retry( "https://api.smartmoneyapi.com/v1/whales/events", "sk_live_abc123xyz789" ) print(data)

هل أنت مستعد للترقية؟

المستوى المجاني غير كافٍ؟ قم بالترقية إلى التاجر أو المحترف للحصول على حصص أعلى وإمكانية الوصول إلى ميزات متقدمة مثل درجات التأكيد وبيانات السلسلة.

عرض الأسعار

قم بتحسين استخدامك لواجهة برمجة التطبيقات اليوم

قم بتنفيذ التخزين المؤقت، واستخدم WebSocket للبيانات في الوقت الحقيقي، وتعامَل مع حدود المعدل بأسلوب أنيق.

قراءة الوثائق
ابدأ مجانًا - 100 مكالمة/يوم، بدون بطاقة

احصل على تدفق الحيتان المباشر، التمويل، الفائدة المفتوحة وبيانات السلسلة عبر 3 بورصات من واجهة برمجة تطبيقات واحدة. مستوى مجاني، بدون بطاقة ائتمان، قم بالترقية في أي وقت.

ابدأ مجانًا →
جرب وحدة تحكم API المباشرة → (لا حاجة لحساب)
احصل على مفتاح API الخاص بك في 30 ثانية

هل أنت مستعد للبناء؟ احصل على مفتاح API مجاني (100 مكالمة/يوم، بدون بطاقة) وابدأ في سحب بيانات الحيتان المباشرة، التمويل وبيانات السلسلة.

احصل على مفتاح API الخاص بك →