Справочник API

Smart Money API

Профессиональный аналитический API, который агрегирует данные по деривативам, ончейн-метрики и активность кошельков китов в единый показатель уверенности для вашего торгового бота.

Текущая версия API: v1. Базовый URL: 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. Все конечные точки доступны по адресу:

Базовый URL
https://api.smartmoneyapi.com

Шаг 2 — Получите API-ключ. Зарегистрируйтесь бесплатно (без кредитной карты) и скопируйте ключ из панели управления. Передавайте его в заголовке X-API-Key при каждом запросе.

Шаг 3 — Первый вызов. Вставьте это в терминал, заменив sm_your_key ключом из панели управления:

cURL
curl -H "X-API-Key: sm_your_key" "https://api.smartmoneyapi.com/v1/confirm?symbol=BTC&direction=long"

Ожидаемый ответ:

JSON
{
"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.

HTTP-заголовок
X-API-Key: sm_your_api_key_here

Ваш API-ключ доступен в панели управления после регистрации. Храните ключ в секрете — не раскрывайте его в клиентском коде или публичных репозиториях.

Аутентификация WebSocket отличается. Никогда не указывайте ключ в URL WebSocket. Потоки в реальном времени используют одноразовые билеты: отправьте ваш ключ POST-запросом на /v1/ws/ticket с заголовком X-API-Key , затем подключитесь с полученным билетом. См. Аутентификация WebSocket (билеты).

Вход через Google (Firebase Auth)

Пользователи могут аутентифицироваться через Google с помощью Firebase Authentication. После успешного входа через Google на клиенте обменяйте Firebase ID-токен на связанный API-сеанс. Система автоматически свяжет ваш Google-аккаунт с системой API-ключей.

Доступно для: Free Trader Pro
POST /auth/google

Тело запроса

ПолеТипОписание
id_tokenобязательноstringFirebase ID-токен, полученный после входа через Google на клиенте

Пример ответа

JSON
{
"api_key": "sm_your_linked_key",
"uid": "firebase_uid_abc123",
"email": "[email protected]",
"plan": "trader",
"synced": true
}
Данные профиля — email, тариф, история использования, настройки — хранятся в Firestore и привязаны к Google-аккаунту. Полный экспорт данных или удаление аккаунта можно запросить в любое время в настройках конфиденциальности панели управления.

Лимиты запросов

ТарифВызовов/ДеньЛимит всплескаЗадержка данных
Free502/мин60 секунд
Trader1,00020/минРеальное время
Pro5,00060/минРеальное время
Enterprise100,000400/минРеальное время

Заголовки лимита запросов включены в каждый ответ: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Базовый URL

https://api.smartmoneyapi.com/v1

Все конечные точки ниже указаны относительно этого базового URL. Все ответы в формате JSON с Content-Type: application/json.

Ошибки

Ошибки используют стандартные HTTP-коды статусов и единый формат JSON-тела. Всегда проверяйте код статуса, а не текст ответа. Три наиболее частых случая:

СтатусКодЗначение и что делать
401unauthorizedОтсутствует или неверный API-ключ. Проверьте, что X-API-Key заголовок присутствует и корректен.
402payment_requiredДля этого эндпоинта или символа требуется тариф выше, чем у вашего ключа (например, бесплатный ключ для WebSocket firehose). Улучшите тариф или используйте публичный эндпоинт.
429rate_limit_exceededДостигнут дневной или мгновенный лимит. Сделайте паузу и повторите после X-RateLimit-Reset; не злоупотребляйте запросами.

Каждая ошибка возвращает одинаковую структуру:

JSON
{
"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
Сводка для LLMhttps://smartmoneyapi.com/llms.txt
OpenAPI спецификацияgithub.com/tashiardit/smartmoneyapi-docs

Направьте агента на /llms.txt файл (соглашение llms.txt) для краткого обзора, затем на OpenAPI спецификацию для точных форматов запросов/ответов. Пример удачного однострочного запроса:

Подсказка
# Вставьте в Claude Code / Cursor / Codex
Прочтите 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 символа.

Пример запроса

cURL
curl -H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/confirm?symbol=BTC&direction=long"

Пример ответа

JSON
{
"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.

Поля ответа

ПолеТипОписание
tsintegerUnix-время расчета
symbolstringТикер актива (BTC/ETH/SOL)
directionstringЗапрошенное направление (long/short)
compositefloatСводный показатель согласованности от -1.0 (крайнее противоречие) до +1.0 (сильное подтверждение). Не является вероятностью выигрыша.
base_compositefloatСводный показатель до применения пост-фильтровых корректировок
confidencestringHIGH / MEDIUM / LOW / VETO / NO_DATA
actionstringCONFIRM_FULL / CONFIRM_REDUCED / CONFIRM_MINIMAL / VETO_SKIP / NO_DATA_SKIP
size_multfloatРекомендуемый множитель размера позиции (например, 0.0 – 1.5)
unsupportedbooltrue когда тикер не поддерживается (пара с NO_DATA)
deriv_scorefloatСуб-оценка деривативов (-1 до 1)
onchain_scorefloatСуб-оценка ончейн (-1 до 1)
whale_scorefloatСуб-оценка консенсуса китов (-1 до 1)
x_scorefloatСуб-оценка X/социальных настроений (-1 до 1); 0 при отсутствии данных
factorsobjectДетализация по компонентам: score × weight = weighted для деривативов / ончейн / китов / x_sentiment (ончейн включает source)
adjustmentsobjectКорректировки после фильтрации (согласованность, тренд, rsi_1h, news_macro, импульс, время суток, затухание серии)
weightsobjectФактически использованные веса для этой оценки
coverageobject{derivatives, whale, onchain} — какие компоненты содержали реальные данные
reasonsarrayЧеловекочитаемые объяснения оценки

GET  /snapshot

Возвращает полный снимок рынка, включая все суб-оценки, исходные метрики и значения индикаторов для заданного тикера. Полезно для дашбордов и логирования.

Требуется: Трейдер Pro

GET  /onchain

Возвращает сырые ончейн-метрики: MVRV, SOPR, чистый поток на биржи, соотношение реализованной капитализации и классификацию позиции в цикле.

Требуется: Трейдер Pro

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) и количество кошельков.

Требуется: Трейдер Pro

GET  /signals

Возвращает поток последних сигналов HIGH/MEDIUM по всем отслеживаемым активам. Полезно для поиска возможностей.

Требуется: Pro

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

Требуется: Pro

GET  /health

Проверка состояния системы. Возвращает актуальность данных для каждого источника и общий статус API. Аутентификация не требуется.

JSON Response
{
"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

Требуется: Pro

Зарегистрируйте HTTPS URL для получения подписанных событий в реальном времени при срабатывании сигналов по отслеживаемым активам. Доставки включают X-SmartMoney-Event заголовок и HMAC-SHA256 подпись в X-SmartMoney-Signature, с 3 попытками и экспоненциальной задержкой.

Request Body

FieldTypeDescription
urlrequiredstringHTTPS эндпоинт для отправки событий (должен начинаться с https://)
eventsrequiredarrayИмена событий, напр. ["HIGH","MEDIUM","VETO"] или ["*"]
symbolsrequiredarrayСимволы для фильтрации, напр. ["BTC","ETH"] или ["*"]
secretrequiredstringВаш секретный ключ для подписи, ≥ 16 символов (хранится в хешированном виде)

Проверка подписи

HMAC-ключ — это SHA-256 хеш вашего зарегистрированного секрета. Вычислите HMAC-SHA256 сырого тела запроса с этим ключом и сравните (постоянное время) с X-SmartMoney-Signature. См. Руководство по реализации вебхуков.

Аналитика

GET  /analysis

Требуется: Pro

Возвращает классификацию рыночного режима с ИИ-поддержкой и обнаружением конфликтов сигналов. Анализирует согласованность сигналов, выявляет расхождения между данными по деривативам, ончейн-данными и данными о китах, а также предоставляет текстовое резюме с прогнозируемыми факторами риска и рекомендацией с учетом временного горизонта.

Параметры

ПараметрТипОписание
symbolобязательныйstringТикер актива: BTC, ETH, или SOL

Пример ответа

JSON
{
"ts": 1710940821,
"symbol": "BTC",
"regime": "late_cycle_divergence",
"regime_label": "Поздний цикл — Расхождение сигналов",
"summary": "BTC находится в поздней фазе бычьего цикла с противоречием между сильными ончейн-показателями и перегретостью деривативов. Киты сокращают экспозицию, а LSR розничных инвесторов растёт.",
"signal_conflicts": [
"Медвежий показатель китов при бычьем ончейн-показателе",
"Фандинг достиг 3-месячного максимума — риск сквиза"
],
"risk_factors": ["Повышенный фандинг", "Расхождение OI", "Сокращение экспозиции китов"],
"recommendation": "Уменьшите лонговую экспозицию, ужесточите стопы. Избегайте новых лонгов выше текущей цены.",
"time_horizon": "4h–12h"
}
Требуется план Pro. Этот эндпоинт расходует 3 вызова API из-за затрат на ИИ-обработку.

GET  /liquidations

Требуется: Trader Pro

Возвращает два взаимодополняющих представления: (1) leverage-projected levels — оценку где находятся кластеры ликвидаций; и (2) realized_heatmapРЕАЛЬНЫЕ исполненные принудительные ликвидации (цена × время), агрегированные в реальном времени из публичных WebSocket-каналов бирж: Binance, OKX, Bybit, Bitget, BitMEX. Хитмэп отображается, если есть данные по тикеру (отсутствует при очень спокойном рынке или сразу после запуска).

Параметры

ПараметрТипОписание
symbolопциональныйstringТикер актива (по умолчанию BTC). Реальный хитмэп охватывает активно торгуемые перп-тикеры.

Пример ответа

JSON
{
"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 }
}
}
План Trader: cascade_risk, ближайшие уровни и реальные итоги/по сторонам. План Pro: полная проекция levels плюс полный realized_heatmap (матрицы, кластеры по ценам, счетчики по биржам). Проекция отвечает на вопрос "где стоят стопы"; реальный хитмэп показывает "что реально ликвидировалось."

GET  /liquidations/heatmap

Доступно для: Free Аутентификация не требуется (лимит по IP)

Public Хитмэп ликвидаций по уровням цен. Возвращает матрицу price × time в стиле Coinglass с РЕАЛЬНЫМИ исполненными принудительными ликвидациями, сгруппированными по цене — агрегировано в реальном времени из публичных WebSocket-каналов бирж: Binance, OKX, Bybit, Bitget, BitMEX. Массив clusters — это основной вывод: ценовые уровни, ранжированные по ликвидированному номиналу, с указанием доминирующей стороны. Данные зависят от live-потока — для очень спокойного тикера или только что перезапущенного шлюза вернётся пустая структура и честный note. Уровни всегда отражают реальные ликвидации, никогда — оценки.

Параметры

ПараметрТипОписание
symboloptionalstringСимвол актива (по умолчанию BTC).
window_minutesoptionalintОкно обратного просмотра в минутах (по умолчанию 240, ограничено 5–1440).
price_bucketsoptionalintКоличество ценовых корзин (по умолчанию 50, ограничено 5–100).

Пример ответа

JSON
{
"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

Требуется: Trader Pro

Исполненные ончейн-ликвидации DeFi-кредитов захваченные напрямую с наших локальных полных нод BSC + Avalanche — независимо от торговых ботов. Включает Venus/Cream и Moolah на BSC, а также AAVE V3/V2, Benqi, BankerJoe, Granary и Vinium на Avalanche. Уровень Pro дополнительно возвращает at_risk позиции (зависит от бота, может отсутствовать).

Параметры

ПараметрТипОписание
chainoptionalstringbsc или avax. Оставьте пустым для всех сетей.
limitoptionalintegerМаксимальное количество строк (по умолчанию 100, максимум 500). Сначала новые.

Пример ответа

JSON
{
"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

Требуется: Trader Pro

Рассчитывает интеллектуальные уровни стоп-лосса на основе текущей карты ликвидаций, волатильности и структуры рынка. Возвращает рекомендации по стопам и тейк-профитам, адаптированные под вашу цену входа и терпимость к риску.

Параметры

ПараметрТипОписание
symbolrequiredstringТикер актива: BTC, ETH, или SOL
directionrequiredstringНаправление позиции: long или short
entry_priceoptionalfloatВаша цена входа. По умолчанию — текущая рыночная цена.
risk_pctoptionalfloatМаксимально допустимый риск в % от депозита. По умолчанию: 2.0

Пример ответа

JSON
{
"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 }
]
}
Тариф Trader: Возвращает только recommended стоп. Тариф Pro: Все три уровня стопов, avoid_zonesи полные рекомендации по тейк-профитам.

GET  /funding-arb

Требуется: Trader Pro

Выявляет возможности арбитража ставок финансирования между биржами в реальном времени. Возвращает ранжированные возможности с расчетной годовой доходностью, оптимальной парой бирж и действием для хеджирования.

Параметры

ПараметрТипОписание
min_spreadoptionalfloatМинимальный спред ставки финансирования для включения (в десятичном виде). По умолчанию: 0.01
symboloptionalstringФильтр по активу. Оставьте пустым для сканирования всех активов.

Пример ответа

JSON
{
"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
}
]
}
Тариф Trader: Только лучшая возможность, без истории спредов. Тариф Pro: Все текущие возможности с историей спредов за 24h для каждой пары бирж.

Бесплатная публичная версия No auth

Публичный эндпоинт без ключа возвращает топ-10 возможностей с кросс-биржевым скринером, идеально для встраивания или быстрой проверки. Исключает историю спредов по активам и тяжелые поля, обновляется каждые 120 секунд. Если в окне актуальности нет спредов, возвращает пустой opportunities массив с note — никогда не фальсифицирует данные.

GET (no auth)
GET /v1/derivatives/funding-arb
JSON
{
"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
}
Бесплатно, без API-ключа. Только 10 лучших возможностей, с ограничением и кешированием (120 сек). Страница живого скринера: funding-arb.html.

GET  /smart-money/flow

Требуется: Trader Pro

Взвешенный по качеству индекс направления китов по символу, оцененный -100 (китовые деньги склоняются к шорту) до +100 (склоняются к лонгу). Построен на основе тысяч отслеживаемых кошельков китов Hyperliquid — каждый взвешен по своей исторической вероятности выигрыша и PnL, с учетом давности. Это индекс позиционирования, а не сигнал к покупке/продаже или прогноз цены. Символы с малым количеством участвующих кошельков помечены thin и оценены честно. Живая страница: smart-money-flow.html.

Параметры

ПараметрТипОписание
symbolопциональноstringОдин символ (например, BTC). Пропустите, чтобы получить все отслеживаемые символы, ранжированные по |score|.
window_hoursопциональноintОкно оценки, ограничено 1..168. По умолчанию 24.

Пример ответа

JSON
{
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). Не является прогнозом цены или сигналом к покупке/продаже.
}
План Trader: Топ-12 символов, детали участников скрыты. План Pro: Все символы с top_contributors. Веса кошельков ограничены [0.25,1.0]; PnL — это нереализованный прокси из последних снимков позиций.

GET  /v1/whales/crowding

Доступно для: Free Аутентификация не требуется — анонимные пользователи получают топ-10 символов, Trader+ — полный список

Комбинированный контекст позиционирования и скопления китов по символу, объединенный по 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.

Пример запроса

GET (без аутентификации)
curl "https://api.smartmoneyapi.com/v1/whales/crowding?min_notional=1000000"

Пример ответа

JSON
{
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

Доступно для: Free Аутентификация не требуется (ограничение по IP)

Dealer гамма-экспозиция (GEX) аналитика для BTC & ETH, рассчитывается в реальном времени из публичного опционного стакана Deribit (без аутентификации). Возвращает чистую гамма-экспозицию дилеров по страйкам (конвенция SpotGamma: дилеры в шорте), уровень гамма-переворота (страйк, где совокупная чистая GEX пересекает ноль), структура_сроков_IV (ATM подразумеваемая волатильность по дням до экспирации), и фронтальный перекос_IV (25Δ-прокси риск-реверс). Режим GEX — positive (дилеры в лонге по гамме → подавление волатильности) или negative (усиление волатильности). Полностью автономен — пересчитывается при каждом запросе, не зависит от хранилища данных.

Параметры

ПараметрТипОписание
symbolопциональнострокаBTC или ETH только. По умолчанию: BTC.

Пример запроса

GET (без аутентификации)
curl "https://api.smartmoneyapi.com/v1/options/gex?symbol=BTC"

Пример ответа

JSON
{
"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"
}
}
Важное примечание: Множитель контракта Deribit равен 1 (открытый интерес в монетах). При любой ошибке получения данных эндпоинт возвращает available: false с пустыми панелями — никогда не фальсифицирует GEX. Перекос IV использует фиксированный прокси ±10% страйка для 25Δ (точный 25-дельта требует расчета дельты для каждого страйка); подходит для отображения, документируется как приближение.

GET  /v1/liquidations/simulate

Доступно для: Free Аутентификация не требуется (ограничение по IP)

Interactive стресс-тест каскадной ликвидации. При заданном гипотетическом движении цены возвращает оценку ликвидируемых позиций с использованием левериджа, вынужденный объем по уровню цены / стороне / бирже и отчет о глубине каскада. Движение вниз ликвидирует лонги , чья цена ликвидации находится на/выше цели; движение вверх ликвидирует шорты , чья цена ликвидации находится на/ниже нее. Два независимых метода объединены: точные цены ликвидации отслеживаемых китов Hyperliquid реальный леверидж/вход, плюс статистические кластеры OI-полос на бирже (леверидж толпы выводится из финансирования). Все четко обозначено estimated: true — он не может знать маржу на счет, кросс против изолированной, добавленную маржу или ADL.

Параметры

ПараметрТипОписание
symbolопциональнострокаСимвол актива. По умолчанию: BTC.
move_pctопциональночисло с плавающей точкойГипотетическое движение цены в процентах (отрицательное = вниз, положительное = вверх). По умолчанию: -5.

Пример запроса

GET (без авторизации)
curl "https://api.smartmoneyapi.com/v1/liquidations/simulate?symbol=BTC&move_pct=-5"

Пример ответа

JSON
{
"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

Доступно для: Бесплатно Без авторизации (ограничено по IP)

Кросс-платформенный профиль кошелька построенный полностью из живых снимков позиций отслеживаемых китов. Для отслеживаемого кита Hyperliquid возвращает текущие открытые позиции, временной ряд нереализованного PnL / экспозиции / количества позиций временной ряд, временную шкалу активности OPEN/CLOSE/FLIP (восстановленную путем сравнения последовательных снимков), расшифрованную метку HL-лидерборда и сводку открытой книги. Живая страница: wallet-profiler.html.

Параметры

ПараметрТипОписание
addrобязательнострокаАдрес кошелька (сегмент пути), например /v1/wallet/0x3bcae23e…/profile.
daysопциональноцелое числоОкно просмотра для ряда и временной шкалы. По умолчанию: 30.

Пример запроса

GET (без авторизации)
curl "https://api.smartmoneyapi.com/v1/wallet/0x3bcae23e8c380dab4732e9a159c0456f12d866f3/profile?days=30"

Пример ответа

JSON
{
"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

Требуется: Pro

Возвращает данные о перетоках капитала между активами, показывая паттерны ротации между BTC, ETH и SOL в различных временных окнах. Полезно для определения, какой актив накапливает капитал, а какой распределяется в данный момент.

Пример ответа

JSON
{
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 стабильно во всех окнах
]
}
Требуется план Pro. Значения потоков — чистый приток (положительный) или отток (отрицательный) в USD за временное окно.

GET  /whale-events

Требуется: Trader Pro

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

Параметры

ПараметрТипОписание
symbolопциональноstringФильтр по активу. Оставьте пустым для всех отслеживаемых активов.
significanceопциональноstringФильтр по значимости события: high, medium, или all. По умолчанию: all
hoursопциональноintegerПериод просмотра в часах. По умолчанию: 24

Пример ответа

JSON
{
symbol: BTC,
summary: {
перевороты_в_лонг: 3,
перевороты_в_шорт: 1,
новые_открытия: 7,
закрытия: 2
},
события: [
{
"type": "flip_long",
"wallet": "0xWhale...a4f2",
"direction": "long",
"size_usd": 4200000,
"ts": 1710938400
}
]
}
План Trader: Возвращает summary только объект. План Pro: Полная events лента с идентификаторами кошельков, размерами и временными метками.

GET  /regimes/history

Требуется: Pro

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

Параметры

ПараметрТипОписание
symboloptionalstringСимвол актива. По умолчанию: BTC
regimeoptionalstringФильтр по конкретному типу режима, например, late_cycle_divergence. Оставьте пустым для всех режимов.
daysoptionalintegerОкно ретроспективного анализа в днях. По умолчанию: 30. Максимум: 365

Пример ответа

JSON
{
"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 }
]
}
Требуется план Pro. Используйте вместе с /analysis для проверки стратегических предположений на исторических данных о режимах.

GET  /exchange-health

Доступно для: Free Trader Pro

Возвращает статус работоспособности всех отслеживаемых бирж в реальном времени, включая задержки, частоту ошибок и показатели устаревания данных. Не требует аутентификации — публичный эндпоинт.

Пример ответа

JSON
{
"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

Требуется: Trader Pro

Возвращает индекс страха и жадности (0-100) в реальном времени, рассчитанный на основе настроений деривативов, активности китов, волатильности и социальных сигналов. Включает разбивку по компонентам и историю за 24 часа для анализа трендов.

Параметры

ПараметрТипОписание
symboloptionalstringТикер актива. По умолчанию: BTC

Пример ответа

JSON
{
"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
}
Аналог у конкурентов: Santiment Social Volume + Alternative.me Fear & Greed — объединены в единый эндпоинт с разбивкой по компонентам.

Интеграции

GET  /tradingview/setup

Требуется: Trader Pro

Возвращает вашу персонализированную настройку интеграции с TradingView: URL вебхука, секрет для проверки и готовые индикаторы Pine Script, которые подключаются напрямую к Smart Money API. Скопируйте и вставьте Pine Script в TradingView, чтобы отображать наши сигналы на любом графике.

Пример ответа

JSON
{
"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

Доступно для: Trader Pro

Принимает алерт от TradingView, пропускает его через /confirm, и возвращает подтверждение. TradingView не может отправлять пользовательские заголовки, поэтому аутентификация осуществляется путем включения вашего вебхука secret в тело JSON (этот эндпоинт не использует X-API-Key). Ответ включает подтверждение и добавляет верхний уровень action из CONFIRMED (уверенность демона HIGH/MEDIUM) или VETOED.

Тело запроса

JSON
{
"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

Требуется: Trader Pro

Возвращает текущие настройки персонализации, включая параметры сделок по умолчанию, профиль риска, список отслеживания и предпочтения уведомлений.

PUT /v1/preferences

Обновите настройки, отправив тело JSON с любым подмножеством полей ниже. Пропущенные поля сохраняют текущие значения.

Поля настроек

ПолеТипОписание
default_trade_size_usdfloatРазмер позиции по умолчанию в USD для расчетов Kelly и smart-stop
risk_tolerancestringconservative, moderate, или aggressive
default_risk_pctfloatРиск по умолчанию на сделку в % от счета. Используется /smart-stop когда risk_pct не указан
watchlistarrayУпорядоченный список тикеров активов, например ["BTC","ETH","SOL"]
notification_emailstringEmail для получения уведомлений
timezonestringIANA timezone строка, например America/New_York
PUT — Пример тела
{
"default_trade_size_usd": 5000,
"risk_tolerance": "moderate",
"default_risk_pct": 1.5,
"watchlist": ["BTC", "ETH", "SOL"]
}

GET  /watchlist

Требования: Trader Pro

Возвращает снимок статуса подтверждения и ключевые метрики риска для всех символов в вашем списке наблюдения. Предоставляет обзор по нескольким активам без необходимости запрашивать /confirm каждый символ отдельно.

Пример ответа

JSON
{
"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 (бесплатный)

Доступно для: Free Trader Pro
GET /v1/stream/public-swaps

Аутентификация не требуется. Нативная EventSource поддержка во всех современных браузерах. Сервер отправляет swap события и периодические heartbeat-сообщения для поддержания соединения.

JavaScript (браузер)
const es = new EventSource("https://api.smartmoneyapi.com/v1/stream/public-swaps");
es.addEventListener("swap", e => {
  const swap = JSON.parse(e.data);
  console.log(swap.chain, swap.pair, swap.amount_usd);
});

WebSocket Firehose (платный)

Требования: Trader Pro
WSS /v1/ws/live-swaps?ticket=…

Аутентификация (рекомендуется): никогда не указывайте долгоживущий ключ в URL — он может быть записан прокси и сохранён в истории браузера. Вместо этого отправьте ваш ключ через /v1/ws/ticket используя безопасный X-API-Key заголовок, затем откройте сокет с полученным одноразовым ticket (действителен ~60 сек., используется один раз). Клиенты на стороне сервера, которые могут устанавливать заголовки, могут передавать X-API-Key напрямую при рукопожатии. Ключи бесплатного тарифа получают 402 payment_required ответ. При подключении отправляется hello фрейм с вашим тарифом и порогом трансляции.

JavaScript (браузер)
// 1. Обменяйте ваш ключ на одноразовый билет (ключ остаётся в заголовке)
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 — билет не требуется.

POST /v1/ws/ticket
Требуется: Trader Pro

Создает одноразовый билет для аутентифицированного рукопожатия WebSocket. Аутентификация с помощью X-API-Key заголовка (ваш ключ никогда не покидает заголовки запроса). Возвращенный билет можно использовать один раз на /v1/ws/live-swaps до его истечения.

cURL
curl -X POST -H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/ws/ticket"

Пример ответа

JSON
{
"ticket": "wst_9f3c1a8e4b2d…",
"expires_in": 60
}

Поля ответа

ПолеТипОписание
ticketstringОдноразовый токен для добавления как ?ticket= в URL WebSocket. Используется один раз, затем аннулируется.
expires_innumberСекунд до истечения билета (~60). Создавайте новый билет для каждой попытки подключения.

Примечание: устаревший ?key= аутентификация через query-параметр больше не принимается на конечных точках WebSocket по соображениям безопасности. Используйте билет (клиенты в браузере) или X-API-Key заголовок рукопожатия (клиенты на стороне сервера).

REST Snapshot

GET /v1/live-swaps/recent?limit=20

Возвращает последние N транзакций свопов из скользящего буфера. Полезно для первоначальной загрузки дашбордов до открытия соединения с потоком. Также доступно: /v1/live-swaps/status для статистики вещателя.

Схема события

ПолеТипОписание
chainstringbsc или avalanche
dexstringНазвание роутера (например, pancakeswap_v2, traderjoe) или unknown_dex
swapperstringПолный 0x-адрес кошелька, выполнившего своп
swapper_shortstringСокращенная форма для отображения (например, 0xb300…028d)
swapper_urlstringПрямая ссылка на кошелек в обозревателе блоков цепи
tx_hashstringХэш транзакции
explorer_urlstringПрямая ссылка на транзакцию в BscScan / Snowtrace
token_instringСимвол проданного токена (например, USDT)
token_outstringСимвол купленного токена
amount_usdnumberСтоимость свопа в USD (минимум: $500)
pairstringФорматированная метка пары (например, USDT → USDC)
blocknumberНомер блока, в котором был добыт своп
timestampnumberСекунды Unix epoch
significancestringlow / medium / high / critical на основе размера в USD
seqnumberМонотонный номер последовательности вещания — используется для обнаружения пропусков

POST  /alerts/conditions

Требуется: Pro

Создавайте пользовательские правила оповещений, которые срабатывают при пересечении указанного метрикой порогового значения. Оповещения доставляются через вебхук, email или ленту уведомлений дашборда в зависимости от ваших предпочтений.

GET /v1/alerts/conditions

Возвращает список всех настроенных вами условий оповещений с их ID, определениями и текущим статусом.

DELETE /v1/alerts/conditions/{id}

Навсегда удаляет условие оповещения по его ID.

GET /v1/alerts/history

Возвращает последние события срабатывания оповещений с временными метками, соответствующими условиями и значением метрики на момент срабатывания.

Create Alert — Request Body

ПолеТипОписание
namerequiredstringЧеловекочитаемая метка для этого оповещения (максимум 64 символа)
metricrequiredstringМетрика для мониторинга. Смотрите таблицу доступных метрик ниже.
symboloptionalstringКонтекст актива. Требуется для метрик, связанных с символом, таких как funding_rate.
operatorrequiredstringОператор сравнения: gt, lt, eq, crosses_above, crosses_below
thresholdrequiredfloatЧисловое значение для сравнения с метрикой
deliveryoptionalstringКанал доставки, например telegram (по умолчанию) или webhook
cooldown_minutesoptionalintegerМинимальное количество минут между повторными срабатываниями (по умолчанию 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Межбиржевой спред финансирования для символа
POST — Пример тела запроса
{
"name": "BTC funding rate spike",
"metric": "funding_rate",
"symbol": "BTC",
"operator": "gt",
"threshold": 0.05
}

GET  /kelly

Требуется: Pro

Возвращает рекомендации по размеру позиции по критерию Келли, калиброванные на основе исторической производительности сигнала для данного символа, уровня уверенности и направления. Основан на эмпирических показателях выигрыша, чтобы избежать чрезмерного использования кредитного плеча.

Параметры

ПараметрТипОписание
symbolrequiredstringСимвол актива: BTC, ETH, или SOL
confidenceoptionalstringУровень уверенности сигнала для моделирования: HIGH, MEDIUM, или LOW. По умолчанию: HIGH
directionoptionalstringНаправление сделки: long или short. По умолчанию: long
account_sizeoptionalfloatРазмер счета в USD для вычисления suggested_size_usd. По умолчанию: 10000

Пример ответа

JSON
{
"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 рекомендуется для реальной торговли, чтобы учесть ошибки оценки."
}
Требуется тариф Pro. Расчеты основаны на скользящей 90-дневной выборке исторических сигналов, соответствующих запрошенным параметрам символа, уровня уверенности и направления.

GET  /performance

Доступно для: Free Trader Pro

Возвращает историческую статистику точности сигналов, выданных API, с разбивкой по уровням уверенности. Полезно для оценки надежности сигналов перед принятием инвестиционных решений.

Параметры

ПараметрТипОписание
symboloptionalstringФильтр по активу. Оставьте пустым для агрегированной статистики по всем символам.
daysoptionalintegerПериод анализа в днях. По умолчанию: 30

Пример ответа

JSON
{
"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

Доступно для: Free Trader Pro Аутентификация не требуется

Общая статистика производительности, основанная на smart_money_confirm уникальных исходах вызовов. Возвращает процент успешных сделок для уровней HIGH и MEDIUM, общую точность, профит-фактор и разбивку по символам. Все данные рассчитаны на основе обучающей выборки; подробности методологии и тестирования см. в calibration.html .

Пример ответа

JSON
{
"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

Доступно для: Free Trader Pro Аутентификация не требуется

Отслеживание результатов сигналов для разных временных горизонтов (4ч, 12ч, 24ч, 72ч). Возвращает процент успешных сделок по горизонтам, общее количество сигналов и разбивку по типам сигналов.

Параметры

ПараметрТипОписание
daysoptionalintegerПериод анализа в днях. По умолчанию: 30
signal_typeoptionalstringФильтр по типу, например, smart_money_confirm или regime_flip. Оставьте пустым для всех типов.
symboloptionalstringФильтр по символу актива, например, BTC. Оставьте пустым для агрегирования по всем символам.

Пример ответа

JSON
{
"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

Доступно для: Free Trader Pro Аутентификация не требуется

Лента недавно опубликованных сигналов HIGH и MEDIUM по всем отслеживаемым символам. Каждая запись включает тип сигнала, уровень уверенности, направление и статус исполнения, если доступно.

Пример ответа

JSON
{
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

Доступно для: Free Trader Pro Аутентификация не требуется

Результат исполнения для одного сигнала по его числовому ID. Возвращает попадание/промах на каждом горизонте исполнения (4h, 12h, 24h, 72h) вместе с ценой на момент сигнала и на момент исполнения.

Параметры

ПараметрТипОписание
idrequiredintegerID сигнала (сегмент пути), например /v1/signals/1042/outcome

Пример ответа

JSON
{
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

Требуется: Free Trader Pro

Статистика попаданий подтверждающих сигналов для API-ключа аутентифицированного пользователя. Возвращает процент попаданий по уровням уверенности, фактор прибыли и показатели по символам. Требуется действительный X-API-Key заголовок.

Пример запроса

cURL
curl -H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/confirm-winrate"

Пример ответа

JSON
{
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 }
}
}
Основано на уникальных вызовах. Винрейты рассчитываются для каждого уникального вызова подтверждения (один на символ в 5-минутном окне), а не для каждого обращения к API — это предотвращает «раздувание» N из-за ботов, которые опрашивают API повторно. Данные приведены для стандартного 30-дневного окна; те же оговорки, что и для /v1/stats применимы.

Shadow Gate

Требуется: Free Trader Pro

Неизменяемый, только для добавления личный журнал решений. Отправляйте свои торговые решения до или после их исполнения; система рассчитывает оценку подтверждения на основе движка Smart Money и добавляет постоянную запись. Используйте его для создания честного, помеченного временем трека, показывающего, насколько сигнал API совпал с вашими собственными решениями — полностью независимо от общего пула винрейтов. В ответах тарифов Free и Trader поля с доказательствами удалены; Pro возвращает полную разбивку. Для данных тарифа Free применяется задержка.

POST /v1/shadow-gate/decisions

Отправить решение. Идемпотентно по Idempotency-Key заголовку запроса — повторная отправка того же ключа возвращает существующую запись без создания дубликата. Система немедленно вызывает движок подтверждения и добавляет результат как неизменяемую запись в журнал.

Тело запроса

ПолеТипОписание
symbolrequiredstringТикер актива, напр. BTC
siderequiredstringНаправление сделки: long или short
strategy_idoptionalstringПользовательская метка стратегии (макс. 64 символа). Сохраняется как есть для группировки и фильтрации.

Пример запроса

cURL
curl -X POST \
-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"

Пример ответа

JSON
{
"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
}
Примечание по тарифам. Ответы для Free и Trader не включают factors / adjustments поля с доказательствами. Pro возвращает полную разбивку подтверждения. Для тарифа Free применяется задержка — запись добавляется немедленно, но оценка подтверждения может отражать кешированные данные возрастом до 60 секунд.
GET /v1/shadow-gate/decisions

Список ваших решений в Shadow Gate, начиная с самых новых. Только для владельца — возвращаются только решения, отправленные вашим API-ключом.

Параметры

ПараметрТипОписание
limitoptionalintegerМаксимальное количество записей для возврата. По умолчанию: 50, максимум: 200
cursoroptionalstringНепрозрачный курсор пагинации из поля next_cursor предыдущего ответа. Оставьте пустым для первой страницы.

Пример ответа

JSON
{
"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
}
GET /v1/shadow-gate/decisions/{id}

Отдельное решение по ID, включая полные подтверждающие данные для Pro-уровня. Ответы для Free и Trader уровней содержат factors и adjustments удалены. Возвращает 403 если решение принадлежит другому API-ключу.

Пример ответа (Pro)

JSON
{
"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
}
POST /v1/shadow-gate/decisions/{id}/resolve

Вручную зафиксируйте исход решения. Вызовите этот метод после закрытия сделки, чтобы записать окончательный результат в строку журнала. После фиксации строка становится неизменяемой и не может быть изменена повторно.

Тело запроса

ПолеТипОписание
outcomerequiredstringИсход сделки: win или loss
exit_priceoptionalfloatЦена выхода из сделки. Сохраняется для справки; используется для расчета P&L %, если указана.
pnl_pctoptionalfloatРеализованный P&L в процентах от размера позиции, например, 3.5 или -1.2

Пример ответа

JSON
{
"id": 318,
"resolved": true,
"outcome": "win",
"exit_price": 65800.0,
"pnl_pct": 4.1,
"resolved_at": 1711027200
}
Неизменяемость. Строки журнала только для добавления. После отправки решения его нельзя удалить, а после фиксации нельзя изменить. Это гарантирует, что ваша история сделок честна и защищена от изменений.

Коды ошибок

СтатусКодОписание
400invalid_paramsОтсутствуют или неверные параметры запроса
401unauthorizedОтсутствует или неверный API-ключ
403plan_restrictionКонечная точка недоступна на вашем текущем тарифе
429rate_limit_exceededДостигнут дневной или мгновенный лимит
500internal_errorОшибка сервера — проверьте /health для статуса источника
503data_staleИсточник данных недоступен; возвращены последние известные данные

Примеры кода

Python

Python
import requests

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
Python
import requests

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

JavaScript
const API_KEY = 'sm_your_key';

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

Shell
# Подтверждение длинной сделки
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 метод.

Python — Freqtrade Strategy
import requests
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

Python — CCXT
import ccxt, requests

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.