Referencia de API

Smart Money API

Una API de inteligencia de grado profesional que agrega datos de derivados, métricas on-chain y actividad de billeteras de ballenas en una única puntuación de confianza para tu bot de trading.

Versión actual de la API: v1. URL base: https://api.smartmoneyapi.com/v1

Principios de diseño

Cuatro ideas dan forma a cada endpoint y a cada puntuación que devuelve esta API. También son los límites honestos de lo que promete — y no promete.

Primero la estrategia, no primero la señal. Esto no es un feed de señales de compra/venta. Tú traes la estrategia y la entrada; la API te dice si la estructura del mercado circundante — posicionamiento de derivados, financiación, interés abierto, liquidaciones, flujo on-chain y consenso de ballenas — está de acuerdo con la operación que ya quieres realizar.

Puntuación de confianza, no predicción binaria. Cada respuesta lleva una calificación confidence (ALTA / MEDIA / BAJA) y una composite de -1.0 a +1.0. No hay garantías ni llamadas de oráculo — obtienes una lectura calibrada de acuerdo, con las razones detrás de ella, para que puedas dimensionar proporcionalmente a tu convicción.

Apoyo a la decisión, no consejo de ejecución. La API devuelve una recomendación CONFIRMAR / REDUCIR / OMITIR y un multiplicador de tamaño para tu lógica para actuar. Nunca coloca órdenes, y nada aquí es consejo financiero. Tú sigues siendo responsable del riesgo, el tamaño y la ejecución.

Métricas vivas, no garantías fijas. Las tasas de acierto, estadísticas de régimen y cifras de precisión se calculan a partir de una muestra móvil y cambian a medida que los mercados se mueven. Las publicamos honestamente, incluso cuando son mediocres. Trata cada métrica como una observación actual, no como una promesa sobre el futuro.

Para quién es esta API

Esta API está diseñada para desarrolladores de bots, algoritmos y agentes de IA en cripto que ya tienen una señal de compra/venta — desde una estrategia de TA, un modelo de ML, un pipeline de Freqtrade, una alerta de TradingView o un agente LLM — y desean una decisión rápida previa a la operación CONFIRMAR / REDUCIR / OMITIR antes de comprometer capital.

Un ciclo típico: tu estrategia emite "compra BTC" → llamas GET /v1/confirm?symbol=BTC&direction=long → confirmas, reduces u omites la entrada y ajustas el tamaño por size_mult. Una llamada, una única respuesta JSON de baja latencia, sin infraestructura adicional.

Es no un generador de señales independiente, un producto de gráficos o un lugar de ejecución. Si no tienes tu propia señal para filtrar, comienza con la página de rendimiento para ver cómo se ha comportado la puntuación antes de integrarla en un bot en vivo.

Obtener acceso

1 — Regístrate. Crea una cuenta gratuita en signup (correo electrónico/contraseña o Google). No se requiere tarjeta de crédito para el nivel gratuito.

2 — Abre tu panel de control. Tu panel de control muestra tu clave API, plan actual y uso en vivo frente a tu cuota diaria.

3 — Copia tu clave API. Las claves tienen el prefijo sm_. Pásala como el X-API-Key encabezado en cada solicitud (ver Autenticación). Actualiza en cualquier momento en el página de precios para aumentar los límites y desbloquear más símbolos y endpoints.

Especificación, SDK y Libro de recetas

Todo lo que necesitas para integrarte rápidamente, ya sea que escribas el código tú mismo o lo delegues a un agente de programación.

RecursoQué es
Libro de recetasRecetas copiar-pegar para las integraciones más comunes: confirmar antes de entrar, filtrar una señal de Freqtrade, dimensionar por multiplicador, manejar 402/429 y conectarlo a un agente de programación.
Especificación OpenAPIDefinición OpenAPI legible por máquina de cada endpoint. Importa en Postman/Insomnia, genera clientes o alimenta a un LLM. En github.com/tashiardit/smartmoneyapi-docs.
Cliente PythonBiblioteca oficial de cliente Python en github.com/tashiardit/smartmoneyapi-python.
/llms.txtUn resumen en texto plano del API compatible con LLMs. Dirígelo a Claude, Codex o Cursor (ver Agentes de Programación).

Inicio rápido en 2 minutos

Paso 1 — URL base. Cada endpoint está bajo:

URL base
https://api.smartmoneyapi.com

Paso 2 — Obtén tu clave API. Regístrate gratis (no se requiere tarjeta de crédito) y copia tu clave desde el panel de control. Pásala como el X-API-Key encabezado en cada solicitud.

Paso 3 — Tu primera llamada. Pega esto en tu terminal y reemplaza sm_your_key con la clave de tu panel de control:

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

Respuesta esperada:

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": ["Tasa de financiación positiva en todas las plataformas", "Ballenas: 67% de consenso en largo"]
}

Cuando confidence es HIGH o MEDIUM y action es CONFIRM, escala el tamaño de tu posición por size_mult. Ese es todo el ciclo de integración. Consulta Campos de respuesta para la referencia completa de campos.

Autenticación

Todas las solicitudes requieren una clave API proporcionada en la X-API-Key cabecera HTTP.

Cabecera HTTP
X-API-Key: sm_your_api_key_here

Tu clave API está disponible en el panel de control después de registrarte. Mantén tu clave en secreto — no la expongas en código del lado del cliente o repositorios públicos.

La autenticación por WebSocket es diferente. Nunca coloques tu clave en una URL de WebSocket. Los flujos en tiempo real usan ticketsde un solo uso y corta duración: envía tu clave por POST a /v1/ws/ticket con la X-API-Key cabecera, luego conéctate con el ticket devuelto. Consulta Autenticación WebSocket (tickets).

Inicio de sesión con Google (Firebase Auth)

Los usuarios pueden autenticarse usando su cuenta de Google mediante Firebase Authentication. Después de un inicio de sesión exitoso con Google en el cliente, intercambia el token de ID de Firebase por una sesión API vinculada. El sistema sincroniza automáticamente tu identidad de Google con el sistema de claves API.

Disponible para: Free Trader Pro
POST /auth/google

Cuerpo de la solicitud

CampoTipoDescripción
id_tokenrequeridostringToken de ID de Firebase obtenido después del inicio de sesión con Google en el cliente

Ejemplo de respuesta

JSON
{
"api_key": "sm_your_linked_key",
"uid": "firebase_uid_abc123",
"email": "[email protected]",
"plan": "trader",
"synced": true
}
Los datos del perfil del usuario — correo electrónico, plan, historial de uso, preferencias — se almacenan en Firestore y están vinculados a tu cuenta de Google. Puedes solicitar una exportación completa de datos o la eliminación de la cuenta en cualquier momento a través de la Configuración de Privacidad en el panel de control.

Límites de tasa

PlanLlamadas/DíaLímite de ráfagaRetraso de datos
Free502/min60 segundos
Trader1,00020/minTiempo real
Pro5,00060/minTiempo real
Empresa100,000400/minTiempo real

Los encabezados de límite de tasa están incluidos en cada respuesta: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

URL base

https://api.smartmoneyapi.com/v1

Todos los endpoints a continuación son relativos a esta URL base. Todas las respuestas son JSON con Content-Type: application/json.

Errores

Los errores utilizan códigos de estado HTTP estándar y un cuerpo JSON consistente. Siempre bifurque según el código de estado, no según el texto de la respuesta. Los tres que encontrará con más frecuencia:

EstadoCódigoSignificado y qué hacer
401no autorizadoFalta o es inválida la clave API. Verifique que el X-API-Key encabezado esté presente y sea correcto.
402pago_requeridoEl endpoint o símbolo requiere un plan superior al que tiene su clave (por ejemplo, una clave gratuita llamando al WebSocket firehose). Actualice o recurra a un endpoint público.
429límite_de_tasa_excedidoSe alcanzó el límite diario o de ráfaga. Retroceda y reintente después de X-RateLimit-Reset; no insista.

Cada error devuelve la misma forma:

JSON
{
"error": "rate_limit_exceeded",
"message": "Se alcanzó el límite diario de 100 llamadas. Se reinicia a las 00:00 UTC.",
"status": 429
}

Para la lista completa de códigos de estado (400 / 403 / 500 / 503 y más), consulte Códigos de error. Una integración robusta trata los 5xx y 429 como transitorios (reintentar con retroceso) y 401/402/403 como terminales (corregir la clave o el plan).

Mejores prácticas de seguridad

Envíe la clave en el encabezado, nunca en la URL. Siempre pase X-API-Key como un encabezado HTTP. Las claves en las cadenas de consulta (?key=) se registran por proxies, balanceadores de carga y el historial del navegador — la autenticación ?key= legacy ya no se acepta en los endpoints WebSocket por esta misma razón.

