Omezení počtu požadavek a kvóty

Seznamte se s omezením počtu požadavek Smart Money API, denními kvótami pro každou úroveň předplatného a strategiemi optimalizace pro maximální využití API.

Přehled

Smart Money API implementuje denní kvóty požadavek, aby zajistilo kvalitu služby a spravedlnost pro všechny uživatele. Každá úroveň předplatného má jiný denní limit. Při překročení denní kvóty obdržíte chybu 429 Too Many Requests, dokud se vaše kvóta neobnoví o půlnoci UTC.

Omezení počtu požadavek se uplatňují na každý API klíč. Každý klíč má svou vlastní nezvávislou kvótu. Můžete generovat více klíčů pro různé aplikace a sledovat využití každého zvlášť.

Kvóty podle úrovně předplatného

Úroveň Denní požadavky Cena Vlastnosti
Zdarma 20 požadavek/den $0 BTC, ETH, SOL, funding rates, liquidace
Trader 400 požadavek/den $29/měsíčně Všechny symboly, velrybí pozice, data OI
Pro 4 000 požadavek/den $79/měsíčně Confirmation scores, on-chain data, webhooky
Enterprise Vlastní Vlastní Vyhrazená podpora, vlastní integrace

Hlavičky odpovědí na omezení počtu požadavek

Každá odpověď API obsahuje hlavičky označující aktuální stav kvóty:

HTTP hlavičky
X-Requests-Limit: 200 X-Requests-Remaining: 147 X-Requests-Reset: 1711116000 X-Requests-Reset-ISO: 2026-03-22T00:00:00Z
Hlavička Popis
X-Requests-Limit Celkový počet povolených požadavek za den (např. 200 pro Trader)
X-Requests-Remaining Zbývající požadavky v aktuálním dni
X-Requests-Reset Unixový časový razítko obnovení kvóty
X-Requests-Reset-ISO ISO 8601 časové razítko pro obnovení kvóty

Kontrola kvóty před odesláním požadavek

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

Denní okno omezení počtu požadavek

Omezení počtu požadavek fungují na principu 24hodinového pohyblivého okna. Vaše kvóta se obnovuje denně o půlnoci UTC (00:00 UTC). Přesný čas obnovení je uveden v hlavičce X-Requests-Reset-ISO .

Příklad: Úroveň Trader (400 požadavek/den)

  • Den 1 (21. března): 200 požadavek dostupných v 00:00 UTC
  • 10:30 UTC: Provedeno 75 požadavek, zbývá 125
  • 15:45 UTC: Provedeno dalších 100 požadavek, zbývá 25
  • 23:59 UTC: Stále zbývá 25 požadavek (nelze přenést)
  • Den 2 (22. března, 00:00 UTC): Kvóta obnovena na 200

Strategie optimalizace

1. Ukládejte odpovědi API do mezipaměti

Pozice velryb se nemění každou sekundu. Ukládejte výsledky na 30-60 sekund a poskytujte data z mezipaměti místo vytváření nových volání 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. Používejte WebSocket pro data v reálném čase

WebSocketové připojení doručuje aktualizace okamžitě, aniž by se započítaly do omezení počtu požadavek. Přihlaste se k odběru streamů a dostávejte aktualizace, jak přicházejí, čímž snižíte počet potřebných REST API volání.

3. Strategicky sdružujte požadavky

Pokud je to možné, proveďte jeden požadavek s více symboly místo samostatných požadavek pro každý symbol. Tím se sniží počet volání API až 10x.

4. Používejte filtrování při odeslání požadavky

Aplikujte filtry (symbol, burza, min_position_size) v parametrech dotazu, abyste získali přesně data, která potřebujete, a vyhnuli se tak potřebě dodatečného zpracování.

Zvládání chyb omezení počtu požadavek

Opakujte s exponenciálním backoffem

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)

Připraveni na upgrade?

Zdarma úroveň nestačí? Upgradujte na Trader nebo Pro pro vyšší kvóty a přístup k pokročilým funkcím, jako jsou confirmation scores a on-chain data.

Zobrazit ceny

Optimalizujte své využití API ještě dnes

Implementujte ukládání do mezipaměti, používejte WebSocket pro data v reálném čase a elegantně zvládejte omezení počtu požadavek.

Čtěte dokumentaci
Začněte zdarma - 200 volání/den, bez karty

Získejte živé toky velryb, funding, open interest a on-chain data napříč 3 burzami z jednoho API. Zdarma úroveň, bez kreditní karty, upgrade kdykoli.

Začnět zdarma →
Vyzkoušejte živé API konzole → (bez účtu)
Získejte svůj API klíč za 30 sekund

Připraveni stavět? Získejte zdarma API klíč (200 volání/den, bez karty) a začněte stahovat živá data o velrybách, financování a on-chain.

Získat API klíč →