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 | Текстовое описание API, удобное для LLM. Используйте с 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 (Firebase Auth)
Пользователи могут аутентифицироваться через Google с помощью Firebase Authentication. После успешного входа через Google на клиенте обменяйте Firebase ID-токен на связанный API-сеанс. Система автоматически свяжет ваш Google-аккаунт с системой API-ключей.
Тело запроса
| Поле | Тип | Описание |
|---|---|---|
| id_tokenобязательно | string | Firebase ID-токен, полученный после входа через Google на клиенте |
Пример ответа
"api_key": "sm_your_linked_key",
"uid": "firebase_uid_abc123",
"email": "[email protected]",
"plan": "trader",
"synced": true
}
Лимиты запросов
| Тариф | Вызовов/День | Лимит всплеска | Задержка данных |
|---|---|---|---|
| Free | 50 | 2/мин | 60 секунд |
| Trader | 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-заголовок. Ключи в query-строках (?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 / поток на биржи / активные адреса), если не установлен ключ Glassnode. Это мультифакторный конфлюэнс оценка — поддержка принятия решений, не гарантированная вероятность выигрыша.
Неотслеживаемые символы честны. Символ вне отслеживаемой вселенной деривативов/китов возвращает явный "confidence":"NO_DATA" / "action":"NO_DATA_SKIP" с "unsupported":true — никогда не сфабрикованный LOW.
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
| ts | integer | Unix-время расчета |
| symbol | string | Тикер актива (BTC/ETH/SOL) |
| direction | string | Запрошенное направление (long/short) |
| 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, импульс, время суток, затухание серии) |
| weights | object | Фактически использованные веса для этой оценки |
| coverage | object | {derivatives, whale, onchain} — какие компоненты содержали реальные данные |
| reasons | array | Человекочитаемые объяснения оценки |
GET /snapshot
Возвращает полный снимок рынка, включая все суб-оценки, исходные метрики и значения индикаторов для заданного тикера. Полезно для дашбордов и логирования.
GET /onchain
Возвращает сырые ончейн-метрики: MVRV, SOPR, чистый поток на биржи, соотношение реализованной капитализации и классификацию позиции в цикле.
GET /v1/derivatives/*
Кросс-биржевой скринер деривативов по 500+ символам: тепловая карта фандинга, рейтинги открытого интереса и детекция сигналов long/short-ratio. Первые 10 строк публичны; полный скринер требует подписки Trader или Pro. Эндпоинты: /v1/derivatives/screener, /v1/derivatives/funding, /v1/derivatives/oi, /v1/derivatives/signals.
GET /v1/options/*
Аналитика опционов BTC и ETH от Deribit (публичная, без аутентификации): put/call ratio, max pain и открытый интерес по страйкам. Эндпоинты: /v1/options/summary, /v1/options/pcr, /v1/options/oi.
GET /v1/etf/*
Ежедневные чистые потоки и детализация по фондам для спотовых BTC и ETH ETF (публичные). Эндпоинты: /v1/etf/flows, /v1/etf/funds.
GET /v1/historical/*
Исторические данные: фандинг, открытый интерес, long/short ratio (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/*
Новостной интеллект: политические/геополитические/криптоновости с классификацией по влиянию, а также индекс Fear & Greed (публичные, без аутентификации). Эндпоинты: /v1/news/trump, /v1/news/general, /v1/news/impact, /v1/news/fear-greed.
GET /whales
Возвращает консенсус-данные кошельков китов: распределение long/short, общую номинальную экспозицию, топ-10 позиций (только Pro) и количество кошельков.
GET /signals
Возвращает поток последних сигналов HIGH/MEDIUM по всем отслеживаемым активам. Полезно для поиска возможностей.
GET /v1/strategies/*
Прозрачная, read-only история автоматических торговых стратегий, работающих на основе сигналов Smart Money — включая deriv40 стратегию SmartMoney Copytrade (account=9). Все эндпоинты принимают ?account=<id> query параметр и возвращают 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 попытками и экспоненциальной задержкой.
Request Body
| Field | Type | Description |
|---|---|---|
| urlrequired | string | HTTPS эндпоинт для отправки событий (должен начинаться с https://) |
| eventsrequired | array | Имена событий, напр. ["HIGH","MEDIUM","VETO"] или ["*"] |
| symbolsrequired | array | Символы для фильтрации, напр. ["BTC","ETH"] или ["*"] |
| secretrequired | string | Ваш секретный ключ для подписи, ≥ 16 символов (хранится в хешированном виде) |
Проверка подписи
HMAC-ключ — это SHA-256 хеш вашего зарегистрированного секрета. Вычислите 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) leverage-projected levels — оценку где находятся кластеры ликвидаций; и (2) realized_heatmap — РЕАЛЬНЫЕ исполненные принудительные ликвидации (цена × время), агрегированные в реальном времени из публичных WebSocket-каналов бирж: Binance, OKX, Bybit, Bitget, BitMEX. Хитмэп отображается, если есть данные по тикеру (отсутствует при очень спокойном рынке или сразу после запуска).
Параметры
| Параметр | Тип | Описание |
|---|---|---|
| symbolопциональный | string | Тикер актива (по умолчанию BTC). Реальный хитмэп охватывает активно торгуемые перп-тикеры. |
Пример ответа
"symbol": "BTC",
"cascade_risk": "HIGH",
"nearest_long_liq_pct": -3.2,
"nearest_short_liq_pct": 4.1,
// РЕАЛЬНЫЕ исполненные ликвидации — live с 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 Хитмэп ликвидаций по уровням цен. Возвращает матрицу price × time в стиле Coinglass с РЕАЛЬНЫМИ исполненными принудительными ликвидациями, сгруппированными по цене — агрегировано в реальном времени из публичных WebSocket-каналов бирж: Binance, OKX, Bybit, Bitget, BitMEX. Массив clusters — это основной вывод: ценовые уровни, ранжированные по ликвидированному номиналу, с указанием доминирующей стороны. Данные зависят от live-потока — для очень спокойного тикера или только что перезапущенного шлюза вернётся пустая структура и честный 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
}
]
}
Бесплатная публичная версия No auth
Публичный эндпоинт без ключа возвращает топ-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), средневзвешенное плечо и корзины близости к ликвидации (номинал в $, находящийся в пределах 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, минимальная_номинальная_стоимость: 1000000, количество_символов: 92,
символы: [
{
символ: BTC,
общий_объем_usd: 2447900000.0, чистый_объем_usd: -51000000.0, перекос: -0.021,
количество_китов: 414, количество_площадок: 3,
площадки: {
hl: { общий_объем: 1900000000.0, чистый_объем: -40000000.0, количество_китов: 272 },
gmx: { общий_объем: 320000000.0, чистый_объем: -6000000.0, количество_китов: 59 },
jupiter: { общий_объем: 227900000.0, чистый_объем: -5000000.0, количество_китов: 83 }
},
концентрация_топ3: 0.159, hhi: 0.011, средневзвешенное_плечо: 19.1,
ликвидация_в_пределах_5%: { лонг: 621700000.0, шорт: 665600000.0 },
ликвидация_в_пределах_10%: { лонг: 840000000.0, шорт: 910000000.0 },
индекс_перегруженности: 0.003
}
],
предупреждения: [ Расстояния до ликвидации являются оценками для изолированной маржи, а не данными от биржи. ]
}
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 (без аутентификации). Возвращает чистую гамма-экспозицию дилеров по страйкам (конвенция SpotGamma: дилеры в шорте), уровень гамма-переворота (страйк, где совокупная чистая GEX пересекает ноль), структура_сроков_IV (ATM подразумеваемая волатильность по дням до экспирации), и фронтальный перекос_IV (25Δ-прокси риск-реверс). Режим GEX — positive (дилеры в лонге по гамме → подавление волатильности) или negative (усиление волатильности). Полностью автономен — пересчитывается при каждом запросе, не зависит от хранилища данных.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
| symbolопционально | строка | 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 использует фиксированный прокси ±10% страйка для 25Δ (точный 25-дельта требует расчета дельты для каждого страйка); подходит для отображения, документируется как приближение.GET /v1/liquidations/simulate
Interactive стресс-тест каскадной ликвидации. При заданном гипотетическом движении цены возвращает оценку ликвидируемых позиций с использованием левериджа, вынужденный объем по уровню цены / стороне / бирже и отчет о глубине каскада. Движение вниз ликвидирует лонги , чья цена ликвидации находится на/выше цели; движение вверх ликвидирует шорты , чья цена ликвидации находится на/ниже нее. Два независимых метода объединены: точные цены ликвидации отслеживаемых китов Hyperliquid реальный леверидж/вход, плюс статистические кластеры OI-полос на бирже (леверидж толпы выводится из финансирования). Все четко обозначено estimated: true — он не может знать маржу на счет, кросс против изолированной, добавленную маржу или ADL.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
| symbolопционально | строка | Символ актива. По умолчанию: 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, нереализованный_pnl: 34800.0,
леверидж: 20.0, стоимость_usd: 2160000.0 }
],
серия: [ { ts: 1783330000, нереализованный_pnl: 42000.0, экспозиция_usd: 18400000.0, позиции: 5 } ],
хронология: [ { ts: 1783400000, событие: переворот, символ: ETH,
направление: шорт, из_направления: лонг, стоимость_usd: 2160000.0 } ],
сводка: {
открытые_позиции: 5, в_прибыли: 3, в_убытке: 2, лонги: 0, шорты: 5,
общий_нереализованный_pnl: -12000.0, общая_экспозиция_usd: 21000000.0, смешанный_леверидж: 19.9,
окно_дней: 30, снимки_в_окне: 474,
реализованный_pnl: None, примечание_реализованного_pnl: Не выводится — видны только открытые снимки, закрывающие сделки отсутствуют.
}
}
}
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 в различных временных окнах. Полезно для определения, какой актив накапливает капитал, а какой распределяется в данный момент.
Пример ответа
ts: 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
Возвращает значимые изменения позиций китов — открытия, закрытия и смены направления — обнаруженные в отслеживаемых кошельках и ончейн-адресах в указанном периоде.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
| symbolопционально | string | Фильтр по активу. Оставьте пустым для всех отслеживаемых активов. |
| significanceопционально | string | Фильтр по значимости события: high, medium, или all. По умолчанию: all |
| hoursопционально | integer | Период просмотра в часах. По умолчанию: 24 |
Пример ответа
symbol: BTC,
summary: {
перевороты_в_лонг: 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": {
"volatility": 65,
"momentum": 78,
"derivatives": 70,
"whale_activity": 75,
"social": 68
},
"history_24h": [
{ "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 | Email для получения уведомлений |
| timezone | string | IANA timezone строка, например 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 события и периодические heartbeat-сообщения для поддержания соединения.
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>. The ticket is одноразовый и истекает через ~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-параметр больше не принимается на конечных точках WebSocket по соображениям безопасности. Используйте билет (клиенты в браузере) или 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
Создавайте пользовательские правила оповещений, которые срабатывают при пересечении указанного метрикой порогового значения. Оповещения доставляются через вебхук, email или ленту уведомлений дашборда в зависимости от ваших предпочтений.
Возвращает список всех настроенных вами условий оповещений с их ID, определениями и текущим статусом.
Навсегда удаляет условие оповещения по его ID.
Возвращает последние события срабатывания оповещений с временными метками, соответствующими условиями и значением метрики на момент срабатывания.
Create Alert — Request Body
| Поле | Тип | Описание |
|---|---|---|
| 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 как available_metrics и 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 funding rate spike",
"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, с разбивкой по уровням уверенности. Полезно для оценки надежности сигналов перед принятием инвестиционных решений.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
| symboloptional | string | Фильтр по активу. Оставьте пустым для агрегированной статистики по всем символам. |
| daysoptional | 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 уникальных исходах вызовов. Возвращает процент успешных сделок для уровней HIGH и MEDIUM, общую точность, профит-фактор и разбивку по символам. Все данные рассчитаны на основе обучающей выборки; подробности методологии и тестирования см. в 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": "distinct confirm calls, 24h resolved outcomes",
"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 object — единственный показатель, основанный на новых данных; следите за его изменением. Подробности методологии и границы обучающей/тестовой выборки см. в calibration.html .GET /v1/signals/performance
Отслеживание результатов сигналов для разных временных горизонтов (4ч, 12ч, 24ч, 72ч). Возвращает процент успешных сделок по горизонтам, общее количество сигналов и разбивку по типам сигналов.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
| daysoptional | integer | Период анализа в днях. По умолчанию: 30 |
| signal_typeoptional | string | Фильтр по типу, например, smart_money_confirm или regime_flip. Оставьте пустым для всех типов. |
| symboloptional | 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) вместе с ценой на момент сигнала и на момент исполнения.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
| idrequired | integer | 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 заголовку запроса — повторная отправка того же ключа возвращает существующую запись без создания дубликата. Система немедленно вызывает движок подтверждения и добавляет результат как неизменяемую запись в журнал.
Тело запроса
| Поле | Тип | Описание |
|---|---|---|
| symbolrequired | string | Тикер актива, напр. BTC |
| siderequired | string | Направление сделки: long или short |
| strategy_idoptional | 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-ключом.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
| limitoptional | integer | Максимальное количество записей для возврата. По умолчанию: 50, максимум: 200 |
| cursoroptional | 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": "short", "decision": "SKIP", "confidence": "LOW", "composite": -0.12, "size_mult": 0.0, "ts": 1710937000, "resolved": true }
],
"count": 2,
"next_cursor": null
}
Отдельное решение по 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": null
}
Вручную зафиксируйте исход решения. Вызовите этот метод после закрытия сделки, чтобы записать окончательный результат в строку журнала. После фиксации строка становится неизменяемой и не может быть изменена повторно.
Тело запроса
| Поле | Тип | Описание |
|---|---|---|
| outcomerequired | string | Исход сделки: win или loss |
| exit_priceoptional | float | Цена выхода из сделки. Сохраняется для справки; используется для расчета P&L %, если указана. |
| pnl_pctoptional | 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"Skipping {symbol} {side} — insufficient confidence.")
return None
adj_amount = amount * conf["size_mult"]
order = exchange.create_market_order(
f"{symbol}/USDT", side, adj_amount
)
print(f"Order placed: {adj_amount} {symbol} {side}")
return order
Проверьте API status page для получения информации о состоянии в реальном времени или воспользуйтесь нашей contact form.