Matriz de calidad de datos (vista del recolector)
Capa de datos propia: matriz de calidad de datos (exchange × familia de datos)
/api/sd/qualitySolicitud
Este endpoint no admite parámetros.
Solicitud de ejemplo
curl -s "https://www.coinboss.com/api/sd/quality"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.
| Campo | Tipo | Unidad | Descripción |
|---|---|---|---|
| success | boolean | — | true cuando la solicitud se completó correctamente. En caso de fallo, el cuerpo es `{ success: false, code, error, request_id }`. |
| now | number | ms | Hora del servidor en el momento de generar la respuesta. |
| families | array | — | Familias de datos comprobadas para cada exchange, en orden de visualización. |
| families[] | string | — | Id de la familia: `ticker`, `oi`, `funding`, `funding_settle`, `liquidation`, `ls`, `spot` o `sd_contracts`. |
| exchanges | array | — | Exchanges. |
| exchanges[] | string | — | Exchanges. |
| matrix | object | — | Matriz indexada por fila y columna. claves dinámicas: aster,backpack,binance,bingx,bitfinex,bitget |
| matrix.{*} | object | — | Matriz indexada por fila y columna. claves dinámicas: ticker,oi,funding,funding_settle,liquidation,ls |
| matrix.{*}.ticker | object | — | Frescura de los tickers de futuros del exchange: `status`, recuentos de filas, `age_s` y las ventanas de frescura / de uso. Las claves del mapa son ids de exchange. puede faltar |
| matrix.{*}.ticker.status | string | — | Estado. puede faltar |
| matrix.{*}.ticker.rows | number | — | Filas del resultado. puede faltar |
| matrix.{*}.ticker.rows_fresh | number | — | Filas actualizadas dentro de la ventana de frescura. puede faltar |
| matrix.{*}.ticker.rows_usable | number | — | Filas dentro de la ventana de uso. puede faltar |
| matrix.{*}.ticker.rows_orphan | number | — | Filas cuyo contrato ya no está listado. puede faltar |
| matrix.{*}.ticker.rows_invalid | number | — | Filas rechazadas por la validación. puede faltar |
| matrix.{*}.ticker.age_s | number | s | Segundos transcurridos desde la última actualización de esta fila. puede faltar |
| matrix.{*}.ticker.fresh_within_s | number | s | Ventana de frescura: los datos más recientes que este valor cuentan como frescos. puede faltar |
| matrix.{*}.ticker.usable_within_s | number | s | Los datos más antiguos que este valor no se usan en absoluto. puede faltar |
| matrix.{*}.oi | object | — | Interés abierto. puede faltar |
| matrix.{*}.oi.status | string | — | Estado. puede faltar |
| matrix.{*}.oi.rows | number | — | Filas del resultado. puede faltar |
| matrix.{*}.oi.rows_fresh | number | — | Filas actualizadas dentro de la ventana de frescura. puede faltar |
| matrix.{*}.oi.rows_usable | number | — | Filas dentro de la ventana de uso. puede faltar |
| matrix.{*}.oi.rows_orphan | number | — | Filas cuyo contrato ya no está listado. puede faltar |
| matrix.{*}.oi.rows_invalid | number | — | Filas rechazadas por la validación. puede faltar |
| matrix.{*}.oi.age_s | number | s | Segundos transcurridos desde la última actualización de esta fila. puede faltar |
| matrix.{*}.oi.fresh_within_s | number | s | Ventana de frescura: los datos más recientes que este valor cuentan como frescos. puede faltar |
| matrix.{*}.oi.usable_within_s | number | s | Los datos más antiguos que este valor no se usan en absoluto. puede faltar |
| matrix.{*}.funding | object | — | Bloque o valor de la tasa de financiación. puede faltar |
| matrix.{*}.funding.status | string | — | Estado. puede faltar |
| matrix.{*}.funding.rows | number | — | Filas del resultado. puede faltar |
| matrix.{*}.funding.rows_fresh | number | — | Filas actualizadas dentro de la ventana de frescura. puede faltar |
| matrix.{*}.funding.rows_usable | number | — | Filas dentro de la ventana de uso. puede faltar |
| matrix.{*}.funding.rows_orphan | number | — | Filas cuyo contrato ya no está listado. puede faltar |
| matrix.{*}.funding.rows_invalid | number | — | Filas rechazadas por la validación. puede faltar |
| matrix.{*}.funding.age_s | number | s | Segundos transcurridos desde la última actualización de esta fila. puede faltar |
| matrix.{*}.funding.fresh_within_s | number | s | Ventana de frescura: los datos más recientes que este valor cuentan como frescos. puede faltar |
| matrix.{*}.funding.usable_within_s | number | s | Los datos más antiguos que este valor no se usan en absoluto. puede faltar |
| matrix.{*}.funding.rows_unknown_interval | number | count | Filas de financiación actualizadas en las últimas 4 horas cuyo intervalo de pago es desconocido, por lo que no pueden normalizarse a 8 horas; cualquier fila de este tipo hace que la celda sea `partial`. puede faltar |
| matrix.{*}.funding.rows_no_next_time | number | ms | Marca de tiempo. puede faltar |
| matrix.{*}.funding.rows_no_liveness | number | count | Filas de financiación actualizadas recientemente en contratos sin evidencia de negociación activa (retirados de cotización o sin volumen); quedan fuera del recuento de frescura. puede faltar |
| matrix.{*}.funding_settle | object | — | Frescura del historial de pagos de financiación del exchange: `status`, `age_s` del pago más reciente, `symbols` y `history_from`. puede faltar |
| matrix.{*}.funding_settle.status | string | — | Estado. puede faltar |
| matrix.{*}.funding_settle.age_s | number | s | Segundos transcurridos desde la última actualización de esta fila. puede faltar |
| matrix.{*}.funding_settle.symbols | number | — | Símbolos. puede faltar |
| matrix.{*}.funding_settle.history_from | number | ms | Registro más antiguo conservado. puede faltar |
| matrix.{*}.funding_settle.fresh_within_s | number | s | Ventana de frescura: los datos más recientes que este valor cuentan como frescos. puede faltar |
| matrix.{*}.liquidation | object | — | Bloque de liquidaciones. puede faltar |
| matrix.{*}.liquidation.status | string | — | Estado. puede faltar |
| matrix.{*}.liquidation.via | string | — | Ruta de recopilación. puede faltar |
| matrix.{*}.liquidation.last_event_age_s | number|null | s | Segundos transcurridos desde el evento. puede faltar |
| matrix.{*}.liquidation.events_1h | number | count | Órdenes de liquidación almacenadas de este exchange en la última hora; los tamaños mínimos de orden difieren según el exchange, por lo que los recuentos no son comparables. puede faltar |
| matrix.{*}.liquidation.events_24h | number | count | Órdenes de liquidación almacenadas de este exchange en las últimas 24 horas; los tamaños mínimos de orden difieren según el exchange, por lo que los recuentos no son comparables. puede faltar |
| matrix.{*}.liquidation.ws_heartbeat_age_s | number|null | s | Segundos transcurridos desde el evento. puede faltar |
| matrix.{*}.liquidation.judged_by | string | — | Marca de tiempo a partir de la cual se evaluó el estado. puede faltar |
| matrix.{*}.liquidation.idle_ok_s | number | s | Intervalo más largo sin liquidaciones que aún se considera normal para este exchange; un intervalo mayor marca el flujo de datos como `stale`. puede faltar |
| matrix.{*}.ls | object | — | Frescura de las filas de ratio largos/cortos del exchange: `status`, recuentos de filas, `age_s` y las ventanas de frescura / de uso. puede faltar |
| matrix.{*}.ls.status | string | — | Estado. puede faltar |
| matrix.{*}.ls.reason | string | — | Código de motivo. puede faltar |
| matrix.{*}.spot | object | — | Bloque o valor del mercado spot. puede faltar |
| matrix.{*}.spot.status | string | — | Estado. puede faltar |
| matrix.{*}.spot.reason | string | — | Código de motivo. puede faltar |
| matrix.{*}.sd_contracts | object | — | Frescura de las filas de contratos con margen en moneda, con margen en USDC y con vencimiento del exchange: `status`, recuentos de filas y `age_s`. puede faltar |
| matrix.{*}.sd_contracts.status | string | — | Estado. puede faltar |
| matrix.{*}.sd_contracts.reason | string | — | Código de motivo. puede faltar |
| matrix.{*}.funding_settle.reason | string | — | Código de motivo. puede faltar |
| matrix.{*}.liquidation.reason | string | — | Código de motivo. puede faltar |
| matrix.{*}.liquidation.note | string | — | Nota. puede faltar |
| matrix.{*}.ls.rows | number | — | Filas del resultado. puede faltar |
| matrix.{*}.ls.rows_fresh | number | — | Filas actualizadas dentro de la ventana de frescura. puede faltar |
| matrix.{*}.ls.rows_usable | number | — | Filas dentro de la ventana de uso. puede faltar |
| matrix.{*}.ls.rows_orphan | number | — | Filas cuyo contrato ya no está listado. puede faltar |
| matrix.{*}.ls.rows_invalid | number | — | Filas rechazadas por la validación. puede faltar |
| matrix.{*}.ls.age_s | number | s | Segundos transcurridos desde la última actualización de esta fila. puede faltar |
| matrix.{*}.ls.fresh_within_s | number | s | Ventana de frescura: los datos más recientes que este valor cuentan como frescos. puede faltar |
| matrix.{*}.ls.usable_within_s | number | s | Los datos más antiguos que este valor no se usan en absoluto. puede faltar |
| matrix.{*}.spot.age_s | number | s | Segundos transcurridos desde la última actualización de esta fila. puede faltar |
| matrix.{*}.spot.coins | number | — | Monedas. puede faltar |
| matrix.{*}.spot.fresh_within_s | number | s | Ventana de frescura: los datos más recientes que este valor cuentan como frescos. puede faltar |
| matrix.{*}.spot.note | string | — | Nota. puede faltar |
| matrix.{*}.sd_contracts.rows | number | — | Filas del resultado. puede faltar |
| matrix.{*}.sd_contracts.rows_fresh | number | — | Filas actualizadas dentro de la ventana de frescura. puede faltar |
| matrix.{*}.sd_contracts.age_s | number | s | Segundos transcurridos desde la última actualización de esta fila. puede faltar |
| matrix.{*}.sd_contracts.rows_without_oi | number | count | Filas de contratos que no incluyen ningún valor de interés abierto en USD. puede faltar |
| matrix.{*}.sd_contracts.rows_oi_promoted | number | count | Filas de contratos cuyo interés abierto también se cuenta en los totales de interés abierto de todo el sitio. puede faltar |
| matrix.{*}.sd_contracts.fresh_within_s | number | s | Ventana de frescura: los datos más recientes que este valor cuentan como frescos. puede faltar |
| matrix.{*}.{*} | object | — | Matriz indexada por fila y columna. |
| matrix.{*}.{*}.status | string | — | Estado. |
| matrix.{*}.{*}.reason | string | — | Código de motivo. puede faltar |
| matrix.{*}.{*}.age_s | number | s | Segundos transcurridos desde la última actualización de esta fila. puede faltar |
| matrix.{*}.{*}.coins | number | — | Monedas. puede faltar |
| matrix.{*}.{*}.fresh_within_s | number | s | Ventana de frescura: los datos más recientes que este valor cuentan como frescos. puede faltar |
| matrix.{*}.{*}.note | string | — | Nota. puede faltar |
| matrix.{*}.oi.reason | string | — | Código de motivo. puede faltar |
| matrix.{*}.{*}.rows | number | — | Filas del resultado. puede faltar |
| matrix.{*}.{*}.rows_fresh | number | — | Filas actualizadas dentro de la ventana de frescura. puede faltar |
| matrix.{*}.{*}.rows_usable | number | — | Filas dentro de la ventana de uso. puede faltar |
| matrix.{*}.{*}.rows_orphan | number | — | Filas cuyo contrato ya no está listado. puede faltar |
| matrix.{*}.{*}.rows_invalid | number | — | Filas rechazadas por la validación. puede faltar |
| matrix.{*}.{*}.usable_within_s | number | s | Los datos más antiguos que este valor no se usan en absoluto. puede faltar |
| matrix.{*}.ticker.dead | boolean | — | Presente solo cuando `status` es `stale`: true cuando tampoco hay ninguna fila dentro de la ventana de uso, por lo que el exchange queda excluido de los agregados. puede faltar |
| matrix.{*}.funding.reason | string | — | Código de motivo. puede faltar |
| matrix.{*}.liquidation.pipeline_last_event_age_s | number | s | Segundos transcurridos desde el evento. puede faltar |
| matrix.{*}.liquidation.node_heartbeat_age_s | number | s | Segundos transcurridos desde el evento. puede faltar |
| summary | object | — | Bloque de resumen. |
| summary.fresh | number | count | Número de celdas exchange × familia con estado `fresh`. |
| summary.partial | number | — | true cuando solo está presente una parte de los datos esperados. |
| summary.stale | number | — | Filas o indicador de datos más antiguos que la ventana de frescura. |
| summary.invalid | number | count | Número de celdas exchange × familia con estado `invalid`. |
| summary.unavailable | number | — | Elementos para los que no hay datos disponibles, con sus motivos. Nunca se informan como 0. |
| sources | array | — | Fuentes de datos. |
| sources[] | object | — | Fuentes de datos. |
| sources[].exchange | string | — | Id del exchange, en minúsculas (por ejemplo `binance`). |
| sources[].family | string | — | Familia de datos de la tarea de recopilación a la que pertenece el registro de salud, por ejemplo `oi`, `funding`, `ticker`. |
| sources[].endpoint | string | — | Etiqueta de la llamada al origen que se supervisa: host y ruta de la API pública consultada, o el nombre de una comprobación interna. |
| sources[].ok | boolean | — | false cuando el intento más reciente falló, es decir, cuando el último error es posterior al último éxito. |
| sources[].last_ok_age_s | number|null | s | Segundos transcurridos desde el evento. |
| sources[].last_err_age_s | number|null | s | Segundos transcurridos desde el evento. |
| sources[].last_status | number | — | Estado HTTP de la llamada más reciente. |
| sources[].last_error | string|null | — | Texto de error del último fallo, recortado a 160 caracteres; null cuando no hay ninguno registrado. |
| sources[].last_ms | number | ms | Duración de la llamada más reciente; null cuando no se midió. |
| sources[].fail_streak | number | count | Llamadas fallidas consecutivas hasta ahora; 0 tras un éxito. |
| sources[].ok_count | number | count | Llamadas correctas registradas en el registro de salud. |
| sources[].err_count | number | count | Llamadas fallidas registradas en el registro de salud. |
| sources[].http_429 | number | count | Llamadas fallidas respondidas con HTTP 429 (límite de solicitudes superado). |
| sources[].http_403 | number | count | Llamadas fallidas respondidas con HTTP 403 (prohibido). |
| sources[].http_5xx | number | count | Llamadas fallidas respondidas con un estado HTTP 5xx. |
| sources[].timeouts | number | count | Llamadas fallidas por tiempo de espera agotado. |
| errors | object | — | Mapa de id de familia a mensaje de error para las familias cuya propia comprobación falló; vacío cuando se ejecutaron todas las comprobaciones. |
| alerts | array | — | Alertas de la patrulla de calidad de datos que están abiertas o se resolvieron en las últimas 24 horas, las abiertas primero (200 como máximo). |
| alerts[] | object | — | Una alerta: `level`, `exchange`, `family`, `code`, `detail`, horas de apertura / última observación / resolución, `hits` y `open`. |
| alerts[].level | string | — | Nivel. |
| alerts[].exchange | string | — | Id del exchange, en minúsculas (por ejemplo `binance`). |
| alerts[].family | string | — | Familia de datos a la que se refiere la alerta. |
| alerts[].code | string | — | Código. |
| alerts[].detail | string | — | Detalle. |
| alerts[].opened_at | number | ms | Marca de tiempo. |
| alerts[].last_seen_at | number | ms | Marca de tiempo. |
| alerts[].resolved_at | number|null | ms | Marca de tiempo. |
| alerts[].hits | number | count | Número de ejecuciones de la patrulla (una cada 5 minutos) que observaron la condición desde que se abrió la alerta. |
| alerts[].open | boolean | — | Precio de apertura del periodo. |
| monitor | object | — | Salud de la propia supervisión: antigüedad de la última ejecución de la patrulla, antigüedad del latido del recolector y `patrol_ok`. |
| monitor.alert_job_age_s | number | s | Segundos transcurridos desde el evento. |
| monitor.collector_heartbeat_age_s | number | s | Segundos transcurridos desde el evento. |
| monitor.patrol_ok | boolean | — | true cuando la patrulla se ejecutó en los últimos 15 minutos; cuando es false, la lista `alerts` puede estar desactualizada. |
| legend | object | — | Definición en texto plano de cada estado de celda. |
| legend.fresh | string | — | Definición del estado `fresh`. |
| legend.partial | string | — | true cuando solo está presente una parte de los datos esperados. |
| legend.stale | string | — | Filas o indicador de datos más antiguos que la ventana de frescura. |
| legend.invalid | string | — | Definición del estado `invalid`. |
| legend.unavailable | string | — | Elementos para los que no hay datos disponibles, con sus motivos. Nunca se informan como 0. |
Generada 2026-11-11 23:01 UTC a partir de 1 respuestas reales.
Respuesta de ejemplo
/api/sd/quality · Respuesta real capturada 2026-11-13 03:53:45 UTC. Los arrays y mapas largos se abrevian para su visualización: alerts tenía 3 elementos; matrix tenía 29 elementos; sources tenía 262 elementos; exchanges tenía 29 elementos.
- "success"true
- "now"1794542017525
- "families"
- "ticker"
- "oi"
- "funding"
- "funding_settle"
- "liquidation"
- "ls"
- "spot"
- "sd_contracts"
- "exchanges"
- "aster"
- "backpack"
- "binance"
- "bingx"
- "bitfinex"
- "bitget"
- "bitstamp"
- "bitunix"
- "matrix"
- "aster"
- "backpack"
- "summary"
- "fresh"123
- "partial"7
- "stale"1
- "invalid"0
- "unavailable"101
- "sources"
- "errors"
- "alerts"
- "monitor"
- "alert_job_age_s"280
- "collector_heartbeat_age_s"35
- "patrol_ok"true
- "legend"
- "fresh""data timestamps within the fresh window"
- "partial""some rows outside the fresh window or missing a required field"
- "stale""no row within the fresh window (dead=true: also outside the usable window, excluded from aggregates)"
- "invalid""more than half of usable rows fail sanity checks"
- "unavailable""no public source or not collected; shown as —, never 0"
Detalles
- Autenticación
- Ninguna. Endpoint público.
- Límite de solicitudes
- 1200 solicitudes por minuto por IP
- Caché del servidor
- 20s
- Microcaché de borde
- 10s
- Frecuencia de actualización
- la matriz se calcula bajo demanda (memo en proceso de 20 s); tarea de alertas cada 5 min
- Ventana
- último estado; alertas abiertas o resueltas en las últimas 24 h
- Fuentes de datos
- Matriz de frescura de los datos (exchange x familia de datos) calculada internamente a partir de las marcas de tiempo de las tablas recopiladas por el propio CoinBoss.
- Cobertura de exchanges
- todas las plataformas presentes en cualquier familia recopilada; las fuentes ausentes se informan como no disponibles con un motivo
- Paginación
- alertas limitadas a 200
- Unidades
- status per cell: fresh | partial | stale | invalid | unavailable; ages in seconds
- Método
- fresh = >= 90% of live rows inside the family's freshness window (tickers 5 min, OI 15 min / cme 36 h, funding 15 min, long/short 90 min); liquidation feeds judged by WebSocket heartbeat or time since last event; funding settlements fresh within 9 h; spot snapshots within 30 min
- 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
Disponibilidad, últimos 30 días
100% de 407 comprobaciones superadas
- Devuelto pero no documentado: matrix.{*}.{*}.rows_unknown_interval, matrix.{*}.{*}.rows_no_next_time, matrix.{*}.{*}.rows_no_liveness, matrix.{*}.{*}.symbols, matrix.{*}.{*}.history_from, matrix.{*}.{*}.via, matrix.{*}.{*}.last_event_age_s, matrix.{*}.{*}.events_1h, matrix.{*}.{*}.events_24h, matrix.{*}.{*}.ws_heartbeat_age_s, matrix.{*}.{*}.judged_by, matrix.{*}.{*}.idle_ok_s
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ódigo | HTTP | Significado | Qué hacer |
|---|---|---|---|
| INVALID_PARAM | 400 | Falta 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. |
| UNAUTHORIZED | 401 | Se 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. |
| FORBIDDEN | 403 | La ruta no forma parte de la API pública (interna o solo para cuentas). | No reintente. |
| NOT_FOUND | 404 | Ruta desconocida, o la moneda / el exchange / el fondo solicitado no existe. | No reintente; compruebe la ruta y los identificadores en el catálogo. |
| RATE_LIMITED | 429 | Má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. |
| INTERNAL | 500 | Error 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_FAILED | 503 | La 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. |
| UNAVAILABLE | 501 / 503 | El 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_FAILED | 200 | Algunos 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
/api/sd/qualityDisponibleSin parámetros.
https://www.coinboss.com/api/sd/qualityMás en esta categoría
- Matriz de calidad de datos (vista del recolector) /api/sd/quality
- Catálogo de la API /api/meta/catalog
- Registro de cambios y política de versionado /api/meta/changelog
- Documentación de un endpoint /api/meta/endpoint
- Documento OpenAPI /api/meta/openapi
- Matriz de calidad de datos /api/meta/quality
- Estado del servicio /api/meta/status
- Comprueba si la plataforma conoce un símbolo de moneda /api/coin-exists
- Mapa de símbolo de moneda a ruta del icono alojado localmente /api/coin-icons
- Resumen agregado de la página de moneda /api/content/coin
- Resumen de secciones de todo el sitio /api/content/summary
- Tabla de tipos de cambio fiat /api/currency/fx
- Mapa de id de exchange a ruta del icono alojado localmente /api/exchange-icons
- Comprobación de actividad /api/health
- Estadísticas de la página de investigación /api/research/stats