/api/sd/quality
GET可用

数据质量矩阵(采集器视角)

自采数据层:数据质量矩阵(交易所 × 数据族)

GET/api/sd/quality

请求

该端点不接受任何参数。

请求示例

curl -s "https://www.coinboss.com/api/sd/quality"

响应字段

字段表根据真实响应生成,因此所列内容与端点实际返回的完全一致。路径中 a[] 表示数组元素,{*} 表示以动态名称(如币种或交易所)为键的对象。

字段类型单位说明
successboolean—请求成功时为 true。失败时响应体为 `{ success: false, code, error, request_id }`。
nownumberms响应生成时的服务器时间。
familiesarray—对每家交易所检查的数据族,按显示顺序排列。
families[]string—数据族 ID,取以下值之一:`ticker`、`oi`、`funding`、`funding_settle`、`liquidation`、`ls`、`spot` 或 `sd_contracts`。
exchangesarray—交易所。
exchanges[]string—交易所。
matrixobject—以行和列为键的矩阵。 动态键: aster,backpack,binance,bingx,bitfinex,bitget
matrix.{*}object—以行和列为键的矩阵。 动态键: ticker,oi,funding,funding_settle,liquidation,ls
matrix.{*}.tickerobject—该交易所合约行情的新鲜度:`status`、行数、`age_s` 以及新鲜窗口 / 可用窗口。映射的键为交易所 ID。 可能缺失
matrix.{*}.ticker.statusstring—状态。 可能缺失
matrix.{*}.ticker.rowsnumber—结果行。 可能缺失
matrix.{*}.ticker.rows_freshnumber—在新鲜窗口内更新过的行。 可能缺失
matrix.{*}.ticker.rows_usablenumber—在可用窗口内的行。 可能缺失
matrix.{*}.ticker.rows_orphannumber—合约已下架的行。 可能缺失
matrix.{*}.ticker.rows_invalidnumber—未通过校验的行。 可能缺失
matrix.{*}.ticker.age_snumbers该行距上次更新的秒数。 可能缺失
matrix.{*}.ticker.fresh_within_snumbers新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失
matrix.{*}.ticker.usable_within_snumbers早于该时长的数据完全不会被使用。 可能缺失
matrix.{*}.oiobject—持仓量。 可能缺失
matrix.{*}.oi.statusstring—状态。 可能缺失
matrix.{*}.oi.rowsnumber—结果行。 可能缺失
matrix.{*}.oi.rows_freshnumber—在新鲜窗口内更新过的行。 可能缺失
matrix.{*}.oi.rows_usablenumber—在可用窗口内的行。 可能缺失
matrix.{*}.oi.rows_orphannumber—合约已下架的行。 可能缺失
matrix.{*}.oi.rows_invalidnumber—未通过校验的行。 可能缺失
matrix.{*}.oi.age_snumbers该行距上次更新的秒数。 可能缺失
matrix.{*}.oi.fresh_within_snumbers新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失
matrix.{*}.oi.usable_within_snumbers早于该时长的数据完全不会被使用。 可能缺失
matrix.{*}.fundingobject—资金费率数据块或数值。 可能缺失
matrix.{*}.funding.statusstring—状态。 可能缺失
matrix.{*}.funding.rowsnumber—结果行。 可能缺失
matrix.{*}.funding.rows_freshnumber—在新鲜窗口内更新过的行。 可能缺失
matrix.{*}.funding.rows_usablenumber—在可用窗口内的行。 可能缺失
matrix.{*}.funding.rows_orphannumber—合约已下架的行。 可能缺失
matrix.{*}.funding.rows_invalidnumber—未通过校验的行。 可能缺失
matrix.{*}.funding.age_snumbers该行距上次更新的秒数。 可能缺失
matrix.{*}.funding.fresh_within_snumbers新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失
matrix.{*}.funding.usable_within_snumbers早于该时长的数据完全不会被使用。 可能缺失
matrix.{*}.funding.rows_unknown_intervalnumbercount最近 4 小时内更新过但结算周期未知、因而无法归一化到 8 小时的资金费行;只要存在这样的行,该单元格即为 `partial`。 可能缺失
matrix.{*}.funding.rows_no_next_timenumberms时间戳。 可能缺失
matrix.{*}.funding.rows_no_livenessnumbercount近期有更新、但所属合约没有活跃交易迹象(已下架或没有成交量)的资金费行;不计入新鲜度统计。 可能缺失
matrix.{*}.funding_settleobject—该交易所资金费结算历史的新鲜度:`status`、最新一次结算的 `age_s`、`symbols` 和 `history_from`。 可能缺失
matrix.{*}.funding_settle.statusstring—状态。 可能缺失
matrix.{*}.funding_settle.age_snumbers该行距上次更新的秒数。 可能缺失
matrix.{*}.funding_settle.symbolsnumber—交易对。 可能缺失
matrix.{*}.funding_settle.history_fromnumberms所存最早的记录。 可能缺失
matrix.{*}.funding_settle.fresh_within_snumbers新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失
matrix.{*}.liquidationobject—爆仓数据块。 可能缺失
matrix.{*}.liquidation.statusstring—状态。 可能缺失
matrix.{*}.liquidation.viastring—采集路径。 可能缺失
matrix.{*}.liquidation.last_event_age_snumber|nulls距该事件的秒数。 可能缺失
matrix.{*}.liquidation.events_1hnumbercount最近 1 小时内从该交易所存储的爆仓单数量;各交易所的最小订单规模不同,因此数量之间不可比。 可能缺失
matrix.{*}.liquidation.events_24hnumbercount最近 24 小时内从该交易所存储的爆仓单数量;各交易所的最小订单规模不同,因此数量之间不可比。 可能缺失
matrix.{*}.liquidation.ws_heartbeat_age_snumber|nulls距该事件的秒数。 可能缺失
matrix.{*}.liquidation.judged_bystring—状态是依据哪个时间戳判定的。 可能缺失
matrix.{*}.liquidation.idle_ok_snumbers对该交易所而言仍属正常的最长无爆仓间隔;间隔更长时该数据流标记为 `stale`。 可能缺失
matrix.{*}.lsobject—该交易所多空比数据行的新鲜度:`status`、行数、`age_s` 以及新鲜窗口 / 可用窗口。 可能缺失
matrix.{*}.ls.statusstring—状态。 可能缺失
matrix.{*}.ls.reasonstring—原因代码。 可能缺失
matrix.{*}.spotobject—现货市场数据块或数值。 可能缺失
matrix.{*}.spot.statusstring—状态。 可能缺失
matrix.{*}.spot.reasonstring—原因代码。 可能缺失
matrix.{*}.sd_contractsobject—该交易所币本位、USDC 本位和交割合约数据行的新鲜度:`status`、行数和 `age_s`。 可能缺失
matrix.{*}.sd_contracts.statusstring—状态。 可能缺失
matrix.{*}.sd_contracts.reasonstring—原因代码。 可能缺失
matrix.{*}.funding_settle.reasonstring—原因代码。 可能缺失
matrix.{*}.liquidation.reasonstring—原因代码。 可能缺失
matrix.{*}.liquidation.notestring—备注。 可能缺失
matrix.{*}.ls.rowsnumber—结果行。 可能缺失
matrix.{*}.ls.rows_freshnumber—在新鲜窗口内更新过的行。 可能缺失
matrix.{*}.ls.rows_usablenumber—在可用窗口内的行。 可能缺失
matrix.{*}.ls.rows_orphannumber—合约已下架的行。 可能缺失
matrix.{*}.ls.rows_invalidnumber—未通过校验的行。 可能缺失
matrix.{*}.ls.age_snumbers该行距上次更新的秒数。 可能缺失
matrix.{*}.ls.fresh_within_snumbers新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失
matrix.{*}.ls.usable_within_snumbers早于该时长的数据完全不会被使用。 可能缺失
matrix.{*}.spot.age_snumbers该行距上次更新的秒数。 可能缺失
matrix.{*}.spot.coinsnumber—币种。 可能缺失
matrix.{*}.spot.fresh_within_snumbers新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失
matrix.{*}.spot.notestring—备注。 可能缺失
matrix.{*}.sd_contracts.rowsnumber—结果行。 可能缺失
matrix.{*}.sd_contracts.rows_freshnumber—在新鲜窗口内更新过的行。 可能缺失
matrix.{*}.sd_contracts.age_snumbers该行距上次更新的秒数。 可能缺失
matrix.{*}.sd_contracts.rows_without_oinumbercount没有 USD 持仓量数值的合约行。 可能缺失
matrix.{*}.sd_contracts.rows_oi_promotednumbercount其持仓量同时计入全站持仓量合计的合约行。 可能缺失
matrix.{*}.sd_contracts.fresh_within_snumbers新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失
matrix.{*}.{*}object—以行和列为键的矩阵。
matrix.{*}.{*}.statusstring—状态。
matrix.{*}.{*}.reasonstring—原因代码。 可能缺失
matrix.{*}.{*}.age_snumbers该行距上次更新的秒数。 可能缺失
matrix.{*}.{*}.coinsnumber—币种。 可能缺失
matrix.{*}.{*}.fresh_within_snumbers新鲜窗口:比该时长更新的数据视为新鲜。 可能缺失
matrix.{*}.{*}.notestring—备注。 可能缺失
matrix.{*}.oi.reasonstring—原因代码。 可能缺失
matrix.{*}.{*}.rowsnumber—结果行。 可能缺失
matrix.{*}.{*}.rows_freshnumber—在新鲜窗口内更新过的行。 可能缺失
matrix.{*}.{*}.rows_usablenumber—在可用窗口内的行。 可能缺失
matrix.{*}.{*}.rows_orphannumber—合约已下架的行。 可能缺失
matrix.{*}.{*}.rows_invalidnumber—未通过校验的行。 可能缺失
matrix.{*}.{*}.usable_within_snumbers早于该时长的数据完全不会被使用。 可能缺失
matrix.{*}.ticker.deadboolean—仅在 `status` 为 `stale` 时存在:可用窗口内同样没有任何数据行、该交易所因此被排除在聚合值之外时为 true。 可能缺失
matrix.{*}.funding.reasonstring—原因代码。 可能缺失
matrix.{*}.liquidation.pipeline_last_event_age_snumbers距该事件的秒数。 可能缺失
matrix.{*}.liquidation.node_heartbeat_age_snumbers距该事件的秒数。 可能缺失
summaryobject—汇总数据块。
summary.freshnumbercount状态为 `fresh` 的交易所 × 数据族单元格数量。
summary.partialnumber—仅有部分预期数据时为 true。
summary.stalenumber—超出新鲜窗口的数据行或其标志。
summary.invalidnumbercount状态为 `invalid` 的交易所 × 数据族单元格数量。
summary.unavailablenumber—没有可用数据的条目,附原因。绝不会上报为 0。
sourcesarray—数据来源。
sources[]object—数据来源。
sources[].exchangestring—交易所 ID,小写(例如 `binance`)。
sources[].familystring—该健康记录所属采集任务的数据族,例如 `oi`、`funding`、`ticker`。
sources[].endpointstring—被跟踪的上游调用的标签:所轮询公开 API 的主机和路径,或内部检查的名称。
sources[].okboolean—最近一次尝试失败(即最后一次错误晚于最后一次成功)时为 false。
sources[].last_ok_age_snumber|nulls距该事件的秒数。
sources[].last_err_age_snumber|nulls距该事件的秒数。
sources[].last_statusnumber—最近一次调用的 HTTP 状态码。
sources[].last_errorstring|null—最后一次失败的错误文本,截断至 160 个字符;没有记录时为 null。
sources[].last_msnumberms最近一次调用的耗时;未测量时为 null。
sources[].fail_streaknumbercount截至目前连续失败的调用次数;成功后归 0。
sources[].ok_countnumbercount健康日志中记录的成功调用次数。
sources[].err_countnumbercount健康日志中记录的失败调用次数。
sources[].http_429numbercount返回 HTTP 429(被限流)的失败调用次数。
sources[].http_403numbercount返回 HTTP 403(禁止访问)的失败调用次数。
sources[].http_5xxnumbercount返回 HTTP 5xx 状态码的失败调用次数。
sources[].timeoutsnumbercount因超时而失败的调用次数。
errorsobject—数据族 ID 到错误信息的映射,仅包含检查本身失败的数据族;所有检查均已运行时为空。
alertsarray—数据质量巡检中未解决或在最近 24 小时内已解决的告警,未解决的排在最前(最多 200 条)。
alerts[]object—一条告警:`level`、`exchange`、`family`、`code`、`detail`、触发 / 最近一次出现 / 解决的时间、`hits` 和 `open`。
alerts[].levelstring—等级。
alerts[].exchangestring—交易所 ID,小写(例如 `binance`)。
alerts[].familystring—该告警所涉及的数据族。
alerts[].codestring—代码。
alerts[].detailstring—详情。
alerts[].opened_atnumberms时间戳。
alerts[].last_seen_atnumberms时间戳。
alerts[].resolved_atnumber|nullms时间戳。
alerts[].hitsnumbercount自告警触发以来观察到该状况的巡检次数(每 5 分钟巡检一次)。
alerts[].openboolean—周期开盘价。
monitorobject—监控自身的健康状况:最近一次巡检距今的时长、采集器心跳距今的时长以及 `patrol_ok`。
monitor.alert_job_age_snumbers距该事件的秒数。
monitor.collector_heartbeat_age_snumbers距该事件的秒数。
monitor.patrol_okboolean—巡检在最近 15 分钟内运行过时为 true;为 false 时 `alerts` 列表可能不是最新的。
legendobject—各单元格状态的纯文本定义。
legend.freshstring—状态 `fresh` 的定义。
legend.partialstring—仅有部分预期数据时为 true。
legend.stalestring—超出新鲜窗口的数据行或其标志。
legend.invalidstring—状态 `invalid` 的定义。
legend.unavailablestring—没有可用数据的条目,附原因。绝不会上报为 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": { … 8 },
      • "backpack": { … 8 }
      },
    • "summary": {
      • "fresh": 123,
      • "partial": 7,
      • "stale": 1,
      • "invalid": 0,
      • "unavailable": 101
      },
    • "sources": [
      • { … 16 },
      • { … 16 }
      ],
    • "errors": {},
    • "alerts": [
      • { … 10 },
      • { … 10 }
      ],
    • "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_PARAM400缺少必填参数,或某个取值不被接受。已知是哪个参数时,`param` 会给出其名称。请勿原样重试;请修正请求。
