/api/meta/quality
GETDisponibleFRESH

Matriz de calidad de datos

Matriz exchange × familia de datos con FRESH / PARTIAL / STALE / BROKEN / UNAVAILABLE, marcas de tiempo de origen y de obtención, retraso, cobertura y el motivo de cada hueco.

GET/api/meta/quality

Solicitud

Parámetros de consulta

NombreTipoObligatorioValor por defectoValores admitidosDescripción
exchangestringOpcional——Devuelve solo este exchange (id en minúsculas, por ejemplo `binance`).
familystringOpcional——Devuelve solo esta familia de datos (por ejemplo `oi`, `funding`, `liquidation`).

Solicitud de ejemplo

curl -s "https://www.coinboss.com/api/meta/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.

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 del esquema de esta respuesta (`coinboss.meta.quality/1`).
nownumbermsHora del servidor en el momento de generar la respuesta.
familiesarray—Familias de datos evaluadas por exchange (tickers, interés abierto, financiación, liquidaciones, libros de órdenes, opciones y otras).
families[]object—Una familia: `id`, `scope`, `title`, `what`, `table`, `cadence` y `fresh_within_s`.
families[].idstring—Identificador.
families[].scopestring—`exchange` en las familias evaluadas por exchange en `matrix`.
families[].titlestring—Título para mostrar de la familia.
families[].whatstring—Descripción breve de los datos que abarca la familia.
families[].tablestring—Nombre del conjunto de datos interno a partir del cual se evalúa la familia; solo informativo.
families[].cadencestring—Calendario de recopilación de la familia en texto plano; null cuando no se indica.
families[].fresh_within_snumbersVentana de frescura: los datos más recientes que este valor cuentan como frescos.
exchangesarray—Exchanges.
exchanges[]string—Exchanges.
matrixobject—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.{*}.{*}object—Matriz indexada por fila y columna.
matrix.{*}.{*}.statusstring—Estado.
matrix.{*}.{*}.lag_snumber|nullsAhora menos la marca de tiempo de datos almacenada más reciente de ese exchange (primera clave) y esa familia (segunda clave); null cuando la familia no está disponible en él.
matrix.{*}.{*}.source_atnumber|nullmsMarca de tiempo.
matrix.{*}.{*}.fetched_atnumber|nullmsCuándo obtuvo CoinBoss los datos de la fuente.
matrix.{*}.{*}.fresh_within_snumber|nullsVentana de frescura: los datos más recientes que este valor cuentan como frescos.
matrix.{*}.{*}.coverageobject|null—Qué se incluye y qué falta.
matrix.{*}.{*}.coverage.rowsnumber—Filas del resultado. puede faltar
matrix.{*}.{*}.coverage.rows_freshnumber—Filas actualizadas dentro de la ventana de frescura. puede faltar
matrix.{*}.{*}.coverage.rows_usablenumber—Filas dentro de la ventana de uso. puede faltar
matrix.{*}.{*}.coverage.rows_orphannumber—Filas cuyo contrato ya no está listado. puede faltar
matrix.{*}.{*}.coverage.rows_invalidnumber—Filas rechazadas por la validación. puede faltar
matrix.{*}.{*}.reasonstring|null—Código de motivo.
matrix.{*}.{*}.coverage.rows_no_livenessnumbercountFilas de financiación en contratos sin evidencia de negociación activa (retirados de cotización o sin volumen); quedan fuera del recuento de frescura. puede faltar
matrix.{*}.{*}.coverage.rows_unknown_intervalnumbercountFilas de financiación actualizadas recientemente cuyo intervalo de pago es desconocido, por lo que no pueden normalizarse a 8 horas. puede faltar
matrix.{*}.{*}.coverage.symbolsnumber—Símbolos. puede faltar
matrix.{*}.{*}.coverage.events_1hnumbercountÓrdenes de liquidación almacenadas del exchange en la última hora; los tamaños mínimos de orden difieren según el exchange. puede faltar
matrix.{*}.{*}.coverage.events_24hnumbercountÓrdenes de liquidación almacenadas del exchange en las últimas 24 horas; los tamaños mínimos de orden difieren según el exchange. puede faltar
matrix.{*}.{*}.viastring—Ruta de recopilación. puede faltar
matrix.{*}.{*}.coverage.booksnumbercountNúmero de libros de órdenes con seguimiento. puede faltar
matrix.{*}.{*}.coverage.books_freshnumbercountNúmero de libros de órdenes actualizados dentro de la ventana de frescura. puede faltar
matrix.{*}.{*}.coverage.books_reaching_2pctnumbercountNúmero de libros de órdenes con profundidad suficiente para cubrir ±2 % en torno al precio medio. puede faltar
matrix.{*}.{*}.coverage.contractsnumber—Filas por contrato. puede faltar
matrix.{*}.{*}.coverage.contracts_freshnumbercountNúmero de contratos actualizados dentro de la ventana de frescura. puede faltar
matrix.{*}.{*}.coverage.with_mark_and_indexnumbercountNúmero de contratos que tienen tanto precio de marca como precio del índice. puede faltar
matrix.{*}.{*}.coverage.delivery_contractsnumbercountNúmero de contratos con vencimiento (con fecha). puede faltar
matrix.{*}.{*}.notestring—Nota. puede faltar
matrix.{*}.{*}.coverage.coinsnumber—Monedas. puede faltar
matrix.{*}.{*}.coverage.rows_without_oinumbercountFilas de contratos con margen en moneda, con margen en USDC o con vencimiento que no incluyen ningún valor de interés abierto en USD. puede faltar
matrix.{*}.{*}.coverage.with_mark_ivnumbercountNúmero de contratos de opciones que tienen volatilidad implícita de marca. puede faltar
matrix.{*}.{*}.coverage.with_greeksnumbercountNúmero de contratos de opciones que tienen griegas. puede faltar
datasetsarray—Comprobaciones de calidad de los conjuntos de datos que no son por exchange (por ejemplo, los datos diarios de ETF spot y de CME), cada una con estado, retraso, cobertura y motivo.
datasets[]object—Un conjunto de datos de todo el mercado que no está ligado a un único exchange (opciones, ETF spot, CME, libros de órdenes, base).
datasets[].familystring—Id del conjunto de datos, por ejemplo `etf` o `cme`.
datasets[].idstring—Identificador.
datasets[].titlestring—Nombre para mostrar del conjunto de datos.
datasets[].sourcestring—De dónde procede el valor.
datasets[].endpointstring—Endpoint público que sirve el conjunto de datos.
datasets[].statusstring—Estado.
datasets[].lag_snumbersAntigüedad del punto de datos más reciente cuando se generó la respuesta.
datasets[].source_atnumbermsMarca de tiempo.
datasets[].fetched_atnumbermsCuándo obtuvo CoinBoss los datos de la fuente.
datasets[].fresh_within_snumbersVentana de frescura: los datos más recientes que este valor cuentan como frescos.
datasets[].coverageobject—Qué se incluye y qué falta.
datasets[].coverage.funds_totalnumbercountNúmero de fondos con seguimiento. puede faltar
datasets[].coverage.funds_coverednumbercountNúmero de fondos con una divulgación utilizable. puede faltar
datasets[].coverage.funds_unavailablenumbercountNúmero de fondos cuyo emisor no publica ninguna divulgación legible por máquina. puede faltar
datasets[].coverage.funds_failingnumbercountNúmero de fondos cuya divulgación no pudo leerse en la última ronda de recopilación. puede faltar
datasets[].coverage.as_ofstring—Fecha de divulgación más reciente entre los fondos cubiertos (YYYY-MM-DD). puede faltar
datasets[].coverage.as_of_minstring—Fecha de divulgación más antigua entre los fondos cubiertos (YYYY-MM-DD). puede faltar
datasets[].reasonstring|null—Código de motivo.
datasets[].coverage.contractsnumber—Filas por contrato. puede faltar
datasets[].coverage.report_datestring—Fecha del informe Commitments of Traders de la CFTC más reciente (YYYY-MM-DD). puede faltar
datasets[].coverage.productsnumbercountNúmero de productos de CME cubiertos. puede faltar
datasets[].coverage.trade_datestring—Fecha de negociación del informe diario de CME más reciente (YYYY-MM-DD). puede faltar
summaryobject—Bloque de resumen. claves dinámicas: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE
summary.{*}number—Bloque de resumen.
by_familyobject—Número de exchanges en cada estado, por familia. Las claves externas son ids de familia. claves dinámicas: ticker,oi,funding,funding_settle,liquidation,ls
by_family.{*}object—Recuentos por estado de una familia, con el estado como clave (`FRESH`, `PARTIAL`, `STALE`, `BROKEN`, `UNAVAILABLE`). claves dinámicas: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE
by_family.{*}.{*}numbercountNúmero de exchanges con ese estado para esa familia.
alertsarray—Alertas de la patrulla de calidad de datos que están abiertas o se resolvieron en los últimos 7 días, las abiertas primero; filtradas por los parámetros de la solicitud.
alerts[]object—Una alerta: `level`, `exchange`, `family`, `code`, `detail`, horas de apertura / última observación / resolución, `hits` y `open`.
alerts[].levelstring—Nivel.
alerts[].exchangestring—Id del exchange, en minúsculas (por ejemplo `binance`).
alerts[].familystring—Familia de datos a la que se refiere la alerta.
alerts[].codestring—Código.
alerts[].detailstring—Detalle.
alerts[].opened_atnumbermsMarca de tiempo.
alerts[].last_seen_atnumbermsMarca de tiempo.
alerts[].resolved_atnumber|nullmsMarca de tiempo.
alerts[].hitsnumbercountNúmero de ejecuciones de la patrulla (una cada 5 minutos) que observaron la condición desde que se abrió la alerta.
alerts[].openboolean—Precio de apertura del periodo.
monitorobject—Salud de la propia supervisión: hora y antigüedad de la última ejecución de la patrulla, `patrol_ok` y la antigüedad del latido del recolector.
monitor.patrol_last_run_atnumbermsMarca de tiempo.
monitor.patrol_age_snumbersSegundos transcurridos desde el evento.
monitor.patrol_okboolean—true cuando la patrulla se ejecutó en los últimos 15 minutos; cuando es false, la lista `alerts` puede estar desactualizada, mientras que la matriz sigue en vivo.
monitor.collector_heartbeat_age_snumbersSegundos transcurridos desde el evento.
errorsnull—Mapa de id de familia a un código de error para las familias cuya propia comprobación de calidad falló; null cuando se ejecutaron todas las comprobaciones.
legendobject—Definición en texto plano de cada estado de celda. claves dinámicas: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE
legend.{*}string—Definición del estado indicado por la clave (`FRESH`, `PARTIAL`, `STALE`, `BROKEN`, `UNAVAILABLE`).
methodobject—Notas sobre la fórmula / el método.
method.statusstring—Estado.
method.lag_sstring—Enunciado en texto plano de cómo se calcula `lag_s`.
method.source_atstring—Cadena de fecha y hora.
method.fetched_atstring—Cadena de fecha y hora.
metaobject—Envoltorio de esta respuesta: id del esquema, sistema que la produce, marcas de tiempo, duración de la caché y frescura.
meta.schemastring—Id del esquema de esta respuesta; el mismo valor que el `schema` de nivel superior.
meta.sourcearray—De dónde procede el valor.
meta.source[]object—De dónde procede el valor.
meta.source[].systemstring—Sistema que produjo los datos; siempre `coinboss` en los endpoints del centro de desarrolladores.
meta.source[].componentstring—Componente del que proceden los datos: la sonda de endpoints y la patrulla de calidad de datos.
meta.observed_atnull—Marca de tiempo.
meta.received_atnumbermsMarca de tiempo.
meta.fetched_atnumbermsCuándo obtuvo CoinBoss los datos de la fuente.
meta.windowstring—Ventana.
meta.cache_ttl_snumbersDuración de la caché del lado del servidor para esta respuesta.
meta.qualitystring—Normalmente `FRESH`; `PARTIAL` cuando la patrulla de calidad no se ha ejecutado en los últimos 15 minutos (solo se ve afectada la lista de alertas).
meta.is_staleboolean—true cuando la fila es más antigua que la ventana de frescura; las filas desactualizadas no se usan en los totales.
meta.fallbackstring—Nota en texto plano sobre lo que devuelve este endpoint cuando sus datos de entrada están desactualizados o faltan.

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

