/api/sd/liquidity/history
GETParcialFRESH

Historial de profundidad del libro de órdenes

Serie temporal de la profundidad agregada de compra y de venta dentro de una banda para una moneda, en todos los exchanges cubiertos o en uno solo. Cada punto indica cuántos contratos contiene.

GET/api/sd/liquidity/history
Cobertura parcial. La recopilación comenzó el 2026-11-11, por lo que los rangos más largos se completan progresivamente. Los tramos que faltan están ausentes, no se interpolan; un cambio en `n_included` entre dos puntos significa que cambió el conjunto de contratos que contribuyen.

Solicitud

Parámetros de consulta

NombreTipoObligatorioValor por defectoValores admitidosDescripción
coinstringObligatorio——Símbolo de la moneda, sin distinción entre mayúsculas y minúsculas (por ejemplo `BTC`). Los valores ausentes o mal formados devuelven 400. Ejemplo: BTC
marketstringOpcionalperpperp, spotTipo de mercado. Los libros de perpetuos y de spot nunca se suman entre sí.
bandstringOpcional10.5, 1, 2Distancia desde el precio medio en porcentaje.
rangestringOpcional24h24h, 7d, 30dRango retrospectivo: 24h (puntos de 30 minutos), 7d (puntos de 2 horas) o 30d (puntos de 6 horas).
exchangestringOpcional——Un id de exchange cubierto para este mercado (por ejemplo `gate`). Por defecto: todos los exchanges. Un exchange no cubierto devuelve 400.

Solicitud de ejemplo

curl -s "https://www.coinboss.com/api/sd/liquidity/history?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 }`.
schemastring—Id de esquema de esta respuesta. Solo cambia cuando un campo existente cambia de significado o de tipo.
nownumbermsHora del servidor en el momento de generar la respuesta.
coinstring—Símbolo de la moneda (en mayúsculas).
marketstring—`perp` o `spot`.
band_pctnumber%Banda seleccionada: distancia desde el precio medio.
rangestring—Rango retrospectivo aplicado.
exchangestring|null—Id del exchange (en minúsculas).
interval_snumbersSeparación entre los puntos.
pointsarray—Puntos de la serie, del más antiguo al más reciente.
points[]object—Puntos de la serie, del más antiguo al más reciente.
points[].tnumbermsInicio del tramo temporal.
points[].bid_depth_usdnumberUSDNocional de compra pendiente entre el precio medio y el borde inferior de la banda. Es un límite inferior cuando `complete` es false.
points[].ask_depth_usdnumberUSDNocional de venta pendiente entre el precio medio y el borde superior de la banda. Es un límite inferior cuando `complete` es false.
points[].n_includednumber—Filas incluidas en la suma de profundidad: frescas y completas para la banda. Léalo junto con el valor de profundidad.
points[].n_rowsnumber—Filas encontradas, incluidas las desactualizadas.
points[].midnumberUSD(mejor compra + mejor venta) ÷ 2, precio de una moneda.
points[].uses_aggregated_bucketsboolean—True cuando una fila incluida usó tramos agregados por precio, lo que convierte la suma en un límite inferior.
points_expectednumber—Número de puntos que contiene el rango cuando está completo.
first_tnumbermsHora del primer punto devuelto.
last_tnumbermsHora del último punto devuelto.
exchange_pointsobject—Número de puntos en los que aparece cada exchange (la clave es el id del exchange). claves dinámicas: deribit,aster,backpack,bitfinex,bitget,bitunix
exchange_points.{*}number—Número de puntos en los que aparece cada exchange (la clave es el id del exchange).
coverageobject—Qué se incluye y qué no en las cifras. Conviene revisarlo antes de comparar totales con otra fuente.
coverage.included_exchangesarray—Fuentes cuyos datos frescos se incluyen.
coverage.included_exchanges[]string—Fuentes cuyos datos frescos se incluyen.
coverage.unavailablearray—Fuentes que no pudieron incluirse, cada una con su motivo. Nunca se cuentan como 0. vacío en las muestras usadas para generar esta tabla
coverage.stale_excludedarray—Filas excluidas porque su última actualización está fuera de la ventana de frescura. vacío en las muestras usadas para generar esta tabla
methodobject—Enunciado en texto plano de las fórmulas utilizadas en esta respuesta, con una entrada por campo.
method.bid_depth_usdstring—Nota de fórmula de `bid_depth_usd`, en texto plano.
method.ask_depth_usdstring—Nota de fórmula de `ask_depth_usd`, en texto plano.
method.completestring—Nota de fórmula de `complete`, en texto plano.
method.historystring—Nota de fórmula de `history`, en texto plano.
method.exchange_pointsstring—Nota de fórmula de `exchange_points`, en texto plano.
metaobject—Linaje y frescura de esta respuesta.
meta.schemastring—Id de esquema de esta respuesta. Solo cambia cuando un campo existente cambia de significado o de tipo.
meta.sourcearray—Endpoints públicos de origen de los que se recopilaron los datos.
meta.source[]object—Endpoints públicos de origen de los que se recopilaron los datos.
meta.source[].exchangestring—Id del exchange (en minúsculas).
meta.source[].marketstring—`perp` o `spot`.
meta.source[].endpointstring—Endpoint público de la fuente que lee el recolector (se muestra por linaje; los clientes nunca lo llaman).
meta.observed_atnull—Marca de tiempo que la fuente asigna a los datos.
meta.received_atnumbermsHora en que el recolector de CoinBoss recibió los datos.
meta.fetched_atnumbermsHora en que se compuso esta respuesta.
meta.windowstring—Ventana temporal que cubren las cifras.
meta.qualitystring—FRESH, PARTIAL, STALE, BROKEN o UNAVAILABLE, según las marcas de tiempo de los datos y la cobertura.
meta.is_staleboolean—True cuando los datos son más antiguos que su ventana de frescura.
meta.cache_ttl_snumbersTiempo de vida en caché de esta respuesta.
meta.fallbackstring—Qué devuelve el endpoint cuando falla el recolector o una fuente.
meta.collector_heartbeat_age_snumbersSegundos transcurridos desde que el recolector informó por última vez de que está en ejecución.

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

