محدودیت نرخ و سهمیه‌بندی

محدودیت‌های نرخ Smart Money API، سهمیه‌های روزانه هر سطح اشتراک و راهکارهای بهینه‌سازی برای حداکثر استفاده از API را درک کنید.

مرور کلی

Smart Money API سهمیه‌های درخواست روزانه را برای تضمین کیفیت خدمات و عدالت بین همه کاربران اعمال می‌کند. هر سطح اشتراک شامل یک محدودیت روزانه متفاوت است. هنگامی که سهمیه روزانه شما تمام شود، خطای 429 Too Many Requests دریافت می‌کنید تا زمانی که سهمیه شما در نیمه‌شب UTC بازنشانی شود.

محدودیت‌های نرخ برای هر کلید API اعمال می‌شود. هر کلید سهمیه مستقل خود را دارد. می‌توانید چندین کلید برای برنامه‌های مختلف ایجاد کنید و استفاده از هر یک را جداگانه نظارت کنید.

سهمیه‌ها بر اساس سطح اشتراک

سطح درخواست‌های روزانه قیمت ویژگی‌ها
رایگان 100 درخواست/روز $0 BTC, ETH, SOL, نرخ‌های تأمین مالی, تصفیه‌ها
معامله‌گر 1,000 درخواست/روز 29 دلار/ماه همه نمادها, موقعیت‌های نهنگ‌ها, داده‌های OI
حرفه‌ای 5,000 درخواست/روز 79 دلار/ماه امتیازات تأیید, داده‌های زنجیره‌ای, وب‌هوک‌ها
شرکتی سفارشی سفارشی پشتیبانی اختصاصی, یکپارچه‌سازی سفارشی

هدرهای پاسخ محدودیت نرخ

هر پاسخ 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 مهر زمانی Unix برای بازنشانی سهمیه
X-Requests-Reset-ISO مهر زمانی ISO 8601 برای بازنشانی سهمیه

بررسی سهمیه قبل از ارسال درخواست‌ها

Python
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 ساعته اعمال می‌شوند. سهمیه شما هر روز در نیمه‌شب UTC (00:00 UTC) بازنشانی می‌شود. زمان دقیق بازنشانی در هدر X-Requests-Reset-ISO ارائه شده است.

مثال: سطح معامله‌گر (1,000 درخواست/روز)

  • روز 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 از داده‌های ذخیره شده استفاده کنید.

Python
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 را تا 10 برابر کاهش می‌دهد.

4. استفاده از فیلتر در زمان درخواست

فیلترها (نماد, صرافی, حداقل اندازه موقعیت) را در پارامترهای پرس‌وجو اعمال کنید تا دقیقاً داده‌های مورد نیاز خود را دریافت کنید و از نیاز به پردازش پس‌از آن جلوگیری کنید.

مدیریت خطاهای محدودیت نرخ

تلاش مجدد با تاخیر نمایی

Python
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)

آماده ارتقا هستید؟

سطح رایگان کافی نیست؟ برای سهمیه‌های بالاتر و دسترسی به ویژگی‌های پیشرفته مانند امتیازات تأیید و داده‌های زنجیره‌ای، به سطح معامله‌گر یا حرفه‌ای ارتقا دهید.

مشاهده قیمت‌ها

امروز استفاده از API خود را بهینه کنید

ذخیره‌سازی را پیاده‌سازی کنید، از WebSocket برای داده‌های بلادرنگ استفاده کنید و محدودیت‌های نرخ را به شیوه‌ای مناسب مدیریت کنید.

مطالعه مستندات
شروع رایگان — 100 درخواست/روز، بدون نیاز به کارت

داده‌های زنده جریان نهنگ‌ها، تأمین مالی، سود باز و داده‌های زنجیره‌ای را از 3 صرافی از طریق یک API دریافت کنید. سطح رایگان، بدون نیاز به کارت اعتباری، هر زمان می‌توانید ارتقا دهید.

شروع رایگان →
آزمایش کنسول زنده API → (نیاز به حساب ندارد)
کلید API خود را در 30 ثانیه دریافت کنید

آماده ساخت هستید؟ یک کلید API رایگان دریافت کنید (100 درخواست/روز، بدون نیاز به کارت) و شروع به دریافت داده‌های زنده نهنگ‌ها، تأمین مالی و زنجیره‌ای کنید.

دریافت کلید API →