Giới hạn Tốc độ và Hạn ngạch

Hiểu về giới hạn tốc độ của Smart Money API, hạn ngạch hàng ngày cho từng gói đăng ký và chiến lược tối ưu hóa để sử dụng API hiệu quả nhất.

Tổng quan

Smart Money API áp dụng hạn ngạch yêu cầu hàng ngày để đảm bảo chất lượng dịch vụ và công bằng cho tất cả người dùng. Mỗi gói đăng ký có một giới hạn hàng ngày khác nhau. Khi vượt quá hạn ngạch hàng ngày, bạn sẽ nhận được lỗi 429 Too Many Requests cho đến khi hạn ngạch được đặt lại vào lúc 00:00 UTC.

Giới hạn tốc độ được áp dụng cho mỗi khóa API. Mỗi khóa có hạn ngạch riêng độc lập. Bạn có thể tạo nhiều khóa cho các ứng dụng khác nhau và theo dõi mức sử dụng cho từng khóa riêng biệt.

Hạn ngạch theo Gói Đăng ký

Gói Yêu cầu Hàng ngày Giá Tính năng
Miễn phí 20 yêu cầu/ngày $0 BTC, ETH, SOL, tỷ lệ funding, thanh lý
Trader 400 yêu cầu/ngày $29/tháng Tất cả cặp giao dịch, vị thế cá voi, dữ liệu OI
Pro 4,000 yêu cầu/ngày $79/tháng Điểm xác nhận, dữ liệu on-chain, webhooks
Doanh nghiệp Tùy chỉnh Tùy chỉnh Hỗ trợ riêng, tích hợp tùy chỉnh

Tiêu đề Phản hồi Giới hạn Tốc độ

Mỗi phản hồi API bao gồm các tiêu đề hiển thị trạng thái hạn ngạch hiện tại của bạn:

Tiêu đề HTTP
X-Requests-Limit: 200 X-Requests-Remaining: 147 X-Requests-Reset: 1711116000 X-Requests-Reset-ISO: 2026-03-22T00:00:00Z
Tiêu đề Mô tả
X-Requests-Limit Tổng yêu cầu được phép mỗi ngày (ví dụ: 200 cho Trader)
X-Requests-Remaining Yêu cầu còn lại trong ngày hiện tại
X-Requests-Reset Mốc thời gian Unix khi hạn ngạch được đặt lại
X-Requests-Reset-ISO Mốc thời gian ISO 8601 khi hạn ngạch được đặt lại

Kiểm tra Hạn ngạch Trước khi Gửi Yêu cầu

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"Hạn ngạch: {remaining}/{limit} yêu cầu ({percent_used:.1f}% đã dùng)") print(f"Đặt lại lúc: {reset_time}") if remaining < 5: print("CẢNH BÁO: Sắp đạt giới hạn hạn ngạch!") return False return True # Kiểm tra trước khi gửi yêu cầu if check_quota_before_request("sk_live_abc123xyz789"): print("Có thể tiếp tục gọi API")

Cửa sổ Giới hạn Hàng ngày

Giới hạn tốc độ hoạt động trong cửa sổ 24 giờ. Hạn ngạch của bạn được đặt lại hàng ngày vào lúc 00:00 UTC. Thời gian đặt lại chính xác được cung cấp trong X-Requests-Reset-ISO tiêu đề.

Ví dụ: Gói Trader (400 yêu cầu/ngày)

  • Ngày 1 (21 tháng 3): 200 yêu cầu khả dụng lúc 00:00 UTC
  • 10:30 UTC: Đã gửi 75 yêu cầu, còn lại 125
  • 15:45 UTC: Đã gửi thêm 100 yêu cầu, còn lại 25
  • 23:59 UTC: Vẫn còn 25 yêu cầu (không thể chuyển sang ngày sau)
  • Ngày 2 (22 tháng 3, 00:00 UTC): Hạn ngạch được đặt lại thành 200

Chiến lược Tối ưu hóa

1. Lưu trữ Phản hồi API