Respuesta de ejemplo

/api/sd/liquidity/history?coin=BTC · Respuesta real capturada 2026-11-13 01:42:45 UTC. Los arrays y mapas largos se abrevian para su visualización: points tenía 48 elementos; meta.source tenía 19 elementos; exchange_points tenía 19 elementos; coverage.included_exchanges tenía 19 elementos.

  • {
    • "success": true,
    • "schema": "coinboss.sd.liquidity/1",
    • "now": 1794534165336,
    • "coin": "BTC",
    • "market": "perp",
    • "band_pct": 1,
    • "range": "24h",
    • "exchange": null,
    • "interval_s": 1800,
    • "points": [
      • { … 7 },
      • { … 7 }
      ],
    • "points_expected": 48,
    • "first_t": 1794448800000,
    • "last_t": 1794533400000,
    • "exchange_points": {
      • "deribit": 96,
      • "aster": 48
      },
    • "coverage": {
      • "included_exchanges": [ … 8 ],
      • "unavailable": [],
      • "stale_excluded": []
      },
    • "method": {
      • "bid_depth_usd": "sum of resting bid notional with price >= mid * (1 - band%), in USD; notional = price * size * contract_value (inverse contracts: size * contract_value); USDT /…",
      • "ask_depth_usd": "sum of resting ask notional with price <= mid * (1 + band%), in USD; same notional rule as bid_depth_usd",
      • "complete": "true when BOTH sides of the snapshot reach the band edge (reach_pct >= band) or the whole side of the book was returned; when false the depth values are lower b…",
      • "history": "sd_book_hist keeps the first snapshot of every 15-minute bucket per contract; each returned point takes, per contract, the first stored snapshot inside the poin…",
      • "exchange_points": "number of returned points in which each exchange had a row that was complete for the band; a changing venue set moves the aggregate, so compare n_included acros…"
      },
    • "meta": {
      • "schema": "coinboss.sd.liquidity/1",
      • "source": [ … 2 ],
      • "observed_at": null,
      • "received_at": 1794533400000,
      • "fetched_at": 1794534165336,
      • "window": "24h",
      • "quality": "FRESH",
      • "is_stale": false,
      • "cache_ttl_s": 120,
      • "fallback": "history is append-only (first snapshot of each 15-minute bucket per contract, 30-day retention); buckets the collector missed are simply absent, never interpola…",
      • "collector_heartbeat_age_s": 5
      }
    }

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
band=2&coin=ETH&market=spot2007 msCorrecto FRESH
coin=SOL&exchange=gate2003 msCorrecto FRESH
band=3&coin=BTC4002 msCorrecto devuelve el error esperado

Comprobado 2026-11-13 01:28:04 UTC

Detalles

Autenticación
Ninguna. Endpoint público.
Límite de solicitudes
1200 solicitudes por minuto por IP
Caché del servidor
2m
Microcaché de borde
10s
Frecuencia de actualización
Se almacena una instantánea cada 15 minutos por contrato; cada punto usa la instantánea más antigua de su tramo (un valor en un instante concreto, no un promedio).
Ventana
24h / 7d / 30d.
Fuentes de datos
Instantáneas públicas por REST del libro de órdenes de 24 exchanges (mercados de perpetuos y spot), recopiladas y almacenadas por CoinBoss (sd_book_latest, sd_book_hist). CoinBoss calcula la profundidad y el deslizamiento a partir de los niveles de precio en bruto.
Cobertura de exchanges
24 exchanges, 38 combinaciones exchange × mercado. Cuando una instantánea pública no alcanza el ±0.5 / 1 / 2 % desde el precio medio (por el tope de niveles de la plataforma), esa banda se marca con `complete: false`, su valor es un límite inferior y queda fuera del agregado; `n_included` / `n_fresh` dan el denominador y `excluded_incomplete` lista lo que se excluyó.
Paginación
Sin paginación; `range` limita el número de puntos (48 / 84 / 120).
Ordenación
Tiempo ascendente.
Unidades
Depth in USD notional, bid and ask side reported separately and never added. Spread and slippage in basis points (1 bp = 0.01 %). USDT / USDC / USD quotes are counted 1:1 as USD.
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

ParcialComprobado 2026-11-13 01:42:45 UTCHTTP 20010 msEl esquema coincideAntigüedad del dato más reciente: 13m

La recopilación comenzó el 2026-11-11, por lo que los rangos más largos se completan progresivamente. Los tramos que faltan están ausentes, no se interpolan; un cambio en `n_included` entre dos puntos significa que cambió el conjunto de contratos que contribuyen.

Disponibilidad, últimos 30 días

100% de 380 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/liquidity/historyParcial
Parámetros

string — Coin symbol, case-insensitive (for example `BTC`). Missing or malformed values return 400.

string · por defecto perp — Market type. Perpetual and spot books are never added together.

string · por defecto 1 — Distance from mid price in percent.

string · por defecto 24h — Look-back range: 24h (30-minute points), 7d (2-hour points) or 30d (6-hour points).

string — One exchange id covered for this market (for example `gate`). Default: all exchanges. An exchange that is not covered returns 400.

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