API de Cripto

39 endpoints · General · Herramientas · Alpha · Datos sin procesar

Última actualización 2026-10
URL base
https://api.blave.org
Autenticación
Encabezados api-key + secret-key en cada solicitud
Acceso
API plan or Blave Agent plan
Límite de uso
500 solicitudes / 5 min por clave y por IP

Convenciones

Comunes a todos los endpoints cripto get_alpha / get_exposure:

  • period — tamaño de la vela, {n}min / {n}h / {n}d ({n}m se interpreta como minutos). Los valores documentados son 5min, 15min, 1h, 4h, 8h, 1d; los indicadores con un mínimo más amplio lo indican en su bloque. Un period ausente o imposible de interpretar devuelve 403 {"error": "period is required"} (un 400 en unusual_movement y liquidation).
  • start_date / end_date — YYYY-MM-DD (UTC). end_date es hoy por defecto; start_date es end_date − 365 días por defecto. Un rango de más de 365 días se recorta sin aviso (start_date pasa a end_date − 365 días). Una fecha mal formada no se valida y termina en un 500 — envíe siempre YYYY-MM-DD.
  • symbol — perpetuo USDT-M de Binance, p. ej. BTCUSDT; también se aceptan BTC, btc, BTC/USDT, BTC-USDT (a un token sin sufijo se le añade USDT). Los endpoints get_symbols listan los símbolos cubiertos.
  • Se devuelven solo velas cerradas — la última vela, aún en formación, se descarta.
  • La respuesta es {"data": {"timestamp": [...], "alpha": [...], ...}} — arrays paralelos, un elemento por vela. timestamp está en segundos Unix (UTC) y es la etiqueta de la vela.
  • Para un historial de más de 365 días, envíe una solicitud por año y concatene los resultados.

Objeto stat — lo devuelven los indicadores cuyo bloque lo incluye. Es un modelo logístico ajustado con el último año de este indicador para el símbolo frente al movimiento del precio en las 24h siguientes:

CampoTipoDescripción
up_probfloatProbabilidad de una subida en 24h dado el último valor del indicador (0–1)
avg_up_returnfloatRentabilidad media a 24h en las subidas pasadas (decimal, 0.02 = +2%)
avg_down_returnfloatRentabilidad media a 24h en las bajadas pasadas (decimal, negativo)
return_ratiofloat-avg_up_return / avg_down_return
exp_valuefloatup_prob × avg_up_return + (1 − up_prob) × avg_down_return
is_data_sufficientboolfalse cuando el símbolo tiene menos de un año de historial — en ese caso no deben usarse los demás campos

Cuando no hay datos, el objeto recurre a up_prob 0.5 y ceros.

Precio actual

GET/price
Datos desde
Solo instantánea (sin historial)
Actualización
Caché del servidor de 5 s

Parámetros

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Token o par USDTBTCUSDT o BTC (sin distinguir mayúsculas de minúsculas)

Ejemplo

Python
response = requests.get(f"{BASE_URL}/price", headers=headers, params={"symbol": "BTCUSDT"}, timeout=30)print(response.json())# {"symbol": "BTC", "price": 75838.2, "change_24h": -0.01739}

Respuesta

Un objeto plano.

CampoTipoUnidadDescripción
symbolstring—El token sin USDT (p. ej. BTC, incluso cuando se envió BTCUSDT)
pricefloatUSDTÚltimo precio
change_24hfloatdecimalVariación en 24h como fracción (0.025 = +2.5%)

Errores

EstadoCuerpoCuándo
400{"error": "symbol is required"}Falta symbol
404{"error": "symbol <SYMBOL> not found"}No hay precio para ese token

Notas

  • Fuente del precio, en orden de respaldo: perpetuo USDT-M de Binance → spot de Binance → perpetuo de BingX.
  • change_24h normalmente procede del mismo mercado que price, pero ambos se almacenan en caché por separado (5 s cada uno), así que pueden diferir brevemente.

Tabla de alpha

GET/alpha_table
Datos desde
Solo instantánea (último valor por símbolo)
Actualización
Cada 5 minutos

Parámetros

Ninguno.

Ejemplo

Python
response = requests.get(f"{BASE_URL}/alpha_table", headers=headers, timeout=60)body = response.json()row = body["data"]["0G"]   # one token out of the 716 keys this response carried# {"holder_concentration": {"-": 0.9267}, "holder_concentration_chg": {"15min": -0.0118, "1h": 0.0075, "24h": 0.4723, "3d": -0.1852, "30d": "", ...},#  "funding_rate": {"binance": 0.005, "bybit": 0.005, "okx": 0.005, "pionex": "", ...},#  "liquidation": {"15min": 0.0, "1h": -0.2665, "24h": -0.5637, "1min": "", ...},#  "market_cap": {"-": 42204386.29}, "market_cap_percentile": {"-": 56.55},#  "price": {"-": 0.1832}, "price_change": {"15min": -0.00215, "24h": -0.05792, ...},#  "statistics": {"up_prob": 0.4277, "exp_value": -0.00478, "is_data_sufficient": false, ...}, ...}# (shape captured from a live response; `""` marks insufficient data)

Respuesta

{"data": {<TOKEN>: {...}}, "fields": [...], "note": {...}}.

data tiene como clave el token (BTC, 1INCH, …). Cada token asocia nombre del indicador → {param: value} ("-" cuando el indicador no tiene parámetro). "" = datos insuficientes. Además de los indicadores:

ClaveDescripción
statisticsup_prob (prob. de una subida en 24h), exp_value (rentabilidad esperada), avg_up_return, avg_down_return, return_ratio, is_data_sufficient
price{"-": 70000} — precio actual
price_change{"15min": ..., "1h": ..., "24h": ...} — variación %
market_cap{"-": 1234567890} — capitalización de mercado en USD
market_cap_percentile{"-": 85.3} — percentil entre todas las monedas listadas
funding_rate{"binance": -0.01, ...} — por exchange
oi_imbalance{"-": 0.12} — desequilibrio de OI (detalle completo: /oi_imbalance/get_overview_data)

fields — una entrada por indicador: id, name (clave usada en data), param (nombre del parámetro o null), name_en, name_zh.

note — con el id del indicador como clave: una lista de bandas de valores {min, max, note: {en, zh}, direction: {en, zh}, color, background_color} que sirve para etiquetar un valor (p. ej. max: -3 → "Overly Bearish").

Errores

Solo errores comunes.

Notas

  • Úselo en primer lugar para cualquier filtro o ranking de varias monedas — una sola solicitud cubre todos los símbolos.
  • Compruebe siempre statistics.is_data_sufficient antes de usar statistics.
  • Obtenga siempre datos nuevos; no reutilice una respuesta anterior.

Velas (OHLCV)

GET/kline
Datos desde
2020-01-01, o la fecha de listado del contrato si es posterior
Actualización
Aproximadamente un minuto después del cierre de cada vela

Cobertura. Todos los perpetuos USDⓈ-M de Binance cuyo símbolo termina en USDT — 740 contratos en octubre de 2026, incluidos los perpetuos USDT de acciones tokenizadas, materias primas y otros activos TradFi. Los 740 tienen todo su historial de 1 minuto almacenado en el servidor, desde 2020-01-01 o desde la fecha de listado. Un perpetuo recién listado puede consultarse unos 5–10 minutos después de su listado.

Sin cobertura: contratos cotizados en USDC, USD1, U o BTC (p. ej. BTCUSDC, ETHBTC) y contratos trimestrales con entrega — estos devuelven el error 400 unknown symbol or no data indicado más abajo. Los contratos deslistados no están garantizados: pueden responder con el historial que aún esté almacenado o con ese mismo 400 (los deslistados antes de octubre de 2026 no tienen historial de 1min–4min).

Parámetros

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Perpetuo USDⓈ-M USDT de Binance. A un token sin sufijo se le añade USDT; un token sin sufijo que solo existe con un prefijo multiplicador se resuelve a este (PEPE → 1000PEPEUSDT)BTCUSDT; también BTC, btc, BTC/USDT, BTC-USDT
period
string · queryObligatorio
Tamaño de la vela. Se acepta cualquier tamaño en minutos enteros, no solo los ejemplos indicados{n}min / {n}h / {n}d, mínimo 1min (p. ej. 1min, 3min, 15min, 2h, 1d, 7d). {n}m se interpreta como minutos (15m = 15min)
start_date
string · query
Primer día, inclusiveYYYY-MM-DD (UTC)end_date − 365 días (period ≥ 5min); end_date − 30 días (period < 5min)
end_date
string · query
Último día, inclusive (velas hasta el final de ese día UTC)YYYY-MM-DD (UTC)ahora

Ventana por solicitud: period ≥ 5min → como máximo 365 días; un rango más largo se recorta sin aviso (start_date pasa a end_date − 365 días, sin error). Period < 5min → como máximo 30 días; un rango más largo devuelve un 400.

Ejemplo

Python
params = {"symbol": "BTCUSDT", "period": "1h", "start_date": "2026-10-01", "end_date": "2026-10-02"}response = requests.get(f"{BASE_URL}/kline", headers=headers, params=params, timeout=60)data = response.json()# [{"time": 1790812800.0, "open": 83576.8, "high": 83612.6, "low": 83370.0, "close": 83460.0, "volume": 3123.991}, ...]

Respuesta

Un array JSON sin envoltorio (no va dentro de {"data": ...}), en orden ascendente por tiempo.

CampoTipoUnidadDescripción
timefloatSegundos Unix (UTC)Hora de apertura de la vela
open / high / low / closefloatmoneda de cotización (USDT)Precios
volumefloat | nullactivo baseVolumen negociado; null cuando la fuente no tiene volumen para esa vela

Errores

EstadoCuerpoCuándo
403{"error": "symbol is required"}Falta symbol
403{"error": "period is required"}Falta period o no se puede interpretar
400{"error": "minimum supported period is 1min"}period inferior a un minuto
400{"error": "periods below 5min must be a whole number of minutes"}e.g. 90s
400{"error": "date range exceeds max 30 days for periods below 5min"}Period < 5min y rango > 30 días
400{"error": "invalid date format, expected YYYY-MM-DD"}start_date / end_date mal formados
400{"error": "unknown symbol or no data: <symbol>"}Símbolo sin cobertura (véase Sin cobertura) o que no es un contrato real, p. ej. BTCUSDC, ETHBTC, un error tipográfico. <symbol> devuelve el valor enviado. No es transitorio — no reintentar

Notas

  • Una ventana totalmente anterior a la fecha de listado de un contrato cubierto devuelve 200 con [], no un error.
  • Con 1min, todas las velas devueltas están cerradas. Un periodo más largo puede terminar en una vela parcial cuando end_date es hoy — se construye con las velas cerradas hasta el momento (a las 07:09 UTC, la vela 1h de las 07:00 contiene 07:00–07:05); descártela si solo necesita velas cerradas.
  • Para un historial que supere una ventana, envíe una solicitud por ventana y concatene los resultados (p. ej. 3 años de 5min = 3 solicitudes; 1 año de 1min = 13 solicitudes de ≤30 días).
  • Los 740 perpetuos USDT tienen todo el historial de 1 minuto en disco, así que una solicitud profunda se responde con datos almacenados — no hay una primera obtención lenta.
  • La fecha de inicio se aplica a todos los intervalos, incluido 1min.
  • La última vela cerrada de 1 minuto suele estar disponible en el minuto siguiente; en casos poco frecuentes de servicio degradado, las velas más recientes pueden retrasarse unos 5–10 minutos.
  • Caché del servidor: 30 s (1min), 300 s (1h / 4h / 1d), 60 s (cualquier otro periodo); solo 5 s cuando la última vela cerrada aún no ha llegado.

