/api/sd/ls
GETDisponible

Ratio largos/cortos de una moneda

Capa de datos propia: ratio largos/cortos de una moneda

GET/api/sd/ls

Solicitud

Parámetros de consulta

NombreTipoObligatorioValor por defectoValores admitidosDescripción
coinstringObligatorio——Símbolo de la moneda; 400 cuando falta. Alias: `base`. Ejemplo: BTC

Solicitud de ejemplo

curl -s "https://www.coinboss.com/api/sd/ls?coin=BTC"

Campos de la respuesta

La tabla de campos se genera a partir de respuestas reales, por lo que recoge exactamente lo que devuelve el endpoint. Las rutas usan a[] para los elementos de un array y {*} para los objetos cuya clave es un nombre dinámico, como una moneda o un exchange.

CampoTipoUnidadDescripción
successboolean—true cuando la solicitud se completó correctamente. En caso de fallo, el cuerpo es `{ success: false, code, error, request_id }`.
coinstring—Símbolo de la moneda, en mayúsculas (por ejemplo BTC).
nownumbermsHora del servidor en el momento de generar la respuesta.
accountobject—Proporción de todas las cuentas que están netamente largas frente a netamente cortas.
account.long_pctnumber%Cuota de largos.
account.short_pctnumber%Cuota de cortos.
account.rationumber—Cuota de largos dividida entre la cuota de cortos (1 = equilibrado).
account.n_exchangesnumber—Número de exchanges que aportan datos.
account.by_exchangearray—Desglose por exchange.
account.by_exchange[]object—Desglose por exchange.
account.by_exchange[].exchangestring—Id del exchange, en minúsculas (por ejemplo `binance`).
account.by_exchange[].symbolstring—Símbolo del instrumento tal como lo normaliza CoinBoss (por ejemplo BTCUSDT).
account.by_exchange[].long_pctnumber%Cuota de largos.
account.by_exchange[].short_pctnumber%Cuota de cortos.
account.by_exchange[].rationumber—Cuota de largos dividida entre la cuota de cortos (1 = equilibrado).
account.by_exchange[].updated_atnumbermsMomento de la última actualización de esta fila.
account.by_exchange[].age_snumbersSegundos transcurridos desde la última actualización de esta fila.
account.by_exchange[].is_staleboolean—true cuando la fila es más antigua que la ventana de frescura; las filas desactualizadas no se usan en los totales.
account.by_exchange[].sourcestring—Estadística del exchange de la que procede la fila.
account.by_exchange[].periodstring—Periodo de muestreo de la estadística del exchange (por ejemplo `5m`).
top_accountobject—Lo mismo, restringido a los top traders definidos por el exchange.
top_account.long_pctnumber|null%Cuota de largos.
top_account.short_pctnumber|null%Cuota de cortos.
top_account.rationumber|null—Cuota de largos dividida entre la cuota de cortos (1 = equilibrado).
top_account.n_exchangesnumber—Número de exchanges que aportan datos.
top_account.by_exchangearray—Desglose por exchange.
top_account.by_exchange[]object—Desglose por exchange.
top_account.by_exchange[].exchangestring—Id del exchange, en minúsculas (por ejemplo `binance`).
top_account.by_exchange[].symbolstring—Símbolo del instrumento tal como lo normaliza CoinBoss (por ejemplo BTCUSDT).
top_account.by_exchange[].long_pctnumber%Cuota de largos.
top_account.by_exchange[].short_pctnumber%Cuota de cortos.
top_account.by_exchange[].rationumber—Cuota de largos dividida entre la cuota de cortos (1 = equilibrado).
top_account.by_exchange[].updated_atnumbermsMomento de la última actualización de esta fila.
top_account.by_exchange[].age_snumbersSegundos transcurridos desde la última actualización de esta fila.
top_account.by_exchange[].is_staleboolean—true cuando la fila es más antigua que la ventana de frescura; las filas desactualizadas no se usan en los totales.
top_account.by_exchange[].sourcestring—Estadística del exchange de la que procede la fila.
top_account.by_exchange[].periodstring—Periodo de muestreo de la estadística del exchange (por ejemplo `5m`).
top_positionobject—Cuota de largos frente a cortos de las posiciones mantenidas por los top traders.
top_position.long_pctnumber|null%Cuota de largos.
top_position.short_pctnumber|null%Cuota de cortos.
top_position.rationumber|null—Cuota de largos dividida entre la cuota de cortos (1 = equilibrado).
top_position.n_exchangesnumber—Número de exchanges que aportan datos.
top_position.by_exchangearray—Desglose por exchange.
top_position.by_exchange[]object—Desglose por exchange.
top_position.by_exchange[].exchangestring—Id del exchange, en minúsculas (por ejemplo `binance`).
top_position.by_exchange[].symbolstring—Símbolo del instrumento tal como lo normaliza CoinBoss (por ejemplo BTCUSDT).
top_position.by_exchange[].long_pctnumber%Cuota de largos.
top_position.by_exchange[].short_pctnumber%Cuota de cortos.
top_position.by_exchange[].rationumber—Cuota de largos dividida entre la cuota de cortos (1 = equilibrado).
top_position.by_exchange[].updated_atnumbermsMomento de la última actualización de esta fila.
top_position.by_exchange[].age_snumbersSegundos transcurridos desde la última actualización de esta fila.
top_position.by_exchange[].is_staleboolean—true cuando la fila es más antigua que la ventana de frescura; las filas desactualizadas no se usan en los totales.
top_position.by_exchange[].sourcestring—Estadística del exchange de la que procede la fila.
top_position.by_exchange[].periodstring—Periodo de muestreo de la estadística del exchange (por ejemplo `5m`).
position_allobject—Cuota de largos frente a cortos de todas las posiciones (plataformas que la publican).
position_all.long_pctnumber|null%Cuota de largos.
position_all.short_pctnumber|null%Cuota de cortos.
position_all.rationumber|null—Cuota de largos dividida entre la cuota de cortos (1 = equilibrado).
position_all.n_exchangesnumber—Número de exchanges que aportan datos.
position_all.by_exchangearray—Desglose por exchange.
position_all.by_exchange[]object—Desglose por exchange.
position_all.by_exchange[].exchangestring—Id del exchange, en minúsculas (por ejemplo `binance`).
position_all.by_exchange[].symbolstring—Símbolo del instrumento tal como lo normaliza CoinBoss (por ejemplo BTCUSDT).
position_all.by_exchange[].long_pctnumber%Cuota de largos.
position_all.by_exchange[].short_pctnumber%Cuota de cortos.
position_all.by_exchange[].rationumber—Cuota de largos dividida entre la cuota de cortos (1 = equilibrado).
position_all.by_exchange[].updated_atnumbermsMomento de la última actualización de esta fila.
position_all.by_exchange[].age_snumbersSegundos transcurridos desde la última actualización de esta fila.
position_all.by_exchange[].is_staleboolean—true cuando la fila es más antigua que la ventana de frescura; las filas desactualizadas no se usan en los totales.
position_all.by_exchange[].sourcestring—Estadística del exchange de la que procede la fila.
position_all.by_exchange[].periodstring—Periodo de muestreo de la estadística del exchange (por ejemplo `5m`).
takerobject—Cuota del volumen de compra taker frente al de venta taker.
taker.long_pctnumber|null%Cuota de largos.
taker.short_pctnumber|null%Cuota de cortos.
taker.rationumber|null—Cuota de largos dividida entre la cuota de cortos (1 = equilibrado).
taker.n_exchangesnumber—Número de exchanges que aportan datos.
taker.by_exchangearray—Desglose por exchange.
taker.by_exchange[]object—Desglose por exchange.
taker.by_exchange[].exchangestring—Id del exchange, en minúsculas (por ejemplo `binance`).
taker.by_exchange[].symbolstring—Símbolo del instrumento tal como lo normaliza CoinBoss (por ejemplo BTCUSDT).
taker.by_exchange[].long_pctnumber%Cuota de largos.
taker.by_exchange[].short_pctnumber%Cuota de cortos.
taker.by_exchange[].rationumber—Cuota de largos dividida entre la cuota de cortos (1 = equilibrado).
taker.by_exchange[].updated_atnumbermsMomento de la última actualización de esta fila.
taker.by_exchange[].age_snumbersSegundos transcurridos desde la última actualización de esta fila.
taker.by_exchange[].is_staleboolean—true cuando la fila es más antigua que la ventana de frescura; las filas desactualizadas no se usan en los totales.
taker.by_exchange[].sourcestring—Estadística del exchange de la que procede la fila.
taker.by_exchange[].periodstring—Periodo de muestreo de la estadística del exchange (por ejemplo `5m`).
definitionsobject—Definición de cada medida. Las cinco medidas responden a preguntas distintas y nunca se mezclan.
definitions.accountstring—Medida basada en cuentas.
definitions.top_accountstring—Medida por cuentas de top traders.
definitions.top_positionstring—Medida por posiciones de top traders.
definitions.position_allstring—Medida de todas las posiciones.
definitions.takerstring—Medida de compra / venta taker.
methodobject—Enunciado en texto plano de las fórmulas utilizadas en esta respuesta.
method.normalizestring—Nota en texto plano sobre la normalización: el valor de cada exchange se reescala para que % de largos + % de cortos = 100, y ratio = % de largos ÷ % de cortos.
method.aggregatestring—Agregado entre exchanges.
method.freshnessstring—Regla de frescura en texto plano: se muestran las filas actualizadas en las últimas 24 horas e `is_stale` marca las filas con más de 2 horas de antigüedad.

