Smart Money API
Професійний API для розвідки, який агрегує дані деривативів, ончейн-метрики та активність гаманців китів у єдиний показник впевненості для вашого торгового бота.
https://api.smartmoneyapi.com/v1Принципи проектування
Чотири ідеї формують кожну кінцеву точку та кожен показник, який повертає цей API. Вони також є чесними межами того, що він обіцяє — і не обіцяє.
Спочатку стратегія, а не сигнал. Це не стрічка сигналів купівлі/продажу. Ви приносите стратегію та точку входу; API повідомляє, чи погоджується навколишня структура ринку — позиціонування деривативів, фінансування, відкритий інтерес, ліквідації, ончейн-потік та консенсус китів — з угодою, яку ви вже хочете укласти.
Оцінка впевненості, а не бінарний прогноз. Кожна відповідь містить оцінку confidence (ВИСОКА / СЕРЕДНЯ / НИЗЬКА) та composite від -1.0 до +1.0. Немає гарантій і оракулів — ви отримуєте калібрований показник згоди з поясненнями, щоб ви могли масштабувати пропорційно переконаності.
Підтримка рішень, а не поради щодо виконання. API повертає рекомендацію ПІДТВЕРДИТИ / ЗМЕНШИТИ / ПРОПУСТИТИ та множник розміру для вашої логіки, щоб діяти. Він ніколи не розміщує ордери, і ніщо тут не є фінансовою порадою. Ви залишаєтеся відповідальними за ризик, розмір та виконання.
Живі метрики, а не фіксовані гарантії. Показники виграшів, статистика режимів та точності обчислюються на основі ковзної вибірки та змінюються разом із ринками. Ми публікуємо їх чесно, навіть коли вони посередні. Сприймайте кожну метрику як поточне спостереження, а не обіцянку на майбутнє.
Для кого призначено цей API
Цей API створений для розробників ботів, алгоритмів та AI-агентів у крипто які вже мають сигнал на купівлю/продаж — від TA-стратегії, ML-моделі, пайплайну Freqtrade, сповіщення TradingView або агента LLM — і хочуть швидке, передторгове ПІДТВЕРДЖЕННЯ / ЗМЕНШЕННЯ / ПРОПУСК рішення перед вкладенням капіталу.
Типовий цикл: ваша стратегія дає сигнал "купити BTC" → ви викликаєте GET /v1/confirm?symbol=BTC&direction=long → ви підтверджуєте, зменшуєте або пропускаєте вхід і масштабуєте розмір за size_mult. Один виклик, одна низьколатентна JSON-відповідь, без додаткової інфраструктури.
Це не генератор сигналів, продукт для побудови графіків або майданчик для виконання. Якщо у вас немає власного сигналу для фільтрації, почніть з сторінки продуктивності щоб побачити, як поводився показник, перш ніж підключати його до живого бота.
Отримання доступу
1 — Зареєструйтеся. Створіть безкоштовний обліковий запис на signup (email/пароль або Google). Для безкоштовного рівня кредитна карта не потрібна.
2 — Відкрийте свою панель. Ваша панель показує ваш API-ключ, поточний тарифний план та використання щоденної квоти.
3 — Скопіюйте ваш API-ключ. Ключі мають префікс sm_. Передавайте його у заголовку X-API-Key кожного запиту (див. Аутентифікація). Оновлюйте будь-коли на сторінка ціноутворення для підвищення лімітів і розблокування додаткових символів та ендпоінтів.
Специфікація, SDK та Кулінарна книга
Все, що вам потрібно для швидкої інтеграції, незалежно від того, чи ви пишете код самостійно, чи передаєте його кодовому агенту.
| Ресурс | Що це |
|---|---|
| Кулінарна книга | Рецепти для найпоширеніших інтеграцій — підтвердження перед входом, обробка сигналу Freqtrade, розмір за множником, обробка 402/429 та інтеграція з кодовим агентом. |
| Специфікація OpenAPI | Машинно-читана специфікація OpenAPI для кожного ендпоінту. Імпортуйте в Postman/Insomnia, генеруйте клієнти або передавайте LLM. github.com/tashiardit/smartmoneyapi-docs. |
| Python клієнт | Офіційна бібліотека Python клієнта на github.com/tashiardit/smartmoneyapi-python. |
| /llms.txt | LLM-дружній текстовий опис API. Направте Claude, Codex або Cursor на нього (див. Кодові Агенти). |
Швидкий старт за 2 хвилини
Крок 1 — Базовий URL. Кожен ендпоінт знаходиться за адресою:
Крок 2 — Отримайте ваш API ключ. Зареєструйтесь безкоштовно (без кредитної картки) та скопіюйте ваш ключ з панелі управління. Передайте його як X-API-Key заголовок у кожному запиті.
Крок 3 — Ваш перший запит. Вставте це у ваш термінал та замініть sm_your_key ключем з вашої панелі управління:
Очікувана відповідь:
"ts": 1710940821,
"symbol": "BTC",
"direction": "long",
"composite": 0.74,
"confidence": "HIGH",
"action": "CONFIRM",
"size_mult": 1.5,
"deriv_score": 0.81,
"onchain_score": 0.68,
"whale_score": 0.73,
"reasons": ["Фінансування позитивне на всіх майданчиках", "Кити: 67% довгий консенсус"]
}
Коли confidence є HIGH або MEDIUM і action є CONFIRM, масштабуйте розмір позиції на size_mult. Це весь цикл інтеграції. Див. Поля Відповіді для повного опису полів.
Аутентифікація
Усі запити вимагають передачі API ключа як X-API-Key HTTP заголовка.
Ваш API ключ доступний у панелі управління після реєстрації. Зберігайте ваш ключ у секреті — не розголошуйте його у клієнтському коді або публічних репозиторіях.
/v1/ws/ticket з X-API-Key заголовком, потім підключіться з поверненим квитком. Див. Аутентифікація WebSocket (квитки).Google Sign-In (Firebase Auth)
Користувачі можуть аутентифікуватися за допомогою свого облікового запису Google через Firebase Authentication. Після успішного входу через Google на клієнті, обміняйте токен Firebase ID на зв’язаний API сеанс. Система автоматично синхронізує вашу Google ідентифікацію з системою API ключів.
Тіло запиту
| Поле | Тип | Опис |
|---|---|---|
| id_tokenобов’язковий | рядок | Токен Firebase ID, отриманий після входу через Google на клієнті |
Приклад відповіді
"api_key": "sm_your_linked_key",
"uid": "firebase_uid_abc123",
"email": "[email protected]",
"plan": "trader",
"synced": true
}
Ліміти запитів
| План | Запити/День | Ліміт сплеску | Затримка даних |
|---|---|---|---|
| Безкоштовний | 50 | 2/хв | 60 секунд |
| Трейдер | 1,000 | 20/хв | Реальний час |
| Pro | 5,000 | 60/хв | Реальний час |
| Enterprise | 100,000 | 400/хв | Реальний час |
Заголовки обмеження швидкості включені в кожну відповідь: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Базовий URL
Усі кінцеві точки нижче відносяться до цієї базової URL-адреси. Усі відповіді у форматі JSON з Content-Type: application/json.
Помилки
Помилки використовують стандартні HTTP-коди статусу та узгоджений JSON-формат. Завжди орієнтуйтесь на код статусу, а не на текст відповіді. Найчастіше ви зустрінете такі:
| Статус | Код | Значення & що робити |
|---|---|---|
| 401 | unauthorized | Відсутній або недійсний API-ключ. Перевірте, чи X-API-Key заголовок присутній і правильний. |
| 402 | payment_required | Кінцева точка або символ вимагають вищого тарифу, ніж ваш ключ (наприклад, безкоштовний ключ викликає WebSocket firehose). Оновіть або поверніться до публічної кінцевої точки. |
| 429 | rate_limit_exceeded | Досягнуто денний або миттєвий ліміт. Зробіть паузу та повторіть після X-RateLimit-Reset; не надсилайте запити безперервно. |
Кожна помилка має однакову структуру:
"error": "rate_limit_exceeded",
"message": "Денний ліміт у 50 викликів досягнуто. Оновлення о 00:00 UTC.",
"status": 429
}
Для повного списку кодів статусу (400 / 403 / 500 / 503 та інші) див. Коди помилок. Надійна інтеграція вважає 5xx та 429 тимчасовими (повторіть з паузою), а 401/402/403 — критичними (виправте ключ або тариф).
Найкращі практики безпеки
Надсилайте ключ у заголовку, ніколи в URL. Завжди передавайте X-API-Key як HTTP-заголовок. Ключі в рядках запиту (?key=) можуть бути зареєстровані проксі, балансувальниками навантаження та історією браузера — застарілий ?key= auth більше не підтримується для WebSocket-кінцевих точок саме з цієї причини.
Зберігайте ключі на стороні сервера. Ніколи не вбудовуйте API-ключ у клієнтський JavaScript, мобільний додаток або публічний репозиторій. Завантажуйте його зі змінної середовища або менеджера секретів. Якщо ключ витік, замініть його.
Періодично змінюйте ключі. Перегенеруйте свій ключ у панелі керування за розкладом або негайно, якщо підозрюєте витік. Старий ключ перестає працювати в момент створення нового.
Використовуйте квитки для браузерних сокетів. Для потоків у реальному часі з браузера обміняйте свій ключ на одноразовий квиток замість підключення з вихідним ключем — див. WebSocket аутентифікація (квитки).
Використання з кодуючими агентами / LLM
Створюєте з Claude Code, Codex, Cursor або будь-яким LLM-агентом? Ви можете надати агенту все необхідне для правильної інтеграції цього API одним разом. Опубліковано два машинозчитувані посилання:
| Ресурс | URL |
|---|---|
| LLM-резюме | https://smartmoneyapi.com/llms.txt |
| OpenAPI специфікація | github.com/tashiardit/smartmoneyapi-docs |
Направте свого агента на /llms.txt файл (за llms.txt конвенцією) для стислого огляду, потім на OpenAPI специфікацію для точних форм запитів/відповідей. Один рядок підказки, який добре працює:
Прочитайте https://smartmoneyapi.com/llms.txt та OpenAPI специфікацію на
github.com/tashiardit/smartmoneyapi-docs, потім додайте попередню перевірку
до мого бота, яка викликає GET /v1/confirm і пропускає входи,
якщо дія не CONFIRM.
Див. Кулінарна книга для готового рецепту для кодуючого агента.
Кінцеві точки
GET /confirm
Основна кінцева точка. Повертає комбінований бал впевненості та рекомендацію дії для заданого напрямку торгівлі. Викликайте це перед відкриттям будь-якої позиції.
Охоплення, простіше кажучи. /confirm наразі оцінює BTC, ETH та SOL — символи з достатньою історією для чесного підтвердження. Деривативний скринер окремо відстежує ~519 ринків деривативів на предмет фінансування, OI та даних ліквідації, а відстеження китів охоплює 600+ гаманців. Pro розблоковує повний скринер, експорти та ширше охоплення ринку; /confirm підтримка символів розширюється в міру накопичення кожною ринком надійної історії.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| symbolобов’язковий | string | Символ активу. Один із: BTC, ETH, SOL (Trader+) |
| directionобов’язковий | string | Напрямок торгівлі: long або short |
| sourceопціональний | string | Мітка для джерела вашого сигналу (записується для аналітики). Макс. 32 символи. |
Приклад запиту
"https://api.smartmoneyapi.com/v1/confirm?symbol=BTC&direction=long"
Приклад відповіді
"ts": 1710940821,
"symbol": "BTC",
"direction": "long",
"composite": 0.74,
"confidence": "HIGH",
"action": "CONFIRM_FULL",
"size_mult": 1.5,
deriv_score: 0.81,
onchain_score: 0.68,
whale_score: 0.73,
x_score: 0.0,
фактори: {
похідні: { оцінка: 0.81, вага: 0.40, зважена: 0.324 },
ончейн: { оцінка: 0.68, вага: 0.35, зважена: 0.238, джерело: coinmetrics, доступний: True },
кити: { оцінка: 0.73, вага: 0.25, коефіцієнт застарілості: 1.0, зважена: 0.183 }
},
корективи: { узгодженість: 0.0, тренд: 0.0, новини_макро: 0.0 },
ваги: { похідні: 0.40, ончейн: 0.35, whale_intel: 0.25 },
покриття: { похідні: True, кити: True, ончейн: True },
причини: [
Фандингова ставка позитивна на всіх майданчиках,
LSR на боці лонгів: 1.42,
Кити: 67% консенсус на лонг,
MVRV вище 1.0 — ончейн-бичий сигнал
]
}
Прозорість за дизайном. Кожна відповідь містить factors об’єкт, що показує оцінка × вага = зважений внесок, а також adjustments об’єкт для додаткових налаштувань, weights використані, та coverage карту. Ончейн-частина використовує реальні безкоштовні дані Coin Metrics (MVRV / exchange-flow / active-address), якщо не встановлено ключ Glassnode. Це багатофакторний конфлюенс оцінка — підтримка рішень, а не гарантія виграшу..
Невідстежувані символи чесні. Символ поза межами відстежуваних похідних/китових інструментів повертає явний "confidence":"NO_DATA" / "action":"NO_DATA_SKIP" з "unsupported":true — ніколи не сфальшований LOW.
Поля відповіді
| Поле | Тип | Опис |
|---|---|---|
| ts | integer | Unix-час розрахунку |
| symbol | string | Символ активу (BTC/ETH/SOL) |
| direction | string | Запитуваний напрямок (лонг/шорт) |
| composite | float | Композитний конфлюенс від -1.0 (екстремально проти) до +1.0 (сильне підтвердження). Не є гарантією виграшу. |
| base_composite | float | Композит до застосування корективів |
| confidence | string | HIGH / MEDIUM / LOW / VETO / NO_DATA |
| action | string | CONFIRM_FULL / CONFIRM_REDUCED / CONFIRM_MINIMAL / VETO_SKIP / NO_DATA_SKIP |
| size_mult | float | Рекомендований множник розміру позиції (напр. 0.0 – 1.5) |
| unsupported | bool | true якщо символ поза покриттям (супроводжується NO_DATA) |
| deriv_score | float | Похідна суб-оцінка (-1 до 1) |
| onchain_score | float | Ончейн суб-оцінка (-1 до 1) |
| whale_score | float | Суб-оцінка консенсусу китів (-1 до 1) |
| x_score | float | X/соціальний-сентимент суб-оцінка (-1 до 1); 0, якщо не використовується |
| factors | object | Деталізація по компонентах: score × weight = weighted для похідних / ончейн / кити / x_sentiment (ончейн включає source) |
| adjustments | object | Корективи після фільтрації (узгодженість, тренд, rsi_1h, news_macro, момент, час доби, streak_decay) |
| weights | object | Ваги, використані для цієї оцінки |
| coverage | object | {derivatives, whale, onchain} — які компоненти мали реальні дані |
| reasons | array | Людсько-читані пояснення оцінки |
GET /snapshot
Повертає повний знімок ринку, включаючи всі суб-оцінки, сирі метрики та значення індикаторів для заданого символу. Корисно для дашбордів та логування.
GET /onchain
Повертає необроблені ончейн-метрики: MVRV, SOPR, чистий потік на біржі, співвідношення реалізованої капіталізації та класифікація позиції в циклі.
GET /v1/derivatives/*
Міжбіржовий скринер деривативів для 500+ символів: теплокарта фандінгу, рейтинги відкритого інтересу та виявлення сигналів співвідношення довгих/коротких позицій. Перші 10 рядків публічні; повний скринер вимагає Трейдера або Pro. Кінцеві точки: /v1/derivatives/screener, /v1/derivatives/funding, /v1/derivatives/oi, /v1/derivatives/signals.
GET /v1/options/*
Аналітика опціонів BTC та ETH від Deribit (публічна, без авторизації): співвідношення пут/кол, максимальний біль та відкритий інтерес за страйком. Кінцеві точки: /v1/options/summary, /v1/options/pcr, /v1/options/oi.
GET /v1/etf/*
Щоденні чисті потоки та розбивка за фондами для спотових BTC та ETH ETF (публічно). Кінцеві точки: /v1/etf/flows, /v1/etf/funds.
GET /v1/historical/*
Історичні дані фандінгу, відкритого інтересу, співвідношення довгих/коротких позицій (Binance) та OHLCV (CoinGecko) для бектестингу. Кінцеві точки: /v1/historical/funding, /v1/historical/oi, /v1/historical/lsr, /v1/historical/ohlcv.
GET /v1/dex/*
Трендові пари, пошук токенів та деталі пар від DexScreener (публічно, без авторизації). Кінцеві точки: /v1/dex/trending, /v1/dex/search, /v1/dex/token, /v1/dex/pair.
GET /v1/news/*
Інтелект новин: політичні/геополітичні/криптоновини, класифіковані за категоріями впливу, плюс індекс Страху та Жадібності (публічно, без авторизації). Кінцеві точки: /v1/news/trump, /v1/news/general, /v1/news/impact, /v1/news/fear-greed.
GET /whales
Повертає дані консенсусу гаманців китів: розподіл довгих/коротких позицій, загальний номінальний експозиційний ризик, топ-10 позицій (лише Pro) та кількість гаманців.
GET /signals
Повертає потік останніх сигналів HIGH/MEDIUM для всіх моніторованих активів. Корисно для пошуку можливостей.
GET /v1/strategies/*
Прозорий, лише для читання трек-рекорд автоматизованих торгових стратегій, які виконуються на основі сигналів Smart Money — включаючи deriv40 Стратегія SmartMoney Copytrade (account=9). Усі кінцеві точки приймають ?account=<id> параметр запиту та повертають JSON. Авторизація не потрібна (публічний трек-рекорд).
Кінцеві точки
GET /v1/strategies/stats?account=9— основні метрики:total_trades,win_rate,profit_factor,total_pnl_usdt,account_growth_percent,initial_equity,current_equity,max_drawdown_portfolio,max_drawdown_trade.GET /v1/strategies/equity?account=9— крива еквіті для побудови графіків:{ initial_equity, curve: [{ time, equity }] }.GET /v1/strategies/trades?account=9&limit=500— реєстр закритих угод: масив (або{trades:[…]}) зsymbol,direction,entry_price,exit_price,pnl_usdt,pnl_percent,pnl_percent_net.GET /v1/strategies/active?account=9— поточні відкриті позиції: масив (або{positions:[…]}) зsymbol,side/direction,entry_price,unrealized_pnl.GET /v1/strategies/signals— розбивка за типами сигналів, що живлять стратегії (кількість / перемоги / коефіцієнт перемог / середній PNL за типом сигналу).
Минулі результати не гарантують майбутніх результатів. Цифри відновлені за один ~3-місячний режим плюс живі угоди та показані до сплати комісій, де зазначено.
GET /export
Завантажте історичні дані сигналів у форматі CSV для бектестингу. Параметри: symbol, from (unix ts), to (unix ts).
GET /health
Перевірка стану системи. Повертає свіжість даних для кожного джерела та загальний статус API. Авторизація не потрібна.
"status": "ok",
"uptime_s": 1209600,
"sources": {
"bybit": { "lag_s": 42, "ok": true },
"binance": { "lag_s": 38, "ok": true },
"hyperliquid": { "lag_s": 61, "ok": true },
"onchain": { "lag_s": 290, "ok": true }
}
}
GET /usage
Повертає поточну статистику використання API: виклики за сьогодні, місячні підсумки, ліміти квот та час скидання.
POST /webhooks
Зареєструйте HTTPS URL для отримання реального часу підписаних подій, коли сигнал спрацьовує на ваших моніторованих активах. Доставки містять X-SmartMoney-Event заголовок та HMAC-SHA256 підпис у X-SmartMoney-Signature, і повторюються до 3 разів з відступом.
Тіло запиту
| Поле | Тип | Опис |
|---|---|---|
| urlобов'язкове | рядок | HTTPS кінцева точка для POST подій (повинна починатися з https://) |
| eventsобов'язкове | масив | Назви подій, наприклад ["HIGH","MEDIUM","VETO"] або ["*"] |
| symbolsобов'язкове | масив | Символи для фільтрації, наприклад ["BTC","ETH"] або ["*"] |
| secretобов'язкове | рядок | Ваш секретний ключ для підпису, ≥ 16 символів (зберігається в хешованому вигляді) |
Перевірка підпису
HMAC ключ — це SHA-256 hex дайджест вашого зареєстрованого секрету. Обчисліть HMAC-SHA256 необробленого тіла запиту з цим ключем і порівняйте (постійний час) з X-SmartMoney-Signature. Див. Посібник із впровадження вебхуків.
Інтелект
GET /analysis
Повертає класифікацію ринкового режиму на основі ШІ з виявленням конфліктів сигналів. Аналізує узгодженість сигналів, виявляє розбіжності між даними деривативів, ончейну та даними китів, а також надає природномовний підсумок з прогнозованими факторами ризику та рекомендацією з часовим горизонтом.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| symbolобов’язково | string | Символ активу: BTC, ETH, або SOL |
Приклад відповіді
"ts": 1710940821,
"symbol": "BTC",
"regime": "late_cycle_divergence",
"regime_label": "Пізній цикл — розбіжність сигналів",
"summary": "BTC перебуває у фазі пізнього бичачого циклу, де сила ончейну суперечить перенапруженню деривативів. Кити зменшують експозицію, тоді як LSR ритейлу зростає.",
"signal_conflicts": [
"Ведмежий бал китів при бичачому балі ончейну",
"Фандрайт на 3-місячному максимумі — потенційний ризик сквізу"
],
"risk_factors": ["Підвищений фандрайт", "Розбіжність OI", "Зменшення експозиції китів"],
"recommendation": "Зменшіть довгу експозицію, затягніть стопи. Уникайте нових довгих позицій вище поточної ціни.",
"time_horizon": "4h–12h"
}
GET /liquidations
Повертає два доповнюючих представлення: (1) проекція за кредитним плечем levels — оцінка того, де розташовані кластери ліквідацій; та (2) realized_heatmap — РЕАЛЬНА інтенсивність вимушених ліквідацій (ціна × час), агрегована в реальному часі з публічних WebSocket-стрімів бірж: Binance, OKX, Bybit, Bitget, BitMEX. Теплокарта відображається, коли стрім має дані для символу (відсутня у дуже спокійному ринку або відразу після запуску).
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| symbolопціонально | string | Символ активу (за замовчуванням BTC). Реальна теплокарта охоплює активно торгувані перп-символи. |
Приклад відповіді
"symbol": "BTC",
"cascade_risk": "ВИСОКИЙ",
"nearest_long_liq_pct": -3.2,
"nearest_short_liq_pct": 4.1,
// РЕАЛЬНІ виконані ліквідації — в реальному часі з 5 бірж
"realized_heatmap": {
"window_minutes": 240, "price_min": 91000.0, "price_max": 99000.0,
"clusters": [ { "price": 93250.0, "notional": 4820000.0, "count": 37, "dominant_side": "long" } ],
"by_side": { "long": 6100000.0, "short": 2400000.0 },
"totals": { "total_notional": 8500000.0, "count": 214 },
"exchanges": { "binance": 120, "okx": 40, "bybit": 34, "bitget": 12, "bitmex": 8 }
}
}
cascade_risk, найближчі відстані та реалізовані суми/за сторонами. Тариф Pro: повна проекція levels плюс повна realized_heatmap (матриці, кластери за ціною, кількість за біржею). Проекційна оцінка відповідає на питання «де знаходяться стопи»; реальна теплокарта показує «що насправді було ліквідовано».GET /liquidations/heatmap
Public теплокарта ліквідацій за рівнями цін. Повертає матрицю ціна × час у стилі Coinglass з РЕАЛЬНИМИ виконаними вимушеними ліквідаціями, згрупованими за ціною, на якій кожна ліквідація відбулася — агреговано в реальному часі з публічних WebSocket-стрімів бірж: Binance, OKX, Bybit, Bitget, BitMEX. Масив clusters є практичним результатом: цінові групи, ранжовані за ліквідованою номінальною сумою, кожна з позначкою домінуючої сторони. Дані залежать від живого стріму — дуже спокійний символ або щойно перезапущений шлюз повертає коректну порожню структуру плюс чесний note. Показані рівні — завжди реальні ліквідації, ніколи оціночні.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| symboloptional | string | Символ активу (за замовчуванням BTC). |
| window_minutesoptional | int | Вікно огляду у хвилинах (за замовчуванням 240, обмежено до 5–1440). |
| price_bucketsoptional | int | Кількість цінових корзин (за замовчуванням 50, обмежено до 5–100). |
Приклад відповіді
"symbol": "BTC", "window_minutes": 240, "price_buckets": 50,
"price_min": 91000.0, "price_max": 99000.0, "price_bucket_size": 160.0,
"price_levels": [ 91080.0, 91240.0, … ], "time_buckets": [ … ],
"matrix": [ [ … ] ], "long_matrix": [ [ … ] ], "short_matrix": [ [ … ] ],
"clusters": [
{ "price": 93250.0, "notional": 4820000.0, "long_notional": 4100000.0,
"short_notional": 720000.0, "count": 37, "dominant_side": "long" }
],
"by_side": { "long": 6100000.0, "short": 2400000.0 },
"totals": { "long_liq_notional": 6100000.0, "short_liq_notional": 2400000.0, "total_notional": 8500000.0, "count": 214 },
"exchanges": { "binance": 120, "okx": 40, "bybit": 34, "bitget": 12, "bitmex": 8 },
"generated_at": 1710940200, "public": true
}
totals.count is 0, clusters порожній, а поле note пояснює чому. Це запис виконаних ліквідацій — не прогноз. Для оцінки "де знаходяться стопи" використовуйте автентифікований ендпоінт /liquidations .GET /liquidations/onchain
Виконані ончейн ліквідації DeFi кредитів захоплені безпосередньо з наших локальних BSC + Avalanche повних вузлів — незалежно від будь-якого торгового бота. Включає Venus/Cream та Moolah на BSC, а також AAVE V3/V2, Benqi, BankerJoe, Granary та Vinium на Avalanche. Pro рівень додатково повертає at_risk позиції (залежить від бота, може бути відсутнім).
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| chainoptional | string | bsc або avax. Пропустіть для всіх блокчейнів. |
| limitoptional | integer | Макс. рядків (за замовчуванням 100, макс. 500). Спочатку новіші. |
Приклад відповіді
"chain": "bsc", "count": 2,
"liquidations": [
{ "chain": "bsc", "protocol": "Venus", "borrower": "0x2be6…8dfa",
"debt_symbol": "DAI", "repay_usd": 426.15,
"collateral_symbol": "WBNB", "tx_hash": "0x718c…7c0e", "block": 89170816, "ts": 1710940200 }
],
"summary": {
"window_hours": 24, "enabled": true,
"by_protocol": { "bsc:Venus": { "count": 61, repay_usd_known: 148230.55 } },
nodes: { bsc: { reachable: True, head_block: 89173010, events_total: 61 } }
}
}
GET /smart-stop
Розраховує інтелектуальні рівні стоп-лосу на основі поточної карти ліквідацій, смуг волатильності та структури ринку. Повертає рекомендації щодо стопів та пропозиції тейк-профіту, калібровані до вашої ціни входу та толерантності до ризику.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| symbolrequired | string | Символ активу: BTC, ETH, або SOL |
| directionrequired | string | Напрямок позиції: long або short |
| entry_priceoptional | float | Ваша ціна входу. За замовчуванням — поточна ринкова ціна, якщо не вказано. |
| risk_pctoptional | float | Максимальний прийнятний ризик у % від рахунку. За замовчуванням: 2.0 |
Приклад відповіді
symbol: BTC,
direction: long,
entry_price: 96420,
stops: {
tight: { price: 95100, note: Нижче структури 1h. Найкраще для скальпінгу. },
recommended: { price: 93800, note: Нижче великого кластера ліквідацій на $94K. Стандартний стоп для свінгу. },
wide: { price: 91200, note: Нижче зони попиту на 4h. Стоп для позиційної торгівлі. }
},
avoid_zones: [
{ low: 94200, high: 94800, reason: Щільний кластер ліквідацій — високий ризик прослизання }
],
take_profit_suggestions: [
{ tp1: 98500, tp2: 101000, tp3: 104200 }
]
}
recommended стоп. План Pro: Усі три рівні стопів, avoid_zones, та повні пропозиції тейк-профіту.GET /funding-arb
Визначає арбітражні можливості щодо ставок фінансування між біржами в реальному часі. Повертає ранжовані можливості з оцінкою річної доходності, оптимальною парою бірж та необхідною дією для хеджування.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| min_spreadoptional | float | Мінімальний розрив ставки фінансування для включення (у десятковому вигляді). За замовчуванням: 0.01 |
| symboloptional | string | Фільтр для конкретного активу. Пропустіть для сканування всіх підтримуваних активів. |
Приклад відповіді
ts: 1710940821,
opportunities: [
{
symbol: BTC,
spread: 0.032,
apr: 84.2,
long_exchange: hyperliquid,
short_exchange: bybit,
action: Long HYPE / Short BYBIT,
estimated_profit_8h_usd: 26.4
}
]
}
Безкоштовна публічна версія Без авторизації
Публічний ендпоінт без ключа повертає топ-10 можливостей з живим міжбіржовим скринером, ідеальним для вбудовування або швидких перевірок. Він виключає історію розривів для кожного символу та важкі поля та обслуговується з кешу на 120 секунд. Якщо в межах вікна актуальності немає міжбіржових розривів ставок фінансування, він повертає порожній opportunities масив з note — ніколи не сфабриковані дані.
opportunities: [
{
symbol: OGN,
spread_pct: 0.297667,
annualized_apr: 325.95,
long_exchange: bybit,
short_exchange: hyperliquid,
estimated_profit_per_10k: 29.77,
risk_notes: Низький спред — переконайтеся, що комісії не поглинають маржу арбітражу.
}
],
scanned_symbols: 222,
ts: 1783268753,
public: True,
limited: True
}
GET /smart-money/flow
Якісно зважений індекс напрямку китів для кожного символу, оцінений -100 (кількість грошей китів схиляється до шорту) до +100 (схиляється до лонгу). Побудовано на основі тисяч відстежуваних гаманців китів Hyperliquid — кожен зважений за власною історичною частотою перемог та PnL і зменшений за старістю. Це індекс позиціонування, а не сигнал купівлі/продажу чи прогноз ціни. Символи з невеликою кількістю гаманців, що вносять, позначені thin та оцінені чесно. Жива сторінка: smart-money-flow.html.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| symbolопціонально | string | Один символ (наприклад, BTC). Пропустіть, щоб отримати всі відстежувані символи, ранжовані за |score|. |
| window_hoursопціонально | int | Вікно оцінювання, обмежене до 1..168. За замовчуванням 24. |
Приклад відповіді
symbols: [
{
symbol: SPX,
score: -90.93,
direction: strong_short,
n_wallets: 26,
long_usd: 184200.0, short_usd: 2410000.0,
quality_weighted: True,
sample_quality: rich,
top_contributors: [ { wallet: 0x31ca…974b, direction: short, value_usd: 5338.25, weight: 0.4948 } ]
}
],
window_hours: 24,
quality_weighted: True,
ts: 1783270000,
note: Якісно зважений індекс напрямку позиціонування китів (-100..+100). Не є прогнозом ціни чи сигналом купівлі/продажу.
}
top_contributors. Ваги гаманців обмежені до [0.25,1.0]; PnL є нереалізованим проксі з останніх знімків позицій.GET /v1/whales/crowding
Комбінований контекст позиціонування китів та натовпу для кожного символу, об’єднаний через Hyperliquid + GMX v2 + Jupiter Perps. Повертає валовий/чистий номінал, напрямковий перекос, кількість гаманців та майданчиків, концентрацію позицій (частка топ-3 + HHI), середньозважений леверидж та відстань до ліквідації (USD номінал, що знаходиться в межах 5% та 10% від його оцінної ціни ліквідації, розділений на лонг/шорт). Це контекст, а не напрямковий сигнал. Поля, які не можна вивести, є null і відображаються як — — наприклад, lev_wavg/crowding_index коли жодна позиція не має левериджу. Відстані до ліквідації є оцінкою ізольованої маржі (pct_to_liq ≈ 1/lev + upnl/notional − mmr, mmr = 0.01), не ціни ліквідації, повідомлені біржею.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| min_notionalопціонально | float | Мінімальний сукупний валовий номінал (USD) для включення символу. За замовчуванням: 1000000. |
Приклад запиту
Приклад відповіді
ok: True, ts: 1783423500, min_notional: 1000000, n_symbols: 92,
symbols: [
{
symbol: BTC,
gross_usd: 2447900000.0, net_usd: -51000000.0, skew: -0.021,
n_whales: 414, n_venues: 3,
venues: {
hl: { gross: 1900000000.0, net: -40000000.0, n_whales: 272 },
gmx: { gross: 320000000.0, net: -6000000.0, n_whales: 59 },
jupiter: { gross: 227900000.0, net: -5000000.0, n_whales: 83 }
},
conc_top3: 0.159, hhi: 0.011, lev_wavg: 19.1,
liq_within_5pct: { long: 621700000.0, short: 665600000.0 },
liq_within_10pct: { long: 840000000.0, short: 910000000.0 },
crowding_index: 0.003
}
],
caveats: [ Відстані ліквідації є оцінками для ізольованої маржі, а не даними бірж. ]
}
skew є net/gross ∈ [-1,1]; crowding_index = |skew|·conc_top3·min(lev/20,1). У списку відображаються лише реально присутні майданчики. venues. Позиції без левериджу виключаються з кошиків ліквідації, а не приймаються за нульові. Анонімні користувачі отримують топ-10 символів за валовим обсягом (з gated: true); Trader+ отримують повний список.GET /v1/options/gex
Dealer гамма-експозиція (GEX) аналітика для BTC & ETH, обчислюється в реальному часі з публічного ланцюга опціонів Deribit (без автентифікації). Повертає чисту GEX дилерів за страйком (конвенція SpotGamma dealer-short), рівень gamma-flip (страйк, де сукупна чиста GEX перетинає нуль), терм-структуру IV (ATM implied vol за днями до експірації) та IV skew перед експірацією (25Δ-проксі risk reversal). Режим GEX — positive (дилери long gamma → пригнічення волатильності) або negative (посилення волатильності). Повністю автономний — перераховується при кожному запиті, без залежності від бази даних.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| symbolопціонально | string | BTC або ETH лише. За замовчуванням: BTC. |
Приклад запиту
Приклад відповіді
"symbol": "BTC", "available": true, "spot": 63203.0,
"net_gex": 18240000.0, "regime": "positive",
"gamma_flip": 64919.82, "gamma_flip_pct": 2.72,
"call_gex": 31200000.0, "put_gex": -12960000.0,
"by_strike": [
{ "strike": 60000, "net_gex": -2100000.0 },
{ "strike": 65000, "net_gex": 4800000.0 }
],
"term_structure": [
{ "expiry": "8JUL26", "dte": 0.76, "atm_iv": 62.1 },
{ "expiry": "27MAR26", "dte": 14.2, "atm_iv": 58.4 }
],
"skew": {
"expiry": "8JUL26", "dte": 0.76,
"put_iv": 69.69, "atm_iv": 62.1, "call_iv": 55.34,
"risk_reversal": 14.35, "bias": "downside_fear"
}
}
available: false з порожніми панелями — ніколи не сфальсифіковані дані GEX. IV skew використовує фіксований проксі ±10% страйку для 25Δ (точний 25-дельта вимагає розрахунку дельти для кожного страйку); достатньо для відображення, документовано як наближення.GET /v1/liquidations/simulate
Interactive тест на стрес ліквідаційного каскаду. За умов гіпотетичного руху ціни повертає оцінку позицій з плечем, які будуть ліквідовані, примусовий обсяг за рівнем ціни / напрямком / біржею та показник глибини каскаду. Рух вниз ліквідує лонги , чия ціна ліквідації знаходиться на/вище цільової; рух вгору ліквідує шорти , чия ціна ліквідації знаходиться на/нижче неї. Два незалежні методи об'єднані: точні ціни ліквідації від відстежуваних китів Hyperliquid реальне плече/вхід, плюс статистичні кластери OI-діапазону на біржі (плечо натовпу виводиться з фандінгу). Все чітко позначено estimated: true — воно не може знати маржу на рахунок, крос чи ізольовану, додану маржу або ADL.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| символопціонально | рядок | Символ активу. За замовчуванням: BTC. |
| move_pctопціонально | число з плаваючою точкою | Гіпотетичний рух ціни у відсотках (від'ємний = вниз, додатний = вгору). За замовчуванням: -5. |
Приклад запиту
Приклад відповіді
"ok": true, "estimated": true, "symbol": "BTC",
"ref_price": 63000.0, "move_pct": -5.0, "target_price": 59850.0,
"triggered_notional_usd": 380000000.0,
"cascade_depth": 0.029, "cascade_bucket": "low",
"by_exchange": { "hyperliquid": 260000000.0, "binance": 80000000.0, "bybit": 40000000.0 },
"by_side": { "long": 380000000.0, "short": 0.0 },
"clusters": [
{ "price": 60100.0, "side": "long", "notional_usd": 42000000.0, "whale_usd": 18000000.0, "oi_usd": 24000000.0 }
],
"whale_positions_used": 272, "exchanges": 3,
"realized_context": { "available": true, "coverage_hours": 17.8, "by_side_24h": { "long": 6100000.0, "short": 2400000.0 } },
"methodology": { "disclaimer": "Оцінено — не може знати маржу на рахунок, крос чи ізольовану, додану маржу або ADL." }
}
ok: true, empty: true з повідомленням простою мовою, не фальшивими барами. realized_context є молодим, зростаючим зразком з потоку примусових ліквідацій у реальному часі, представленим лише як контекст — воно ніколи не робить проекцію "реалізованою".GET /v1/wallet/{addr}/profile
Міжплощадковий профіль гаманця повністю побудований зі знімків позицій відстежуваних китів у реальному часі. Для відстежуваного кита Hyperliquid повертає поточні відкриті позиції, часовий ряд нереалізованого PnL / експозиції / кількості позицій часовий ряд, часову шкалу активності OPEN/CLOSE/FLIP (відновлено шляхом порівняння послідовних знімків), розшифровану мітку HL-лідерборду та відкриту книгу. Жива сторінка: wallet-profiler.html.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| addrобов'язково | рядок | Адреса гаманця (сегмент шляху), наприклад /v1/wallet/0x3bcae23e…/profile. |
| daysопціонально | ціле число | Вікно огляду для ряду та часової шкали. За замовчуванням: 30. |
Приклад запиту
Приклад відповіді
"ok": true, "wallet": "0x3bcae23e…", "tracked": true,
"first_seen_ts": 1782827733, "latest_snapshot_ts": 1783418468, "as_of": 1783418468,
"hyperliquid": {
"label": { "name": "Andre is back", "score": 74,
"window_pnl_usd": 1307000, відсоток_виграшу: 71, угоди: 42 },
позиції: [
{ майданчик: hyperliquid, символ: ETH, напрямок: шорт,
розмір: 1200.0, ціна_входу: 1800.0, нереалізований_прибуток: 34800.0,
леверидж: 20.0, вартість_usd: 2160000.0 }
],
серія: [ { час: 1783330000, нереалізований_прибуток: 42000.0, експозиція_usd: 18400000.0, позиції: 5 } ],
хронологія: [ { час: 1783400000, подія: перехід, символ: ETH,
напрямок: шорт, з_напрямку: лонг, вартість_usd: 2160000.0 } ],
підсумок: {
відкриті_позиції: 5, в_прибутку: 3, в_збитку: 2, лонги: 0, шорти: 5,
загальний_нереалізований_прибуток: -12000.0, загальна_експозиція_usd: 21000000.0, усереднений_леверидж: 19.9,
вікно_днів: 30, знімки_у_вікні: 474,
реалізований_прибуток: None, примітка_реалізованого_прибутку: Не визначається — видно лише відкриті знімки, ніколи закриті угоди.
}
}
}
pnl це власна нереалізована оцінка HL за ринком, value_usd це відкрита номінальна вартість. Реалізований P&L за повний цикл недоступний (ми бачимо лише відкриті знімки, ніколи закриті угоди) і показаний як null / —; події CLOSE у хронології не містять даних про P&L. Валідна, але не відстежувана адреса повертає tracked: false з приміткою; невалідна адреса повертає ok: false, error: "invalid_address" (HTTP 400). Мітка HL-leaderboard — це власний рейтинг HL на момент виявлення, не обчислений нами.GET /flows
Повертає дані про потоки капіталу між активами, що показують закономірності обертання між BTC, ETH та SOL у різних часових вікнах. Корисно для визначення, який актив накопичує капітал, а який розподіляється у будь-який момент.
Приклад відповіді
час: 1710940821,
потоки: {
BTC: { 1h: 142000000, 4h: 380000000, 12h: -90000000, 24h: 220000000 },
ETH: { 1h: -38000000, 4h: -110000000, 12h: 55000000, 24h: -80000000 },
SOL: { 1h: 12000000, 4h: 29000000, 12h: 18000000, 24h: 44000000 }
},
виявлені_обертання: [
Капітал переходить з ETH у BTC протягом 4-годинного вікна,
Накопичення SOL стабільне у всіх вікнах
]
}
GET /whale-events
Повертає значні зміни позицій китів — відкриття, закриття та зміни напрямку — виявлені у відстежуваних гаманцях та on-chain адресах у вказаному часовому вікні.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| символопціонально | рядок | Фільтр за активом. Пропустити для всіх моніторених активів. |
| значимістьопціонально | рядок | Фільтр за значимістю події: high, medium, або all. За замовчуванням: all |
| годиниопціонально | ціле число | Вікно огляду у годинах. За замовчуванням: 24 |
Приклад відповіді
символ: BTC,
підсумок: {
переходи_до_лонг: 3,
переходи_до_шорт: 1,
нові_відкриття: 7,
закриття: 2
},
події: [
{
"type": "flip_long",
"wallet": "0xWhale...a4f2",
"direction": "long",
"size_usd": 4200000,
"ts": 1710938400
}
]
}
summary лише об'єкт. План Pro: Повний events фід з ідентифікаторами гаманців, розмірами та часовими мітками.GET /regimes/history
Повертає історичні дані класифікації режимів для заданого активу. Використовуйте це для тестування стратегій на історичних даних, визначення тривалості режимів та аналізу переходів між ними.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| symboloptional | string | Символ активу. За замовчуванням: BTC |
| regimeoptional | string | Фільтр за конкретним типом режиму, наприклад late_cycle_divergence. Пропустіть для всіх режимів. |
| daysoptional | integer | Вікно зворотного відліку в днях. За замовчуванням: 30. Максимум: 365 |
Приклад відповіді
"symbol": "BTC",
"current_regime": "late_cycle_divergence",
"regime_summary": {
"late_cycle_divergence": { "occurrences": 4, "avg_duration_h": 38, "avg_return_pct": -2.1 },
"accumulation": { "occurrences": 6, "avg_duration_h": 72, "avg_return_pct": 5.4 },
"breakout": { "occurrences": 3, "avg_duration_h": 18, "avg_return_pct": 9.2 }
},
"transitions": [
{ "from": "accumulation", "to": "breakout", "ts": 1710850000 },
{ "from": "breakout", "to": "late_cycle_divergence", "ts": 1710915000 }
]
}
/analysis для перевірки стратегій на історичних даних режимів.GET /exchange-health
Повертає стан здоров'я всіх відстежуваних бірж у реальному часі, включаючи затримки, частоту помилок та свіжість даних. Не вимагає аутентифікації — публічний ендпоінт.
Приклад відповіді
"overall_status": "ok",
"ts": 1710940821,
"exchanges": {
"bybit": { "status": "ok", "latency_ms": 42, "error_rate_1h": 0.0, "last_data_age_s": 18 },
"binance": { "status": "ok", "latency_ms": 38, "error_rate_1h": 0.0, "last_data_age_s": 22 },
"hyperliquid": { "status": "degraded", "latency_ms": 310, "error_rate_1h": 0.04, "last_data_age_s": 95 },
"okx": { "status": "ok", "latency_ms": 55, "error_rate_1h": 0.0, "last_data_age_s": 30 }
}
}
GET /sentiment
Повертає індекс страху та жадібності (0-100) у реальному часі, розрахований на основі деривативів, активності китів, волатильності та соціальних сигналів. Включає розбивку за компонентами та історію за 24 години для аналізу трендів.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| symboloptional | string | Символ активу. За замовчуванням: BTC |
Приклад відповіді
"symbol": "BTC",
"score": 72,
"label": "Жага",
"components": {
"волатильність": 65,
"імпульс": 78,
"похідні": 70,
"активність_китів": 75,
"соціальні": 68
},
"історія_24г": [
{ "ts": 1710940800, "score": 68, "label": "Жага" },
{ "ts": 1710937200, "score": 65, "label": "Жага" }
],
"ts": 1710940821
}
Інтеграції
GET /tradingview/setup
Повертає ваші персоналізовані налаштування інтеграції TradingView: URL вебхука, секретний ключ для перевірки та готові індикатори Pine Script, які підключаються безпосередньо до Smart Money API. Скопіюйте та вставте Pine Script у TradingView, щоб відображати наші сигнали на будь-якому графіку.
Приклад відповіді
"webhook_url": "https://api.smartmoneyapi.com/v1/tradingview/webhook",
"webhook_secret": "tvs_a1b2c3...",
"pine_scripts": {
"composite_indicator": "// Smart Money Composite v1 //@version=5 indicator(...)...",
"whale_activity": "// Whale Activity Overlay v1 ...",
"funding_dashboard": "// Funding Rate + LSR Dashboard v1 ..."
}
}
POST /tradingview/webhook
Отримує сповіщення TradingView, обробляє його через /confirm, і повертає підтвердження. TradingView не може надсилати власні заголовки, тому автентифікуйтеся, включивши ваш вебхук secret у тілі JSON (ця точка доступу не використовує X-API-Key). Відповідь містить підтвердження та додає верхній рівень action з CONFIRMED (рівень довіри демона HIGH/MEDIUM) або VETOED.
Тіло запиту
"secret": "your_webhook_secret",
"symbol": "BTC",
"direction": "long",
"timeframe": "1h",
"strategy": "EMA crossover",
"price": 67500.0
}
Обов’язково: secret, symbol, direction (long|short). Необов’язково: source, timeframe, strategy, price.
Персоналізація
GET /preferences
Повертає ваші поточні налаштування персоналізації, включаючи параметри торгівлі за замовчуванням, профіль ризику, список спостереження та налаштування сповіщень.
Оновіть налаштування, надіславши тіло JSON із будь-якою підмножиною полів нижче. Пропущені поля зберігають свої поточні значення.
Поля налаштувань
| Поле | Тип | Опис |
|---|---|---|
| default_trade_size_usd | float | Розмір позиції за замовчуванням у USD для розрахунків Kelly та smart-stop |
| risk_tolerance | string | conservative, moderate, або aggressive |
| default_risk_pct | float | Ризик за угодою за замовчуванням у % від рахунку. Використовується /smart-stop коли risk_pct пропущено |
| watchlist | array | Впорядкований список символів активів, напр. ["BTC","ETH","SOL"] |
| notification_email | string | Адреса електронної пошти для надсилання сповіщень |
| timezone | string | Рядок часового поясу IANA, напр. America/New_York |
"default_trade_size_usd": 5000,
"risk_tolerance": "moderate",
"default_risk_pct": 1.5,
"watchlist": ["BTC", "ETH", "SOL"]
}
GET /watchlist
Повертає знімок статусу підтвердження та ключові метрики ризику для всіх символів у вашому налаштованому списку спостереження. Надає огляд кількох активів без необхідності окремих запитів для кожного символу. /confirm окремо для кожного символу.
Приклад відповіді
"ts": 1710940821,
"watchlist": [
{
"symbol": "BTC",
"confidence": "HIGH",
"action": "CONFIRM",
"regime": "accumulation",
"cascade_risk": "LOW"
},
{
"symbol": "ETH",
"confidence": "MEDIUM",
"action": "REDUCE",
"regime": "late_cycle_divergence",
"cascade_risk": "HIGH"
},
{
"symbol": "SOL",
"confidence": "HIGH",
"action": "CONFIRM",
"regime": "breakout",
"cascade_risk": "MEDIUM"
}
]
}
Стрімінг у реальному часі (Live Swaps)
Отримуйте обміни на DEX ≥ $500, виявлені в реальному часі з наших власних нод BSC та Avalanche. Доступні два способи передачі: публічний потік Server-Sent Events (SSE) для безкоштовних клієнтів/браузерів та низьколатентний WebSocket для платних підписок. Події транслюються протягом кількох секунд після включення в блок.
Публічний потік SSE (Безкоштовно)
Аутентифікація не потрібна. Нативна EventSource підтримка в усіх сучасних браузерах. Сервер надсилає swap події та періодичні серцебиття для підтримки з’єднання.
es.addEventListener("swap", e => {
const swap = JSON.parse(e.data);
console.log(swap.chain, swap.pair, swap.amount_usd);
});
WebSocket Firehose (Платний)
Аутентифікація (рекомендовано): ніколи не додавайте довготривалий ключ до URL — він може бути записаний проксі або збережений у історії браузера. Натомість надішліть свій ключ через /v1/ws/ticket використовуючи безпечний X-API-Key заголовок, потім відкрийте сокет з отриманим одноразовим ticket (дійсний ~60с, використовується один раз). Клієнти на стороні сервера, які можуть встановлювати заголовки, можуть передавати X-API-Key безпосередньо під час рукостискання. Ключі безкоштовного рівня отримують 402 payment_required відповідь. Кадр hello надсилається при підключенні з інформацією про ваш рівень та поріг трансляції.
const r = await fetch("https://api.smartmoneyapi.com/v1/ws/ticket", {
method: "POST", headers: { "X-API-Key": "sm_xxx" }
});
const { ticket } = await r.json();
// 2. Відкрийте сокет з одноразовим квитком
const ws = new WebSocket(`wss://api.smartmoneyapi.com/v1/ws/live-swaps?ticket=${ticket}`);
ws.onmessage = e => {
const swap = JSON.parse(e.data);
if (swap.type === "swap") console.log(swap);
};
Аутентифікація WebSocket (квитки)
Чому: ніколи не додавайте ваш API-ключ до URL WebSocket — рядки запиту можуть бути записані проксі, балансувальниками навантаження та збережені в історії браузера. Натомість обміняйте свій ключ на короткодіючий, одноразовий квиток через звичайний аутентифікований POST, а потім підключіться з цим квитком.
Схема: POST до /v1/ws/ticket з вашим X-API-Key заголовком → отримайте { "ticket": "…", "expires_in": 60 }. Потім відкрийте wss://api.smartmoneyapi.com/v1/ws/live-swaps?ticket=<ticket>. Квиток є одноразовим і дійсний протягом ~60 секунд. Клієнти на стороні сервера, які можуть встановлювати заголовки запитів, можуть передати X-API-Key безпосередньо під час рукостискання WebSocket — квиток не потрібен.
Генерує одноразовий квиток для автентифікованого рукостискання WebSocket. Автентифікуйтесь за допомогою X-API-Key заголовка (ваш ключ ніколи не залишає заголовки запиту). Повернений квиток можна використати один раз на /v1/ws/live-swaps до його закінчення терміну дії.
"https://api.smartmoneyapi.com/v1/ws/ticket"
Приклад відповіді
"ticket": "wst_9f3c1a8e4b2d…",
"expires_in": 60
}
Поля відповіді
| Поле | Тип | Опис |
|---|---|---|
| ticket | string | Одноразовий токен для додавання як ?ticket= до URL WebSocket. Використовується один раз, після чого анулюється. |
| expires_in | number | Секунд до закінчення терміну дії квитка (~60). Генеруйте новий квиток для кожної спроби підключення. |
Примітка: застарілий ?key= метод автентифікації через query-param більше не підтримується на WebSocket endpoints з міркувань безпеки. Використовуйте квиток (клієнти в браузері) або X-API-Key заголовок рукостискання (клієнти на стороні сервера).
REST Snapshot
Повертає останні N трансляцій свопів з ковзного буфера. Корисно для першого відображення на дашбордах до відкриття з’єднання потоку. Також доступно: /v1/live-swaps/status для статистики транслятора.
Схема події
| Поле | Тип | Опис |
|---|---|---|
| chain | string | bsc або avalanche |
| dex | string | Назва роутера (напр. pancakeswap_v2, traderjoe) або unknown_dex |
| swapper | string | Повна 0x адреса гаманця, який виконав своп |
| swapper_short | string | Скорочена форма для відображення (напр. 0xb300…028d) |
| swapper_url | string | Пряме посилання на гаманець у блокчейн-експлорері |
| tx_hash | string | Хеш транзакції |
| explorer_url | string | Пряме посилання на транзакцію в BscScan / Snowtrace |
| token_in | string | Символ токена, який продано (напр. USDT) |
| token_out | string | Символ токена, який куплено |
| amount_usd | number | Вартість свопу в USD (мінімум: $500) |
| pair | string | Форматуваний ярлик пари (напр. USDT → USDC) |
| block | number | Номер блоку, в якому був здійснений своп |
| timestamp | number | Секунди Unix epoch |
| significance | string | low / medium / high / critical на основі розміру в USD |
| seq | number | Монотонний номер трансляції — використовуйте для виявлення розривів |
POST /alerts/conditions
Створюйте власні правила сповіщень, які спрацьовують, коли вказана метрика перетинає поріг. Сповіщення доставляються через webhook, електронну пошту або стрічку сповіщень дашборду залежно від ваших налаштувань.
Повертає список усіх налаштованих вами умов сповіщень з їх ідентифікаторами, визначеннями та поточним статусом.
Остаточно видаляє умову сповіщення за її ідентифікатором.
Повертає недавні події спрацювання сповіщень з часовими мітками, відповідними умовами та значенням метрики на момент спрацювання.
Створити сповіщення — Тіло запиту
| Поле | Тип | Опис |
|---|---|---|
| namerequired | string | Людсько-зрозуміла назва цього сповіщення (макс. 64 символи) |
| metricrequired | string | Метрика для моніторингу. Див. таблицю доступних метрик нижче. |
| symboloptional | string | Контекст активу. Необхідно для метрик, прив’язаних до символу, таких як funding_rate. |
| operatorrequired | string | Оператор порівняння: gt, lt, eq, crosses_above, crosses_below |
| thresholdrequired | float | Числове значення для порівняння з метрикою |
| deliveryoptional | string | Канал доставки, напр. telegram (за замовчуванням) або webhook |
| cooldown_minutesoptional | integer | Мінімальний інтервал у хвилинах між повторними спрацьовуваннями (за замовчуванням 60) |
Актуальний список дійсних метрик та операторів повертається GET /v1/alerts/conditions as available_metrics and available_operators.
Доступні метрики
| Метрика | Опис |
|---|---|
| funding_rate | Поточний коефіцієнт фандингу для символу (у десятковому форматі) |
| global_lsr | Глобальне співвідношення довгих/коротких позицій для символу |
| long_pct | Відсоток облікових записів із чистими довгими позиціями для символу |
| top_trader_lsr | Співвідношення довгих/коротких позицій топ-трейдерів для символу |
| taker_ratio | Співвідношення покупок/продажів тейкерів для символу |
| mvrv | Співвідношення ринкової вартості до реалізованої (BTC/ETH) |
| sopr | Коефіцієнт прибутковості витрачених виходів (BTC/ETH) |
| exchange_net_flow | Сигнал чистого ончейн-обміну |
| accumulation | Сигнал ончейн-акумуляції |
| whale_long_pct | Відсоток відстежуваних гаманців китів із довгими позиціями для символу |
| whale_n_wallets | Кількість відстежуваних гаманців китів із позицією у символі |
| composite_long | Композитний бал для символу у довгому напрямку |
| composite_short | Композитний бал для символу у короткому напрямку |
| funding_spread | Різниця фандингу між майданчиками для символу |
"name": "Різкий коефіцієнт фандингу BTC",
"metric": "funding_rate",
"symbol": "BTC",
"operator": "gt",
"threshold": 0.05
}
GET /kelly
Повертає рекомендації щодо розміру позиції за критерієм Келлі, калібровані на історичну продуктивність сигналу для заданого символу, рівня довіри та напрямку. Ґрунтує розмір позиції на емпіричних показниках успішності, щоб уникнути надмірного кредитного плеча.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| symbolrequired | string | Символ активу: BTC, ETH, або SOL |
| confidenceoptional | string | Рівень довіри до сигналу для моделювання: HIGH, MEDIUM, або LOW. За замовчуванням: HIGH |
| directionoptional | string | Напрямок торгівлі: long або short. За замовчуванням: long |
| account_sizeoptional | float | Розмір облікового запису в USD для обчислення suggested_size_usd. За замовчуванням: 10000 |
Приклад відповіді
"symbol": "BTC",
"confidence": "HIGH",
"direction": "long",
"win_rate": 0.68,
"avg_reward_risk_ratio": 2.1,
"kelly_fraction": 0.36,
"half_kelly": 0.18,
"suggested_size_usd": 1800,
"samples": 142,
"note": "Half-Kelly рекомендовано для реальної торгівлі для обліку похибки оцінки."
}
GET /performance
Повертає історичну статистику точності сигналів, виданих API, розбиту за рівнями впевненості. Корисно для розуміння надійності сигналів перед вкладенням капіталу.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| symbolопціонально | string | Фільтр за активом. Пропустіть для агрегованої статистики по всіх символах. |
| daysопціонально | integer | Вікно огляду в днях. За замовчуванням: 30 |
Приклад відповіді
"symbol": "BTC",
"period_days": 30,
"by_confidence": {
"HIGH": { "win_rate": 0.71, "samples": 58, "avg_return_pct": 3.4 },
"MEDIUM": { "win_rate": 0.54, "samples": 84, "avg_return_pct": 1.2 }
}
}
Статистика та сигнали
GET /v1/stats
Чесна статистика продуктивності по всьому сайту, отримана з smart_money_confirm результатів унікальних викликів. Повертає коефіцієнти виграшів на рівнях високої та середньої впевненості, загальну точність, фактор прибутку та розбивку за символами. Усі показники є внутрішньовибірковими протягом вікна оцінки; див. calibration.html для контексту та методології форвардного тестування.
Приклад відповіді
"high_winrate": 0.714,
"high_winrate_n": 14,
"medium_winrate": 0.530,
"medium_winrate_n": 34,
"overall_accuracy": 0.613,
"overall_accuracy_n": 48,
"profit_factor": 1.77,
"avg_win_pct": 4.2,
"winrate_horizon": "24h",
"winrate_basis": "унікальні підтверджені виклики, результати за 24 години",
"winrate_by_symbol": {
"BTC": { "win_rate": 0.68, "n": 22 },
"ETH": { "win_rate": 0.55, "n": 18 },
"SOL": { "win_rate": 0.60, "n": 8 }
},
"forward_holdout": {
"win_rate": 0.59,
"high_win_rate": 0.70,
"high_n": 10,
"is_distinct_from_insample": false
}
}
forward_holdout є єдиним числом, накопиченим на даних, які оцінювач ніколи не бачив — спостерігайте за його зростанням з часом. Див. calibration.html для повної методології та межі внутрішньовибіркового/форвардного тестування.GET /v1/signals/performance
Відстеження результатів сигналів на кількох горизонтах розв'язання (4h, 12h, 24h, 72h). Повертає коефіцієнти влучень за горизонтом, загальну кількість сигналів та розбивку за типом сигналу.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| daysопціонально | integer | Вікно огляду в днях. За замовчуванням: 30 |
| signal_typeопціонально | string | Фільтр за типом, наприклад smart_money_confirm або regime_flip. Пропустіть для всіх типів. |
| symbolопціонально | string | Фільтр за символом активу, наприклад BTC. Пропустіть для агрегованих даних по всіх символах. |
Приклад відповіді
"signal_type": "smart_money_confirm",
"symbol": "BTC",
"days": 30,
"total_signals": 48,
горизонти: {
4h: { частота влучень: 0.65, вирішено: 46 },
12h: { частота влучень: 0.61, вирішено: 44 },
24h: { частота влучень: 0.58, вирішено: 40 },
72h: { частота влучень: 0.54, вирішено: 32 }
},
розподіл за типом: {
підтвердження Smart Money: { кількість: 35, частота влучень_24h: 0.61 },
зміна режиму: { кількість: 13, частота влучень_24h: 0.47 }
}
}
GET /v1/signals/recent
Стрічка нещодавно опублікованих сигналів HIGH та MEDIUM для всіх відстежуваних символів. Кожен запис включає тип сигналу, рівень впевненості, напрямок та статус вирішення, де це доступно.
Приклад відповіді
signals: [
{
id: 1042,
symbol: BTC,
direction: long,
signal_type: smart_money_confirm,
confidence: HIGH,
composite: 0.74,
ts: 1710940821,
resolved: true,
outcome_24h: win
}
],
count: 50
}
GET /v1/signals/{id}/outcome
Вирішений результат для одного сигналу за його числовим ID. Повертає влучання/промахи на кожному горизонті вирішення (4h, 12h, 24h, 72h) разом із ціною на момент сигналу та на момент вирішення.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| idобов'язковий | ціле число | ID сигналу (сегмент шляху), наприклад /v1/signals/1042/outcome |
Приклад відповіді
id: 1042,
symbol: BTC,
direction: long,
confidence: HIGH,
entry_price: 63200.0,
ts: 1710940821,
outcomes: {
4h: { result: win, price: 64100.0, pct: 1.41 },
12h: { result: win, price: 65200.0, pct: 3.16 },
24h: { result: win, price: 65800.0, pct: 4.11 },
72h: { result: pending, price: null, pct: null }
}
}
GET /v1/confirm-winrate
Розподіл частоти влучень для підтверджених сигналів для власного API-ключа автентифікованого користувача. Повертає частоту влучень для окремих викликів на кожному рівні впевненості, фактор прибутку та показники для кожного символу. Вимагає дійсного X-API-Key заголовка.
Приклад запиту
"https://api.smartmoneyapi.com/v1/confirm-winrate"
Приклад відповіді
high_winrate: 0.714,
high_n: 14,
medium_winrate: 0.530,
medium_n: 34,
overall_accuracy: 0.613,
overall_n: 48,
profit_factor: 1.77,
winrate_horizon: 24h,
by_symbol: {
BTC: { win_rate: 0.68, n: 22 },
ETH: { win_rate: 0.55, n: 18 }
}
}
Shadow Gate
Незмінний, лише додаваний особистий журнал рішень. Надсилайте свої торгові рішення до або після їх виконання; система обчислює бал підтвердження за допомогою двигуна Smart Money та додає постійний запис. Використовуйте його для створення чесного, часово позначеного запису того, наскільки сигнал API відповідав вашим входам — повністю незалежно від загального пулу коефіцієнтів виграшів. Відповіді рівнів Free та Trader не містять полів доказів; Pro повертає повний розбір. Для даних рівня Free застосовується затримка.
Надіслати рішення. Ідемпотентний за Idempotency-Key заголовком запиту — повторне надсилання того самого ключа повертає існуючий запис без створення дубліката. Система негайно викликає двигун підтвердження та додає результат як незмінний запис у журналі.
Тіло запиту
| Поле | Тип | Опис |
|---|---|---|
| symbolобов’язкове | string | Символ активу, наприклад BTC |
| sideобов’язкове | string | Напрямок торгівлі: long або short |
| strategy_idопціональне | string | Мітка стратегії, визначена користувачем (макс. 64 символи). Зберігається як є для групування та фільтрації. |
Приклад запиту
-H "X-API-Key: sm_your_key" \
-H "Idempotency-Key: my-signal-20260701-001" \
-H "Content-Type: application/json" \
-d '{"symbol":"BTC","side":"long","strategy_id":"ema_crossover"}' \
"https://api.smartmoneyapi.com/v1/shadow-gate/decisions"
Приклад відповіді
"id": 318,
"symbol": "BTC",
"side": "long",
"strategy_id": "ema_crossover",
"decision": "CONFIRM",
"confidence": "HIGH",
"composite": 0.74,
"size_mult": 1.5,
"ts": 1710940821,
"resolved": false
}
factors / adjustments полів доказів. Pro повертає повний розбір підтвердження. Для рівня Free застосовується затримка — запис додається негайно, але бал підтвердження може відображати кешовані дані віком до 60 секунд.Перегляньте свої рішення в Shadow Gate, починаючи з найновіших. Обмежено власником — повертаються лише рішення, надіслані вашим ключем API.
Параметри
| Параметр | Тип | Опис |
|---|---|---|
| limitопціональний | integer | Максимальна кількість записів для повернення. За замовчуванням: 50, max: 200 |
| cursorопціональний | string | Непрозорий курсор пагінації з поля next_cursor попередньої відповіді. Пропустіть для першої сторінки. |
Приклад відповіді
"decisions": [
{ "id": 318, "symbol": "BTC", "side": "long", "decision": "CONFIRM", "confidence": "HIGH", "composite": 0.74, "size_mult": 1.5, "ts": 1710940821, "resolved": false },
{ "id": 317, "symbol": "ETH", "side": шорт, рішення: SKIP, впевненість: LOW, композитний: -0.12, size_mult: 0.0, ts: 1710937000, вирішено: True }
],
кількість: 2,
next_cursor: None
}
Окреме рішення за ID, включаючи повні підтвердження для Pro рівня. Відповіді для Free та Trader рівнів мають factors і adjustments видалено. Повертає 403 якщо рішення належить іншому API ключу.
Приклад відповіді (Pro)
id: 318,
symbol: BTC,
side: long,
strategy_id: ema_crossover,
decision: CONFIRM,
confidence: HIGH,
composite: 0.74,
size_mult: 1.5,
factors: {
derivatives: { score: 0.81, weight: 0.40, weighted: 0.324 },
onchain: { score: 0.68, weight: 0.35, weighted: 0.238 },
whale: { score: 0.73, weight: 0.25, weighted: 0.183 }
},
ts: 1710940821,
resolved: False,
outcome: None
}
Вручну вирішіть результат рішення. Викличте це після закриття угоди, щоб записати кінцевий результат у рядок реєстру. Після вирішення рядок стає незмінним і не може бути змінений знову.
Тіло запиту
| Поле | Тип | Опис |
|---|---|---|
| outcomeобов'язкове | string | Результат угоди: win або loss |
| exit_priceопціональне | float | Ціна виходу з угоди. Зберігається для довідки; використовується для обчислення P&L %, якщо надано. |
| pnl_pctопціональне | float | Реалізований P&L у відсотках від розміру позиції, наприклад 3.5 або -1.2 |
Приклад відповіді
id: 318,
resolved: True,
outcome: win,
exit_price: 65800.0,
pnl_pct: 4.1,
resolved_at: 1711027200
}
Коди помилок
| Статус | Код | Опис |
|---|---|---|
| 400 | invalid_params | Відсутні або недійсні параметри запиту |
| 401 | unauthorized | Відсутній або недійсний API ключ |
| 403 | plan_restriction | Кінцева точка недоступна на вашому поточному плані |
| 429 | rate_limit_exceeded | Досягнуто денний або миттєвий ліміт |
| 500 | internal_error | Помилка сервера — перевірте /health для статусу джерела |
| 503 | data_stale | Джерело даних недоступне; повернуто останні відомі дані |
Приклади коду
Python
r = requests.get(
https://api.smartmoneyapi.com/v1/confirm,
params={symbol: BTC, direction: long},
headers={X-API-Key: sm_your_key}
)
data = r.json()
print(data["confidence"]) # HIGH / MEDIUM
print(data["size_mult"]) # 1.5 / 1.0
API_KEY = "sm_your_key"
BASE_URL = "https://api.smartmoneyapi.com/v1"
def confirm_trade(symbol, direction):
resp = requests.get(
f"{BASE_URL}/confirm",
params={"symbol": symbol, "direction": direction},
headers={"X-API-Key": API_KEY},
timeout=5
)
resp.raise_for_status()
return resp.json()
# У вашому торговому циклі:
signal = confirm_trade("BTC", "long")
if signal["confidence"] not in ["HIGH", "MEDIUM"]:
print("Пропускаємо — недостатня впевненість")
else:
size = base_size * signal["size_mult"]
place_order(symbol, direction, size)
JavaScript / Node.js
async function confirmTrade(symbol, direction) {
const params = new URLSearchParams({ symbol, direction });
const res = await fetch(
`https://api.smartmoneyapi.com/v1/confirm?${params}`,
{ headers: { 'X-API-Key': API_KEY } }
);
if (!resok) throw new Error(`API error: ${resstatus}`);
return res.json();
}
// Використання
confirmTrade('BTC', 'long').then(data => {
console.log(dataconfidence, datasize_mult);
});
cURL
curl -X GET \
-H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/confirm?symbol=BTC&direction=long"
# Отримати дані китів
curl -X GET \
-H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/whales?symbol=BTC"
# Перевірити використання
curl -X GET \
-H X-API-Key: sm_your_key \
https://api.smartmoneyapi.com/v1/usage
Інтеграція Freqtrade
Додайте підтвердження Smart Money до будь-якої стратегії Freqtrade, перевизначивши confirm_trade_entry метод.
from freqtrade.strategy import IStrategy
class SmartMoneyStrategy(IStrategy):
SM_API_KEY = "sm_your_key"
SM_BASE = "https://api.smartmoneyapi.com/v1"
def confirm_trade_entry(self, pair, order_type,
amount, rate, time_in_force,
current_time, entry_tag, **kwargs):
symbol = pair.split("/")[0]
if symbol not in ["BTC", "ETH", "SOL"]:
return True # Пропустити перевірку для непідтримуваних
try:
r = requests.get(
f"{self.SM_BASE}/confirm",
params={"symbol": symbol, "direction": "long"},
headers={"X-API-Key": self.SM_API_KEY},
timeout=3
).json()
return r.get("confidence") in ["HIGH", "MEDIUM"]
except:
return True # Помилка API: пропустити
CCXT + Smart Money
exchange = ccxt.bybit({
"apiKey": "YOUR_BYBIT_KEY",
"secret": "YOUR_BYBIT_SECRET"
})
SM_KEY = "sm_your_key"
def smart_trade(symbol, side, amount):
# Спочатку перевірте підтвердження
conf = requests.get(
"https://api.smartmoneyapi.com/v1/confirm",
params={"symbol": symbol, "direction": side},
headers={"X-API-Key": SM_KEY}
).json()
if conf["confidence"] not in ["HIGH", "MEDIUM"]:
print(f"Пропуск {symbol} {side} — недостатня впевненість.")
return None
adj_amount = amount * conf["size_mult"]
order = exchange.create_market_order(
f"{symbol}/USDT", side, adj_amount
)
print(f"Замовлення розміщено: {adj_amount} {symbol} {side}")
return order
Перевірте сторінку статусу API для отримання інформації про стан у реальному часі або скористайтеся нашою формою зв'язку.