Dirección del mercado

GET/market_direction/get_alpha
Datos desde
2024-12-27
Actualización
Cada 5 minutos

Parámetros

Sin symbol: alpha es una única serie de todo el mercado, no una por moneda. BTCUSDT se usa internamente solo para alinear las velas; no se devuelve y no modifica alpha. Véase Convenciones de los indicadores cripto.

NombreDescripciónValores permitidosPredeterminado
period
string · queryObligatorio
Tamaño de la vela1h, 4h, 8h, 1d (mínimo 1h)
start_date
string · query
Primer díaYYYY-MM-DDend_date − 365 días
end_date
string · query
Último díaYYYY-MM-DDhoy

Ejemplo

Python
params = {"period": "1h", "start_date": "2026-09-13", "end_date": "2026-09-15"}response = requests.get(f"{BASE_URL}/market_direction/get_alpha", headers=headers, params=params, timeout=60)# {"data": {"alpha": [-0.5195979478976323, -0.5223392571665055, -0.5612490182062327, ...],#           "timestamp": [1789257600.0, 1789261200.0, 1789264800.0, ...]}}   # 72 bars

Respuesta

{"data": {"timestamp": [...], "alpha": [...]}}. Sin stat.

CampoTipoDescripción
timestampfloat[]Segundos Unix (UTC)
alphafloat[]Valor de dirección del mercado

Errores

EstadoCuerpoCuándo
403{"error": "period is required"}Falta period o no se puede interpretar

Notas

  • Una única serie de todo el mercado, sin dimensión de símbolo; 2024-12-27 es la vela 1d más antigua que se devuelve.

Condiciones guardadas del screener

GET/screener/get_saved_conditions
Datos desde
—
Actualización
En vivo

Parámetros

Ninguno.

Ejemplo

Python
response = requests.get(f"{BASE_URL}/screener/get_saved_conditions", headers=headers, timeout=30)conditions = response.json()["data"]

Respuesta

{"data": {<condition_id>: {...}}}, con el id de la condición como clave (una clave de cadena JSON, p. ej. "12"; envíela de vuelta como el entero condition_id). Solo las condiciones propias de esta cuenta.

CampoTipoDescripción
filtersobject[]Los filtros de la condición, todos combinados con AND: indicator_id (int), indicator_name ({"en", "zh"}), param (string; "-" = el valor por defecto del indicador), operator_id (int), operator_symbol (string, p. ej. >), value (umbral)
notestringEl nombre que usted le dio a la condición al guardarla
name_en / name_zhstring | nullSolo se define en las condiciones oficiales / de la comunidad; en las condiciones propias cabe esperar vacío o null, y debe leerse note en su lugar
description_en / description_zhstring | nullSolo se define en las condiciones oficiales / de la comunidad; puede estar vacío o ser null

Errores

EstadoCuerpoCuándo
403{"error": "unsupported api feature"}Clave no vinculada a una cuenta de usuario

Notas

  • Cada solicitud lee en vivo las condiciones guardadas de la cuenta.

Resultado de una condición del screener

GET/screener/get_saved_condition_result
Datos desde
Instantánea (valores actuales de alpha)
Actualización
Cada 5 minutos

Parámetros

NombreDescripciónValores permitidosPredeterminado
condition_id
int · queryObligatorio
Condición que se ejecutaUn id de get_saved_conditions

Ejemplo

Python
response = requests.get(f"{BASE_URL}/screener/get_saved_condition_result", headers=headers,                        params={"condition_id": 12}, timeout=60)

Respuesta

{"data": {"alpha_names": [...], "symbols": [...]}}.

CampoTipoDescripción
alpha_namesobject[]Uno por cada indicador de filtro distinto, en el orden de los filtros: en / zh (nombre para mostrar, con el parámetro entre paréntesis cuando lo hay), name (clave del indicador), type, url; además de value_format, value_decimals, polarity cuando el indicador los define
symbolsobject[]Tokens que cumplen todos los filtros
symbols[].symbolstringToken sin USDT (p. ej. BTC)
symbols[].idintId del token (0 cuando se desconoce)
symbols[].user_selectedboolEl token está en la lista de seguimiento de la cuenta
symbols[].pricefloatÚltimo precio en USDT (el mismo feed que /price; 0 cuando no está disponible)
symbols[].24h_chgfloatVariación en 24h como fracción (0.025 = +2.5%)
symbols[].alphasfloat[]El valor del token para cada indicador de filtro, en paralelo a alpha_names
symbols[].alpha_notesobject[]Por indicador: indicator_id, color, direction, note (más background_color cuando se cumplió una regla; color null y cadenas vacías cuando no se cumplió ninguna)

Errores

EstadoCuerpoCuándo
400{"error": "Missing parameter: condition_id is required."}Falta
400{"error": "Invalid parameter: condition_id must be an integer."}No es un entero
404{"error": "Invalid condition_id: <id> not found for user."}No es una de las condiciones de esta cuenta
403{"error": "unsupported api feature"}Clave no vinculada a una cuenta de usuario

Símbolos de concentración de tenedores

GET/holder_concentration/get_symbols
Datos desde
—
Actualización
Caché del servidor de 10 min

Parámetros

Ninguno.

Ejemplo

Python
symbols = requests.get(f"{BASE_URL}/holder_concentration/get_symbols", headers=headers, timeout=30).json()["data"]

Respuesta

{"data": ["BNBUSDT", "BTCUSDT", ...]}, ordenados.

Errores

Solo errores comunes.

Notas

  • Actualmente todos los endpoints cripto */get_symbols devuelven la misma lista de símbolos USDT-M de Binance.
  • La lista se toma de la última instantánea de interés abierto USDT-M de Binance.

Concentración de tenedores

GET/holder_concentration/get_alpha
Datos desde
2021-05-11 (BTCUSDT)
Actualización
Cada 5 minutos

Parámetros

Véase Convenciones de los indicadores cripto.

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Símboloe.g. BTCUSDT
period
string · queryObligatorio
Tamaño de la vela5min, 15min, 1h, 4h, 8h, 1d
start_date
string · query
Primer díaYYYY-MM-DDend_date − 365 días
end_date
string · query
Último díaYYYY-MM-DDhoy

Ejemplo

Python
params = {"symbol": "BTCUSDT", "period": "1h", "start_date": "2026-09-13", "end_date": "2026-09-15"}response = requests.get(f"{BASE_URL}/holder_concentration/get_alpha", headers=headers, params=params, timeout=60)# {"data": {"alpha": [-1.1931909718306861, -1.2035898186867282, -1.2037004015202886, ...],#           "timestamp": [1789257600.0, 1789261200.0, 1789264800.0, ...],#           "stat": {"up_prob": 0.509739818557561, "exp_value": -0.00051954905018229,#                    "avg_up_return": 0.015512131150026753, "avg_down_return": -0.017188220228787618,#                    "return_ratio": 0.9024861762037658, "is_data_sufficient": true}}}   # 72 bars

Respuesta

{"data": {"timestamp": [...], "alpha": [...], "stat": {...}}}.

CampoTipoDescripción
timestampfloat[]Segundos Unix (UTC)
alphafloat[]Z-score del logaritmo del ratio long/short de cuentas frente a su media de 30 días, con el signo invertido — más alto = más concentrado
statobjectVéase objeto stat

Errores

EstadoCuerpoCuándo
403{"error": "symbol is required"} / {"error": "period is required"}Falta un parámetro

Notas

  • Cubre solo Binance — se basa en el ratio long/short global de cuentas de Binance.
  • 2021-05-11 es la primera vela 1d de BTCUSDT; otros símbolos pueden empezar más tarde.

Tasa de financiación

GET/funding_rate/get_alpha
Datos desde
2025-09-30 (BTCUSDT)
Actualización
Cada 5 minutos

Parámetros

Véase Convenciones de los indicadores cripto.

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Símbolo (en formato Binance, sea cual sea el exchange)e.g. BTCUSDT
period
string · queryObligatorio
Tamaño de la vela5min, 15min, 1h, 4h, 8h, 1d
exchange
string · query
De qué exchange se lee la tasa de financiación del perpetuo; cualquier otro valor devuelve 400binance, okx, bingx, bybitbinance
start_date
string · query
Primer díaYYYY-MM-DDend_date − 365 días
end_date
string · query
Último díaYYYY-MM-DDhoy

Ejemplo

Python
params = {"symbol": "BTCUSDT", "period": "1h", "start_date": "2026-09-13", "end_date": "2026-09-15"}response = requests.get(f"{BASE_URL}/funding_rate/get_alpha", headers=headers, params=params, timeout=60)# {"data": {"timestamp": [1789257600.0, 1789261200.0, 1789264800.0, ...],#           "alpha": [0.005064, 0.006165, 0.007765, ...],#           "close": [77239.5, 77285.5, 77263.9, ...],#           "stat": {"up_prob": 0.5009438427095587, "exp_value": -0.0008769555139270298,#                    "is_data_sufficient": false, ...}}}   # 72 bars

Respuesta

{"data": {"timestamp": [...], "alpha": [...], "close": [...], "stat": {...}}}.

CampoTipoUnidadDescripción
timestampfloat[]Segundos Unix (UTC)Etiqueta de la vela
alphafloat[]porcentajeTasa de financiación × 100 (0.01 = 0.01%); positivo = los largos pagan a los cortos
closefloat[]USDTPrecio de cierre del perpetuo
statobject—Véase objeto stat

Errores

EstadoCuerpoCuándo
403{"error": "symbol is required"} / {"error": "period is required"}Falta un parámetro
400{"error": "exchange must be one of binance, okx, bingx, bybit"}exchange fuera de la lista

Notas

  • 2025-09-30 es la primera vela 1d de BTCUSDT; otros símbolos pueden empezar más tarde, y exchange=bybit empieza más tarde — lea la primera marca de tiempo.

Símbolos de sentimiento del mercado

GET/market_sentiment/get_symbols
Datos desde
—
Actualización
Caché del servidor de 10 min

Parámetros

Ninguno.

Ejemplo

Python
symbols = requests.get(f"{BASE_URL}/market_sentiment/get_symbols", headers=headers, timeout=30).json()["data"]

Respuesta

{"data": ["BNBUSDT", "BTCUSDT", ...]}, ordenados.

Errores

Solo errores comunes.

Notas

  • La lista se toma de la última instantánea de interés abierto USDT-M de Binance.

Sentimiento del mercado

GET/market_sentiment/get_alpha
Datos desde
2020-01-01 (BTCUSDT)
Actualización
Cada 5 minutos

