Limitazione delle Richieste e Quote

Comprendi i limiti di richiesta di Smart Money API, le quote giornaliere per ogni livello di abbonamento e le strategie di ottimizzazione per massimizzare l'utilizzo dell'API.

Panoramica

Smart Money API implementa quote giornaliere di richiesta per garantire la qualità del servizio e l'equità tra tutti gli utenti. Ogni livello di abbonamento include un limite giornaliero diverso. Quando superi la tua quota giornaliera, ricevi un errore 429 Troppe Richieste fino al reset della quota alla mezzanotte UTC.

I limiti di richiesta vengono applicati per chiave API. Ogni chiave ha una propria quota indipendente. Puoi generare più chiavi per diverse applicazioni e monitorare l'utilizzo di ciascuna separatamente.

Quote per Livello di Abbonamento

Livello Richieste Giornaliere Prezzo Funzionalità
Gratuito 20 richieste/giorno $0 BTC, ETH, SOL, tassi di finanziamento, liquidazioni
Trader 400 richieste/giorno $29/mese Tutti i simboli, posizioni delle balene, dati OI
Pro 4.000 richieste/giorno $79/mese Punteggi di conferma, dati on-chain, webhook
Enterprise Personalizzato Personalizzato Supporto dedicato, integrazioni personalizzate

Intestazioni di Risposta ai Limiti di Richiesta

Ogni risposta API include intestazioni che indicano lo stato attuale della tua quota:

Intestazioni HTTP
X-Requests-Limit: 200 X-Requests-Remaining: 147 X-Requests-Reset: 1711116000 X-Requests-Reset-ISO: 2026-03-22T00:00:00Z
Intestazione Descrizione
X-Requests-Limit Totale richieste consentite al giorno (es., 200 per Trader)
X-Requests-Remaining Richieste rimanenti nel giorno corrente
X-Requests-Reset Timestamp Unix per il reset della quota
X-Requests-Reset-ISO Timestamp ISO 8601 per il reset della quota

Controllo della Quota Prima di Effettuare Richieste

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} richieste ({percent_used:.1f}% utilizzate)") print(f"Reset alle: {reset_time}") if remaining < 5: print("ATTENZIONE: Quasi raggiunto il limite della quota!") return False return True # Controlla prima di effettuare richieste if check_quota_before_request("sk_live_abc123xyz789"): print("Sicuro procedere con le chiamate API")

Finestra Temporale Giornaliera delle Richieste

I limiti di richiesta operano su una finestra temporale di 24 ore. La tua quota si resetta ogni giorno alla mezzanotte UTC (00:00 UTC). L'ora esatta del reset è fornita nell'intestazione X-Requests-Reset-ISO .

Esempio: Livello Trader (400 richieste/giorno)

  • Giorno 1 (21 Mar): 200 richieste disponibili alle 00:00 UTC
  • 10:30 UTC: Effettuate 75 richieste, 125 rimanenti
  • 15:45 UTC: Effettuate 100 richieste aggiuntive, 25 rimanenti
  • 23:59 UTC: Rimangono ancora 25 richieste (non possono essere riportate al giorno successivo)
  • Giorno 2 (22 Mar, 00:00 UTC): La quota si resetta a 200

Strategie di Ottimizzazione

1. Memorizza nella Cache le Risposte API

Le posizioni delle balene non cambiano ogni secondo. Memorizza i risultati per 30-60 secondi e servi i dati memorizzati invece di effettuare nuove chiamate 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() # Restituisce i dati memorizzati se ancora freschi if cache_key in self.cache: age = now - self.cache_time[cache_key] if age < self.cache_ttl: print(f"Serviti dalla cache (età: {age:.1f}s)") return self.cache[cache_key] # Recupera dati freschi 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 # Utilizzo: Memorizza nella cache per 60 secondi client = CachedClient("sk_live_abc123xyz789", cache_ttl=60) whales1 = client.get_whale_positions("BTCUSDT") # Chiamata API whales2 = client.get_whale_positions("BTCUSDT") # Dalla cache whales3 = client.get_whale_positions("BTCUSDT") # Dalla cache

2. Usa WebSocket per Dati in Tempo Reale

Le connessioni WebSocket forniscono aggiornamenti istantanei senza contare contro il limite di richiesta. Iscriviti agli stream e ricevi aggiornamenti in tempo reale, riducendo il numero di chiamate REST API necessarie.

3. Raggruppa le Richieste Strategicamente

Effettua una richiesta con più simboli quando possibile invece di richieste separate per ogni simbolo. Questo riduce le chiamate API fino a 10 volte.

4. Usa Filtri al Momento della Richiesta

Applica filtri (simbolo, exchange, dimensione minima della posizione) nei parametri di query per ottenere esattamente i dati di cui hai bisogno, evitando la necessità di post-elaborazione.

Gestione degli Errori di Limite di Richiesta

Riprova con Backoff Esponenziale

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: # Limite di richiesta raggiunto - backoff esponenziale wait_time = min(2 ** attempt, 300) # Massimo 5 minuti reset_time = response.headers.get("X-Requests-Reset-ISO") print(f"Limite di richiesta raggiunto. Riprova tra {wait_time}s (reset alle {reset_time})") time.sleep(wait_time) elif response.status_code >= 500: # Errore del server - riprova wait_time = 2 ** attempt print(f"Errore del server {response.status_code}. Riprova tra {wait_time}s") time.sleep(wait_time) else: # Altro errore - non riprovare raise Exception(f"HTTP {response.status_code}: {response.text}") except requests.exceptions.Timeout: wait_time = 2 ** attempt print(f"Timeout. Riprova tra {wait_time}s") time.sleep(wait_time) raise Exception("Superato il numero massimo di tentativi") # Utilizzo data = request_with_retry( "https://api.smartmoneyapi.com/v1/whales/events", "sk_live_abc123xyz789" ) print(data)

Pronto a Passare al Livello Superiore?

Il livello gratuito non è sufficiente? Passa a Trader o Pro per quote più elevate e accesso a funzionalità avanzate come punteggi di conferma e dati on-chain.

Visualizza Prezzi

Ottimizza il Tuo Utilizzo dell'API Oggi

Implementa la memorizzazione nella cache, usa WebSocket per dati in tempo reale e gestisci i limiti di richiesta con grazia.

Leggi la Documentazione
Inizia gratuitamente — 200 chiamate/giorno, senza carta

Ottieni flusso di balene live, finanziamento, interesse aperto e dati on-chain su 3 exchange da un'unica API. Livello gratuito, nessuna carta di credito, passa al livello superiore in qualsiasi momento.

Inizia gratuitamente →
Prova la console API live → (nessun account necessario)
Ottieni la tua chiave API in 30 secondi

Pronto a costruire? Prendi una chiave API gratuita (200 chiamate/giorno, senza carta) e inizia a recuperare dati live su balene, finanziamento e on-chain.

Ottieni la tua chiave API →