Обмеження частоти запитів та квоти

Дізнайтеся про обмеження частоти запитів Smart Money API, щоденні квоти для кожного тарифного плану та стратегії оптимізації для максимального використання API.

Огляд

Smart Money API впроваджує щоденні квоти запитів для забезпечення якості послуг та справедливості для всіх користувачів. Кожен тарифний план має різний щоденний ліміт. При перевищенні щоденної квоти ви отримуєте помилку 429 Too Many Requests до моменту оновлення квоти опівночі за UTC.

Обмеження частоти застосовуються до кожного API-ключа. Кожен ключ має свою незалежну квоту. Ви можете створити кілька ключів для різних додатків і окремо відстежувати їхнє використання.

Квоти за тарифними планами

Тариф Щоденні запити Ціна Функції
Безкоштовний 100 запитів/день $0 BTC, ETH, SOL, фандингові ставки, ліквідації
Трейдер 1,000 запитів/день $29/місяць Усі символи, позиції китів, дані OI
Pro 5,000 запитів/день $79/місяць Бали підтвердження, ончейн-дані, вебхуки
Enterprise Індивідуально Індивідуально Персональна підтримка, індивідуальні інтеграції

Заголовки відповіді про обмеження

Кожна відповідь API містить заголовки, які вказують на поточний стан вашої квоти:

HTTP-заголовки
X-Requests-Limit: 200 X-Requests-Remaining: 147 X-Requests-Reset: 1711116000 X-Requests-Reset-ISO: 2026-03-22T00:00:00Z
Заголовок Опис
X-Requests-Limit Загальна кількість дозволених запитів на день (наприклад, 200 для Трейдера)
X-Requests-Remaining Залишок запитів на поточний день
X-Requests-Reset Unix-час оновлення квоти
X-Requests-Reset-ISO ISO 8601-час оновлення квоти

Перевірка квоти перед виконанням запитів

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} запитів ({percent_used:.1f}% використано)") print(f"Оновлення о: {reset_time}") if remaining < 5: print("ПОПЕРЕДЖЕННЯ: Наближаєтеся до ліміту квоти!") return False return True # Перевірка перед виконанням запитів if check_quota_before_request("sk_live_abc123xyz789"): print("Можна продовжувати виклики API")

Щоденне вікно обмеження

Обмеження частоти працюють у 24-годинному вікні. Ваша квота оновлюється щодня опівночі за UTC (00:00 UTC). Точний час оновлення вказаний у заголовку X-Requests-Reset-ISO .

Приклад: тариф Трейдер (1,000 запитів/день)

  • День 1 (21 березня): 200 доступних запитів о 00:00 UTC
  • 10:30 UTC: Виконано 75 запитів, залишилося 125
  • 15:45 UTC: Виконано ще 100 запитів, залишилося 25
  • 23:59 UTC: Залишилося 25 запитів (не переносяться)
  • День 2 (22 березня, 00:00 UTC): Квота оновлюється до 200

Стратегії оптимізації

1. Кешування відповідей API

Позиції китів не змінюються кожну секунду. Кешуйте результати на 30-60 секунд і використовуйте кешовані дані замість нових викликів 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() # Повернення кешованих даних, якщо вони ще актуальні if cache_key in self.cache: age = now - self.cache_time[cache_key] if age < self.cache_ttl: print(f"Обслуговування з кешу (вік: {age:.1f}с)") return self.cache[cache_key] # Отримання свіжих даних 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 # Використання: кешування на 60 секунд client = CachedClient("sk_live_abc123xyz789", cache_ttl=60) whales1 = client.get_whale_positions("BTCUSDT") # Виклик API whales2 = client.get_whale_positions("BTCUSDT") # З кешу whales3 = client.get_whale_positions("BTCUSDT") # З кешу

2. Використання WebSocket для даних у реальному часі

Підключення WebSocket надають оновлення миттєво, не враховуючись у вашому ліміті запитів. Підпишіться на потоки та отримуйте оновлення в реальному часі, зменшуючи кількість REST-запитів.

3. Стратегічне об'єднання запитів

Робіть один запит з кількома символами, коли це можливо, замість окремих запитів для кожного символу. Це зменшує кількість викликів API до 10 разів.

4. Використання фільтрів під час запиту

Застосовуйте фільтри (символ, біржа, мінімальний розмір позиції) у параметрах запиту, щоб отримати саме потрібні дані, уникаючи необхідності постобробки.

Обробка помилок обмеження

Повторіть із експоненційним відступом

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: # Обмеження частоти - експоненційний відступ wait_time = min(2 ** attempt, 300) # Макс 5 хвилин reset_time = response.headers.get("X-Requests-Reset-ISO") print(f"Обмеження частоти. Повторення через {wait_time}с (оновлення о {reset_time})") time.sleep(wait_time) elif response.status_code >= 500: # Помилка сервера - повторіть wait_time = 2 ** attempt print(f"Помилка сервера {response.status_code}. Повторення через {wait_time}с") time.sleep(wait_time) else: # Інша помилка - не повторювати raise Exception(f"HTTP {response.status_code}: {response.text}") except requests.exceptions.Timeout: wait_time = 2 ** attempt print(f"Тайм-аут. Повторення через {wait_time}с") time.sleep(wait_time) raise Exception("Досягнуто максимальної кількості повторень") # Використання data = request_with_retry( "https://api.smartmoneyapi.com/v1/whales/events", "sk_live_abc123xyz789" ) print(data)

Готові оновити?

Безкоштовного тарифу недостатньо? Оновіть до Трейдера або Pro для більших квот і доступу до розширених функцій, таких як бали підтвердження та ончейн-дані.

Переглянути ціни

Оптимізуйте використання API вже сьогодні

Впровадьте кешування, використовуйте WebSocket для даних у реальному часі та обробляйте обмеження частоти граціозно.

Читати документацію
Почніть безкоштовно — 100 викликів/день, без картки

Отримуйте дані про потік китів, фандинг, відкритий інтерес та ончейн-дані з 3 бірж з одного API. Безкоштовний тариф, без кредитної картки, оновлення будь-коли.

Почніть безкоштовно →
Спробуйте консоль API у реальному часі → (обліковий запис не потрібен)
Отримайте API-ключ за 30 секунд

Готові будувати? Отримайте безкоштовний API-ключ (100 викликів/день, без картки) і почніть отримувати дані про китів, фандинг та ончейн-дані у реальному часі.

Отримайте API-ключ →