Parámetros

Véase Convenciones de los indicadores cripto.

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Símboloe.g. BTCUSDT
period
string · queryObligatorio
Tamaño de la vela5min, 15min, 1h, 4h, 8h, 1d
start_date
string · query
Primer díaYYYY-MM-DDend_date − 365 días
end_date
string · query
Último díaYYYY-MM-DDhoy

Ejemplo

Python
params = {"symbol": "BTCUSDT", "period": "1h", "start_date": "2025-01-01", "end_date": "2025-03-01"}response = requests.get(f"{BASE_URL}/market_sentiment/get_alpha", headers=headers, params=params, timeout=60)

Respuesta

{"data": {"timestamp": [...], "alpha": [...], "stat": {...}}}.

CampoTipoDescripción
timestampfloat[]Segundos Unix (UTC)
alphafloat[]Valor de sentimiento del mercado
statobjectVéase objeto stat

Errores

EstadoCuerpoCuándo
403{"error": "symbol is required"} / {"error": "period is required"}Falta un parámetro

Notas

  • 2020-01-01 es la primera vela 1d de BTCUSDT; otros símbolos pueden empezar más tarde.

Escasez de capital

GET/capital_shortage/get_alpha
Datos desde
2023-12-09
Actualización
Cada 5 minutos

Parámetros

Sin symbol; todo el mercado. Véase Convenciones de los indicadores cripto.

NombreDescripciónValores permitidosPredeterminado
period
string · queryObligatorio
Tamaño de la vela — tanto 5min como 15min devuelven datos5min, 15min, 1h, 4h, 8h, 1d
start_date
string · query
Primer díaYYYY-MM-DDend_date − 365 días
end_date
string · query
Último díaYYYY-MM-DDhoy

Ejemplo

Python
params = {"period": "1h", "start_date": "2025-01-01", "end_date": "2025-03-01"}response = requests.get(f"{BASE_URL}/capital_shortage/get_alpha", headers=headers, params=params, timeout=60)

Respuesta

{"data": {"timestamp": [...], "alpha": [...], "stat": {...}}}.

CampoTipoDescripción
timestampfloat[]Segundos Unix (UTC)
alphafloat[]Valor de escasez de capital
statobjectVéase objeto stat (calculado respecto a BTC)

Errores

EstadoCuerpoCuándo
403{"error": "period is required"}Falta un parámetro

Notas

  • Cubre solo Binance — todo el mercado, a partir de la APR de préstamo de USDT en Binance.
  • Una única serie de todo el mercado, sin dimensión de símbolo; 2023-12-09 es la primera vela 1d.

Historial de rotación sectorial

GET/sector_rotation/get_history_data
Datos desde
Últimos 365 días (diario)
Actualización
Aproximadamente cada hora

Parámetros

Ninguno.

Ejemplo

Python
response = requests.get(f"{BASE_URL}/sector_rotation/get_history_data", headers=headers, timeout=60)# {"data": {"alpha": {"AI": {"data": [0.0, 0.04377017039444864, 0.04922749428543449, ...],#                           "name_en": "AI", "name_zh": "人工智能"},#                     "BNB Eco": {"data": [0.0, 0.008847752133756215, ...],#                                 "name_en": "BNB Eco", "name_zh": "BNB 生態"}, ...},#           "timestamp": [1757980800.0, 1758067200.0, 1758153600.0, ...]}}   # 51 sectors, 366 points

Respuesta

{"data": {"alpha": {<sector>: {"data": [...], "name_en": ..., "name_zh": ...}}, "timestamp": [...]}}. timestamp está junto a alpha en el nivel superior de data, no dentro de cada sector; es el eje temporal común a todas las series de sector.

CampoTipoDescripción
timestampfloat[]Segundos Unix (UTC), uno por punto — 366 puntos diarios en la respuesta observada
alpha.<sector>.datafloat[]La serie del sector, con la misma longitud y el mismo orden que timestamp (366); el primer elemento es 0.0
alpha.<sector>.name_en / name_zhstringNombre para mostrar del sector

Errores

Solo errores comunes.

Notas

  • La serie es una ventana diaria de los últimos doce meses (366 puntos diarios), y cada sector empieza en 0.0. No hay parámetros, y cada reconstrucción recalcula solo los últimos 365 días, así que no existe un historial más largo.
  • La reconstruye una tarea programada, con reconstrucciones cada 50–60 minutos; se sirve desde la salida de la tarea, sin caché adicional del servidor.

Resumen de rotación sectorial

GET/sector_rotation/get_overview_data
Datos desde
Instantánea
Actualización
Aproximadamente cada hora

Parámetros

Ninguno.

Ejemplo

Python
data = requests.get(f"{BASE_URL}/sector_rotation/get_overview_data", headers=headers, timeout=60).json()["data"]# {"AI": {"name_en": "AI", "name_zh": "人工智能",#         "data": {"1h": {"pct_change": 0.0076}, "8h": ..., "90d": ...},#         "symbols": {"0G": {"id": 38337, "data": {"1h": {"pct_change": 0.0061}, ...}}, ...}}, ...}

Respuesta

{"data": {<sector>: {"name_en", "name_zh", "data", "symbols"}}} (~48 sectores).

CampoDescripción
data{<timeframe>: {"pct_change": float}} para 1h, 8h, 24h, 3d, 7d, 30d, 90d; pct_change es un decimal (0.0061 = +0.61%)
symbols{<token>: {"id": int, "data": {<timeframe>: {"pct_change": float}}}} — desglose por token

Errores

Solo errores comunes.

Notas

  • La reconstruye una tarea programada, con reconstrucciones cada 50–60 minutos; se sirve desde la salida de la tarea, sin caché adicional del servidor.

Desequilibrio de OI

GET/oi_imbalance/get_overview_data
Datos desde
Instantánea
Actualización
Cada 5 minutos

Parámetros

Ninguno.

Ejemplo

Python
data = requests.get(f"{BASE_URL}/oi_imbalance/get_overview_data", headers=headers, timeout=60).json()["data"]# [{"token": "TSLA", "token_id": 39618, "token_price": 313.33, "token_chg": 0.031,#   "market_cap": 40415.98, "oi_total": 59916616.78, "alpha": 1482.5}, ...]

Respuesta

{"data": [...]}, ordenado por alpha descendente.

CampoTipoUnidadDescripción
tokenstring—Token
token_idint—Id del token en Blave
token_pricefloatUSDPrecio
token_chgfloatdecimalVariación del precio
market_capfloatUSDCapitalización de mercado
oi_totalfloatUSDOI de futuros sumado entre Binance / OKX / BingX
alphafloatratiooi_total / market_cap — alto = OI concentrado en relación con el tamaño (riesgo de squeeze / volatilidad)

Errores

Solo errores comunes.

Notas

  • El oi_imbalance de /alpha_table solo lleva el alpha final; este endpoint tiene la tabla completa.
  • Caché del servidor: 5 minutos.

Símbolos de cazador de ballenas

GET/whale_hunter/get_symbols
Datos desde
—
Actualización
Caché del servidor de 10 min

Parámetros

Ninguno.

Ejemplo

Python
symbols = requests.get(f"{BASE_URL}/whale_hunter/get_symbols", headers=headers, timeout=30).json()["data"]

Respuesta

{"data": ["BNBUSDT", "BTCUSDT", ...]}, ordenados.

Errores

Solo errores comunes.

Notas

  • La lista se toma de la última instantánea de interés abierto USDT-M de Binance.

Cazador de ballenas

GET/whale_hunter/get_alpha
Datos desde
2021-12-01 (BTCUSDT)
Actualización
Cada 5 minutos

Parámetros

Véase Convenciones de los indicadores cripto.

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Símboloe.g. BTCUSDT
period
string · queryObligatorio
Tamaño de la vela5min, 15min, 1h, 4h, 8h, 1d
timeframe
string · query
Ventana móvil sobre la que se suma el flujo15min, 1h, 4h, 8h, 24h, 3d24h
score_type
string · query
Variación del interés abierto o volumenscore_oi, score_volumescore_oi
start_date
string · query
Primer díaYYYY-MM-DDend_date − 365 días
end_date
string · query
Último díaYYYY-MM-DDhoy

Ejemplo

Python
params = {"symbol": "BTCUSDT", "period": "1h", "timeframe": "24h", "score_type": "score_oi"}response = requests.get(f"{BASE_URL}/whale_hunter/get_alpha", headers=headers, params=params, timeout=60)

Respuesta

{"data": {"timestamp": [...], "alpha": [...], "stat": {...}}}.

CampoTipoDescripción
timestampfloat[]Segundos Unix (UTC)
alphafloat[]Z-score de la variación del OI (o del volumen) sumada en timeframe frente a su media de 30 días
statobjectVéase objeto stat

Errores

EstadoCuerpoCuándo
403{"error": "symbol is required"} / {"error": "period is required"}Falta un parámetro
403{"error": "Invalid score_type"}score_type no permitido

Notas

  • Cubre solo Binance — interés abierto y volumen de perpetuos USDT-M.
  • timeframe no se valida en el servidor. Se probó un valor fuera de la lista, 2h, y devolvió 200 con datos. Es una única observación — no demuestra que funcione cualquier {n}h. Use los valores de la lista salvo que verifique el que necesita.
  • 2021-12-01 es la primera vela 1d de BTCUSDT; otros símbolos pueden empezar más tarde.

Símbolos de intensidad taker

GET/taker_intensity/get_symbols
Datos desde
—
Actualización
Caché del servidor de 10 min

Parámetros

Ninguno.

Ejemplo

Python
symbols = requests.get(f"{BASE_URL}/taker_intensity/get_symbols", headers=headers, timeout=30).json()["data"]

Respuesta

{"data": ["BNBUSDT", "BTCUSDT", ...]}, ordenados.

Errores

Solo errores comunes.

Notas

  • La lista se toma de la última instantánea de interés abierto USDT-M de Binance.

Intensidad taker

GET/taker_intensity/get_alpha
Datos desde
2020-01-01 (BTCUSDT)
Actualización
Cada 5 minutos

Parámetros

Véase Convenciones de los indicadores cripto.

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Símboloe.g. BTCUSDT
period
string · queryObligatorio
Tamaño de la vela5min, 15min, 1h, 4h, 8h, 1d
timeframe
string · query
Ventana móvil15min, 1h, 4h, 8h, 24h, 3d24h
start_date
string · query
Primer díaYYYY-MM-DDend_date − 365 días
end_date
string · query
Último díaYYYY-MM-DDhoy

Ejemplo

Python
params = {"symbol": "BTCUSDT", "period": "1h", "timeframe": "24h", "start_date": "2025-01-01", "end_date": "2025-03-01"}response = requests.get(f"{BASE_URL}/taker_intensity/get_alpha", headers=headers, params=params, timeout=60)

Respuesta

{"data": {"timestamp": [...], "alpha": [...], "stat": {...}}}.

CampoTipoDescripción
timestampfloat[]Segundos Unix (UTC)
alphafloat[]Z-score del volumen (compra taker − venta taker) sumado en timeframe frente a su media de 30 días; positivo = compra neta
statobjectVéase objeto stat

