Rate Limiting en Quota's

Begrijp Smart Money API rate limits, dagelijkse quota's voor elk abonnementstier en optimalisatiestrategieën om je API-gebruik te maximaliseren.

Overzicht

Smart Money API implementeert dagelijkse aanvraagquota's om de servicekwaliteit en eerlijkheid voor alle gebruikers te waarborgen. Elk abonnementstier heeft een ander dagelijks limiet. Wanneer je je dagelijkse quota overschrijdt, ontvang je een 429 Too Many Requests-fout totdat je quota om middernacht UTC wordt gereset.

Rate limits worden per API-sleutel toegepast. Elke sleutel heeft zijn eigen onafhankelijke quota. Je kunt meerdere sleutels genereren voor verschillende toepassingen en het gebruik voor elk apart monitoren.

Quota's per Abonnementstier

Tier Dagelijkse Aanvragen Prijs Functies
Gratis 20 aanvragen/dag $0 BTC, ETH, SOL, funding rates, liquidaties
Trader 400 aanvragen/dag $29/maand Alle symbolen, walvisposities, OI-data
Pro 4.000 aanvragen/dag $79/maand Bevestigingsscores, on-chain data, webhooks
Enterprise Aangepast Aangepast Toegewijde ondersteuning, aangepaste integraties

Rate Limit Response Headers

Elke API-respons bevat headers die je huidige quotastatus aangeven:

HTTP Headers
X-Requests-Limit: 200 X-Requests-Remaining: 147 X-Requests-Reset: 1711116000 X-Requests-Reset-ISO: 2026-03-22T00:00:00Z
Header Beschrijving
X-Requests-Limit Totaal aantal toegestane aanvragen per dag (bijv. 200 voor Trader)
X-Requests-Remaining Aanvragen die nog over zijn voor de huidige dag
X-Requests-Reset Unix-timestamp wanneer het quota wordt gereset
X-Requests-Reset-ISO ISO 8601-timestamp voor quotareset

Quota Controleren Voordat Aanvragen Worden Gedaan

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("WAARSCHUWING: Quotalimiet bijna bereikt!") return False return True # Controleer voordat je aanvragen doet if check_quota_before_request("sk_live_abc123xyz789"): print("Veilig om door te gaan met API-aanroepen")

Dagelijks Rate Window

Rate limits werken op een 24-uurs rollend venster. Je quota wordt dagelijks om middernacht UTC (00:00 UTC) gereset. De exacte resettijd wordt aangegeven in de X-Requests-Reset-ISO header.

Voorbeeld: Trader Tier (400 aanvragen/dag)

  • Dag 1 (21 mrt): 200 aanvragen beschikbaar om 00:00 UTC
  • 10:30 UTC: 75 aanvragen gedaan, 125 over
  • 15:45 UTC: 100 aanvragen gedaan, 25 over
  • 23:59 UTC: Nog steeds 25 aanvragen over (kan niet worden meegenomen)
  • Dag 2 (22 mrt, 00:00 UTC): Quota wordt gereset naar 200

Optimalisatiestrategieën

1. Cache API-responses

Walvisposities veranderen niet elke seconde. Cache resultaten voor 30-60 seconden en serveer gecachte data in plaats van nieuwe API-aanroepen te doen.

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() # Retourneer gecachte data als deze nog vers is if cache_key in self.cache: age = now - self.cache_time[cache_key] if age < self.cache_ttl: print(f"Geserveerd vanuit cache (leeftijd: {age:.1f}s)") return self.cache[cache_key] # Haal verse data op 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 # Gebruik: Cache voor 60 seconden client = CachedClient("sk_live_abc123xyz789", cache_ttl=60) whales1 = client.get_whale_positions("BTCUSDT") # API-aanroep whales2 = client.get_whale_positions("BTCUSDT") # Uit cache whales3 = client.get_whale_positions("BTCUSDT") # Uit cache

2. Gebruik WebSocket voor Real-Time Data

WebSocket-verbindingen leveren updates direct zonder dat ze meetellen voor je rate limit. Abonneer je op streams en ontvang updates zodra ze gebeuren, waardoor het aantal REST API-aanroepen wordt verminderd.

3. Batch Aanvragen Strategisch

Doe één aanvraag met meerdere symbolen wanneer mogelijk in plaats van aparte aanvragen voor elk symbool. Dit vermindert API-aanroepen tot wel 10x.

4. Gebruik Filtering bij Aanvraagtijd

Pas filters toe (symbool, exchange, min_position_size) in queryparameters om precies de data te krijgen die je nodig hebt, waardoor post-processing overbodig wordt.

Omgaan met Rate Limit Fouten

Probeer opnieuw met Exponentiële 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 exponentieel wait_time = min(2 ** attempt, 300) # Max 5 minuten reset_time = response.headers.get("X-Requests-Reset-ISO") print(f"Rate limited. Probeer opnieuw in {wait_time}s (resets at {reset_time})") time.sleep(wait_time) elif response.status_code >= 500: # Serverfout - probeer opnieuw wait_time = 2 ** attempt print(f"Serverfout {response.status_code}. Probeer opnieuw in {wait_time}s") time.sleep(wait_time) else: # Andere fout - probeer niet opnieuw raise Exception(f"HTTP {response.status_code}: {response.text}") except requests.exceptions.Timeout: wait_time = 2 ** attempt print(f"Timeout. Probeer opnieuw in {wait_time}s") time.sleep(wait_time) raise Exception("Maximale aantal pogingen overschreden") # Gebruik data = request_with_retry( "https://api.smartmoneyapi.com/v1/whales/events", "sk_live_abc123xyz789" ) print(data)

Klaar om te Upgraden?

Gratis tier niet genoeg? Upgrade naar Trader of Pro voor hogere quota's en toegang tot geavanceerde functies zoals bevestigingsscores en on-chain data.

Bekijk Prijzen

Optimaliseer Je API-Gebruik Vandaag Nog

Implementeer caching, gebruik WebSocket voor real-time data en ga op een elegante manier om met rate limits.

Lees Documentatie
Start gratis — 200 calls/dag, geen kaart

Krijg live walvisflow, funding, open interest en on-chain data over 3 exchanges vanuit één API. Gratis tier, geen creditcard, upgrade op elk moment.

Start gratis →
Probeer de live API-console → (geen account nodig)
Krijg je API-sleutel in 30 seconden

Klaar om te bouwen? Pak een gratis API-sleutel (200 calls/dag, geen kaart) en begin met het ophalen van live walvis-, funding- en on-chain data.

Krijg je API-sleutel →