Mantenga las claves del lado del servidor. Nunca incruste una clave API en JavaScript del lado del cliente, un paquete de aplicación móvil o un repositorio público. Cárguela desde una variable de entorno o un administrador de secretos. Si una clave se filtra, rótela.

Rote las claves periódicamente. Regenere su clave desde el panel de control según un horario e inmediatamente si sospecha exposición. La clave antigua deja de funcionar en el momento en que se emite una nueva.

Use boletos para sockets de navegador. Para transmisiones en tiempo real desde el navegador, intercambie su clave por un boleto de un solo uso en lugar de conectarse con la clave cruda — consulte Autenticación WebSocket (boletos).

Uso con agentes de codificación / LLMs

¿Está construyendo con Claude Code, Codex, Cursor o cualquier agente de codificación LLM? Puede entregarle al agente todo lo que necesita para conectar esta API correctamente de una vez. Se publican dos referencias legibles por máquina:

RecursoURL
Resumen LLMhttps://smartmoneyapi.com/llms.txt
Especificación OpenAPIgithub.com/tashiardit/smartmoneyapi-docs

Dirija su agente al /llms.txt archivo (la convención llms.txt) para obtener una descripción general concisa, luego a la especificación OpenAPI para obtener las formas exactas de solicitud/respuesta. Un mensaje de una línea que funciona bien:

Mensaje
# Pegar en Claude Code / Cursor / Codex
Lea https://smartmoneyapi.com/llms.txt y la especificación OpenAPI en
github.com/tashiardit/smartmoneyapi-docs, luego agregue una verificación
previa al comercio a mi bot que llame a GET /v1/confirm y omita entradas
a menos que la acción sea CONFIRM.

Consulte el Libro de recetas para obtener una receta trabajada de agente de codificación.

Endpoints

GET  /confirm

El endpoint principal. Devuelve una puntuación de confianza compuesta y una recomendación de acción para una dirección de comercio dada. Llame a esto antes de ingresar a cualquier posición.

Cobertura, en términos simples. /confirm actualmente puntúa BTC, ETH y SOL — los símbolos con suficiente historial resuelto para confirmar honestamente. El filtro de derivados por separado monitorea ~519 mercados de derivados para datos de financiamiento, OI y liquidación, y el seguimiento de ballenas cubre más de 600 billeteras. Pro desbloquea el filtro completo, exportaciones y una cobertura de mercado más amplia; /confirm el soporte de símbolos se expande a medida que cada mercado acumula un historial confiable.

Parámetros

ParámetroTipoDescripción
símbolorequeridocadenaSímbolo del activo. Uno de: BTC, ETH, SOL (Trader+)
direcciónrequeridocadenaDirección del comercio: long o short
fuenteopcionalcadenaEtiqueta para su fuente de señal (registrada para análisis). Máx. 32 caracteres.

Ejemplo de solicitud

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

Ejemplo de respuesta

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,
factores: {
derivados: { puntuación: 0.81, peso: 0.40, ponderado: 0.324 },
onchain: { puntuación: 0.68, peso: 0.35, ponderado: 0.238, fuente: coinmetrics, disponible: True },
ballena: { puntuación: 0.73, peso: 0.25, factor_de_obsolescencia: 1.0, ponderado: 0.183 }
},
ajustes: { acuerdo: 0.0, tendencia: 0.0, noticias_macro: 0.0 },
pesos: { derivados: 0.40, onchain: 0.35, whale_intel: 0.25 },
cobertura: { derivados: True, ballena: True, onchain: True },
razones: [
Tasa de financiamiento positiva en todas las plataformas,
LSR favorece las posiciones largas: 1.42,
Ballenas: 67% de consenso largo,
MVRV por encima de 1.0 — alcista en cadena
]
}

Transparente por diseño. Cada respuesta incluye un factors objeto que muestra el puntuación × peso = contribución ponderada, un adjustments objeto para ajustes posteriores al filtro, el weights utilizado, y un coverage mapa. La parte onchain utiliza datos gratuitos en tiempo real de Coin Metrics (MVRV / flujo de intercambio / direcciones activas) cuando no se establece una clave de Glassnode. Este es un puntaje de confluencia multifactorial — soporte para decisiones, no una tasa de ganancia garantizada.

Los símbolos no rastreados son honestos. Un símbolo fuera del universo rastreado de derivados/ballenas devuelve una "confidence":"NO_DATA" / "action":"NO_DATA_SKIP" explícita "unsupported":true — nunca una LOW.

Campos de respuesta

CampoTipoDescripción
tsintegerMarca de tiempo Unix del cálculo
symbolstringSímbolo del activo (BTC/ETH/SOL)
directionstringDirección solicitada (long/short)
compositefloatPuntuación compuesta de confluencia de -1.0 (contra extremo) a +1.0 (confirmación fuerte). No es una tasa de aciertos.
base_compositefloatCompuesto antes de aplicar ajustes de postfiltro
confidencestringHIGH / MEDIUM / LOW / VETO / NO_DATA
actionstringCONFIRM_FULL / CONFIRM_REDUCED / CONFIRM_MINIMAL / VETO_SKIP / NO_DATA_SKIP
size_multfloatMultiplicador de tamaño de posición sugerido (ej. 0.0 – 1.5)
unsupportedbooltrue cuando el símbolo está fuera de cobertura (emparejado con NO_DATA)
deriv_scorefloatSubpuntuación de derivados (-1 a 1)
onchain_scorefloatSubpuntuación on-chain (-1 a 1)
whale_scorefloatSubpuntuación de consenso de ballenas (-1 a 1)
x_scorefloatSubpuntuación de sentimiento en X/redes (-1 a 1); 0 cuando no se usa
factorsobjectDesglose por componente: score × weight = weighted para derivados / onchain / whale / x_sentiment (onchain incluye source)
adjustmentsobjectAjustes firmados de postfiltro (acuerdo, tendencia, rsi_1h, news_macro, momentum, time_of_day, streak_decay)
weightsobjectConjunto de pesos realmente utilizado para esta evaluación
coverageobject{derivatives, whale, onchain} — qué componentes tenían datos reales
reasonsarrayExplicaciones legibles por humanos para la puntuación

GET  /snapshot

Devuelve una instantánea completa del mercado, incluyendo todas las subpuntuaciones, métricas brutas y valores de indicadores para un símbolo dado. Útil para paneles de control y registro.

Requiere: Trader Pro

GET  /onchain

Devuelve métricas en cadena sin procesar: MVRV, SOPR, flujo neto en exchanges, ratio de capitalización realizada y clasificación de posición en el ciclo.

Requiere: Trader Pro