Errores

EstadoCuerpoCuándo
403{"error": "symbol is required"} / {"error": "period is required"}Falta un parámetro

Notas

  • Cubre solo Binance — volumen de compra/venta taker de perpetuos USDT-M.
  • 2020-01-01 es la primera vela 1d de BTCUSDT; otros símbolos pueden empezar más tarde.

Símbolos de movimiento inusual

GET/unusual_movement/get_symbols
Datos desde
—
Actualización
Caché del servidor de 10 min

Parámetros

Ninguno.

Ejemplo

Python
symbols = requests.get(f"{BASE_URL}/unusual_movement/get_symbols", headers=headers, timeout=30).json()["data"]

Respuesta

{"data": ["BNBUSDT", "BTCUSDT", ...]}, ordenados.

Errores

Solo errores comunes.

Notas

  • La lista se toma de la última instantánea de interés abierto USDT-M de Binance.

Movimiento inusual

GET/unusual_movement/get_alpha
Datos desde
2020-01-02 (BTCUSDT)
Actualización
Cada 5 minutos

Parámetros

Véase Convenciones de los indicadores cripto.

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Símboloe.g. BTCUSDT
period
string · queryObligatorio
Tamaño de la vela5min, 15min, 1h, 4h, 8h, 1d
timeframe
string · query
Ventana sobre la que se mide el movimiento15min, 1h, 4h, 8h, 24h, 3d, 7d24h
start_date
string · query
Primer díaYYYY-MM-DDend_date − 365 días
end_date
string · query
Último díaYYYY-MM-DDhoy

Ejemplo

Python
params = {"symbol": "BTCUSDT", "period": "1h", "timeframe": "24h"}response = requests.get(f"{BASE_URL}/unusual_movement/get_alpha", headers=headers, params=params, timeout=60)

Respuesta

{"data": {"timestamp": [...], "alpha": [...], "close": [...], "stat": {...}}}.

CampoTipoDescripción
timestampfloat[]Segundos Unix (UTC)
alphafloat[]Rentabilidad en timeframe dividida por la volatilidad de 365 días escalada a esa ventana — |alpha| grande = valor atípico
closefloat[]Precio de cierre (USDT)
statobjectVéase objeto stat

Errores

EstadoCuerpoCuándo
400{"error": "symbol is required"} / {"error": "period is required"}Falta un parámetro
500error del servidortimeframe fuera de la lista permitida

Notas

  • Cubre solo Binance — precio de perpetuos USDT-M.
  • 2020-01-02 es la primera vela 1d de BTCUSDT; otros símbolos pueden empezar más tarde.

Símbolos de Squeeze Momentum

GET/squeeze_momentum/get_symbols
Datos desde
—
Actualización
Caché del servidor de 10 min

Parámetros

Ninguno.

Ejemplo

Python
symbols = requests.get(f"{BASE_URL}/squeeze_momentum/get_symbols", headers=headers, timeout=30).json()["data"]

Respuesta

{"data": ["BNBUSDT", "BTCUSDT", ...]}, ordenados.

Errores

Solo errores comunes.

Notas

  • La lista se toma de la última instantánea de interés abierto USDT-M de Binance.

Squeeze Momentum

GET/squeeze_momentum/get_alpha
Datos desde
2020-02-09 (BTCUSDT)
Actualización
Velas diarias

Parámetros

Sin period; fijo en 1d. Véase Convenciones de los indicadores cripto.

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Símboloe.g. BTCUSDT
start_date
string · query
Primer díaYYYY-MM-DDend_date − 365 días
end_date
string · query
Último díaYYYY-MM-DDhoy

Ejemplo

Python
params = {"symbol": "BTCUSDT", "start_date": "2025-01-01", "end_date": "2025-03-01"}response = requests.get(f"{BASE_URL}/squeeze_momentum/get_alpha", headers=headers, params=params, timeout=60)# {"data": {"alpha": [-0.2256, ...], "scolor": ["black", ...], "timestamp": [...], "stat": {...}}}

Respuesta

{"data": {"timestamp": [...], "alpha": [...], "scolor": [...], "stat": {...}}}.

CampoTipoDescripción
timestampfloat[]Segundos Unix (UTC), diario
alphafloat[]Valor de momentum
scolorstring[]black = squeeze activo (Bandas de Bollinger dentro de los Canales de Keltner), grey = squeeze inactivo
statobjectVéase objeto stat

Errores

EstadoCuerpoCuándo
403{"error": "symbol is required"}Falta un parámetro

Notas

  • Cubre solo Binance — precio de perpetuos USDT-M.
  • La serie lleva relleno: hay filas de BTCUSDT desde 2020-01-01, pero alpha es 0.0 hasta 2020-02-09. Una solicitud que empiece antes de la fecha de Datos desde devuelve esas filas de relleno — son relleno, no señal. Descarte los ceros iniciales o empiece en la fecha de Datos desde.
  • 2020-02-09 es el primer alpha distinto de cero de BTCUSDT; otros símbolos pueden empezar más tarde.

Exposición de top traders de Blave

GET/blave_top_trader/get_exposure
Datos desde
2025-03-03
Actualización
Cada 5 minutos

Parámetros

Sin symbol: alpha es una única serie de todo el mercado, no una por moneda. BTCUSDT se usa internamente solo para alinear las velas; no se devuelve y no modifica alpha. Véase Convenciones de los indicadores cripto.

NombreDescripciónValores permitidosPredeterminado
period
string · queryObligatorio
Tamaño de la vela1h, 4h, 8h, 1d
start_date
string · query
Primer díaYYYY-MM-DDend_date − 365 días
end_date
string · query
Último díaYYYY-MM-DDhoy

Ejemplo

Python
params = {"period": "1h", "start_date": "2025-05-01", "end_date": "2025-07-01"}response = requests.get(f"{BASE_URL}/blave_top_trader/get_exposure", headers=headers, params=params, timeout=60)# {"data": {"alpha": [34.32, 40.52, ...], "timestamp": [1747130400.0, ...]}}

Respuesta

{"data": {"timestamp": [...], "alpha": [...]}}. Sin stat.

CampoTipoDescripción
timestampfloat[]Segundos Unix (UTC)
alphafloat[]Exposición neta de los top traders de Blave (el 10% superior por activos de la cuenta) — la mediana, entre esos traders, de la posición nocional neta de cada trader ÷ sus propios activos, ×100 (positivo = neto largo). Es un ratio sin procesar, no un z-score

Errores

EstadoCuerpoCuándo
403{"error": "period is required"}Falta un parámetro

Notas

  • Una única serie de todo el mercado que abarca todas las monedas que tienen estos traders; no hay dimensión de símbolo.

Símbolos de liquidaciones

GET/liquidation/get_symbols
Datos desde
—
Actualización
Caché del servidor de 10 min

Parámetros

Ninguno.

Ejemplo

Python
symbols = requests.get(f"{BASE_URL}/liquidation/get_symbols", headers=headers, timeout=30).json()["data"]

Respuesta

{"data": ["BNBUSDT", "BTCUSDT", ...]}, ordenados.

Errores

Solo errores comunes.

Notas

  • La lista se toma de la última instantánea de interés abierto USDT-M de Binance.

Liquidaciones

GET/liquidation/get_alpha
Datos desde
2023-01-01 para BTC/ETH; otros símbolos pueden empezar más tarde
Actualización
Cada 5 minutos

Parámetros

Véase Convenciones de los indicadores cripto.

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Símboloe.g. BTCUSDT
period
string · queryObligatorio
Tamaño de la vela5min, 15min, 1h, 4h, 8h, 1d
timeframe
string · query
Ventana móvil15min, 1h, 4h, 8h, 24h, 3d24h
start_date
string · query
Primer díaYYYY-MM-DDend_date − 365 días
end_date
string · query
Último díaYYYY-MM-DDhoy

Ejemplo

Python
params = {"symbol": "BTCUSDT", "period": "1h", "timeframe": "24h"}response = requests.get(f"{BASE_URL}/liquidation/get_alpha", headers=headers, params=params, timeout=60)

Respuesta

{"data": {"timestamp": [...], "alpha": [...], "stat": {...}}}.

CampoTipoDescripción
timestampfloat[]Segundos Unix (UTC)
alphafloat[](liquidaciones de cortos − de largos, en monedas) sumadas en timeframe ÷ su desviación estándar móvil de 30 días; no se resta la media. > 0 = se liquidaron más cortos que largos, < 0 = más largos
statobjectVéase objeto stat

Errores

EstadoCuerpoCuándo
400{"error": "symbol is required"} / {"error": "period is required"}Falta un parámetro

Notas

  • La serie lleva relleno: hay filas de BTCUSDT desde 2020-01-01, pero alpha es 0.0 hasta 2023-01-01. Una solicitud que empiece antes de la fecha de Datos desde devuelve esas filas de relleno — son relleno, no señal. Descarte los ceros iniciales o empiece en la fecha de Datos desde. Los símbolos distintos de BTC/ETH pasan a ser distintos de cero aún más tarde, así que compruébelo para cada símbolo.

Mapa de liquidaciones

GET/liquidation/get_map
Datos desde
Instantánea
Actualización
Caché del servidor de 5 s

Parámetros

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Símboloe.g. BTCUSDT
price_max
float · query
Límite superior del eje de preciospreciorango elegido por el servidor
price_min
float · query
Límite inferior del eje de preciospreciorango elegido por el servidor

Ejemplo

Python
response = requests.get(f"{BASE_URL}/liquidation/get_map", headers=headers, params={"symbol": "BTCUSDT"}, timeout=60)# {"data": {"price": 77554.1, "labels": [54287.9, ...], "oi_value": [57693.86, ...],#           "cumsum": [1543109619.0, ...], "liquidation": {"24h": {"buy_liq": [...], "sell_liq": [...]}}}}

Respuesta

{"data": {"price", "labels", "oi_value", "cumsum", "liquidation"}}.

CampoTipoUnidadDescripción
pricefloatUSDTPrecio actual
labelsfloat[]USDT200 tramos de precio
oi_valuefloat[]USDAsignación estimada del interés abierto de Binance a cada tramo (estimación del modelo, no posiciones reales)
cumsumfloat[]USDExposición acumulada a liquidaciones a lo largo de los tramos
liquidationobjectUSD{"24h": {"buy_liq": [...], "sell_liq": [...]}} — liquidaciones reales por órdenes forzosas de Binance en las últimas 24 h por tramo, cada una dividida por un supuesto fijo de cuota de Binance de 0.3: buy_liq = liquidaciones de cortos, sell_liq = liquidaciones de largos

Errores

EstadoCuerpoCuándo
400{"error": "symbol is required"}Falta un parámetro

Cambio del mapa de liquidaciones

GET/liquidation/get_map_change
Datos desde
Últimas 24 horas
Actualización
Se calcula en cada solicitud

Parámetros

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Símboloe.g. BTCUSDT
price_max
float · query
Límite superior del eje de preciospreciorango elegido por el servidor
price_min
float · query
Límite inferior del eje de preciospreciorango elegido por el servidor