UNAUTHORIZED401已发送 `CB-API-KEY` 请求头,但该密钥未知或已被吊销。公开数据无需密钥,请去掉该请求头或使用有效密钥。请勿原样重试。
FORBIDDEN403该路由不属于公开 API(内部或仅限账户使用)。请勿重试。
NOT_FOUND404未知路由,或所请求的币种 / 交易所 / 基金不存在。请勿重试;请对照目录检查路径和标识符。
RATE_LIMITED429请求数超过每分钟限额。`Retry-After` 给出需要等待的秒数。等待 `Retry-After` 指定的时间后,再以退避方式重试。
INTERNAL500意外的服务器错误。错误信息有意保持通用;报告问题时请附上 `request_id`。几秒后重试一次;若问题持续,请附上请求 ID 报告。
UPSTREAM_FAILED503该端点背后的数据源未及时响应。不会返回过期数据或替代数值来顶替。以退避方式重试;并查看状态页。
UNAVAILABLE501 / 503数据集暂时未就绪(缓存预热中),或该端点尚无合法的公开数据源。请稍后重试;目录会标出因设计原因而不可用的端点。
REQUEST_FAILED200部分较旧的端点会以 HTTP 200 返回 `success: false`。请务必检查 `success`,而不只是 HTTP 状态码。取决于具体信息;按请求失败处理。

试一试

GET/api/sd/quality可用
参数

无参数。

请求 URLhttps://www.coinboss.com/api/sd/quality
选择一个端点,然后点击“发送请求”。响应、响应头和耗时将显示在这里。