Pembatasan Laju dan Kuota

Pahami batas laju Smart Money API, kuota harian untuk setiap tier langganan, dan strategi optimasi untuk memaksimalkan penggunaan API Anda.

Ikhtisar

Smart Money API menerapkan kuota permintaan harian untuk memastikan kualitas layanan dan keadilan bagi semua pengguna. Setiap tier langganan memiliki batas harian yang berbeda. Saat Anda melebihi kuota harian, Anda akan menerima error 429 Too Many Requests hingga kuota Anda direset pada tengah malam UTC.

Batas laju diterapkan per kunci API. Setiap kunci memiliki kuota independennya sendiri. Anda dapat membuat beberapa kunci untuk aplikasi yang berbeda dan memantau penggunaannya secara terpisah.

Kuota berdasarkan Tier Langganan

Tier Permintaan Harian Harga Fitur
Gratis 100 permintaan/hari $0 BTC, ETH, SOL, funding rates, liquidations
Trader 1,000 permintaan/hari $29/bulan Semua simbol, posisi paus, data OI
Pro 5.000 permintaan/hari $79/bulan Skor konfirmasi, data on-chain, webhooks
Enterprise Kustom Kustom Dukungan khusus, integrasi kustom

Header Respons Pembatasan Laju

Setiap respons API mencakup header yang menunjukkan status kuota Anda saat ini:

Header HTTP
X-Requests-Limit: 200 X-Requests-Remaining: 147 X-Requests-Reset: 1711116000 X-Requests-Reset-ISO: 2026-03-22T00:00:00Z
Header Deskripsi
X-Requests-Limit Total permintaan yang diizinkan per hari (misalnya, 200 untuk Trader)
X-Requests-Remaining Permintaan tersisa di hari ini
X-Requests-Reset Timestamp Unix saat kuota direset
X-Requests-Reset-ISO Timestamp ISO 8601 untuk reset kuota

Memeriksa 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"Reset pada: {reset_time}") if remaining < 5: print("PERINGATAN: Mendekati batas kuota!") return False return True # Periksa sebelum membuat permintaan if check_quota_before_request("sk_live_abc123xyz789"): print("Aman untuk melanjutkan dengan panggilan API")

Jendela Laju Harian

Batas laju beroperasi dalam jendela bergulir 24 jam. Kuota Anda direset setiap hari pada tengah malam UTC (00:00 UTC). Waktu reset yang tepat diberikan dalam X-Requests-Reset-ISO header.

Contoh: Tier Trader (1,000 permintaan/hari)

  • Hari 1 (21 Mar): 200 permintaan tersedia pada 00:00 UTC
  • 10:30 UTC: Membuat 75 permintaan, tersisa 125
  • 15:45 UTC: Membuat 100 permintaan lagi, tersisa 25
  • 23:59 UTC: Masih tersisa 25 permintaan (tidak bisa dibawa ke hari berikutnya)
  • Hari 2 (22 Mar, 00:00 UTC): Kuota direset ke 200

Strategi Optimasi

1. Cache Respons API

Posisi paus tidak berubah setiap detik. Cache hasil selama 30-60 detik dan sajikan data yang di-cache alih-alih 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"Disajikan dari cache (usia: {age:.1f}s)") return self.cache[cache_key] # Ambil data baru 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 detik 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 Real-Time

Koneksi WebSocket memberikan pembaruan secara instan tanpa mengurangi kuota batas laju Anda. Berlangganan ke aliran dan terima pembaruan saat terjadi, mengurangi jumlah panggilan REST API yang diperlukan.

3. Lakukan Permintaan Secara Strategis

Buat satu permintaan dengan beberapa simbol jika memungkinkan alih-alih permintaan terpisah untuk setiap simbol. Ini mengurangi panggilan API hingga 10x.

4. Gunakan Penyaringan Saat Permintaan

Terapkan filter (simbol, bursa, min_position_size) dalam parameter kueri untuk mendapatkan data yang Anda butuhkan, menghindari kebutuhan untuk pasca-pemrosesan.

Menangani Error Pembatasan Laju

Coba Ulang dengan Exponential Backoff

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) # Maks 5 menit 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") # Penggunaan data = request_with_retry( "https://api.smartmoneyapi.com/v1/whales/events", "sk_live_abc123xyz789" ) print(data)

Siap untuk Upgrade?

Tier gratis tidak cukup? Upgrade ke Trader atau Pro untuk kuota lebih tinggi dan akses ke fitur canggih seperti skor konfirmasi dan data on-chain.

Lihat Harga

Optimalkan Penggunaan API Anda Hari Ini

Terapkan caching, gunakan WebSocket untuk data real-time, dan tangani batasan laju dengan baik.

Baca Dokumentasi
Mulai gratis — 100 panggilan/hari, tanpa kartu

Dapatkan aliran paus live, funding, open interest dan data on-chain di 3 bursa dari satu API. Tier gratis, tanpa kartu kredit, upgrade kapan saja.

Mulai gratis →
Coba konsol API live → (tidak perlu akun)
Dapatkan kunci API Anda dalam 30 detik

Siap membangun? Dapatkan kunci API gratis (100 panggilan/hari, tanpa kartu) dan mulai menarik data paus, funding, dan on-chain live.

Dapatkan kunci API Anda →