Ejemplo

Python
response = requests.get(f"{BASE_URL}/liquidation/get_map_change", headers=headers, params={"symbol": "BTCUSDT"}, timeout=60)# {"data": {"price": 77554.1, "labels": [54287.9, ...], "hist_0_1h": [0.0, ...], "hist_1_8h": [...], "hist_8_24h": [...]}}

Respuesta

{"data": {"price", "labels", "hist_0_1h", "hist_1_8h", "hist_8_24h"}}.

CampoTipoUnidadDescripción
pricefloatUSDTPrecio actual
labelsfloat[]USDT200 tramos de precio (límites inferiores)
hist_0_1hfloat[]USDNueva exposición estimada a liquidaciones en las últimas 0–1 h, por tramo: diferencia positiva entre instantáneas del mapa del modelo, no liquidaciones reales
hist_1_8hfloat[]USDÚltimas 1–8 h
hist_8_24hfloat[]USDÚltimas 8–24 h

Errores

EstadoCuerpoCuándo
400{"error": "symbol is required"}Falta un parámetro

Notas

  • Cada solicitud reconstruye el mapa actual (caché del servidor de 5 s) y lo compara con las instantáneas del mapa guardadas hace aproximadamente 1 h, 8 h y 24 h. Las instantáneas se guardan cada 30 minutos para todos los símbolos, y además en cada solicitud del mapa.

Liquidaciones por moneda

GET/liquidation/get_coin
Datos desde
Instantánea (últimas 24 h)
Actualización
Cada 5 minutos

Las liquidaciones forzosas de una moneda en todos los feeds de exchanges que recopila Blave: cuatro ventanas móviles con el desglose por exchange, una serie horaria de 24 puntos y las notas de cobertura de cada feed. Es flujo real de liquidaciones (como la entrada de get_alpha), no la estimación del modelo que hay detrás de get_map.

Parámetros

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Moneda. Se elimina el sufijo de la moneda de cotización; el symbol de la respuesta es el nombre normalizado de la monedaBTC, BTCUSDT, btc, BTC-USDT-SWAP, BTC_USDT (≤ 32 caracteres)

Ejemplo

Respuesta

{"data": {"symbol", "rank", "updated_at", "windows", "exchanges", "detail_complete", "series"}}.

CampoTipoUnidadDescripción
symbolstring—Nombre normalizado de la moneda, p. ej. BTC
rankint / null—Posición entre las 50 primeras monedas por total de 24 h entre exchanges; null fuera de las 50 primeras o sin ningún evento
updated_atstring / nullISO 8601 UTCHora del último tramo de 5 minutos utilizado
windowsobject—Las claves son las cadenas "1", "4", "12", "24" (horas). Cada una es una ventana móvil que termina en el último tramo de 5 minutos, con los campos siguientes
windows.<h>.total_liq_usd / long_liq_usd / short_liq_usdfloatUSDSuma entre exchanges; long = posiciones largas liquidadas (el precio bajó), short = cortos liquidados (el precio subió)
windows.<h>.long_pct / short_pctfloat / nullratio 0–1Proporción del total de la ventana; null cuando el total de la ventana es 0
windows.<h>.covered_hoursfloathCuántas horas de la ventana tienen realmente tramos (< h justo después de un reinicio del recolector)
windows.<h>.by_exchangeobjectUSD{exchange: {total_liq_usd, long_liq_usd, short_liq_usd}}. Un exchange sin ningún evento en la ventana no tiene clave — lea exchanges[] para distinguir «feed activo, esta moneda sin actividad» de «feed ausente»
exchanges[]object[]—Una fila por feed (seis actualmente, presentes incluso sin eventos), ordenadas por total de 24 h descendente y luego por el orden de la lista de feeds
exchanges[].exchangestring—binance, bybit, gate, okx, htx, bitfinex
exchanges[].listedbool / null—Si ese exchange lista un perpetuo con margen en USDT para la moneda; null cuando no se pudo obtener la lista de contratos (Bitfinex siempre null)
exchanges[].last_event_atstring / nullISO 8601 UTCÚltimo tramo recibido de ese feed (cualquier moneda); null si nunca se ha recibido
exchanges[].price_basisstring—Precio usado para la conversión a USD: trade_avg, bankruptcy, unverified
exchanges[].coveragestring—Grado de completitud del feed: full, full_unstated, sampled_1s, aggregated_1s, sampled_undisclosed
exchanges[].time_basisstring—event — agrupado por la marca de tiempo del propio evento
detail_completebool—false cuando la moneda puede haber quedado fuera de una lista de detalle completa por tramo (los feeds conservan las 100 primeras monedas por tramo de 5 minutos): en ese caso windows puede contar de menos. Las 50 primeras monedas son casi siempre true
series.bucket_secondsintsSiempre 3600
series.pointsobject[]—Siempre 24 entradas, de la más antigua → a la más reciente, en horas de reloj; la última es la hora en curso hasta updated_at (la instantánea se reconstruye cada 5 min, así que puede ir unos minutos por detrás de la solicitud). Cada una es {ts, long_liq_usd, short_liq_usd}; las horas sin eventos son 0, nunca faltan

windows["24"] es el mismo marco móvil que la matriz por exchange, así que la misma moneda muestra allí la misma cifra de 24 h. series va en horas de reloj, por lo que Σ points ≠ windows["24"] por diseño: tome los totales de windows y la evolución temporal de series.

Errores

EstadoCuerpoCuándo
400{"error": "symbol is required"}Falta symbol, está en blanco, tiene más de 32 caracteres o no queda nada tras eliminar el sufijo de la moneda de cotización (p. ej. symbol=USDT)
404{"error": "<SYMBOL> is not a collected symbol"}Ningún exchange lista la moneda y ningún feed la reportó en las últimas 24 h — es una respuesta, no un fallo transitorio
503{"error": "liquidation data unavailable"}Los tramos del origen de datos no respondieron — reintentar más tarde; nunca debe leerse como «0 liquidaciones»

Notas

  • Cubre los feeds de liquidaciones de Binance, Bybit, Gate.io, OKX, HTX y Bitfinex.
  • Solo instantánea: sin start_date / end_date, y nada anterior a 24 h. Para el historial use get_alpha (un desequilibrio long/short normalizado, no importes en USD).
  • El tratamiento del símbolo difiere del de los demás endpoints de liquidaciones: get_alpha / get_map necesitan el formato de perpetuo de Binance (BTCUSDT); aquí BTC y BTCUSDT son la misma moneda.
  • Caché del servidor: 5 minutos.
  • El nocional en USD se convierte en el momento de la recopilación, así que los exchanges pueden sumarse.

Matriz de liquidaciones por exchange

GET/liquidation/get_exchanges
Datos desde
Ventana móvil, alineada a 5 minutos (por defecto, últimas 24 h)
Actualización
Cada 5 minutos

Liquidaciones forzosas de todo el mercado, agregadas por exchange y como matriz moneda × exchange — el complemento de todo el mercado de /liquidation/get_coin. Usa el mismo marco móvil alineado a 5 minutos, así que el total de 24 h de una moneda es la misma cifra en ambos.

Parámetros

NombreDescripciónValores permitidosPredeterminado
hours
int · query
Longitud de la ventana. Fuera del rango → 400 (no se recorta); un valor no entero recurre sin aviso al valor por defecto1–16824
top_n
int · query
Cuántas monedas se listan individualmente; el resto va a others. Mismas reglas de rango / valor no entero que hours1–5010

Ejemplo

Respuesta

{"data": {"exchanges", "coins", "others", "total", "buckets", "covered_hours", "window_hours", "window_start", "window_end", "updated_at"}}.

CampoTipoUnidadDescripción
exchanges[]object[]—Una fila por feed, ordenadas por total descendente: exchange, total_liq_usd, long_liq_usd, short_liq_usd, long_pct, short_pct, events, last_event_at. Siempre se listan todos los feeds: importes null = no se recibieron datos de ese feed en la ventana (se ordenan al final), 0.0 = conectado pero sin liquidaciones
exchanges[].price_basis / .coverage / .time_basisstring—Hasta qué punto es comparable esa fila: trade_avg / bankruptcy / unverified; full, full_unstated, sampled_1s, aggregated_1s, sampled_undisclosed; event. Consérvelos al volver a publicar las cifras — un feed muestreado no es un feed completo
coins[]object[]—Las top_n primeras por total entre exchanges: token, token_id (0 cuando el símbolo no tiene id de token), total_liq_usd, long_liq_usd, short_liq_usd, by_exchange{name: {total/long/short_liq_usd}}. by_exchange es disperso — un feed sin nada para esa moneda no tiene clave; léalo como 0 cuando el total de ese feed en exchanges[] no es null
othersobject—Todo lo que top_n dejó fuera, con los mismos campos más coin_count, de modo que coins[] + others vuelve a sumar el total de cada exchange
totalobjectUSD / ratiototal_liq_usd, long_liq_usd, short_liq_usd, long_pct, short_pct
covered_hoursfloathHoras de la ventana que tienen realmente tramos (< hours justo después de un reinicio del recolector)
bucketsint—Número de tramos de 5 minutos agregados
window_hours / window_start / window_endint / stringh / ISO 8601 UTCLa ventana tal como la resolvió el servidor
updated_atstringISO 8601 UTCÚltimo tramo utilizado

long_liq_usd = posiciones largas liquidadas (el precio bajó); short_liq_usd = cortos liquidados (el precio subió).

Errores

EstadoCuerpoCuándo
400{"error": "hours must be between 1 and 168"} / {"error": "top_n must be between 1 and 50"}Parámetro fuera de rango

Notas

  • Cubre los feeds de liquidaciones de Binance, Bybit, Gate.io, OKX, HTX y Bitfinex.
  • La ausencia total de datos (feeds caídos o fuente de datos inaccesible) sigue siendo un 200 con la misma estructura y todos los importes en null, buckets: 0 — nunca una tabla de ceros. Compruebe total.total_liq_usd antes de usar las cifras.
  • Solo totales — sin serie temporal. La evolución horaria de una moneda está en /liquidation/get_coin; una señal normalizada con historial largo, en /liquidation/get_alpha.
  • La ventana es móvil, no un día natural, y es el mismo marco que /liquidation/get_coin usa para windows["24"].
  • Caché del servidor: 5 minutos.
  • El nocional en USD se convierte en el momento de la recopilación, así que los exchanges pueden sumarse.

Tabla de ratio long/short

GET/long_short_ratio/get_table
Datos desde
Instantánea (último corte transversal)
Actualización
Tramos de 5 minutos

Todas las monedas recopiladas × todas las fuentes de ratio long/short, en este momento. Diez fuentes: Binance, OKX y Gate.io publican tres tipos cada uno — todas las cuentas, cuentas de top traders, posiciones de top traders — y Bybit publica solo cuentas. Las filas se ordenan por el nocional de interés abierto de Binance. Solo se listan las monedas que corresponden a una entrada de la lista de tokens de Blave; la respuesta con clave API es la tabla completa (full: true); la versión anónima de Studio, solo las filas de su lista blanca de 30 monedas.