Generada 2026-11-11 23:00 UTC a partir de 4 respuestas reales.

Respuesta de ejemplo

/api/sd/ls?coin=BTC · Respuesta real capturada 2026-11-13 03:57:48 UTC. Los arrays y mapas largos se abrevian para su visualización: taker.by_exchange tenía 4 elementos; account.by_exchange tenía 6 elementos; top_position.by_exchange tenía 4 elementos.

  • {
    • "success": true,
    • "coin": "BTC",
    • "now": 1794542268813,
    • "account": {
      • "long_pct": 73.52,
      • "short_pct": 26.48,
      • "ratio": 2.7764,
      • "n_exchanges": 6,
      • "by_exchange": [ … 2 ]
      },
    • "top_account": {
      • "long_pct": 66.89,
      • "short_pct": 33.11,
      • "ratio": 2.0198,
      • "n_exchanges": 2,
      • "by_exchange": [ … 2 ]
      },
    • "top_position": {
      • "long_pct": 49.7,
      • "short_pct": 50.3,
      • "ratio": 0.9881,
      • "n_exchanges": 4,
      • "by_exchange": [ … 2 ]
      },
    • "position_all": {
      • "long_pct": 49.43,
      • "short_pct": 50.57,
      • "ratio": 0.9775,
      • "n_exchanges": 1,
      • "by_exchange": [ … 1 ]
      },
    • "taker": {
      • "long_pct": 43.47,
      • "short_pct": 56.54,
      • "ratio": 0.7688,
      • "n_exchanges": 4,
      • "by_exchange": [ … 2 ]
      },
    • "definitions": {
      • "account": "all accounts: share of accounts that are net long vs net short (headcount, not size)",
      • "top_account": "top traders only: share of top-trader accounts net long vs net short",
      • "top_position": "top traders only: long position size vs short position size",
      • "position_all": "all traders: long position size vs short position size (Bitget only; kept separate from top-trader figures)",
      • "taker": "taker buy volume vs taker sell volume in the period (aggressor flow; not positions)"
      },
    • "method": {
      • "normalize": "each exchange value converted to long% + short% = 100; ratio = long% / short%",
      • "aggregate": "simple mean of long% across exchanges within the same definition; different definitions are never mixed",
      • "freshness": "rows updated within 24h are shown; is_stale marks rows older than 2h"
      }
    }