GET  /v1/derivatives/*

Monitor de derivados multiplataforma con más de 500 símbolos: mapa de calor de tasas de financiación, rankings de interés abierto y detección de señales de ratio largo/corto. Las primeras 10 filas son públicas; el monitor completo requiere Trader o Pro. Endpoints: /v1/derivatives/screener, /v1/derivatives/funding, /v1/derivatives/oi, /v1/derivatives/signals.

GET  /v1/options/*

Análisis de opciones de BTC y ETH de Deribit (público, sin autenticación): ratio put/call, máximo dolor e interés abierto por strike. Endpoints: /v1/options/summary, /v1/options/pcr, /v1/options/oi.

GET  /v1/etf/*

Flujos netos diarios de ETFs de BTC y ETH al contado y desglose por fondo (público). Endpoints: /v1/etf/flows, /v1/etf/funds.

GET  /v1/historical/*

Datos históricos de financiación, interés abierto, ratio largo/corto (Binance) y OHLCV (CoinGecko) para backtesting. Endpoints: /v1/historical/funding, /v1/historical/oi, /v1/historical/lsr, /v1/historical/ohlcv.

GET  /v1/dex/*

Pares en tendencia, búsqueda de tokens y detalles de pares con DexScreener (público, sin autenticación). Endpoints: /v1/dex/trending, /v1/dex/search, /v1/dex/token, /v1/dex/pair.

GET  /v1/news/*

Inteligencia de noticias: noticias de políticas/geopolíticas/cripto clasificadas por impacto, más el índice Miedo y Codicia (público, sin autenticación). Endpoints: /v1/news/trump, /v1/news/general, /v1/news/impact, /v1/news/fear-greed.

GET  /whales

Devuelve datos de consenso de carteras de ballenas: división largo/corto, exposición nocional total, top 10 posiciones (solo Pro) y recuento de carteras.

Requiere: Trader Pro

GET  /signals

Devuelve un flujo de las señales HIGH/MEDIUM más recientes en todos los activos monitorizados. Útil para escaneo de oportunidades.

Requiere: Pro

GET  /v1/strategies/*

Registro transparente y de solo lectura para las estrategias de trading automatizado que operan sobre señales Smart Money — incluyendo la deriv40 estrategia SmartMoney Copytrade (account=9). Todos los endpoints aceptan un ?account=<id> parámetro de consulta y devuelven JSON. No requiere autenticación (registro público).

Endpoints

  • GET /v1/strategies/stats?account=9 — métricas principales: 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 — curva de equidad para gráficos: { initial_equity, curve: [{ time, equity }] }.
  • GET /v1/strategies/trades?account=9&limit=500 — libro de operaciones cerradas: array (o {trades:[…]}) de symbol, direction, entry_price, exit_price, pnl_usdt, pnl_percent, pnl_percent_net.
  • GET /v1/strategies/active?account=9 — posiciones abiertas actualmente: array (o {positions:[…]}) de symbol, side/direction, entry_price, unrealized_pnl.
  • GET /v1/strategies/signals — desglose por tipo de señal que alimenta las estrategias (recuento / ganancias / tasa_ganancias / pnl_medio por tipo de señal).

El rendimiento pasado no es indicativo de resultados futuros. Las cifras se reconstruyen durante un único régimen de ~3 meses más operaciones en vivo y se muestran sin comisiones donde se indica.

GET  /export

Descarga datos históricos de señales en CSV para backtesting. Parámetros: symbol, from (unix ts), to (unix ts).

Requiere: Pro

GET  /health

Verificación del estado del sistema. Devuelve la actualización de datos de cada fuente y el estado general de la API. No requiere autenticación.

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

Devuelve tus estadísticas actuales de uso de la API: llamadas hoy, totales mensuales, límites de cuota y tiempos de reinicio.

POST  /webhooks

Requiere: Pro

Registra una URL HTTPS para recibir notificaciones firmadas en tiempo real cuando se active una señal en tus activos monitorizados. Las entregas incluyen un X-SmartMoney-Event encabezado y una firma HMAC-SHA256 en X-SmartMoney-Signature, y se reintentan hasta 3× con retroceso.

Request Body

CampoTipoDescripción
urlrequiredstringEndpoint HTTPS al que enviar eventos POST (debe comenzar con https://)
eventsrequiredarrayNombres de eventos, ej. ["HIGH","MEDIUM","VETO"] o ["*"]
symbolsrequiredarraySímbolos para filtrar, ej. ["BTC","ETH"] o ["*"]
secretrequiredstringTu secreto de firma, ≥ 16 caracteres (almacenado como hash)

Verificación de la firma

La clave HMAC es el digesto hexadecimal SHA-256 de tu secreto registrado. Calcula el HMAC-SHA256 del cuerpo de la solicitud en bruto con esa clave y compara (tiempo constante) con X-SmartMoney-Signature. Ver el Guía de implementación de Webhooks.

Inteligencia

GET  /analysis

Requiere: Pro

Devuelve una clasificación de regímenes de mercado impulsada por IA con detección de conflictos de señales. Analiza la concordancia entre señales, identifica divergencias entre datos de derivados, on-chain y de ballenas, y produce un resumen en lenguaje natural con factores de riesgo prospectivos y una recomendación con horizonte temporal.

Parámetros

ParámetroTipoDescripción
symbolrequeridostringSímbolo del activo: BTC, ETH, o SOL

Ejemplo de respuesta

JSON
{
"ts": 1710940821,
"symbol": "BTC",
"regime": "late_cycle_divergence",
"regime_label": "Ciclo tardío — Divergencia de señales",
"summary": "BTC está en una fase tardía del ciclo alcista con fortaleza on-chain en conflicto con la sobre extensión de derivados. Las ballenas están reduciendo su exposición mientras el LSR minorista aumenta.",
"signal_conflicts": [
"Puntuación de ballenas bajista mientras la puntuación on-chain es alcista",
"Tasa de funding en máximos de 3 meses — riesgo potencial de squeeze"
],
"risk_factors": ["Funding elevado", "Divergencia de OI", "Reducción de ballenas"],
"recommendation": "Reduce la exposición larga, ajusta los stops. Evita nuevas posiciones largas por encima del precio actual.",
"time_horizon": "4h–12h"
}
Se requiere plan Pro. Este endpoint consume 3 llamadas API por solicitud debido a la sobrecarga de procesamiento de IA.

GET  /liquidations

Requiere: Trader Pro

Devuelve dos vistas complementarias: (1) proyección de apalancamiento levels — una estimación de dónde se ubican los clusters de liquidación; y (2) un realized_heatmap — la REAL ejecutada intensidad de liquidaciones forzadas (precio × tiempo), agregada en tiempo real desde los feeds WebSocket de exchanges públicos: Binance, OKX, Bybit, Bitget, BitMEX. El heatmap está presente cuando el stream tiene datos para el símbolo (ausente en un mercado muy tranquilo o justo después del inicio).

Parámetros

ParámetroTipoDescripción
symbolopcionalstringSímbolo del activo (por defecto BTC). El heatmap real cubre símbolos de perp activamente negociados.

Ejemplo de respuesta

JSON
{
"symbol": "BTC",
"cascade_risk": "ALTO",
"nearest_long_liq_pct": -3.2,
"nearest_short_liq_pct": 4.1,
// Liquidaciones REALES ejecutadas — en vivo desde 5 exchanges
"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 }
}
}
Plan Trader: cascade_risk, distancias más cercanas y totales realizados/por lado. Plan Pro: proyección completa levels más el realized_heatmap completo (matrices, clusters por precio, conteos por exchange). La estimación proyectada responde "dónde están los stops"; el heatmap realizado muestra "lo que realmente se liquidó."

GET  /liquidations/heatmap

Disponible para: Free No se requiere autenticación (limitado por IP)

Public heatmap de liquidaciones por nivel de precio. Devuelve una matriz estilo Coinglass de precio × tiempo de REAL ejecutadas liquidaciones forzadas, agrupadas por el precio en el que se ejecutó cada liquidación — agregadas en vivo desde los feeds WebSocket de exchanges públicos: Binance, OKX, Bybit, Bitget, BitMEX. El clusters array es la salida práctica: buckets de precio clasificados por notional liquidado, cada uno etiquetado con su lado dominante. Los datos dependen del stream en vivo — un símbolo muy tranquilo o una puerta de enlace recién reiniciada devuelve la estructura vacía bien formada más un note. Los niveles mostrados son siempre liquidaciones reales, nunca estimados.

Parámetros

ParámetroTipoDescripción
symbolopcionalstringSímbolo del activo (por defecto BTC).
window_minutesopcionalintVentana de retroceso en minutos (por defecto 240, limitado a 5–1440).
price_bucketsopcionalintNúmero de intervalos de precio (por defecto 50, limitado a 5–100).

Ejemplo de respuesta

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
}
Nota importante: este endpoint refleja solo lo que ha capturado la transmisión en vivo. Cuando un símbolo está tranquilo o la transmisión acaba de comenzar, totals.count está 0, clusters está vacío, y un note campo explica por qué. Es un registro de liquidaciones ejecutadas — no es una predicción. Para la estimación proyectada de "dónde están los stops", utiliza el endpoint autenticado /liquidations endpoint.

GET  /liquidations/onchain

Requiere: Trader Pro

Ejecutadas liquidaciones en cadena de préstamos DeFi capturadas directamente desde nuestros propios nodos completos de BSC + Avalanche — independientes de cualquier bot de trading. Cubre Venus/Cream y Moolah en BSC, y AAVE V3/V2, Benqi, BankerJoe, Granary y Vinium en Avalanche. El nivel Pro además devuelve at_risk posiciones (dependiente de bots, puede estar ausente).

Parámetros

ParámetroTipoDescripción
chainopcionalstringbsc o avax. Omite para todas las cadenas.
limitopcionalintegerMáximo de filas (por defecto 100, máximo 500). Más recientes primero.

Ejemplo de respuesta

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 } },
nodos: { bsc: { alcanzable: True, head_block: 89173010, events_total: 61 } }
}
}

GET  /smart-stop

Requiere: Trader Pro

Calcula niveles inteligentes de stop-loss basados en el mapa de calor de liquidación actual, bandas de volatilidad y estructura del mercado. Devuelve recomendaciones de stop escalonadas y sugerencias de toma de ganancias calibradas según tu precio de entrada y tolerancia al riesgo.

Parámetros

ParámetroTipoDescripción
symbolrequiredstringSímbolo del activo: BTC, ETH, o SOL
directionrequiredstringDirección de la posición: long o short
entry_priceoptionalfloatTu precio de entrada. Por defecto, se usa el precio de mercado actual si se omite.
risk_pctoptionalfloatRiesgo máximo aceptable como % de la cuenta. Por defecto: 2.0

Ejemplo de respuesta

JSON
{
symbol: BTC,
direction: long,
entry_price: 96420,
stops: {
tight: { price: 95100, note: Debajo de la estructura de 1h. Ideal para scalping. },
recommended: { price: 93800, note: Debajo del grupo principal de liquidación en $94K. Stop estándar para swing. },
wide: { price: 91200, note: Debajo de la zona de demanda de 4h. Stop para posición de trading. }
},
avoid_zones: [
{ low: 94200, high: 94800, reason: Grupo denso de liquidación — alto riesgo de deslizamiento }
],
take_profit_suggestions: [
{ tp1: 98500, tp2: 101000, tp3: 104200 }
]
}
Plan Trader: Devuelve solo el recommended stop. Plan Pro: Los tres niveles de stop, avoid_zones, y sugerencias completas de toma de ganancias.

GET  /funding-arb

Requiere: Trader Pro

Identifica oportunidades de arbitraje de tasas de financiación entre intercambios en tiempo real. Devuelve oportunidades clasificadas con rendimiento anualizado estimado, par de intercambios óptimo y la acción de cobertura requerida para capturar el spread.

Parámetros

ParámetroTipoDescripción
min_spreadoptionalfloatSpread mínimo de tasa de financiación para incluir (como decimal). Por defecto: 0.01
symboloptionalstringFiltrar por un activo específico. Omite para escanear todos los activos admitidos.

Ejemplo de respuesta

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
}
]
}
Plan Trader: Solo la oportunidad número 1, sin datos históricos de spread. Plan Pro: Todas las oportunidades actuales con historial de spread de 24h por par de intercambios.

Variante pública gratuita Sin autenticación

Un endpoint público sin clave devuelve las 10 mejores oportunidades con un screener en vivo entre intercambios, ideal para incrustar o comprobaciones rápidas. Omite el historial de spread por símbolo y campos pesados y se sirve desde una caché de 120 segundos. Cuando no existen spreads de financiación entre intercambios en la ventana de frescura, devuelve un opportunities array vacío con un note — nunca datos fabricados.

GET (sin autenticación)
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": Spread bajo — asegúrate de que las comisiones no consuman el margen de arbitraje.
}
],
"scanned_symbols": 222,
"ts": 1783268753,
"public": true,
"limited": true
}
Gratis, sin clave API. Solo las 10 mejores oportunidades, limitadas y en caché (120 s). Página del screener en vivo: funding-arb.html.

GET  /smart-money/flow

Requiere: Trader Pro

Un índice direccional ponderado por calidad de ballenas por símbolo, puntuado -100 (dinero de ballenas inclinado a corto) a +100 (inclinado a largo). Construido a partir de miles de carteras de ballenas rastreadas en Hyperliquid — cada una ponderada por su propia tasa de aciertos históricos y PnL, y atenuada por antigüedad. Este es un índice de posicionamiento, no una señal de compra/venta o predicción de precio. Los símbolos con pocas carteras contribuyentes se etiquetan thin y se puntúan honestamente. Página en vivo: smart-money-flow.html.

Parámetros

ParámetroTipoDescripción
symbolopcionalstringSímbolo único (ej. BTC). Omite para obtener todos los símbolos rastreados clasificados por |score|.
window_hoursopcionalintVentana de puntuación, limitada a 1..168. Por defecto 24.

Ejemplo de Respuesta

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": "Índice de posicionamiento direccional de ballenas ponderado por calidad (-100..+100). No es una predicción de precio o señal de compra/venta."
}
Plan Trader: Top 12 símbolos, detalle de contribuidores oculto. Plan Pro: Todos los símbolos con top_contributors. Los pesos de las carteras están limitados a [0.25,1.0]; PnL es un proxy no realizado de las últimas instantáneas de posición.

GET  /v1/whales/crowding

Disponible para: Free No se requiere autenticación — anónimos obtienen los 10 símbolos principales, Trader+ obtiene la lista completa

Contexto combinado de posicionamiento y aglomeración de ballenas por símbolo, fusionado entre Hyperliquid + GMX v2 + Jupiter Perps. Devuelve notional bruto/neto, sesgo direccional, conteo de carteras y venues, concentración de posición (participación top-3 + HHI), un apalancamiento promedio ponderado, y niveles de proximidad a liquidación ($ notional dentro del 5% y 10% de su precio de liquidación estimado, dividido en largo/corto). Esto es contexto, no una señal direccional. Los campos que no son derivables son null y se muestran como — ej. lev_wavg/crowding_index cuando ninguna posición tiene apalancamiento. Las distancias de liquidación son una estimación de margen aislado (pct_to_liq ≈ 1/lev + upnl/notional − mmr, mmr = 0.01), no precios de liquidación reportados por el exchange.

Parámetros

ParámetroTipoDescripción
min_notionalopcionalfloatNotional bruto combinado mínimo (USD) para incluir un símbolo. Por defecto: 1000000.

Ejemplo de Solicitud

GET (sin autenticación)
curl "https://api.smartmoneyapi.com/v1/whales/crowding?min_notional=1000000"

Ejemplo de Respuesta

JSON
{
"ok": true, "ts": 1783423500, min_notional: 1000000, n_symbols: 92,
symbols: [
{
symbol: BTC,
gross_usd: 2447900000.0, net_usd: -51000000.0, skew: -0.021,
n_whales: 414, n_venues: 3,
venues: {
hl: { gross: 1900000000.0, net: -40000000.0, n_whales: 272 },
gmx: { gross: 320000000.0, net: -6000000.0, n_whales: 59 },
jupiter: { gross: 227900000.0, net: -5000000.0, n_whales: 83 }
},
conc_top3: 0.159, hhi: 0.011, lev_wavg: 19.1,
liq_within_5pct: { long: 621700000.0, short: 665600000.0 },
liq_within_10pct: { long: 840000000.0, short: 910000000.0 },
crowding_index: 0.003
}
],
caveats: [ Las distancias de liquidación son estimaciones de margen aislado, no reportadas por el exchange. ]
}
Nota honesta: skew es net/gross ∈ [-1,1]; crowding_index = |skew|·conc_top3·min(lev/20,1). Solo aparecen los venues realmente presentes en venues. Las posiciones sin apalancamiento se excluyen de los buckets de liquidación en lugar de asumirse. Los llamadores anónimos reciben los 10 símbolos principales por volumen bruto (con gated: true); Trader+ reciben la lista completa.

GET  /v1/options/gex

Disponible para: Gratis No se requiere autenticación (limitado por IP)

Dealer exposición gamma (GEX) análisis para BTC & ETH, calculado en vivo a partir de la cadena de opciones públicas de Deribit (sin autenticación). Devuelve el GEX neto del dealer por strike (convención SpotGamma dealer-short), el nivel de flip gamma (strike donde el GEX neto acumulado cruza cero), la estructura temporal de la IV (volatilidad implícita ATM por días hasta el vencimiento), y un sesgo de IV de vencimiento cercano (proxy de reversión de riesgo de 25Δ). El régimen de GEX es positive (dealers largos en gamma → supresión de volatilidad) o negative (amplificación de volatilidad). Totalmente autónomo — recalculado en cada llamada, sin dependencia de base de datos almacenada.

Parámetros

ParámetroTipoDescripción
símboloopcionalcadenaBTC o ETH solo. Por defecto: BTC.

Ejemplo de solicitud

GET (sin autenticación)
curl "https://api.smartmoneyapi.com/v1/options/gex?symbol=BTC"

Ejemplo de respuesta

JSON
{
"símbolo": "BTC", "disponible": true, "spot": 63203.0,
"net_gex": 18240000.0, "régimen": "positivo",
"flip_gamma": 64919.82, "flip_gamma_pct": 2.72,
"call_gex": 31200000.0, "put_gex": -12960000.0,
"por_strike": [
{ "strike": 60000, "net_gex": -2100000.0 },
{ "strike": 65000, "net_gex": 4800000.0 }
],
"estructura_temporal": [
{ "vencimiento": "8JUL26", "dte": 0.76, "atm_iv": 62.1 },
{ "vencimiento": "27MAR26", "dte": 14.2, "atm_iv": 58.4 }
],
"sesgo": {
"vencimiento": "8JUL26", "dte": 0.76,
"put_iv": 69.69, "atm_iv": 62.1, "call_iv": 55.34,
"reversión_de_riesgo": 14.35, "sesgo": "miedo_a_la_baja"
}
}
Nota honesta: El multiplicador de contrato de Deribit es 1 (OI denominado en moneda). En caso de fallo en la obtención, el endpoint devuelve available: false con paneles vacíos — nunca GEX fabricado. El sesgo de IV utiliza un proxy de strike fijo de ±10% para 25Δ (el verdadero 25-delta requiere resolver el delta por strike); adecuado para visualización, documentado como una aproximación.

GET  /v1/liquidations/simulate

Disponible para: Gratis No se requiere autenticación (limitado por IP)

Interactivo prueba de estrés por cascada de liquidacionesDado un movimiento hipotético del precio, devuelve las posiciones apalancadas estimadas que se liquidarían, el volumen forzado por nivel de precio/lado/bolsa y un informe de profundidad de la cascada. Un movimiento a la baja liquida largos cuyo precio de liquidación está en/por encima del objetivo; un movimiento al alza liquida cortos cuyo precio de liquidación está en/por debajo. Se fusionan dos métodos independientes: precios exactos de liquidación de ballenas rastreadas en Hyperliquid con apalancamiento/entrada real , más clusters estadísticos de bandas de OI por bolsa (apalancamiento de la multitud inferido por funding). Todo está claramente etiquetado estimated: true — no puede conocer el margen por cuenta, cruzado vs aislado, margen adicional o ADL.

Parámetros

ParámetroTipoDescripción
símboloopcionalcadenaSímbolo del activo. Por defecto: BTC.
move_pctopcionalflotanteMovimiento hipotético del precio en porcentaje (negativo = bajista, positivo = alcista). Por defecto: -5.

Ejemplo de solicitud

GET (sin autenticación)
curl "https://api.smartmoneyapi.com/v1/liquidations/simulate?symbol=BTC&move_pct=-5"

Ejemplo de respuesta

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": "Estimado — no se puede conocer el margen por cuenta, cruzado vs aislado, margen adicional o ADL." }
}
Nota honesta: Cada número proyectado se deriva de lecturas reales de la base de datos; nada se inventa en caso de fallo. Un símbolo no rastreado, una instantánea obsoleta o un precio faltante devuelve ok: true, empty: true un mensaje en lenguaje claro, no barras falsas. realized_context es una muestra joven y en crecimiento del flujo de liquidación forzada en vivo, mostrada solo como contexto — nunca hace que la proyección se "realice".

GET  /v1/wallet/{addr}/profile

Disponible para: Gratis No se requiere autenticación (limitado por IP)

Un perfil de billetera multiplataforma construido completamente a partir de instantáneas de posiciones de ballenas rastreadas en vivo. Para una ballena de Hyperliquid rastreada, devuelve las posiciones abiertas actuales, una serie temporal de PnL no realizado / exposición / recuento de posiciones serie temporal, una línea de tiempo de actividad OPEN/CLOSE/FLIP (reconstruida al comparar instantáneas consecutivas), la etiqueta descifrada del cuadro de líderes de HL y un resumen de libro abierto. Página en vivo: wallet-profiler.html.

Parámetros

ParámetroTipoDescripción
addrrequeridostringDirección de la billetera (segmento de ruta), ej. /v1/wallet/0x3bcae23e…/profile.
daysopcionalintegerVentana de retrospectiva para la serie y la línea de tiempo. Por defecto: 30.

Ejemplo de solicitud

GET (sin autenticación)
curl "https://api.smartmoneyapi.com/v1/wallet/0x3bcae23e8c380dab4732e9a159c0456f12d866f3/profile?days=30"

Ejemplo de respuesta

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, tasa_de_éxito_pct: 71, operaciones: 42 },
posiciones: [
{ plataforma: hyperliquid, símbolo: ETH, dirección: corto,
tamaño: 1200.0, precio_de_entrada: 1800.0, ganancia_pérdida_no_realizada: 34800.0,
apalancamiento: 20.0, valor_usd: 2160000.0 }
],
serie: [ { ts: 1783330000, ganancia_pérdida_no_realizada: 42000.0, exposición_usd: 18400000.0, posiciones: 5 } ],
línea_de_tiempo: [ { ts: 1783400000, evento: cambio, símbolo: ETH,
dirección: corto, desde_dirección: largo, valor_usd: 2160000.0 } ],
resumen: {
posiciones_abiertas: 5, en_ganancia: 3, en_pérdida: 2, largos: 0, cortos: 5,
ganancia_pérdida_no_realizada_total: -12000.0, exposición_total_usd: 21000000.0, apalancamiento_mezclado: 19.9,
ventana_de_días: 30, instantáneas_en_ventana: 474,
ganancia_pérdida_realizada: None, nota_de_ganancia_pérdida_realizada: No derivable — solo se ven instantáneas abiertas, nunca cierres.
}
}
}
Nota honesta: todo lo mostrado es real de los datos de la instantánea — pnl es la propia marca de mercado no realizada de HL, value_usd es el nocional abierto. La ganancia/pérdida realizada por operación completa no está disponible (solo vemos instantáneas abiertas, nunca cierres) y se muestra como null / ; los eventos de CIERRE en la línea de tiempo no llevan reclamo de ganancia/pérdida. Una dirección válida pero no rastreada devuelve tracked: false con una nota; una dirección inválida devuelve ok: false, error: "invalid_address" (HTTP 400). La etiqueta HL-leaderboard es la propia posición de HL en la ventana de descubrimiento, no calculada por nosotros.

GET  /flows

Requiere: Pro

Devuelve datos de flujo de capital entre activos que muestran patrones de rotación entre BTC, ETH y SOL en múltiples ventanas de tiempo. Útil para identificar qué activo está acumulando capital y cuál se está distribuyendo en un momento dado.

Ejemplo de respuesta

JSON
{
"ts": 1710940821,
"flows": {
"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 }
},
"rotations_detected": [
"Capital rotando de ETH a BTC en ventana de 4h",
"Acumulación de SOL consistente en todas las ventanas"
]
}
Plan Pro requerido. Los valores de flujo representan entrada neta (positiva) o salida (negativa) de USD por ventana de tiempo.

GET  /whale-events

Requiere: Trader Pro

Devuelve cambios significativos en las posiciones de ballenas — aperturas, cierres y cambios de dirección — detectados en las billeteras y direcciones en cadena rastreadas dentro del período de tiempo especificado.

Parámetros

ParámetroTipoDescripción
símboloopcionalstringFiltrar por activo. Omitir para todos los activos monitoreados.
significanciaopcionalstringFiltrar por importancia del evento: high, medium, o all. Predeterminado: all
horasopcionalintegerPeríodo de tiempo retrospectivo en horas. Predeterminado: 24

Respuesta de ejemplo

JSON
{
"símbolo": "BTC",
"resumen": {
"cambios_a_largo": 3,
"cambios_a_corto": 1,
"nuevas_aperturas": 7,
"cierres": 2
},
"eventos": [
{
tipo: cambiar_a_largo,
cartera: 0xWhale...a4f2,
dirección: largo,
tamaño_usd: 4200000,
ts: 1710938400
}
]
}
Plan Trader: Devuelve el summary objeto solamente. Plan Pro: Feed events completo con identificadores de cartera, tamaños y marcas de tiempo.

GET  /regimes/history

Requiere: Pro

Devuelve datos históricos de clasificación de regímenes para un activo específico. Úsalo para hacer backtesting de cómo han funcionado históricamente tipos de regímenes específicos, cuánto suele durar cada tipo de régimen y cómo se desarrollan las transiciones entre regímenes a lo largo del tiempo.

Parámetros

ParámetroTipoDescripción
símboloopcionalstringSímbolo del activo. Por defecto: BTC
régimenopcionalstringFiltrar por un tipo de régimen específico, ej. late_cycle_divergence. Omite para todos los regímenes.
díasopcionalintegerVentana de retrospectiva en días. Por defecto: 30. Máximo: 365

Ejemplo de respuesta

JSON
{
símbolo: BTC,
régimen_actual: divergencia_tardía_ciclo,
resumen_régimen: {
divergencia_tardía_ciclo: { apariciones: 4, duración_promedio_h: 38, retorno_promedio_pct: -2.1 },
acumulación: { apariciones: 6, duración_promedio_h: 72, retorno_promedio_pct: 5.4 },
ruptura: { apariciones: 3, duración_promedio_h: 18, retorno_promedio_pct: 9.2 }
},
transiciones: [
{ desde: acumulación, a: ruptura, ts: 1710850000 },
{ desde: ruptura, a: divergencia_en_fase_tardía, ts: 1710915000 }
]
}
Plan Pro requerido. Combínalo con /analysis para validar supuestos de estrategia con datos históricos de rendimiento de regímenes.

GET  /exchange-health

Disponible para: Free Trader Pro

Devuelve el estado de salud en tiempo real de todos los exchanges monitoreados, incluyendo latencia por exchange, tasas de error e indicadores de obsolescencia de datos. No requiere autenticación — endpoint de acceso público.

Ejemplo de respuesta

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

Requiere: Trader Pro

Devuelve un índice de Miedo y Codicia (0-100) en tiempo real, calculado a partir del sentimiento en derivados, actividad de ballenas, volatilidad y señales sociales. Incluye desglose por componentes e historial de 24 horas para análisis de tendencias.

Parámetros

ParámetroTipoDescripción
symbolopcionalstringSímbolo del activo. Por defecto: BTC

Ejemplo de respuesta

JSON
{
"symbol": "BTC",
"score": 72,
"label": "Greed",
"components": {
"volatility": 65,
"momentum": 78,
"derivatives": 70,
"whale_activity": 75,
"social": 68
},
"history_24h": [
{ "ts": 1710940800, "score": 68, "label": "Greed" },
{ "ts": 1710937200, "score": 65, "label": "Greed" }
],
"ts": 1710940821
}
Equivalente de la competencia: Santiment Social Volume + Alternative.me Fear & Greed — combinados en un único endpoint con desglose de componentes.

Integraciones

GET  /tradingview/setup

Requiere: Trader Pro

Devuelve tu configuración personalizada de integración con TradingView: URL del webhook, secreto para validación y scripts Pine listos para usar que se conectan directamente a la Smart Money API. Copia y pega el script Pine en TradingView para superponer nuestras señales en cualquier gráfico.

Ejemplo de respuesta

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

Disponible para: Trader Pro

Recibe una alerta de TradingView, la procesa a través de /confirm, y devuelve la confirmación. TradingView no puede enviar cabeceras personalizadas, así que autentícate incluyendo tu webhook secret en el cuerpo JSON (este endpoint no usa X-API-Key). La respuesta envuelve la confirmación y añade un nivel superior action de CONFIRMED (confianza del daemon HIGH/MEDIUM) o VETOED.

Cuerpo de la solicitud

JSON
{
"secret": "your_webhook_secret",
"symbol": "BTC",
"direction": "long",
"timeframe": "1h",
"strategy": "EMA crossover",
"price": 67500.0
}

Requerido: secret, symbol, direction (long|short). Opcional: source, timeframe, strategy, price.

Personalización

GET  /preferences

Requiere: Trader Pro

Devuelve tus configuraciones de personalización actuales, incluyendo parámetros de operación por defecto, perfil de riesgo, lista de seguimiento y preferencias de notificación.

PUT /v1/preferences

Actualiza las preferencias enviando un cuerpo JSON con cualquier subconjunto de los campos a continuación. Los campos omitidos mantienen sus valores actuales.

Campos de preferencia

CampoTipoDescripción
default_trade_size_usdfloatTamaño de posición por defecto en USD para cálculos de Kelly y smart-stop
risk_tolerancestringconservative, moderate, o aggressive
default_risk_pctfloatRiesgo por operación por defecto como % de la cuenta. Usado por /smart-stop cuando risk_pct se omite
watchlistarrayLista ordenada de símbolos de activos, ej. ["BTC","ETH","SOL"]
notification_emailstringDirección de correo electrónico para entrega de alertas
timezonestringCadena de zona horaria IANA, ej. America/New_York
PUT — Ejemplo de cuerpo
{
"default_trade_size_usd": 5000,
"risk_tolerance": "moderate",
"default_risk_pct": 1.5,
"watchlist": ["BTC", "ETH", "SOL"]
}

GET  /watchlist

Requisitos: Trader Pro

Devuelve una instantánea del estado de confirmación y métricas clave de riesgo para todos los símbolos en tu lista de seguimiento configurada. Proporciona una visión general multi-activos sin necesidad de llamar /confirm por separado para cada símbolo.

Ejemplo de Respuesta

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"
}
]
}

Transmisión en Tiempo Real (Swaps en Vivo)

Transmite swaps DEX ≥ $500 detectados en tiempo real desde nuestros propios nodos de BSC y Avalanche. Dos transportes están disponibles: un flujo público de Server-Sent Events (SSE) para clientes gratuitos/navegadores, y un flujo de baja latencia WebSocket para niveles de pago. Los eventos se transmiten en segundos después de su inclusión en un bloque.

Flujo Público SSE (Gratuito)

Disponible para: Free Trader Pro
GET /v1/stream/public-swaps

No se requiere autenticación. Soporte nativo EventSource en todos los navegadores modernos. El servidor emite swap eventos y latidos periódicos para mantener la conexión activa.

JavaScript (navegador)
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 (Pago)

Requisitos: Trader Pro
WSS /v1/ws/live-swaps?ticket=…

Autenticación (recomendado): nunca pongas tu clave de larga duración en la URL — se registra en proxies y se guarda en el historial del navegador. En su lugar, envía tu clave mediante POST a /v1/ws/ticket usando el encabezado seguro X-API-Key , luego abre el socket con el ticket de un solo uso devuelto ticket (válido ~60s, canjeable una vez). Los clientes del lado del servidor que pueden establecer encabezados pueden pasar X-API-Key directamente en el handshake. Las claves de nivel gratuito reciben una 402 payment_required respuesta. Un hello frame se envía al conectar con tu nivel y el umbral de transmisión.

JavaScript (navegador)
// 1. Intercambia tu clave por un ticket de corta duración (la clave permanece en el encabezado)
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. Abre el socket con el ticket de un solo uso
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);
};

Autenticación WebSocket (tickets)

Por qué: nunca pongas tu clave API en una URL de WebSocket — las cadenas de consulta se registran en proxies, balanceadores de carga y se guardan en el historial del navegador. En su lugar, intercambia tu clave por un ticket de corta duración y de un solo uso ticket mediante un POST autenticado normal, luego conéctate con ese ticket.

Flujo: POST a /v1/ws/ticket con tu X-API-Key encabezado → recibe { "ticket": "…", "expires_in": 60 }. Luego abre wss://api.smartmoneyapi.com/v1/ws/live-swaps?ticket=<ticket>El ticket es de un solo uso y caduca en ~60 segundosLos clientes del lado del servidor que pueden configurar encabezados de solicitud pueden pasar X-API-Key directamente en el handshake de WebSocket — no se necesita ticket.

POST /v1/ws/ticket
Requiere: Trader Pro

Genera un ticket de un solo uso para un handshake de WebSocket autenticado. Autentícate con el X-API-Key encabezado (tu clave nunca sale de los encabezados de la solicitud). El ticket devuelto se puede canjear una vez en /v1/ws/live-swaps antes de que caduque.

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

Ejemplo de Respuesta

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

Campos de Respuesta

CampoTipoDescripción
ticketstringToken de un solo uso para agregar como ?ticket= en la URL de WebSocket. Canjeado una vez, luego invalidado.
expires_innumberSegundos hasta que el ticket caduque (~60). Genera un ticket nuevo por cada intento de conexión.

Nota: la autenticación por ?key= parámetro de consulta heredado ya no se acepta en los endpoints de WebSocket por razones de seguridad. Usa un ticket (clientes de navegador) o el X-API-Key encabezado de handshake (clientes del lado del servidor).

Instantánea REST

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

Devuelve los últimos N swaps transmitidos desde el búfer en curso. Útil para la primera pintura en paneles antes de que se abra la conexión de transmisión. También disponible: /v1/live-swaps/status para estadísticas de transmisión.

Esquema de Evento

CampoTipoDescripción
chainstringbsc o avalanche
dexstringNombre del router (ej. pancakeswap_v2, traderjoe) o unknown_dex
swapperstringDirección completa 0x de la billetera que ejecutó el swap
swapper_shortstringForma abreviada para mostrar (ej. 0xb300…028d)
swapper_urlstringEnlace directo al swapper en el explorador de bloques de la cadena
tx_hashstringHash de la transacción
explorer_urlstringEnlace directo a la transacción en BscScan / Snowtrace
token_instringSímbolo del token vendido (ej. USDT)
token_outstringSímbolo del token comprado
amount_usdnumberValor en USD del swap (mínimo: $500)
pairstringEtiqueta de par formateada (ej. USDT → USDC)
blocknumberNúmero de bloque donde se minó el swap
timestampnumberSegundos de época Unix
significancestringlow / medium / high / critical basado en el tamaño en USD
seqnumberNúmero de secuencia de transmisión monótona — úsalo para la detección de huecos

POST  /alerts/conditions

Requiere: Pro

Crea reglas de alerta personalizadas que se activan cuando una métrica especificada cruza un umbral. Las alertas se entregan mediante webhook, correo electrónico o el feed de notificaciones del panel según tus preferencias.

GET /v1/alerts/conditions

Devuelve una lista de todas tus condiciones de alerta configuradas con sus IDs, definiciones y estado actual.

DELETE /v1/alerts/conditions/{id}

Elimina permanentemente una condición de alerta por su ID.

GET /v1/alerts/history

Devuelve eventos recientes de activación de alertas con marcas de tiempo, condiciones coincidentes y el valor de la métrica en el momento de la activación.

Crear Alerta — Cuerpo de la Solicitud

CampoTipoDescripción
namerequiredstringEtiqueta legible para esta alerta (máx. 64 caracteres)
metricrequiredstringLa métrica a monitorear. Consulta la tabla de métricas disponibles más abajo.
symboloptionalstringContexto del activo. Requerido para métricas específicas de símbolo como funding_rate.
operatorrequiredstringOperador de comparación: gt, lt, eq, crosses_above, crosses_below
thresholdrequiredfloatValor numérico contra el que comparar la métrica
deliveryoptionalstringCanal de entrega, ej. telegram (default) o webhook
cooldown_minutesoptionalintegerMínimo de minutos entre re-activaciones (por defecto 60)

La lista actualizada de métricas y operadores válidos es devuelta por GET /v1/alerts/conditions as available_metrics and available_operators.

Available Metrics

MetricDescripción
funding_rateTasa de financiación actual para el símbolo (como decimal)
global_lsrRatio largo/corto global para el símbolo
long_pctPorcentaje de cuentas en posición larga para el símbolo
top_trader_lsrRatio largo/corto de los mejores traders para el símbolo
taker_ratioRatio compra/venta de los taker para el símbolo
mvrvRatio de Valor de Mercado a Valor Realizado (BTC/ETH)
soprRatio de Beneficio de Salida Gastada (BTC/ETH)
exchange_net_flowSeñal de flujo neto en cadena de exchanges
accumulationSeñal de acumulación en cadena
whale_long_pctPorcentaje de carteras de ballenas rastreadas en posición larga para el símbolo
whale_n_walletsNúmero de carteras de ballenas rastreadas con posición en el símbolo
composite_longPuntuación compuesta para el símbolo consultado en dirección larga
composite_shortPuntuación compuesta para el símbolo consultado en dirección corta
funding_spreadDiferencial de financiación entre plataformas para el símbolo
POST — Example Body
{
"name": "BTC funding rate spike",
"metric": "funding_rate",
"symbol": "BTC",
"operator": "gt",
"threshold": 0.05
}

GET  /kelly

Requires: Pro

Devuelve recomendaciones de tamaño de posición según el Criterio de Kelly, calibradas según el rendimiento histórico de la señal para el símbolo, nivel de confianza y dirección. Basa el tamaño de la posición en tasas de éxito empíricas para evitar sobre-apalancamiento.

Parameters

ParameterTypeDescripción
symbolrequiredstringSímbolo del activo: BTC, ETH, o SOL
confidenceoptionalstringNivel de confianza de la señal a modelar: HIGH, MEDIUM, o LOW. Por defecto: HIGH
directionoptionalstringDirección de la operación: long o short. Por defecto: long
account_sizeoptionalfloatTamaño de la cuenta en USD para calcular suggested_size_usd. Por defecto: 10000

Example Response

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": "Se recomienda Half-Kelly para trading en vivo debido a errores de estimación."
}
Se requiere plan Pro. Los cálculos se basan en una muestra móvil de 90 días de señales históricas que coinciden con los parámetros solicitados de símbolo, confianza y dirección.

GET  /performance

Disponible para: Free Trader Pro

Devuelve estadísticas de precisión histórica de señales emitidas por la API, desglosadas por nivel de confianza. Útil para comprender la fiabilidad de las señales antes de comprometer capital.

Parámetros

ParámetroTipoDescripción
symboloptionalstringFiltrar por activo. Omitir para estadísticas agregadas de todos los símbolos.
daysoptionalintegerVentana de retrospectiva en días. Por defecto: 30

Ejemplo de respuesta

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 }
}
}

Estadísticas y Señales

GET  /v1/stats

Disponible para: Free Trader Pro No se requiere autenticación

Estadísticas de rendimiento honestas de todo el sitio, obtenidas de smart_money_confirm resultados de llamadas distintas. Devuelve tasas de acierto en los niveles de confianza HIGH y MEDIUM, precisión general, factor de beneficio y un desglose por símbolo. Todas las cifras son dentro de la muestra durante la ventana de puntuación; consulta calibration.html para obtener contexto y metodología de forward-holdout.

Ejemplo de respuesta

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
}
}
Advertencia de muestra interna. Todas las cifras en esta respuesta se calculan a partir del mismo período utilizado para ajustar el puntuador. El forward_holdout objeto es el único número acumulado en datos que el puntuador nunca ha visto — observa cómo crece con el tiempo. Consulta calibration.html para obtener la metodología completa y el límite entre muestra interna y prueba forward.

GET  /v1/signals/performance

Disponible para: Free Trader Pro No se requiere autenticación

Seguimiento de resultados de señales en múltiples horizontes de resolución (4h, 12h, 24h, 72h). Devuelve tasas de acierto por horizonte, conteos totales de señales y un desglose por tipo de señal.

Parámetros

ParámetroTipoDescripción
daysoptionalintegerVentana de retrospectiva en días. Por defecto: 30
signal_typeoptionalstringFiltrar por tipo, ej. smart_money_confirm or regime_flip. Omitir para todos los tipos.
symboloptionalstringFiltrar por símbolo de activo, ej. BTC. Omitir para agregar todos los símbolos.

Ejemplo de respuesta

JSON
{
"signal_type": "smart_money_confirm",
"symbol": "BTC",
"days": 30,
"total_signals": 48,
horizontes: {
4h: { tasa de aciertos: 0.65, resuelto: 46 },
12h: { tasa de aciertos: 0.61, resuelto: 44 },
24h: { tasa de aciertos: 0.58, resuelto: 40 },
72h: { tasa de aciertos: 0.54, resuelto: 32 }
},
desglose por tipo: {
confirmación de Smart Money: { recuento: 35, tasa de aciertos_24h: 0.61 },
cambio de régimen: { recuento: 13, tasa de aciertos_24h: 0.47 }
}
}

GET  /v1/signals/recent

Disponible para: Gratis Trader Pro No se requiere autenticación

Feed de señales HIGH y MEDIUM publicadas recientemente en todos los símbolos monitoreados. Cada entrada incluye el tipo de señal, nivel de confianza, dirección y estado de resolución, si está disponible.

Ejemplo de respuesta

JSON
{
señales: [
{
id: 1042,
símbolo: BTC,
dirección: long,
tipo de señal: confirmación de Smart Money,
confianza: HIGH,
compuesto: 0.74,
ts: 1710940821,
resuelto: True,
resultado_24h: ganar
}
],
recuento: 50
}

GET  /v1/signals/{id}/outcome

Disponible para: Gratis Trader Pro No se requiere autenticación

Resultado resuelto para una señal individual por su ID numérico. Devuelve acierto/fallo en cada horizonte de resolución (4h, 12h, 24h, 72h) junto con el precio en el momento de la señal y en la resolución.

Parámetros

ParámetroTipoDescripción
idrequeridoenteroID de la señal (segmento de ruta), p. ej. /v1/signals/1042/outcome

Ejemplo de respuesta

JSON
{
id: 1042,
símbolo: BTC,
dirección: long,
confianza: HIGH,
precio de entrada: 63200.0,
ts: 1710940821,
resultados: {
4h: { resultado: ganar, precio: 64100.0, pct: 1.41 },
12h: { resultado: ganar, precio: 65200.0, pct: 3.16 },
24h: { resultado: ganar, precio: 65800.0, pct: 4.11 },
72h: { resultado: pendiente, precio: None, pct: None }
}
}

GET  /v1/confirm-winrate

Requiere: Gratis Trader Pro

Desglose de la tasa de aciertos de señales de confirmación para la clave API del usuario autenticado. Devuelve tasas de aciertos por llamada distinta en cada nivel de confianza, factor de beneficio y cifras por símbolo. Requiere un encabezado válido. X-API-Key encabezado.

Ejemplo de solicitud

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

Ejemplo de respuesta

JSON
{
alta_tasa_de_aciertos: 0.714,
alta_n: 14,
media_tasa_de_aciertos: 0.530,
medio_n: 34,
precisión_general: 0.613,
total_n: 48,
factor_de_beneficio: 1.77,
horizonte_de_tasa_de_éxito: 24h,
por_símbolo: {
BTC: { tasa_de_éxito: 0.68, n: 22 },
ETH: { tasa_de_éxito: 0.55, n: 18 }
}
}
Base por llamada distinta. Las tasas de éxito se calculan por cada llamada de confirmación distinta (una por símbolo cada ventana de 5 minutos), no por cada llamada a la API, lo que evita la inflación de N por bots que consultan repetidamente. Las cifras son dentro de la muestra durante el período predeterminado de 30 días; la misma advertencia que en /v1/stats aplica.

Shadow Gate

Requiere: Gratis Trader Pro

Un registro de decisiones personal inmutable y solo de adición. Envía tus decisiones de trading antes o después de ejecutarlas; el sistema calcula una puntuación de confirmación contra el motor Smart Money y añade una fila permanente. Úsalo para construir un historial honesto y con marca de tiempo de qué tan bien coincidió la señal de la API con tus propias entradas, completamente independiente del grupo global de tasas de éxito. Las respuestas de los niveles Gratis y Trader tienen campos de evidencia eliminados; Pro devuelve el desglose completo. Un retraso por nivel aplica a los datos del nivel Gratis.

POST /v1/shadow-gate/decisions

Envía una decisión. Idempotente en el Idempotency-Key encabezado de la solicitud — reenviar la misma clave devuelve la fila existente sin crear un duplicado. El sistema llama inmediatamente al motor de confirmación y añade el resultado como una fila inmutable en el registro.

Cuerpo de la solicitud

CampoTipoDescripción
símbolorequeridocadenaSímbolo del activo, ej. BTC
ladorequeridocadenaDirección de la operación: long o short
id_estrategiaopcionalcadenaEtiqueta de estrategia definida por el llamador (máx. 64 caracteres). Se almacena tal cual para agrupación y filtrado.

Ejemplo de solicitud

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"

Ejemplo de respuesta

JSON
{
"id": 318,
"símbolo": "BTC",
"lado": "long",
"id_estrategia": "ema_crossover",
"decisión": "CONFIRMAR",
"confianza": "ALTA",
"compuesto": 0.74,
"mult_tamaño": 1.5,
"ts": 1710940821,
"resuelto": false
}
Nota de nivel. Las respuestas Gratis y Trader omiten los factors / adjustments campos de evidencia. Pro devuelve el desglose completo de confirmación. Un retraso por nivel aplica a Gratis — la fila se escribe inmediatamente, pero la puntuación de confirmación puede reflejar datos en caché de hasta 60 segundos de antigüedad.
GET /v1/shadow-gate/decisions

Lista tus propias decisiones de shadow-gate, las más recientes primero. Limitado al propietario — solo se devuelven las decisiones enviadas por tu clave de API.

Parámetros

ParámetroTipoDescripción
límiteopcionalenteroMáximo de filas a devolver. Predeterminado: 50, máx: 200
cursoropcionalcadenaCursor de paginación opaco del campo next_cursor de una respuesta anterior. Omite para la primera página.

Ejemplo de respuesta

JSON
{
"decisiones": [
{ "id": 318, "símbolo": "BTC", "lado": "long", "decisión": "CONFIRMAR", "confianza": "ALTA", "compuesto": 0.74, "mult_tamaño": 1.5, "ts": 1710940821, "resuelto": false },
{ "id": 317, "símbolo": "ETH", "lado": short, decisión: SKIP, confianza: LOW, compuesto: -0.12, size_mult: 0.0, ts: 1710937000, resuelto: True }
],
contar: 2,
next_cursor: None
}
GET /v1/shadow-gate/decisions/{id}

Decisión individual por ID, incluyendo la evidencia completa de confirmación para el nivel Pro. Las respuestas de los niveles Free y Trader tienen factors y adjustments eliminados. Devuelve 403 si la decisión pertenece a una clave API diferente.

Ejemplo de respuesta (Pro)

JSON
{
id: 318,
símbolo: BTC,
lado: long,
strategy_id: ema_crossover,
decisión: CONFIRM,
confianza: HIGH,
compuesto: 0.74,
size_mult: 1.5,
factores: {
derivados: { puntuación: 0.81, peso: 0.40, ponderado: 0.324 },
onchain: { puntuación: 0.68, peso: 0.35, ponderado: 0.238 },
ballena: { puntuación: 0.73, peso: 0.25, ponderado: 0.183 }
},
ts: 1710940821,
resuelto: False,
resultado: None
}
POST /v1/shadow-gate/decisions/{id}/resolve

Resuelve manualmente el resultado de una decisión. Llama a esto después de cerrar la operación para registrar el resultado final en el registro. Una vez resuelto, el registro es inmutable y no se puede cambiar nuevamente.

Cuerpo de la solicitud

CampoTipoDescripción
resultadorequeridostringResultado de la operación: win o loss
exit_priceopcionalfloatPrecio de salida de la operación. Almacenado como referencia; utilizado para calcular el P&L % si se proporciona.
pnl_pctopcionalfloatP&L realizado como porcentaje del tamaño de la posición, ej. 3.5 o -1.2

Ejemplo de respuesta

JSON
{
id: 318,
resuelto: True,
resultado: win,
exit_price: 65800.0,
pnl_pct: 4.1,
resolved_at: 1711027200
}
Inmutabilidad. El registro es de solo añadido. Una vez que se envía una decisión, no se puede eliminar, y una vez resuelta, no se puede volver a resolver. Esto garantiza que el historial que construyas sea honesto y resistente a manipulaciones.

Códigos de error

EstadoCódigoDescripción
400invalid_paramsParámetros de consulta faltantes o inválidos
401unauthorizedClave API faltante o inválida
403plan_restrictionEndpoint no disponible en tu plan actual
429rate_limit_exceededLímite diario o de ráfaga alcanzado
500internal_errorError del servidor — consulta /health para el estado de la fuente
503data_staleFuente de datos no disponible; devuelve los últimos datos conocidos

Ejemplos de código

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

# En tu bucle de trading:
signal = confirm_trade("BTC", "long")
if signal["confidence"] not in ["HIGH", "MEDIUM"]:
print("Omitiendo — confianza insuficiente")
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();
}

// Uso
confirmTrade('BTC', 'long').then(data => {
console.log(dataconfidence, datasize_mult);
});

cURL

Shell
# Confirmar una operación long
curl -X GET \
-H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/confirm?symbol=BTC&direction=long"

# Obtener datos de ballenas
curl -X GET \
-H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/whales?symbol=BTC"

# Verificar uso
curl -X GET \
-H X-API-Key: sm_your_key \
https://api.smartmoneyapi.com/v1/usage

Integración de Freqtrade

Agrega confirmación de Smart Money a cualquier estrategia de Freqtrade sobrescribiendo el confirm_trade_entry método.

Python — Estrategia de Freqtrade
importar requests
desde freqtrade.strategy importar IStrategy

clase SmartMoneyStrategy(IStrategy):
SM_API_KEY = "sm_your_key"
SM_BASE = "https://api.smartmoneyapi.com/v1"

def confirm_trade_entry(self, par, tipo_orden,
cantidad, tasa, tiempo_en_efecto,
tiempo_actual, etiqueta_entrada, **kwargs):
símbolo = par.dividir("/")[0]
si símbolo no está en ["BTC", "ETH", "SOL"]:
devolver True # Saltar verificación para no admitidos
intentar:
r = requests.obtener(
f"{self.SM_BASE}/confirm",
parámetros={"símbolo": símbolo, "dirección": "long"},
encabezados={"X-API-Key": self.SM_API_KEY},
tiempo_espera=3
).json()
devolver r.obtener("confianza") en ["ALTA", "MEDIA"]
excepto:
devolver True # Fallar abierto en error de API

CCXT + Smart Money

Python — CCXT
importar ccxt, requests

exchange = ccxt.bybit({
"apiKey": "YOUR_BYBIT_KEY",
"secret": "YOUR_BYBIT_SECRET"
})

SM_KEY = "sm_your_key"

def smart_trade(símbolo, lado, cantidad):
# Verificar confirmación primero
conf = requests.obtener(
"https://api.smartmoneyapi.com/v1/confirm",
parámetros={"símbolo": símbolo, "dirección": lado},
encabezados={"X-API-Key": SM_KEY}
).json()

si conf["confianza"] no está en ["ALTA", "MEDIA"]:
imprimir(f"Saltando {símbolo} {lado} — confianza insuficiente.")
devolver None

cantidad_ajustada = cantidad * conf["size_mult"]
orden = exchange.crear_orden_de_mercado(
f"{símbolo}/USDT", lado, cantidad_ajustada
)
imprimir(f"Orden colocada: {cantidad_ajustada} {símbolo} {lado}")
devolver orden
¿Necesitas ayuda?

Revisa la página de estado de la API para información de salud en tiempo real, o usa nuestro formulario de contacto.