Parámetros

Ninguno.

Ejemplo

Inicio de la recopilación (primer tramo almacenado, medido en BTC el 2026-09-22)

Clave de la fuenteRecopilación desde
binance_account2021-05-11
binance_top_account / binance_top_position2026-08-22
okx_account / okx_top_account / okx_top_position2025-02-18
gate_account / gate_top_account / gate_top_position2026-08-12
bybit_account2026-08-12

Todas las fuentes tienen ya más antigüedad que los 7 días que sirve este conjunto de datos, así que ninguna limita una consulta — las fechas solo importan si se indica que una fuente «no tiene historial».

Respuesta

{"data": {"coins", "sources", "summary", "tokens_shown", "tokens_total", "full", "updated_at"}}.

CampoTipoUnidadDescripción
coins[]object[]—Una fila por moneda: token, token_id, más un valor por cada clave de fuente
coins[].<source key>float / nullratioCuentas (o posiciones) largas ÷ cortas. null = ese exchange no tiene ese feed para la moneda. Proporción de largos = r / (1 + r) — la API no la precalcula
sources[]object[]—Los diez feeds, en el orden de las columnas. Lea este campo, nunca una lista de claves escrita a mano en el código
sources[].keystring—<exchange>_<type>, p. ej. binance_top_position — la clave usada en coins[]
sources[].exchange / .typestring—binance / okx / gate / bybit; account / top_account / top_position
sources[].last_atstringISO 8601 UTCMuestra más reciente de ese feed
sources[].stalebool—La muestra más reciente de ese feed tiene más de 1 hora (medida respecto al momento actual). El updated_at del nivel superior es el de la fuente más reciente y no dice nada sobre ninguna en particular — evalúe cada fuente por su propio last_at / stale
summary.binance_tokens / .binance_long_majorityint—Monedas con un ratio de cuentas de Binance / de ellas, cuántas están por encima de 1. Se calcula sobre toda la tabla, no sobre las filas mostradas
tokens_shown / tokens_totalint—Filas devueltas / filas de la tabla. Son iguales con una clave API
fullbool—true con una clave API; false en la versión anónima de Studio
updated_atstringISO 8601 UTCTramo más reciente entre todas las fuentes

«Top trader» es una población distinta en cada exchange — no compare los niveles entre exchanges.

BolsaQuién cuenta como top trader (texto oficial original)
Binance"the top 20% users with the highest margin balance"
OKX"the top 5% of traders with the largest open position value"
Gate.ioNo se ha publicado nunca — la documentación solo nombra los campos

Por tanto, que binance_top_account esté por encima de okx_top_account no dice nada sobre en qué exchange los grandes traders están más largos. Compare cada fuente con su propio historial.

Errores

EstadoCuerpoCuándo
503{"error": "long short ratio data unavailable"}Sin instantánea reciente — reintentar más tarde; nunca debe leerse como un mercado vacío

Notas

  • Es un corte transversal, no un historial. Para una serie use /long_short_ratio/get_coin (7 días) — no existe un endpoint de historial largo para este conjunto de datos.
  • La granularidad es de 5 minutos, pero cada fuente publica a su propio ritmo — no lo describa como «se actualiza cada 5 minutos».
  • La instantánea es el último tramo que ha publicado cada fuente; los tramos de Gate.io y OKX llegan con unos 10 minutos de retraso.

Ratio long/short por moneda

GET/long_short_ratio/get_coin
Datos desde
Últimos 7 días, por hora + el último punto de 5 minutos
Actualización
Tramos de 5 minutos

Una moneda, las diez fuentes: el último valor de 5 minutos de cada una, una serie horaria de 7 días por fuente y el cierre del perpetuo de Binance en el mismo marco.

Parámetros

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Moneda. Se elimina el sufijo de la moneda de cotización; el symbol de la respuesta es el nombre normalizado de la monedaBTC, BTCUSDT, btc (≤ 32 caracteres)

Ejemplo

Respuesta

{"data": {"latest", "series", "sources", "symbol", "token_id", "updated_at"}}.

CampoTipoUnidadDescripción
latest.<source key>object / null—{value, ts} — la muestra de 5 minutos más reciente de esa fuente; null cuando la fuente no lista la moneda
series.bucket_seconds / .daysints / d3600 / 7
series.timestampint[]s epoch168 posiciones, de la más antigua → a la más reciente, una por hora
series.<source key>float[] / nullratioÚltima muestra de cada hora; null para una hora sin muestra. Todo el campo es un único null (no un array) para una fuente que no lista la moneda
series.pricefloat[] / nullUSDCierre del perpetuo de Binance en el mismo marco. Un único null (con price_symbol / price_multiplier también null) cuando la moneda no tiene perpetuo en Binance
series.price_symbol / .price_multiplierstring / int—De qué perpetuo procede el precio y su multiplicador de contrato (1000PEPEUSDT → 1000; price ÷ price_multiplier = precio por moneda)
series.provisional_fromint / nulls epochPrimera posición que aún puede cambiar (las fuentes cierran sus datos hasta ~10 min tarde); null cuando ninguna fuente tiene datos
sources[]object[]—La lista completa de fuentes, con los mismos campos que la tabla más listed
sources[].listedbool—false = ese exchange no tiene ese feed para esta moneda; sus entradas latest y series son null
symbol / token_id / updated_at——Como en la tabla

Errores

EstadoCuerpoCuándo
400{"error": "symbol is required"}Falta symbol, está en blanco, tiene más de 32 caracteres o no queda nada tras eliminar el sufijo de la moneda de cotización
404{"error": "<SYMBOL> is not a collected symbol"}Ninguna fuente recopila la moneda — es una respuesta, no un fallo transitorio
503{"error": "long short ratio data unavailable"}No se pudo leer una fuente listada. null solo significa «ese exchange no la lista»

Notas

  • Cubre los feeds de ratio long/short de Binance, OKX, Gate.io y Bybit.
  • La advertencia sobre los «top traders» entre exchanges de /long_short_ratio/get_table se aplica también aquí.
  • 7 días es todo el historial que sirve este endpoint; no hay start_date / end_date.
  • Sobre la «versión anónima de Studio» en todas las capturas de los endpoints de datos sin procesar de esta página: las páginas de Studio (/studio/charts/...) sirven el mismo payload, generado por el mismo código, sin clave, y de ahí se tomaron estos ejemplos. No sustituyen a los endpoints con clave API: las tablas se recortan a 30 monedas (full: false), y una moneda fuera de la lista blanca de Studio responde 403 {"error_code": "ERR001", ..., "anon_whitelist": [...]} en lugar de datos. Los endpoints con clave API documentados aquí no tienen lista blanca ni recorte de filas.
  • Los tramos de Gate.io y OKX llegan con unos 10 minutos de retraso.

Tabla de interés abierto

GET/oi_imbalance/get_table
Datos desde
Instantánea (último corte transversal)
Actualización
Aproximadamente cada 15 minutos

Todas las monedas recopiladas × cinco exchanges, en nocional USD. Base: solo perpetuos con margen en USDT, nocional en USD, un solo lado. Un exchange que reporta ambos lados se divide a la mitad (exchanges[].side_factor, Gate.io = 0.5). Como todos los valores ya son nocional en USD, los contratos con multiplicador (1000PEPE y similares) se suman entre exchanges sin reescalar.

Parámetros

Ninguno.

Ejemplo

Inicio de la recopilación (primer tramo almacenado, medido en BTC el 2026-09-22)

BolsaRecopilación desde
binance2021-12-01
bingx2025-04-15
gate2026-08-12
okx2026-09-21
bybit2026-09-21

OKX y Bybit son la razón de que n_full_7d sea 3 de 5 y de que su chg_24h siguiera siendo null el 2026-09-22 — lea exchanges[].since / full_7d en lugar de estas fechas, que pierden vigencia.

Respuesta

{"data": {"coins", "exchanges", "total", "summary", "tokens_shown", "tokens_total", "full", "updated_at"}}.

CampoTipoUnidadDescripción
coins[].token / .token_idstring / int—Moneda
coins[].oi_totalfloatUSDSuma de los cinco exchanges
coins[].chg_1h / .chg_4h / .chg_24hfloat / nullfracciónVariación decimal (0.0675 = +6.75 %). Cada ventana cuenta solo los exchanges que tienen una referencia al inicio de esa ventana, con numerador y denominador sobre el mismo conjunto; null cuando ninguno la tiene
coins[].market_capfloat / nullUSDCapitalización de mercado; null cuando no hay ninguna utilizable
coins[].oi_mcapfloat / nullratiooi_total ÷ market_cap; null cuando el token no tiene capitalización de mercado
coins[].by_exchangeobject—{exchange: {oi, chg_1h, chg_4h, chg_24h}}, una clave por exchange; null cuando la moneda no está listada allí. Un null en una ventana concreta significa que ese exchange no tenía una referencia tan antigua — un feed más reciente que la ventana
exchanges[]object[]—binance, okx, bingx, bybit, gate — oi de todo el mercado, side_factor, since, full_7d, last_at, stale
exchanges[].since / .full_7dstring / boolfechaEl primer día del feed cuando tiene menos de 7 días de historial (full_7d: false); si no, null / true. Es informativo en esta tabla (no tiene ventana de 7 días); en /oi_imbalance/get_coin, un feed así no tiene referencia de 7 d y queda fuera de series.total
totalobject—oi de todo el mercado, chg_1h/4h/24h, n_exchanges, n_full_7d
summary.oi_mcap_leader / _valuestring / float—El mayor OI ÷ capitalización de mercado entre las 100 primeras monedas por OI
tokens_shown / tokens_total / full / updated_at——Como en la tabla de ratio long/short

No es la misma cifra que el indicador OI 失衡. /oi_imbalance/get_overview_data (y el alpha oi_imbalance que hay detrás de las condiciones del screener y de las alertas) es un agregado de tres exchanges — Binance + OKX + BingX. Esta tabla abarca cinco exchanges con la base indicada arriba. Los dos valores de oi_total difieren, así que un umbral ajustado con uno no sirve para el otro.

Errores

EstadoCuerpoCuándo
503{"error": "open interest data unavailable"}La tarea no tiene un resultado reciente (falta o tiene más de una hora) — nunca una tabla de ceros

Notas

  • chg_24h: null en OKX / Bybit en la captura anterior es la regla del feed reciente, no un hueco en el mercado: esos dos empezaron el 2026-09-21, así que aún no tenían referencia de 24 h.
  • Es un corte transversal, no un historial. Los últimos 7 días de una moneda (por hora, los cinco exchanges) están en /oi_imbalance/get_coin; un historial de longitud suficiente para backtests de una moneda en un exchange, en /oi_imbalance/get_history.
  • La instantánea incluye las variaciones de 1 h / 4 h / 24 h. La reconstruye una tarea programada aproximadamente cada 15 minutos a partir de tramos de origen de 5 minutos; los tramos de Gate.io y OKX llegan con unos 10 minutos de retraso.

Interés abierto por moneda

