Had dan Kuota

Fahami had kadar Smart Money API, kuota harian untuk setiap tahap langganan, dan strategi pengoptimuman untuk memaksimumkan penggunaan API anda.

Gambaran Keseluruhan

Smart Money API melaksanakan kuota permintaan harian untuk memastikan kualiti perkhidmatan dan keadilan untuk semua pengguna. Setiap tahap langganan termasuk had harian yang berbeza. Apabila anda melebihi kuota harian anda, anda akan menerima ralat 429 Terlalu Banyak Permintaan sehingga kuota anda ditetapkan semula pada tengah malam UTC.

Had kadar dikenakan setiap kunci API. Setiap kunci mempunyai kuota bebas tersendiri. Anda boleh menjana berbilang kunci untuk aplikasi yang berbeza dan memantau penggunaan untuk setiap satu secara berasingan.

Kuota mengikut Tahap Langganan

Tahap Permintaan Harian Harga Ciri-ciri
Percuma 100 permintaan/hari $0 BTC, ETH, SOL, kadar pembiayaan, pelupusan
Peniaga 1,000 permintaan/hari $29/sebulan Semua simbol, posisi ikan paus, data OI
Pro 5,000 permintaan/hari $79/sebulan Skor pengesahan, data on-chain, webhooks
Enterprise Tersuai Tersuai Sokongan berdedikasi, integrasi tersuai

Header Respons Had Kadar

Setiap respons API termasuk header yang menunjukkan status kuota semasa anda:

Header HTTP
X-Requests-Limit: 200 X-Requests-Remaining: 147 X-Requests-Reset: 1711116000 X-Requests-Reset-ISO: 2026-03-22T00:00:00Z
Header Penerangan
X-Requests-Limit Jumlah permintaan yang dibenarkan setiap hari (contohnya, 200 untuk Peniaga)
X-Requests-Remaining Permintaan yang tinggal pada hari semasa
X-Requests-Reset Cap masa Unix apabila kuota ditetapkan semula
X-Requests-Reset-ISO Cap masa ISO 8601 untuk penetapan semula kuota

Menyemak Kuota Sebelum Membuat Permintaan

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"Kuota: {remaining}/{limit} permintaan ({percent_used:.1f}% digunakan)") print(f"Ditetapkan semula pada: {reset_time}") if remaining < 5: print("AMARAN: Menghampiri had kuota!") return False return True # Semak sebelum membuat permintaan if check_quota_before_request("sk_live_abc123xyz789"): print("Selamat untuk meneruskan panggilan API")

Tetingkap Kadar Harian

Had kadar beroperasi pada tetingkap bergulir 24 jam. Kuota anda ditetapkan semula setiap hari pada tengah malam UTC (00:00 UTC). Masa penetapan semula yang tepat disediakan dalam X-Requests-Reset-ISO header.

Contoh: Tahap Peniaga (1,000 permintaan/hari)

  • Hari 1 (21 Mac): 200 permintaan tersedia pada 00:00 UTC
  • 10:30 UTC: Membuat 75 permintaan, 125 tinggal
  • 15:45 UTC: Membuat 100 permintaan lagi, 25 tinggal
  • 23:59 UTC: Masih 25 permintaan tinggal (tidak boleh dibawa ke hadapan)
  • Hari 2 (22 Mac, 00:00 UTC): Kuota ditetapkan semula kepada 200

Strategi Pengoptimuman

1. Cache Respons API

Posisi ikan paus tidak berubah setiap saat. Cache hasil selama 30-60 saat dan berikan data cache daripada membuat panggilan API baru.

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() # Kembalikan data cache jika masih segar if cache_key in self.cache: age = now - self.cache_time[cache_key] if age < self.cache_ttl: print(f"Diberikan dari cache (umur: {age:.1f}s)") return self.cache[cache_key] # Dapatkan data baharu 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 # Penggunaan: Cache selama 60 saat client = CachedClient("sk_live_abc123xyz789", cache_ttl=60) whales1 = client.get_whale_positions("BTCUSDT") # Panggilan API whales2 = client.get_whale_positions("BTCUSDT") # Dari cache whales3 = client.get_whale_positions("BTCUSDT") # Dari cache

2. Gunakan WebSocket untuk Data Masa Nyata

Sambungan WebSocket memberikan kemas kini serta-merta tanpa dikira terhadap had kadar anda. Langgan aliran dan terima kemas kini semasa ia berlaku, mengurangkan bilangan panggilan REST API yang diperlukan.

3. Permintaan Batch Secara Strategik

Buat satu permintaan dengan berbilang simbol apabila mungkin daripada permintaan berasingan untuk setiap simbol. Ini mengurangkan panggilan API sehingga 10x.

4. Gunakan Penapisan pada Masa Permintaan

Gunakan penapis (simbol, pertukaran, saiz_posisi_min) dalam parameter pertanyaan untuk mendapatkan data yang tepat yang anda perlukan, mengelakkan keperluan pemprosesan lepas.

Mengendalikan Ralat Had Kadar

Cuba Semula dengan Backoff Eksponen

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: # Dihad kadar - back off eksponen wait_time = min(2 ** attempt, 300) # Maks 5 minit reset_time = response.headers.get("X-Requests-Reset-ISO") print(f"Dihad kadar. Mencuba semula dalam {wait_time}s (ditetapkan semula pada {reset_time})") time.sleep(wait_time) elif response.status_code >= 500: # Ralat pelayan - cuba semula wait_time = 2 ** attempt print(f"Ralat pelayan {response.status_code}. Mencuba semula dalam {wait_time}s") time.sleep(wait_time) else: # Ralat lain - jangan cuba semula raise Exception(f"HTTP {response.status_code}: {response.text}") except requests.exceptions.Timeout: wait_time = 2 ** attempt print(f"Masa tamat. Mencuba semula dalam {wait_time}s") time.sleep(wait_time) raise Exception("Mencapai had percubaan maksimum") # Penggunaan data = request_with_retry( "https://api.smartmoneyapi.com/v1/whales/events", "sk_live_abc123xyz789" ) print(data)

Sedia untuk Naik Taraf?

Tahap percuma tidak mencukupi? Naik taraf kepada Peniaga atau Pro untuk kuota yang lebih tinggi dan akses kepada ciri lanjutan seperti skor pengesahan dan data on-chain.

Lihat Harga

Optimumkan Penggunaan API Anda Hari Ini

Laksanakan caching, gunakan WebSocket untuk data masa nyata, dan kendalikan had kadar dengan baik.

Baca Dokumentasi
Mulakan percuma — 100 panggilan/hari, tiada kad

Dapatkan aliran ikan paus langsung, pembiayaan, minat terbuka dan data on-chain merentasi 3 pertukaran dari satu API. Tahap percuma, tiada kad kredit, naik taraf bila-bila masa.

Mulakan percuma →
Cuba konsol API langsung → (tiada akaun diperlukan)
Dapatkan kunci API anda dalam 30 saat

Sedia untuk membina? Dapatkan kunci API percuma (100 panggilan/hari, tiada kad) dan mula menarik data ikan paus, pembiayaan dan on-chain langsung.

Dapatkan kunci API anda →