Vị thế cá voi không thay đổi mỗi giây. Lưu trữ kết quả trong 30-60 giây và sử dụng dữ liệu đã lưu thay vì gọi API mới.

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() # Trả về dữ liệu đã lưu nếu còn mới if cache_key in self.cache: age = now - self.cache_time[cache_key] if age < self.cache_ttl: print(f"Đã sử dụng từ bộ nhớ cache (tuổi: {age:.1f}s)") return self.cache[cache_key] # Lấy dữ liệu mới 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 # Sử dụng: Lưu trữ trong 60 giây client = CachedClient("sk_live_abc123xyz789", cache_ttl=60) whales1 = client.get_whale_positions("BTCUSDT") # Gọi API whales2 = client.get_whale_positions("BTCUSDT") # Từ bộ nhớ cache whales3 = client.get_whale_positions("BTCUSDT") # Từ bộ nhớ cache

2. Sử dụng WebSocket cho Dữ liệu Thời gian Thực

Kết nối WebSocket cung cấp cập nhật ngay lập tức mà không tính vào giới hạn tốc độ của bạn. Đăng ký các luồng dữ liệu và nhận cập nhật khi chúng xảy ra, giảm số lượng lần gọi REST API cần thiết.

3. Gộp Yêu cầu Một cách Chiến lược

Thực hiện một yêu cầu với nhiều cặp giao dịch khi có thể thay vì gửi yêu cầu riêng lẻ cho từng cặp. Điều này giảm số lần gọi API lên đến 10 lần.

4. Sử dụng Bộ lọc Khi Gửi Yêu cầu

Áp dụng bộ lọc (cặp giao dịch, sàn giao dịch, kích thước vị thế tối thiểu) trong tham số truy vấn để lấy chính xác dữ liệu bạn cần, tránh phải xử lý sau.

Xử lý Lỗi Giới hạn Tốc độ

Thử lại với Giảm dần theo Cấp số Nhân

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: # Bị giới hạn tốc độ - giảm dần theo cấp số nhân wait_time = min(2 ** attempt, 300) # Tối đa 5 phút reset_time = response.headers.get("X-Requests-Reset-ISO") print(f"Bị giới hạn tốc độ. Thử lại sau {wait_time}s (đặt lại lúc {reset_time})") time.sleep(wait_time) elif response.status_code >= 500: # Lỗi máy chủ - thử lại wait_time = 2 ** attempt print(f"Lỗi máy chủ {response.status_code}. Thử lại sau {wait_time}s") time.sleep(wait_time) else: # Lỗi khác - không thử lại raise Exception(f"HTTP {response.status_code}: {response.text}") except requests.exceptions.Timeout: wait_time = 2 ** attempt print(f"Hết thời gian. Thử lại sau {wait_time}s") time.sleep(wait_time) raise Exception("Đã vượt quá số lần thử lại tối đa") # Sử dụng data = request_with_retry( "https://api.smartmoneyapi.com/v1/whales/events", "sk_live_abc123xyz789" ) print(data)

Sẵn sàng Nâng cấp?

Gói miễn phí không đủ? Nâng cấp lên Trader hoặc Pro để có hạn ngạch cao hơn và truy cập các tính năng nâng cao như điểm xác nhận và dữ liệu on-chain.

Xem Bảng Giá

Tối ưu hóa Sử dụng API Ngay hôm nay

Triển khai lưu trữ, sử dụng WebSocket cho dữ liệu thời gian thực và xử lý giới hạn tốc độ một cách hợp lý.

Đọc Tài liệu
Bắt đầu miễn phí — 100 lần gọi/ngày, không cần thẻ

Nhận dữ liệu luồng cá voi, funding, open interest và on-chain trực tiếp từ 3 sàn giao dịch từ một API duy nhất. Gói miễn phí, không cần thẻ tín dụng, nâng cấp bất cứ lúc nào.

Bắt đầu miễn phí →
Dùng thử bảng điều khiển API trực tiếp → (không cần tài khoản)
Nhận khóa API của bạn trong 30 giây

Sẵn sàng xây dựng? Lấy khóa API miễn phí (100 lần gọi/ngày, không cần thẻ) và bắt đầu lấy dữ liệu cá voi, funding và on-chain trực tiếp.

Lấy khóa API của bạn →