Muestras verificadas

Además del ejemplo anterior, la sonda llama a este endpoint con estos parámetros y comprueba el esquema en cada ocasión.

ParámetrosHTTPLatenciaResultado
coin=ETH20011 msCorrecto
coin=SOL2005 msCorrecto
coin=ARKM2004 msCorrecto
—4001 msCorrecto devuelve el error esperado

Comprobado 2026-11-13 03:57:48 UTC

Detalles

Autenticación
Ninguna. Endpoint público.
Límite de solicitudes
1200 solicitudes por minuto por IP
Caché del servidor
30s
Microcaché de borde
10s
Frecuencia de actualización
cada 5 min (ratio por cuentas de top traders de binance y ratios taker / por posiciones de top traders de okx cada hora; símbolos menos negociados cada 30 min)
Ventana
última instantánea (filas de las últimas 24 h; indicador is_stale a partir de 2 h)
Fuentes de datos
Ratios largos/cortos consultados por los recolectores internos en los endpoints públicos de estadísticas de 7 exchanges (binance, okx, bybit, bitget, gate, htx, kraken).
Cobertura de exchanges
ratio por cuentas: binance, okx, bybit, bitget, gate, kraken; ratio por cuentas de top traders: binance, htx; ratio por posiciones: binance, okx, gate, htx, bitget; ratio de compra/venta taker: binance, okx, bitget, gate; los periodos de muestreo de origen difieren (de 5 min a 1 h); la cobertura de símbolos es una lista móvil de los de mayor volumen (unas 280 monedas en el ratio por cuentas de binance, unas 20-60 monedas en otras plataformas / tipos); la respuesta lista cada endpoint de origen y su periodo de muestreo
Unidades
long / short as percentages of 100; ratio = long / short
Método
per group (account, top_account, top_position, position_all, taker): simple mean of long% across exchanges; groups are never mixed
Marcas de tiempo
Milisegundos de época Unix (UTC), salvo que la descripción del campo indique otra cosa
Formato de respuesta
json
Estabilidad
Estable
Disponible desde
2026-11-11

