Datos de derivados crypto en español: índice de acuerdo determinista, índices propios y brief en una sola llamada, sin armar nada. No es un predictor de precio — lo auditamos y acierta el 49%.
Los endpoints /public/* son abiertos durante la beta — no necesitas API key para empezar. La key solo se requiere para webhooks y tiers superiores.
# Índice de acuerdo de ETH ahora mismo curl "https://terminal.cruztrd.com/public/score/preview/ETHUSDT"
Para recibir un webhook cuando el índice de acuerdo supere 72, y para subir de límites. Cruzar 72 no significa que el precio vaya a moverse: solo que muchos indicadores coinciden.
Obtener API key gratuita →| Concepto | Valor |
|---|---|
| Auth en /public/* | No requerida durante la beta |
| Rate limit | 30 solicitudes / minuto (por IP) |
| Pares disponibles | ETH · SOL · XRP · BNB · BTC (USDT) |
| Formato | JSON · HTTPS · CORS abierto |
| Actualización de datos | Cada 5 minutos · cada respuesta incluye age_seconds |
| Costo en beta | Gratuito |
Reemplaza <PAR> por uno de: ETHUSDT, SOLUSDT, XRPUSDT, BNBUSDT, BTCUSDT.
| Endpoint | Devuelve |
|---|---|
| GET/public/score/preview/<PAR> | Índice de acuerdo 0–100, lado dominante y desglose |
| GET/public/brief/<PAR> | Brief de IA en español del par |
| GET/public/indicators/<PAR> | Índices propios: CASCADE, IMI, ICC, IFO, IDS, FV, lecturas de decisión |
| GET/public/technicals/<PAR> | RSI, MACD, EMA (cálculo propio) |
| GET/public/signals/feed | Historial de cruces ≥72 con el movimiento posterior a 4h — para que lo audites tú mismo |
| GET/public/session/latam | Sesión de mercado activa con contexto LATAM |
| GET/public/health | Estado del sistema y frescura de datos |
El endpoint estrella. Una llamada calcula LONG y SHORT a la vez desde las mismas señales.
{
"symbol": "ETHUSDT",
"score": 47, // score del lado ganador (0–100)
"direction": "short", // gana por >15 pts, si no: neutral
"long_score": 5,
"short_score": 47,
"score_breakdown": [
{"signal":"flujo_ordenes","raw":-25,"norm":-1.0,"weight":0.22,"side":"short"},
{"signal":"presion_libro","raw":8,"norm":0.53,"weight":0.18,"side":"long"}
],
"dominant_signals": [ ... ],
"age_seconds": 230,
"stale": false
}
Análisis en español del estado actual del mercado. Describe, no pronostica.
{
"available": true,
"symbol": "ETHUSDT",
"brief": "El flujo de órdenes muestra presión vendedora y el sesgo
agregado de los indicadores es bajista. Es una descripción
del estado actual, no una recomendación de entrada.",
"age_seconds": 15,
"stale": false
}
Los índices propios + las 3 lecturas de decisión sintetizadas (flujo, posición, valor).
{
"cascade": {"cascade_index":50,"level":"alto"},
"indices_institucionales": {
"ids":-18,"ips":2.9,"imi":44,"icc":0.7,"icc_pcr":1.2,"fv":1.7e-5
},
"lecturas_decision": {
"flujo":{"dir":"vendedor"},
"posicion":{"estado":"longs_cargados"},
"valor":{"estado":"barato"}
},
"data_freshness": { ... }
}
Rangos de referencia para interpretar los índices propios de CruzTRD.
| Índice | Rango e interpretación |
|---|---|
| CASCADE | 0–100 · <25 bajo · 25–44 moderado · 45–69 alto · ≥70 crítico |
| IMI | -100 a +100 · >20 institucional comprador · <-20 institucional vendedor |
| ICC (Mayer) | 0.3–4.0 · <0.8 suelo histórico · >2.0 zona techo |
| IFO ratio | 0.5–2.0 · >1.15 compradora · <0.87 vendedora |
| IDS | -100 a +100 · >15 sesgo comprador · <-15 sesgo vendedor |
| PCR | 0.3–2.0 · <0.7 más calls que puts · >1.2 más puts que calls |
Registra una URL al pedir tu API key y recibe un POST automático cuando cualquier par supere score 72.
// Payload que recibes { "event": "signal", "symbol": "SOLUSDT", "score": 82, "direction": "long", "brief": "...", "ts": 1781912703, "source": "CruzTRD Terminal" }
Headers: X-CruzTRD-Event: signal · X-CruzTRD-Score: 82
import requests r = requests.get( "https://terminal.cruztrd.com" "/public/score/preview/ETHUSDT") d = r.json() if d["score"] >= 72 and d["direction"] == "long": print("Acuerdo alto del lado long — no es senal de entrada") elif d["score"] >= 72 and d["direction"] == "short": print("Acuerdo alto del lado short — no es senal de entrada") else: print("Los indicadores estan divididos")
const r = await fetch( "https://terminal.cruztrd.com" + "/public/indicators/ETHUSDT"); const d = await r.json(); const imi = d.indices_institucionales.imi; console.log(`IMI: ${imi}`);
| Código | Significado |
|---|---|
| 400 | Símbolo no disponible — usa uno de los 5 pares soportados |
| 429 | Rate limit excedido — baja a ≤30 req/min |
| 503 | Datos aún no disponibles este ciclo — reintenta en unos segundos |