GET/oi_imbalance/get_coin
Datos desde
Últimos 7 días, por hora + valores actuales
Actualización
Tramos de 5 minutos

El interés abierto de una moneda por exchange, con la misma base que la tabla: valor actual y proporción, cuatro ventanas de variación con los exchanges contados en cada una, y una línea de total horario de 7 días.

Parámetros

symbol, exactamente igual que en /long_short_ratio/get_coin.

Ejemplo

Respuesta

{"data": {"exchanges", "windows", "series", "oi_total", "market_cap", "oi_mcap", "oi_mcap_rank", "tokens_total", "symbol", "token_id", "updated_at"}}.

CampoTipoUnidadDescripción
exchanges[]object[]—La lista completa de los cinco exchanges: key, oi (USD), share (de oi_total), chg_1h/4h/24h/7d, side_factor, listed, since, full_7d, last_at, stale
exchanges[].listedbool—false = la moneda no está listada allí; sus valores son null
oi_total / market_cap / oi_mcapfloatUSD / ratioComo en la tabla
oi_mcap_rank / tokens_totalint / null—Posición por oi_mcap en la última ronda de la tarea de la tabla; null cuando esa tarea no tiene un resultado reciente
windows.<1h|4h|24h|7d>.chg / .chg_usdfloat / nullfracción / USDVariación del total de los exchanges contados
windows.<w>.exchangesstring[]—Qué exchanges se contaron en esa ventana — un feed reciente no aparece, así que 24 h / 7 d pueden contar menos exchanges que 1 h
series.timestampint[]s epoch168 posiciones horarias, de la más antigua → a la más reciente
series.totalfloat[] / nullUSDOI total por posición — en esta línea solo están los series.total_exchanges (los feeds full_7d), así que no es comparable en nivel con oi_total. Una posición es null cuando alguno de esos exchanges no tiene muestra en esa hora; todo el campo es null cuando ningún exchange es full_7d para la moneda
series.total_exchangesstring[]—Qué exchanges suma la línea
series.price / .price_symbol / .price_multiplier / .provisional_from——Como en /long_short_ratio/get_coin

Errores

400 / 404 / 503 exactamente igual que en /long_short_ratio/get_coin, con {"error": "open interest data unavailable"} en el 503.

Notas

  • Cubre el interés abierto de Binance, OKX, BingX, Bybit y Gate.io.
  • Que windows["1h"]["exchanges"] tenga cinco entradas mientras windows["24h"] tiene tres es la regla del feed reciente, no datos faltantes — lea esa lista antes de comparar ventanas.
  • La advertencia sobre OI 失衡 de /oi_imbalance/get_table se aplica también a este oi_total.
  • Solo siete días. Para una serie más larga con la que hacer backtests, use /oi_imbalance/get_history (un exchange, en monedas en lugar de USD — una base distinta de oi_total).
  • Los tramos de Gate.io y OKX llegan con unos 10 minutos de retraso.

Historial de interés abierto

GET/oi_imbalance/get_history
Datos desde
binance 2021-12-01; bybit 2025-08-21; gate 2026-03-28
Actualización
Tramos de 5 minutos

El interés abierto de una moneda en un solo exchange, como serie temporal apta para backtests — la misma base que la tarjeta 未平倉量 del panel de Studio. alpha es interés abierto de un solo lado en monedas, no en USD. Los contratos con multiplicador se convierten de nuevo a monedas (1000PEPE devuelve un número de PEPE). Cada tramo es la última lectura de su periodo — el interés abierto es un saldo, nunca se suma.

Parámetros

NombreDescripciónValores permitidosPredeterminado
symbol
string · queryObligatorio
Moneda, con la misma regla que /oi_imbalance/get_coinBTC, BTCUSDT, btc
period
string · queryObligatorio
Tamaño del tramo. 1w devuelve un 400 (unidad no admitida); 1m se interpreta como 1min, así que devuelve un 400 por ser inferior a 5min{n}min / {n}h / {n}d, mínimo 5min (p. ej. 5min, 1h, 4h, 1d)
start_date
string · query
Primer día, inclusiveYYYY-MM-DD (UTC)end_date − 365 días
end_date
string · query
Último día, inclusiveYYYY-MM-DD (UTC)hoy
oi_exchange
string · query
De qué exchange se lee el interés abiertobinance, bybit, gate (sin distinguir mayúsculas de minúsculas)binance

Ventana por solicitud: como máximo 365 días; un rango más largo se recorta sin aviso (start_date pasa a end_date − 365 días, sin error), como en /kline.

Ejemplo

Respuesta

{"data": {"timestamp", "alpha", "close", "exchanges"}}, arrays paralelos, del más antiguo → al más reciente.

CampoTipoUnidadDescripción
timestampfloat[]Segundos Unix (UTC)Inicio del tramo
alphafloat[]monedasInterés abierto de un solo lado en oi_exchange, última lectura del tramo
closefloat[]USDTPrecio del perpetuo USDT-M de Binance — por unidad de contrato, es decir, por 1000 monedas en 1000PEPE
exchangesstring[]—El exchange realmente leído, p. ej. ["binance"]

alpha × close no es el interés abierto en USD en un contrato con multiplicador. Ahí close es el precio por unidad de contrato (por 1000 monedas en 1000PEPE), mientras que alpha está en monedas individuales — divida antes close por el multiplicador. En los contratos sin multiplicador, como BTC, alpha × close ≈ interés abierto en USD.

Gate.io: envíe siempre start_date ≥ 2026-03-28 — la ventana por defecto (end_date − 365 días) empieza antes del historial de Gate y devuelve un 400.

No es la misma cifra que /oi_imbalance/get_table / get_coin (cinco exchanges sumados, en USD) ni que el indicador OI 失衡 (/oi_imbalance/get_overview_data).

Errores

EstadoCuerpoCuándo
400{"error": "symbol is required"} / {"error": "period is required"}Falta (aquí es un 400, no el 403 de los endpoints de indicadores)
400{"error": "period must be at least 5min, in min / h / d units"}period inferior a 5min (incluido 1m, que se interpreta como 1min) o en una unidad distinta de min / h / d (1w)
400{"error": "invalid date format, expected YYYY-MM-DD"}start_date / end_date mal formados
400{"error": "start_date must not be after end_date"}start_date > end_date
400{"error": "oi_exchange must be one of binance, bybit, gate"}oi_exchange fuera de la lista
400{"error": "no <exchange> open interest for <TOKEN> at start_date; this exchange's history may start later — try a later start_date"}La ventana empieza antes del historial de ese exchange (véase Datos desde). Sin start_date, oi_exchange=gate siempre cae en este caso hasta que su historial supere los 365 días (≈ 2027-03) — para Gate envíe siempre start_date ≥ 2026-03-28
404{"error": "<TOKEN> is not a collected symbol on <exchange>"}Ese exchange no lista la moneda, la moneda no tiene perpetuo en Binance o está deslistada — es una respuesta, no un fallo transitorio
503{"error": "<exchange> open interest data unavailable for <TOKEN>"}Los datos no se pudieron leer en este momento — reintentar

Notas

  • Cubre el interés abierto de Binance, Bybit y Gate.io; close es el precio del perpetuo USDT-M de Binance.
  • Un 200 con arrays vacíos significa que no hay ningún tramo en esa ventana (p. ej. la moneda se listó después) — no lo almacene en caché como un «sin datos» permanente.
  • Cuando end_date es hoy, el último tramo sigue cambiando hasta que se cierra su periodo.
  • Para un historial de más de 365 días, envíe una solicitud por año y concatene los resultados.
  • La resolución es de 5 minutos. La serie de cada exchange empieza en la fecha de Datos desde, o en la fecha de listado de la moneda en ese exchange si es posterior. Solo contratos listados actualmente.

Tabla de CVD

GET/taker_intensity/get_cvd_table
Datos desde
Instantánea (ventanas móviles de 1 h / 4 h / 24 h)
Actualización
Aproximadamente cada 15 minutos

Importe negociado de compra y venta taker (órdenes a mercado) por moneda, en USD, en tres exchanges: Binance a partir del volumen de compra taker en moneda de cotización de la vela de 5 minutos (venta = el total de la vela menos ese volumen), OKX a partir de su volumen taker en USD, Gate.io a partir de los contratos taker × el multiplicador y el precio mark de la misma fila. Solo perpetuos — sin spot — y agregado a partir de velas de 5 minutos, no de operaciones individuales. Se usa el importe negociado que reporta cada exchange; el volumen nunca se multiplica por un precio tomado de otro exchange.

Parámetros

Ninguno.

Ejemplo

Python
data = requests.get(f"{BASE_URL}/taker_intensity/get_cvd_table", headers=headers, timeout=30).json()["data"]buying = sorted((c for c in data["coins"] if c["net_24h"] is not None), key=lambda c: -c["net_24h"])[:10]print(data["total"]["net_24h"], [(c["token"], c["net_24h"]) for c in buying])# Live capture 2026-09-22 (abridged with ...; anonymous studio twin, same inner shape):# {"coins": [{"token": "BTC", "token_id": 1, "buy_24h": 24607245298.03, "sell_24h": 23128502231.73,#             "net_1h": -212647361.27, "net_4h": -207128163.51, "net_24h": 1478743066.31,#             "by_exchange": {"binance": {"buy_24h": 12663681424.94, "sell_24h": 12135756153.44,#                                         "net_1h": -191133129.94, "net_4h": -217337267.5, "net_24h": 527925271.5},#                             "gate": {...}, "okx": {...}}}, ...],#  "exchanges": [{"key": "binance", "buy_24h": 34978603608.55, "sell_24h": 35112588381.38,#                 "net_24h": -133984772.74, "last_at": "2026-09-22T05:25:00+00:00", "stale": false}, ... 3 rows],#  "total": {"buy_24h": 63543431942.93, "sell_24h": 62491177680.21, "net_24h": 1052254262.8},#  "tokens_shown": 30, "tokens_total": 591, "full": false, "updated_at": "2026-09-22T05:25:00+00:00"}

Inicio de la recopilación (primer tramo almacenado, medido en BTC el 2026-09-22)

BolsaCampo de origenRecopilación desde
binancekline de 5 minutos (importe negociado de compra taker)2020-01-01
gatecontract_stats2026-08-12
okxtaker_volume_usd2026-09-21

OKX tiene además el límite de que el exchange conserva solo 5 días, así que sigue en full_7d: false hasta una semana después de esa fecha. Esta tabla no incluye since / full_7d (no tiene ventana de 7 días) — léalos por moneda en exchanges[] de /taker_intensity/get_cvd_coin, no en estas fechas.

Respuesta

{"data": {"coins", "exchanges", "total", "tokens_shown", "tokens_total", "full", "updated_at"}}.