Estado en vivo

DisponibleComprobado 2026-11-13 03:57:48 UTCHTTP 2005 msEl esquema coincideAntigüedad del dato más reciente: 2m

Disponibilidad, últimos 30 días

100% de 410 comprobaciones superadas

Errores

Las llamadas fallidas tienen la misma estructura en todos los endpoints. La lista completa está en la página de errores. Errores y límites de solicitudes →

CódigoHTTPSignificadoQué hacer
INVALID_PARAM400Falta un parámetro obligatorio o un valor no se acepta. `param` indica el nombre del parámetro cuando se conoce.No reintente sin cambios; corrija la solicitud.
UNAUTHORIZED401Se envió la cabecera `CB-API-KEY`, pero la clave es desconocida o está revocada. Los datos públicos no necesitan clave: elimine la cabecera o use una clave válida.No reintente sin cambios.
FORBIDDEN403La ruta no forma parte de la API pública (interna o solo para cuentas).No reintente.
NOT_FOUND404Ruta desconocida, o la moneda / el exchange / el fondo solicitado no existe.No reintente; compruebe la ruta y los identificadores en el catálogo.
RATE_LIMITED429Más solicitudes que el límite por minuto. `Retry-After` indica los segundos de espera.Espere el tiempo de `Retry-After` y después reintente con espera progresiva.
INTERNAL500Error inesperado del servidor. El mensaje es genérico por diseño; cite `request_id` al informar del error.Reintente una vez tras unos segundos; si persiste, infórmelo con el ID de solicitud.
UPSTREAM_FAILED503La fuente de datos de este endpoint no respondió a tiempo. No se devuelven cifras desactualizadas ni sustitutas en su lugar.Reintente con espera progresiva; consulte la página de estado.
UNAVAILABLE501 / 503El conjunto de datos no está listo temporalmente (calentamiento de la caché) o el endpoint aún no tiene una fuente pública lícita.Reintente más tarde; el catálogo marca los endpoints que no están disponibles por diseño.
REQUEST_FAILED200Algunos endpoints antiguos responden HTTP 200 con `success: false`. Compruebe siempre `success`, no solo el estado HTTP.Depende del mensaje; trátelo como una solicitud fallida.

Pruébelo

GET/api/sd/lsDisponible
Parámetros

string — Coin symbol; 400 when missing. Alias: `base`.

URL de la solicitudhttps://www.coinboss.com/api/sd/ls?coin=BTC
Elija un endpoint y pulse «Enviar solicitud». Aquí aparecerán la respuesta, las cabeceras y los tiempos.