Rate Limiting ve Kotalar

Smart Money API'nin rate limitlerini, her abonelik kademesi için günlük kotaları ve API kullanımınızı maksimize etmek için optimizasyon stratejilerini öğrenin.

Genel Bakış

Smart Money API, hizmet kalitesini ve tüm kullanıcılar arasında adaleti sağlamak için günlük istek kotaları uygular. Her abonelik kademesi farklı bir günlük limite sahiptir. Günlük kotanızı aştığınızda, UTC gece yarısında kotanız sıfırlanana kadar 429 Too Many Requests hatası alırsınız.

Rate limitler API anahtarı başına uygulanır. Her anahtarın kendi bağımsız kotası vardır. Farklı uygulamalar için birden fazla anahtar oluşturabilir ve her birinin kullanımını ayrı ayrı izleyebilirsiniz.

Abonelik Kademelerine Göre Kotalar

Kademe Günlük İstekler Fiyat Özellikler
Ücretsiz 20 istek/gün $0 BTC, ETH, SOL, funding rates, liquidations
Trader 400 istek/gün $29/ay Tüm semboller, balina pozisyonları, OI verileri
Pro 4,000 istek/gün $79/ay Onay skorları, on-chain veri, webhooks
Enterprise Özel Özel Özel destek, özel entegrasyonlar

Rate Limit Yanıt Başlıkları

Her API yanıtı, mevcut kota durumunuzu gösteren başlıklar içerir:

HTTP Başlıkları
X-Requests-Limit: 200 X-Requests-Remaining: 147 X-Requests-Reset: 1711116000 X-Requests-Reset-ISO: 2026-03-22T00:00:00Z
Başlık Açıklama
X-Requests-Limit Günlük izin verilen toplam istek sayısı (ör. Trader için 200)
X-Requests-Remaining Mevcut günde kalan istekler
X-Requests-Reset Kotanın sıfırlanacağı Unix zaman damgası
X-Requests-Reset-ISO Kota sıfırlanma zamanı için ISO 8601 zaman damgası

İstek Yapmadan Önce Kota Kontrolü

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"Kota: {remaining}/{limit} istek ({percent_used:.1f}% kullanıldı)") print(f"Sıfırlanma zamanı: {reset_time}") if remaining < 5: print("UYARI: Kota limitine yaklaşıldı!") return False return True # İstek yapmadan önce kontrol if check_quota_before_request("sk_live_abc123xyz789"): print("API çağrıları için güvenli")

Günlük Rate Penceresi

Rate limitleri 24 saatlik bir pencere üzerinde çalışır. Kota her gün UTC gece yarısında (00:00 UTC) sıfırlanır. Tam sıfırlanma zamanı X-Requests-Reset-ISO başlığında sağlanır.

Örnek: Trader Kademesi (400 istek/gün)

  • Gün 1 (21 Mart): 00:00 UTC'de 200 istek kullanılabilir
  • 10:30 UTC: 75 istek yapıldı, 125 kaldı
  • 15:45 UTC: 100 istek daha yapıldı, 25 kaldı
  • 23:59 UTC: Hala 25 istek kaldı (devredilemez)
  • Gün 2 (22 Mart, 00:00 UTC): Kota 200'e sıfırlandı

Optimizasyon Stratejileri

1. API Yanıtlarını Önbelleğe Al

Balina pozisyonları her saniye değişmez. Sonuçları 30-60 saniye önbelleğe alın ve yeni API çağrıları yapmak yerine önbelleklenmiş verileri kullanın.

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() # Hala taze ise önbelleklenmiş veriyi döndür if cache_key in self.cache: age = now - self.cache_time[cache_key] if age < self.cache_ttl: print(f"Önbellekten sunuldu (yaş: {age:.1f}s)") return self.cache[cache_key] # Yeni veri al 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 # Kullanım: 60 saniye önbellekle client = CachedClient("sk_live_abc123xyz789", cache_ttl=60) whales1 = client.get_whale_positions("BTCUSDT") # API çağrısı whales2 = client.get_whale_positions("BTCUSDT") # Önbellekten whales3 = client.get_whale_positions("BTCUSDT") # Önbellekten

2. Gerçek Zamanlı Veri için WebSocket Kullanın

WebSocket bağlantıları, rate limitinize sayılmadan anlık güncellemeler sağlar. Akışlara abone olun ve güncellemeleri gerçek zamanlı alarak REST API çağrılarınızı azaltın.

3. İstekleri Stratejik Olarak Toplu Yapın

Mümkün olduğunda her sembol için ayrı istekler yapmak yerine, birden fazla sembol içeren tek bir istek yapın. Bu, API çağrılarını 10 kata kadar azaltır.

4. İstek Zamanında Filtreleme Kullanın

İhtiyacınız olan veriyi tam olarak almak için (sembol, borsa, min_position_size) sorgu parametrelerinde filtreleme yapın, böylece sonradan işleme ihtiyacınız kalmaz.

Rate Limit Hatalarını Yönetme

Üstel Geri Çekilme ile Yeniden Dene

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 limit - üstel geri çekilme wait_time = min(2 ** attempt, 300) # Maks 5 dakika reset_time = response.headers.get("X-Requests-Reset-ISO") print(f"Rate limit. {wait_time}s sonra yeniden denenecek (sıfırlanma: {reset_time})") time.sleep(wait_time) elif response.status_code >= 500: # Sunucu hatası - yeniden dene wait_time = 2 ** attempt print(f"Sunucu hatası {response.status_code}. {wait_time}s sonra yeniden denenecek") time.sleep(wait_time) else: # Diğer hata - yeniden deneme raise Exception(f"HTTP {response.status_code}: {response.text}") except requests.exceptions.Timeout: wait_time = 2 ** attempt print(f"Zaman aşımı. {wait_time}s sonra yeniden denenecek") time.sleep(wait_time) raise Exception("Maksimum yeniden deneme aşıldı") # Kullanım data = request_with_retry( "https://api.smartmoneyapi.com/v1/whales/events", "sk_live_abc123xyz789" ) print(data)

Yükseltmeye Hazır mısınız?

Ücretsiz kademe yeterli değil mi? Daha yüksek kotalar ve onay skorları, on-chain veri gibi gelişmiş özelliklere erişmek için Trader veya Pro'ya yükseltin.

Fiyatlandırmayı Görüntüle

API Kullanımınızı Bugün Optimize Edin

Önbelleğe alma uygulayın, gerçek zamanlı veri için WebSocket kullanın ve rate limitleri zarifçe yönetin.

Dokümantasyonu Oku
Ücretsiz başlayın — günde 100 çağrı, kart gerekmez

3 borsadan canlı balina akışı, funding, açık pozisyon ve on-chain verileri tek bir API ile alın. Ücretsiz kademe, kredi kartı gerekmez, istediğiniz zaman yükseltebilirsiniz.

Ücretsiz başla →
Canlı API konsolunu deneyin → (hesap gerekmez)
API anahtarınızı 30 saniyede alın

Geliştirmeye hazır mısınız? Ücretsiz API anahtarınızı alın (günde 100 çağrı, kart gerekmez) ve canlı balina, funding ve on-chain verileri çekmeye başlayın.

API anahtarınızı alın →