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 s);告警作業每 5 min
- 時間視窗
- 最新狀態;最近 24 h 內未解除或已解除的告警
- 資料來源
- 資料新鮮度矩陣(交易所 x 資料族),由 CoinBoss 依自有採集資料表的時間戳記自行計算。
- 交易所覆蓋範圍
- 任何已採集資料族中出現的所有交易所;缺少的來源會回報為 unavailable 並附上原因
- 分頁
- 告警上限為 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 epoch 毫秒(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