Respuesta de ejemplo

/api/meta/quality · Respuesta real capturada 2026-11-13 03:53:46 UTC. Los arrays y mapas largos se abrevian para su visualización: alerts tenía 11 elementos; legend tenía 5 elementos; matrix tenía 30 elementos; summary tenía 5 elementos; datasets tenía 12 elementos; families tenía 12 elementos.

  • {
    • "success": true,
    • "schema": "coinboss.meta.quality/1",
    • "now": 1794542026126,
    • "families": [
      • { … 7 },
      • { … 7 }
      ],
    • "exchanges": [
      • "aster",
      • "backpack",
      • "binance",
      • "bingx",
      • "bitfinex",
      • "bitget",
      • "bitstamp",
      • "bitunix"
      ],
    • "matrix": {
      • "aster": { … 2 },
      • "backpack": { … 2 }
      },
    • "datasets": [
      • { … 12 },
      • { … 12 }
      ],
    • "summary": {
      • "FRESH": 161,
      • "PARTIAL": 7
      },
    • "by_family": {
      • "ticker": { … 2 },
      • "oi": { … 2 }
      },
    • "alerts": [
      • { … 10 },
      • { … 10 }
      ],
    • "monitor": {
      • "patrol_last_run_at": 1794541745827,
      • "patrol_age_s": 281,
      • "patrol_ok": true,
      • "collector_heartbeat_age_s": 36
      },
    • "errors": null,
    • "legend": {
      • "FRESH": "newest stored data point is inside the fresh window for this family",
      • "PARTIAL": "some contracts / rows are outside the fresh window or miss a required field"
      },
    • "method": {
      • "status": "judged from data timestamps in CoinBoss storage every request (30 s in-process cache); a running collector process is not treated as evidence",
      • "lag_s": "now − newest stored data timestamp for the exchange / family",
      • "source_at": "newest stored data timestamp (exchange timestamp when the exchange provides one, otherwise collector receive time)",
      • "fetched_at": "last successful upstream call recorded by the collector health log; null for WebSocket feeds and collectors that do not log per-call health"
      },
    • "meta": {
      • "schema": "coinboss.meta.quality/1",
      • "source": [ … 1 ],
      • "observed_at": null,
      • "received_at": 1794542026978,
      • "fetched_at": 1794542026126,
      • "window": "latest",
      • "cache_ttl_s": 20,
      • "quality": "FRESH",
      • "is_stale": false,
      • "fallback": "matrix is always computed from storage; when the 5-minute patrol itself stops (monitor.patrol_ok=false) only the alerts list may be outdated"
      }
    }

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
exchange=binance2001 msCorrecto FRESH
family=funding2001 msCorrecto FRESH

Comprobado 2026-11-13 03:29:27 UTC

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
Se evalúa bajo demanda a partir de la marca de tiempo más reciente de los datos de cada par exchange × familia.
Fuentes de datos
Tablas en bruto de CoinBoss (marcas de tiempo de la última fila), registro de salud de los recolectores. Un proceso en ejecución nunca se cuenta como datos en buen estado.
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:53:46 UTCHTTP 200887 msEl esquema coincideAntigüedad del dato más reciente: 0s

Disponibilidad, últimos 30 días

100% de 407 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/meta/qualityDisponible
Parámetros

string — Return only this exchange (lower-case id, for example `binance`).

string — Return only this data family (for example `oi`, `funding`, `liquidation`).

URL de la solicitudhttps://www.coinboss.com/api/meta/quality
Elija un endpoint y pulse «Enviar solicitud». Aquí aparecerán la respuesta, las cabeceras y los tiempos.