GET可用
数据质量矩阵(采集器视角)
自采数据层:数据质量矩阵(交易所 × 数据族)
GET
/api/sd/quality请求
该端点不接受任何参数。
请求示例
curl -s "https://www.coinboss.com/api/sd/quality"响应字段
字段表根据真实响应生成,因此所列内容与端点实际返回的完全一致。路径中 a[] 表示数组元素,{*} 表示以动态名称(如币种或交易所)为键的对象。
| 字段 | 类型 | 单位 | 说明 |
|---|---|---|---|
| success | boolean | — | 请求成功时为 true。失败时响应体为 `{ success: false, code, error, request_id }`。 |
| now | number | ms | 响应生成时的服务器时间。 |
| families | array | — | 对每家交易所检查的数据族,按显示顺序排列。 |
| families[] | string | — | 数据族 ID,取以下值之一:`ticker`、`oi`、`funding`、`funding_settle`、`liquidation`、`ls`、`spot` 或 `sd_contracts`。 |
| exchanges | array | — | 交易所。 |
| exchanges[] | string | — | 交易所。 |
| matrix | object | — | 以行和列为键的矩阵。 动态键: aster,backpack,binance,bingx,bitfinex,bitget |
| matrix.{*} | object | — | 以行和列为键的矩阵。 动态键: ticker,oi,funding,funding_settle,liquidation,ls |
| matrix.{*}.ticker | object | — | 该交易所合约行情的新鲜度:`status`、行数、`age_s` 以及新鲜窗口 / 可用窗口。映射的键为交易所 ID。 可能缺失 |
| matrix.{*}.ticker.status | string | — | 状态。 可能缺失 |
| matrix.{*}.ticker.rows | number | — | 结果行。 可能缺失 |
| matrix.{*}.ticker.rows_fresh | number | — | 在新鲜窗口内更新过的行。 可能缺失 |
| matrix.{*}.ticker.rows_usable | number | — | 在可用窗口内的行。 可能缺失 |
| matrix.{*}.ticker.rows_orphan | number | — | 合约已下架的行。 可能缺失 |
| matrix.{*}.ticker.rows_invalid | number | — | 未通过校验的行。 可能缺失 |
| matrix.{*}.ticker.age_s | number | s | 该行距上次更新的秒数。 可能缺失 |
| matrix.{*}.ticker.fresh_within_s | number | s | 新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失 |
| matrix.{*}.ticker.usable_within_s | number | s | 早于该时长的数据完全不会被使用。 可能缺失 |
| matrix.{*}.oi | object | — | 持仓量。 可能缺失 |
| matrix.{*}.oi.status | string | — | 状态。 可能缺失 |
| matrix.{*}.oi.rows | number | — | 结果行。 可能缺失 |
| matrix.{*}.oi.rows_fresh | number | — | 在新鲜窗口内更新过的行。 可能缺失 |
| matrix.{*}.oi.rows_usable | number | — | 在可用窗口内的行。 可能缺失 |
| matrix.{*}.oi.rows_orphan | number | — | 合约已下架的行。 可能缺失 |
| matrix.{*}.oi.rows_invalid | number | — | 未通过校验的行。 可能缺失 |
| matrix.{*}.oi.age_s | number | s | 该行距上次更新的秒数。 可能缺失 |
| matrix.{*}.oi.fresh_within_s | number | s | 新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失 |
| matrix.{*}.oi.usable_within_s | number | s | 早于该时长的数据完全不会被使用。 可能缺失 |
| matrix.{*}.funding | object | — | 资金费率数据块或数值。 可能缺失 |
| matrix.{*}.funding.status | string | — | 状态。 可能缺失 |
| matrix.{*}.funding.rows | number | — | 结果行。 可能缺失 |
| matrix.{*}.funding.rows_fresh | number | — | 在新鲜窗口内更新过的行。 可能缺失 |
| matrix.{*}.funding.rows_usable | number | — | 在可用窗口内的行。 可能缺失 |
| matrix.{*}.funding.rows_orphan | number | — | 合约已下架的行。 可能缺失 |
| matrix.{*}.funding.rows_invalid | number | — | 未通过校验的行。 可能缺失 |
| matrix.{*}.funding.age_s | number | s | 该行距上次更新的秒数。 可能缺失 |
| matrix.{*}.funding.fresh_within_s | number | s | 新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失 |
| matrix.{*}.funding.usable_within_s | number | s | 早于该时长的数据完全不会被使用。 可能缺失 |
| matrix.{*}.funding.rows_unknown_interval | number | count | 最近 4 小时内更新过但结算周期未知、因而无法归一化到 8 小时的资金费行;只要存在这样的行,该单元格即为 `partial`。 可能缺失 |
| matrix.{*}.funding.rows_no_next_time | number | ms | 时间戳。 可能缺失 |
| matrix.{*}.funding.rows_no_liveness | number | count | 近期有更新、但所属合约没有活跃交易迹象(已下架或没有成交量)的资金费行;不计入新鲜度统计。 可能缺失 |
| matrix.{*}.funding_settle | object | — | 该交易所资金费结算历史的新鲜度:`status`、最新一次结算的 `age_s`、`symbols` 和 `history_from`。 可能缺失 |
| matrix.{*}.funding_settle.status | string | — | 状态。 可能缺失 |
| matrix.{*}.funding_settle.age_s | number | s | 该行距上次更新的秒数。 可能缺失 |
| matrix.{*}.funding_settle.symbols | number | — | 交易对。 可能缺失 |
| matrix.{*}.funding_settle.history_from | number | ms | 所存最早的记录。 可能缺失 |
| matrix.{*}.funding_settle.fresh_within_s | number | s | 新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失 |
| matrix.{*}.liquidation | object | — | 爆仓数据块。 可能缺失 |
| matrix.{*}.liquidation.status | string | — | 状态。 可能缺失 |
| matrix.{*}.liquidation.via | string | — | 采集路径。 可能缺失 |
| matrix.{*}.liquidation.last_event_age_s | number|null | s | 距该事件的秒数。 可能缺失 |
| matrix.{*}.liquidation.events_1h | number | count | 最近 1 小时内从该交易所存储的爆仓单数量;各交易所的最小订单规模不同,因此数量之间不可比。 可能缺失 |
| matrix.{*}.liquidation.events_24h | number | count | 最近 24 小时内从该交易所存储的爆仓单数量;各交易所的最小订单规模不同,因此数量之间不可比。 可能缺失 |
| matrix.{*}.liquidation.ws_heartbeat_age_s | number|null | s | 距该事件的秒数。 可能缺失 |
| matrix.{*}.liquidation.judged_by | string | — | 状态是依据哪个时间戳判定的。 可能缺失 |
| matrix.{*}.liquidation.idle_ok_s | number | s | 对该交易所而言仍属正常的最长无爆仓间隔;间隔更长时该数据流标记为 `stale`。 可能缺失 |
| matrix.{*}.ls | object | — | 该交易所多空比数据行的新鲜度:`status`、行数、`age_s` 以及新鲜窗口 / 可用窗口。 可能缺失 |
| matrix.{*}.ls.status | string | — | 状态。 可能缺失 |
| matrix.{*}.ls.reason | string | — | 原因代码。 可能缺失 |
| matrix.{*}.spot | object | — | 现货市场数据块或数值。 可能缺失 |
| matrix.{*}.spot.status | string | — | 状态。 可能缺失 |
| matrix.{*}.spot.reason | string | — | 原因代码。 可能缺失 |
| matrix.{*}.sd_contracts | object | — | 该交易所币本位、USDC 本位和交割合约数据行的新鲜度:`status`、行数和 `age_s`。 可能缺失 |
| matrix.{*}.sd_contracts.status | string | — | 状态。 可能缺失 |
| matrix.{*}.sd_contracts.reason | string | — | 原因代码。 可能缺失 |
| matrix.{*}.funding_settle.reason | string | — | 原因代码。 可能缺失 |
| matrix.{*}.liquidation.reason | string | — | 原因代码。 可能缺失 |
| matrix.{*}.liquidation.note | string | — | 备注。 可能缺失 |
| matrix.{*}.ls.rows | number | — | 结果行。 可能缺失 |
| matrix.{*}.ls.rows_fresh | number | — | 在新鲜窗口内更新过的行。 可能缺失 |
| matrix.{*}.ls.rows_usable | number | — | 在可用窗口内的行。 可能缺失 |
| matrix.{*}.ls.rows_orphan | number | — | 合约已下架的行。 可能缺失 |
| matrix.{*}.ls.rows_invalid | number | — | 未通过校验的行。 可能缺失 |
| matrix.{*}.ls.age_s | number | s | 该行距上次更新的秒数。 可能缺失 |
| matrix.{*}.ls.fresh_within_s | number | s | 新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失 |
| matrix.{*}.ls.usable_within_s | number | s | 早于该时长的数据完全不会被使用。 可能缺失 |
| matrix.{*}.spot.age_s | number | s | 该行距上次更新的秒数。 可能缺失 |
| matrix.{*}.spot.coins | number | — | 币种。 可能缺失 |
| matrix.{*}.spot.fresh_within_s | number | s | 新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失 |
| matrix.{*}.spot.note | string | — | 备注。 可能缺失 |
| matrix.{*}.sd_contracts.rows | number | — | 结果行。 可能缺失 |
| matrix.{*}.sd_contracts.rows_fresh | number | — | 在新鲜窗口内更新过的行。 可能缺失 |
| matrix.{*}.sd_contracts.age_s | number | s | 该行距上次更新的秒数。 可能缺失 |
| matrix.{*}.sd_contracts.rows_without_oi | number | count | 没有 USD 持仓量数值的合约行。 可能缺失 |
| matrix.{*}.sd_contracts.rows_oi_promoted | number | count | 其持仓量同时计入全站持仓量合计的合约行。 可能缺失 |
| matrix.{*}.sd_contracts.fresh_within_s | number | s | 新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失 |
| matrix.{*}.{*} | object | — | 以行和列为键的矩阵。 |
| matrix.{*}.{*}.status | string | — | 状态。 |
| matrix.{*}.{*}.reason | string | — | 原因代码。 可能缺失 |
| matrix.{*}.{*}.age_s | number | s | 该行距上次更新的秒数。 可能缺失 |
| matrix.{*}.{*}.coins | number | — | 币种。 可能缺失 |
| matrix.{*}.{*}.fresh_within_s | number | s | 新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失 |
| matrix.{*}.{*}.note | string | — | 备注。 可能缺失 |
| matrix.{*}.oi.reason | string | — | 原因代码。 可能缺失 |
| matrix.{*}.{*}.rows | number | — | 结果行。 可能缺失 |
| matrix.{*}.{*}.rows_fresh | number | — | 在新鲜窗口内更新过的行。 可能缺失 |
| matrix.{*}.{*}.rows_usable | number | — | 在可用窗口内的行。 可能缺失 |
| matrix.{*}.{*}.rows_orphan | number | — | 合约已下架的行。 可能缺失 |
| matrix.{*}.{*}.rows_invalid | number | — | 未通过校验的行。 可能缺失 |
| matrix.{*}.{*}.usable_within_s | number | s | 早于该时长的数据完全不会被使用。 可能缺失 |
| matrix.{*}.ticker.dead | boolean | — | 仅在 `status` 为 `stale` 时存在:可用窗口内同样没有任何数据行、该交易所因此被排除在聚合值之外时为 true。 可能缺失 |
| matrix.{*}.funding.reason | string | — | 原因代码。 可能缺失 |
| matrix.{*}.liquidation.pipeline_last_event_age_s | number | s | 距该事件的秒数。 可能缺失 |
| matrix.{*}.liquidation.node_heartbeat_age_s | number | s | 距该事件的秒数。 可能缺失 |
| summary | object | — | 汇总数据块。 |
| summary.fresh | number | count | 状态为 `fresh` 的交易所 × 数据族单元格数量。 |
| summary.partial | number | — | 仅有部分预期数据时为 true。 |
| summary.stale | number | — | 超出新鲜窗口的数据行或其标志。 |
| summary.invalid | number | count | 状态为 `invalid` 的交易所 × 数据族单元格数量。 |
| summary.unavailable | number | — | 没有可用数据的条目,附原因。绝不会上报为 0。 |
| sources | array | — | 数据来源。 |
| sources[] | object | — | 数据来源。 |
| sources[].exchange | string | — | 交易所 ID,小写(例如 `binance`)。 |
| sources[].family | string | — | 该健康记录所属采集任务的数据族,例如 `oi`、`funding`、`ticker`。 |
| sources[].endpoint | string | — | 被跟踪的上游调用的标签:所轮询公开 API 的主机和路径,或内部检查的名称。 |
| sources[].ok | boolean | — | 最近一次尝试失败(即最后一次错误晚于最后一次成功)时为 false。 |
| sources[].last_ok_age_s | number|null | s | 距该事件的秒数。 |
| sources[].last_err_age_s | number|null | s | 距该事件的秒数。 |
| sources[].last_status | number | — | 最近一次调用的 HTTP 状态码。 |
| sources[].last_error | string|null | — | 最后一次失败的错误文本,截断至 160 个字符;没有记录时为 null。 |
| sources[].last_ms | number | ms | 最近一次调用的耗时;未测量时为 null。 |
| sources[].fail_streak | number | count | 截至目前连续失败的调用次数;成功后归 0。 |
| sources[].ok_count | number | count | 健康日志中记录的成功调用次数。 |
| sources[].err_count | number | count | 健康日志中记录的失败调用次数。 |
| sources[].http_429 | number | count | 返回 HTTP 429(被限流)的失败调用次数。 |
| sources[].http_403 | number | count | 返回 HTTP 403(禁止访问)的失败调用次数。 |
| sources[].http_5xx | number | count | 返回 HTTP 5xx 状态码的失败调用次数。 |
| sources[].timeouts | number | count | 因超时而失败的调用次数。 |
| errors | object | — | 数据族 ID 到错误信息的映射,仅包含检查本身失败的数据族;所有检查均已运行时为空。 |
| alerts | array | — | 数据质量巡检中未解决或在最近 24 小时内已解决的告警,未解决的排在最前(最多 200 条)。 |
| alerts[] | object | — | 一条告警:`level`、`exchange`、`family`、`code`、`detail`、触发 / 最近一次出现 / 解决的时间、`hits` 和 `open`。 |
| alerts[].level | string | — | 等级。 |
| alerts[].exchange | string | — | 交易所 ID,小写(例如 `binance`)。 |
| alerts[].family | string | — | 该告警所涉及的数据族。 |
| alerts[].code | string | — | 代码。 |
| alerts[].detail | string | — | 详情。 |
| alerts[].opened_at | number | ms | 时间戳。 |
| alerts[].last_seen_at | number | ms | 时间戳。 |
| alerts[].resolved_at | number|null | ms | 时间戳。 |
| alerts[].hits | number | count | 自告警触发以来观察到该状况的巡检次数(每 5 分钟巡检一次)。 |
| alerts[].open | boolean | — | 周期开盘价。 |
| monitor | object | — | 监控自身的健康状况:最近一次巡检距今的时长、采集器心跳距今的时长以及 `patrol_ok`。 |
| monitor.alert_job_age_s | number | s | 距该事件的秒数。 |
| monitor.collector_heartbeat_age_s | number | s | 距该事件的秒数。 |
| monitor.patrol_ok | boolean | — | 巡检在最近 15 分钟内运行过时为 true;为 false 时 `alerts` 列表可能不是最新的。 |
| legend | object | — | 各单元格状态的纯文本定义。 |
| legend.fresh | string | — | 状态 `fresh` 的定义。 |
| legend.partial | string | — | 仅有部分预期数据时为 true。 |
| legend.stale | string | — | 超出新鲜窗口的数据行或其标志。 |
| legend.invalid | string | — | 状态 `invalid` 的定义。 |
| legend.unavailable | string | — | 没有可用数据的条目,附原因。绝不会上报为 0。 |
生成于 2026-11-11 23:01 UTC,基于 1 个真实响应。
响应示例
/api/sd/quality · 真实响应,采集于 2026-11-13 03:53:45 UTC。 为便于展示,较长的数组和映射已被截短:alerts 原有 3 项; matrix 原有 29 项; sources 原有 262 项; exchanges 原有 29 项。
- "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"
详细信息
- 身份验证
- 无。公开端点。
- 速率限制
- 每个 IP 每分钟 1200 次请求
- 服务端缓存
- 20s
- 边缘微缓存
- 10s
- 更新频率
- 矩阵在请求时计算(进程内缓存 20 秒);告警任务每 5 分钟
- 时间窗口
- 最新状态;未关闭的告警,或最近 24 小时内已解决的告警
- 数据来源
- 数据新鲜度矩阵(交易所 x 数据族),由 CoinBoss 根据自有采集数据表的时间戳自行计算。
- 交易所覆盖范围
- 任一已采集数据族中出现的全部交易所;缺失的数据源会报告为不可用并附原因
- 分页
- 告警最多 200 条
- 单位
- status per cell: fresh | partial | stale | invalid | unavailable; ages in seconds
- 计算方法
- 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
- 时间戳
- 除非字段说明另有注明,均为 Unix 纪元毫秒(UTC)
- 响应格式
- json
- 稳定性
- 稳定
- 上线时间
- 2026-11-11
实时状态
可用检查于 2026-11-13 03:53:45 UTCHTTP 2004 ms结构一致最新数据点距今 5m
近 30 天可用性
407 次检查中 100% 通过
最近一次探测发现结构漂移
- 实际返回但文档未记载: 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
错误
所有端点的失败响应格式一致。完整列表见错误页面。 错误与速率限制 →
| 错误码 | HTTP | 含义 | 处理方式 |
|---|---|---|---|
| INVALID_PARAM | 400 | 缺少必填参数,或某个取值不被接受。已知是哪个参数时,`param` 会给出其名称。 | 请勿原样重试;请修正请求。 |
| UNAUTHORIZED | 401 | 已发送 `CB-API-KEY` 请求头,但该密钥未知或已被吊销。公开数据无需密钥,请去掉该请求头或使用有效密钥。 | 请勿原样重试。 |
| FORBIDDEN | 403 | 该路由不属于公开 API(内部或仅限账户使用)。 | 请勿重试。 |
| NOT_FOUND | 404 | 未知路由,或所请求的币种 / 交易所 / 基金不存在。 | 请勿重试;请对照目录检查路径和标识符。 |
| RATE_LIMITED | 429 | 请求数超过每分钟限额。`Retry-After` 给出需要等待的秒数。 | 等待 `Retry-After` 指定的时间后,再以退避方式重试。 |
| INTERNAL | 500 | 意外的服务器错误。错误信息有意保持通用;报告问题时请附上 `request_id`。 | 几秒后重试一次;若问题持续,请附上请求 ID 报告。 |
| UPSTREAM_FAILED | 503 | 该端点背后的数据源未及时响应。不会返回过期数据或替代数值来顶替。 | 以退避方式重试;并查看状态页。 |
| UNAVAILABLE | 501 / 503 | 数据集暂时未就绪(缓存预热中),或该端点尚无合法的公开数据源。 | 请稍后重试;目录会标出因设计原因而不可用的端点。 |
| REQUEST_FAILED | 200 | 部分较旧的端点会以 HTTP 200 返回 `success: false`。请务必检查 `success`,而不只是 HTTP 状态码。 | 取决于具体信息;按请求失败处理。 |
试一试
GET
/api/sd/quality可用参数
无参数。
请求 URL
https://www.coinboss.com/api/sd/quality选择一个端点,然后点击“发送请求”。响应、响应头和耗时将显示在这里。
同分类的其他端点
- 数据质量矩阵(采集器视角) /api/sd/quality
- API 目录 /api/meta/catalog
- 更新日志与版本管理策略 /api/meta/changelog
- 端点文档 /api/meta/endpoint
- OpenAPI 文档 /api/meta/openapi
- 数据质量矩阵 /api/meta/quality
- 服务状态 /api/meta/status
- 检查平台是否收录某个币种代码 /api/coin-exists
- 币种代码到本地托管图标路径的映射 /api/coin-icons
- 币种页聚合摘要 /api/content/coin
- 全站栏目摘要 /api/content/summary
- 法币汇率表 /api/currency/fx
- 交易所 ID 到本地托管图标路径的映射 /api/exchange-icons
- 存活检查 /api/health
- 研究页统计数据 /api/research/stats