Rate Limiting at Quotas

Unawain ang mga rate limit ng Smart Money API, daily quotas para sa bawat subscription tier, at mga estratehiya sa pag-optimize para masulit ang iyong paggamit ng API.

Pangkalahatang-ideya

Ang Smart Money API ay nagpapatupad ng daily request quotas para masiguro ang kalidad ng serbisyo at patas na paggamit para sa lahat ng user. Ang bawat subscription tier ay may kanya-kanyang daily limit. Kapag nalampasan mo ang iyong daily quota, makakatanggap ka ng 429 Too Many Requests error hanggang sa mag-reset ang iyong quota sa hatinggabi UTC.

Ang mga rate limit ay inilalapat bawat API key. Ang bawat key ay may sariling independent quota. Maaari kang gumawa ng maraming key para sa iba't ibang application at subaybayan ang paggamit ng bawat isa nang hiwalay.

Mga Quota ayon sa Subscription Tier

Tier Mga Request sa Isang Araw Presyo Mga Tampok
Libre 200 requests/day $0 BTC, ETH, SOL, funding rates, liquidations
Trader 1,000 requests/day $29/month Lahat ng symbols, whale positions, OI data
Pro 5,000 requests/day $79/month Confirmation scores, on-chain data, webhooks
Enterprise Custom Custom Dedicated support, custom integrations

Mga Response Header ng Rate Limit

Ang bawat API response ay may kasamang mga header na nagpapakita ng iyong kasalukuyang quota status:

Mga HTTP Header
X-Requests-Limit: 200 X-Requests-Remaining: 147 X-Requests-Reset: 1711116000 X-Requests-Reset-ISO: 2026-03-22T00:00:00Z
Header Deskripsyon
X-Requests-Limit Kabuuang request na pinapayagan bawat araw (hal., 200 para sa Trader)
X-Requests-Remaining Mga natitirang request sa kasalukuyang araw
X-Requests-Reset Unix timestamp kung kailan magre-reset ang quota
X-Requests-Reset-ISO ISO 8601 timestamp para sa pag-reset ng quota

Pagsuri sa Quota Bago Gumawa ng mga Request

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

Daily Rate Window

Ang mga rate limit ay gumagana sa 24-oras na rolling window. Ang iyong quota ay nare-reset araw-araw sa hatinggabi UTC (00:00 UTC). Ang eksaktong oras ng reset ay ibinibigay sa X-Requests-Reset-ISO header.

Halimbawa: Trader Tier (1,000 requests/day)

  • Araw 1 (Mar 21): 200 requests available at 00:00 UTC
  • 10:30 UTC: Made 75 requests, 125 remaining
  • 15:45 UTC: Made 100 more requests, 25 remaining
  • 23:59 UTC: Still 25 requests remaining (can't carry over)
  • Araw 2 (Mar 22, 00:00 UTC): Quota resets to 200

Mga Diskarte sa Pag-optimize

1. I-cache ang mga API Response

Ang mga posisyon ng whale ay hindi nagbabago bawat segundo. I-cache ang mga resulta sa loob ng 30-60 segundo at maghatid ng cached data sa halip na gumawa ng mga bagong API call.

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. Gamitin ang WebSocket para sa Real-Time Data

Ang mga koneksyon sa WebSocket ay naghahatid ng mga update nang real-time nang hindi binibilang sa iyong rate limit. Mag-subscribe sa mga stream at tumanggap ng mga update habang nangyayari ang mga ito, na nagbabawas sa bilang ng mga REST API call na kailangan.

3. I-batch ang mga Request nang Strategic

Gumawa ng isang request na may maraming simbolo kung posible sa halip na hiwalay na mga request para sa bawat simbolo. Binabawasan nito ang mga API call hanggang 10x.

4. Gamitin ang Filtering sa Oras ng Request

Mag-apply ng mga filter (symbol, exchange, min_position_size) sa query parameters upang makuha ang eksaktong data na kailangan mo, na iniiwasan ang pangangailangan para sa post-processing.

Pagharap sa mga Rate Limit Error

Subukang Muli gamit ang 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) # 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)

Handa nang Mag-upgrade?

Hindi sapat ang free tier? Mag-upgrade sa Trader o Pro para sa mas mataas na quota at access sa mga advanced feature tulad ng confirmation scores at on-chain data.

View Pricing

I-optimize ang Iyong Paggamit ng API Ngayon

Ipapatupad ang caching, gumamit ng WebSocket para sa real-time data, at pangasiwaan nang maayos ang mga rate limit.

Read Documentation
Magsimula nang libre — 200 calls/day, no card

Kumuha ng live whale flow, funding, open interest at on-chain data sa 3 exchanges mula sa isang API. Free tier, no credit card, upgrade any time.

Start free →
Try the live API console → (no account needed)
Kunin ang iyong API key sa loob ng 30 segundo

Handa nang mag-build? Kumuha ng libreng API key (200 calls/day, no card) at simulan ang pagkuha ng live whale, funding at on-chain data.

Get your API key →