CampoTipoUnidadDescripción
coins[].token / .token_idstring / int—Moneda
coins[].buy_24h / .sell_24hfloat / nullUSDImporte negociado de compra / venta taker en las 24 h móviles, sumado entre los exchanges de la moneda que no están desfasados; null cuando todos lo están
coins[].net_1h / .net_4h / .net_24hfloat / nullUSDbuy − sell en cada ventana móvil (misma regla de null)
coins[].by_exchangeobject—{exchange: {buy_24h, sell_24h, net_1h, net_4h, net_24h}}, una clave por exchange; null cuando la moneda no está listada allí o los datos de ese exchange para ella están desfasados
exchanges[]object[]—binance, okx, gate — buy_24h, sell_24h, net_24h de todo el mercado, last_at, stale
exchanges[].stalebool—La última vela de ese feed tiene más de una hora: sus ventanas se devuelven como null y el feed queda fuera de los totales, en lugar de aportar una suma que, sin aviso, cubre menos que la ventana
totalobjectUSDbuy_24h, sell_24h, net_24h de todo el mercado sobre los exchanges con datos recientes
tokens_shown / tokens_total / full / updated_at——Como en las demás tablas de datos sin procesar

Errores

EstadoCuerpoCuándo
503{"error": "cvd data unavailable"}La tarea no tiene un resultado reciente — nunca ceros

Notas

  • No es lo mismo que el alpha taker_intensity (/taker_intensity/get_alpha), que es una señal normalizada de tipo z-score con años de historial. Esto es importe negociado en USD sin procesar, en este momento.
  • Las ventanas son móviles y terminan en la última vela cerrada de 5 minutos, así que net_24h no es un día natural.
  • La reconstruye una tarea programada aproximadamente cada 15 minutos a partir de tramos de origen de 5 minutos; los tramos de Gate.io y OKX llegan con unos 10 minutos de retraso.

CVD por moneda

GET/taker_intensity/get_cvd_coin
Datos desde
Últimos 7 días, por hora + ventanas móviles
Actualización
Tramos de 5 minutos

Compra / venta / neto taker de una moneda por exchange (misma base que la tabla), más un neto horario de 7 días y su acumulado — la propia línea de CVD.

Parámetros

symbol, exactamente igual que en /long_short_ratio/get_coin.

Ejemplo

Respuesta

{"data": {"exchanges", "windows", "series", "symbol", "token_id", "updated_at"}}.

CampoTipoUnidadDescripción
windows.<1h|4h|24h|7d>objectUSD{buy, sell, net} sumados entre los exchanges con datos recientes
exchanges[]object[]—La lista completa: key, listed, windows (las mismas cuatro, por exchange), since, full_7d, last_at, stale
exchanges[].full_7dbool—false = menos de 7 días de historial para esta moneda allí: su ventana de 7 d es null y queda excluido del total de 7 d y de la serie. OKX conserva solo 5 días, así que es false hasta una semana después del inicio del feed
series.timestampint[]s epoch168 posiciones horarias, de la más antigua → a la más reciente
series.netfloat[]USDFlujo taker neto por hora de reloj, sumado entre series.exchanges; null para una hora sin datos. Cuando series.exchanges está vacío, todas las posiciones son null y cvd se mantiene plano en 0 — en ese caso la línea no aporta información
series.cvdfloat[]USDTotal acumulado de net; cvd[0] = 0 — la línea es una forma, no un nivel absoluto
series.exchangesstring[]—Qué exchanges suma la línea
series.price / .price_symbol / .price_multiplier / .provisional_from——Como en /long_short_ratio/get_coin

Errores

400 / 404 / 503 exactamente igual que en /long_short_ratio/get_coin, con {"error": "cvd data unavailable"} en el 503.

Notas

  • Cubre el flujo taker de Binance, OKX y Gate.io.
  • Que series.exchanges sea más corto que exchanges[] es la regla de full_7d — compare la serie consigo misma, no con windows["24h"], que cuenta más exchanges.
  • cvd[0] = 0 por construcción: solo la pendiente y los puntos de giro aportan información.
  • Los tramos de Gate.io y OKX llegan con unos 10 minutos de retraso.

Commitments of Traders de futuros de Bitcoin / Ether de CME (último informe)

GET/cme_cot/get_latest
Datos desde
Solo el último informe
Actualización
Semanal, los viernes a las 15:30 (hora del Este de EE. UU.)

La última fila semanal de la CFTC para cada uno de los cuatro futuros cripto de CME, más la suma de estándar + micro en monedas por activo. Misma estructura que una fila de /cme_cot/get_history, sin price.

Parámetros

Ninguno.

Ejemplo

Python
data = requests.get(f"{BASE_URL}/cme_cot/get_latest", headers=headers, timeout=60).json()["data"]btc = next(c for c in data["contracts"] if c["key"] == "btc")# Live capture 2026-10-07 (abridged):# {"key": "btc", "name": "Bitcoin Futures (CME)", "cftc_code": "133741", "coin": "BTC", "coin_per_contract": 5,#  "latest": {"date": "2026-09-29", "open_interest": 19596, "open_interest_change": -2719,#             "tff": {"leveraged_funds": {"long": 4980, "short": 11836, "spread": 538, "net": -6856,#                                         "long_change": 235, "short_change": -862, "spread_change": -2187, "net_change": 1097},#                     "asset_manager": {"long": 5069, "short": 1483, "spread": 297, "net": 3586, ...}, ...},#             "legacy": {"non_commercial": {...}, "commercial": {...}, "nonreportable": {...}}}}# data["source_updated"] == "Fri, 02 Oct 2026 19:30:08 GMT", data["stale"] == False

Respuesta

{"data": {"contracts": [...], "combined": [...], "report", "units", "source", "source_updated", "fetched_at", "stale"}}

CampoDescripción
contracts[]Uno por contrato: key (btc, micro_btc, eth, micro_eth), name, cftc_code, coin, coin_per_contract (5 / 0.1 / 50 / 0.1), latest (una fila, véase get_history; null si el contrato no tiene filas)
combined[]btc_combined, eth_combined: name, coin, components, units, micro_since, note, latest (una fila combinada, en monedas)
reportfutures_only
unitsUnidad de las posiciones de contracts[].latest: contratos (× coin_per_contract para obtener monedas)
sourceLínea de atribución de la CFTC — muéstrela junto a cualquier cifra que publique
source_updatedCuándo actualizó la CFTC el conjunto de datos por última vez
fetched_atCuándo lo obtuvo Blave (UTC)
staletrue = no se pudo acceder a la CFTC y se sirve la última copia almacenada

Errores

EstadoCuerpoCuándo
503{"error": "CFTC data unavailable. Please retry shortly."}No se pudo acceder a la CFTC y no hay copia almacenada

Notas

  • Para el historial use /cme_cot/get_history.
  • Las posiciones corresponden al martes (al lunes cuando el martes es festivo en EE. UU.) y la CFTC las publica el viernes de esa semana a las 15:30 (hora del Este de EE. UU.); un festivo federal entre miércoles y viernes traslada la publicación al siguiente día hábil, y un cierre del Gobierno la retrasa semanas.
  • Caché del servidor: 1 hora.

Commitments of Traders de futuros de Bitcoin / Ether de CME (historial)

GET/cme_cot/get_history
Datos desde
2018-04-10 (btc); otros contratos más tarde
Actualización
Semanal, los viernes a las 15:30 (hora del Este de EE. UU.)

El posicionamiento semanal de un contrato por categoría de trader. Las filas llevan la fecha del informe — el día al que corresponden las posiciones, normalmente un martes (un lunes cuando el martes es festivo en EE. UU.). Los datos se hicieron públicos más tarde: normalmente el viernes de esa semana a las 15:30 ET; un festivo federal entre miércoles y viernes traslada la publicación al siguiente día hábil, y un cierre del Gobierno la retrasa semanas (los informes de 2018-12-24 … 2019-02-26 salieron el 2019-02-01 … 03-05; los informes de 2025-09-30 … 2026-01-20, el 2025-11-19 … 2026-01-23 — CFTC Releases 7864-19 y 9138-25). Un backtest no debe actuar sobre una fila antes de su publicación.

Parámetros

NombreDescripciónValores permitidosPredeterminado
contract
string · query
Los contratos individuales están en contratos; *_combined = estándar + micro sumados en monedasbtc, micro_btc, eth, micro_eth, btc_combined, eth_combined (sin distinguir mayúsculas de minúsculas)btc
start_date
string · query
Primera fecha de informe, inclusive. Si se omite = solo el último año — indique una fecha temprana (p. ej. 2018-01-01) para el historial completoYYYY-MM-DDhoy (UTC) − 365 días
end_date
string · query
Última fecha de informe, inclusiveYYYY-MM-DDla más reciente

Ejemplo

Respuesta

{"data": {"contract": {...}, "rows": [...], "price_source", "report", "units", "source", "source_updated", "fetched_at", "stale"}}, filas de la más antigua → a la más reciente.

contract: key, name, coin, y cftc_code + coin_per_contract (contrato individual) o components + micro_since + note (combinado).

Cada fila:

CampoTipoDescripción
datestringFecha del informe — normalmente un martes, un lunes cuando el martes es festivo en EE. UU.
open_interest / open_interest_changenumberInterés abierto total y su variación semanal
tffobjectGrupos dealer, asset_manager, leveraged_funds, other_reportables, nonreportable
legacyobject | nullGrupos non_commercial, commercial, nonreportable; null si la CFTC no tiene fila Legacy para esa semana
pricefloat | nullCierre diario UTC del spot BTCUSDT / ETHUSDT de Binance en la fecha del informe; null cuando no está disponible
includedstring[]Solo contratos combinados: qué contratos suma esta fila (["btc"] antes de micro_since)

Cada grupo: long, short, spread (no en nonreportable / commercial), net (= long − short), y long_change, short_change, spread_change, net_change. Unidades: contratos para un contrato individual, monedas para uno combinado. Los campos *_change son las cifras semanales de la propia CFTC, no diferencias entre filas — la CFTC se salta semanas (p. ej. cierres del Gobierno), así que nunca calcule diferencias entre filas por su cuenta.

Errores

EstadoCuerpoCuándo
400{"error": "contract must be one of btc, micro_btc, eth, micro_eth, btc_combined, eth_combined"}Contrato desconocido
400{"error": "Invalid start_date, expected YYYY-MM-DD"} (o end_date) / {"error": "start_date must not be after end_date"}Fecha no válida / rango invertido
503{"error": "CFTC data unavailable. Please retry shortly."}No se pudo acceder a la CFTC y no hay copia almacenada

Notas

  • *_combined tiene una discontinuidad en micro_since: la semana en que se incorpora el micro, los totales dan un salto y el *_change de esa semana incluye toda la primera posición del micro. Empiece un backtest combinado después de micro_since, o use el contrato individual btc / eth.
  • El historial completo de BTC son ~440 filas semanales (~0.5 MB) — una sola solicitud, sin paginación.
  • Licencia: los datos de la CFTC son de dominio público, pero la CFTC pide que se la cite — mantenga source junto a cualquier cifra que muestre. Sin respaldo de la CFTC.
  • Fecha de inicio por contrato: btc 2018-04-10, micro_btc 2021-05-04, eth 2021-04-06, micro_eth 2021-12-14. Los futuros de BTC propios de CME entran en el COT el 2018-04-10, no en su lanzamiento de 2017-12.
  • Caché del servidor: 1 hora.
  • price es el cierre diario UTC del spot de Binance.