/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_oinumbercountUSD 기준 미결제약정 값이 없는 계약 행. 없을 수 있음
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_429numbercountHTTP 429(요청 한도 초과)로 응답된 실패 호출 수.
sources[].http_403numbercountHTTP 403(접근 금지)으로 응답된 실패 호출 수.
sources[].http_5xxnumbercountHTTP 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:18:40 UTC에 수집한 실제 응답. 긴 배열과 맵은 표시를 위해 줄였습니다: alerts: 원래 항목 3개; matrix: 원래 항목 29개; sources: 원래 항목 262개; exchanges: 원래 항목 29개.

  • {
    • "success": true,
    • "now": 1794539921360,
    • "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": 275,
      • "collector_heartbeat_age_s": 90,
      • "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분마다
구간
최신 상태; 미해결이거나 최근 24 h 내에 해결된 경보
데이터 소스
CoinBoss가 자체 수집한 테이블의 타임스탬프에서 자체 계산한 데이터 신선도 매트릭스(거래소 x 데이터 계열).
거래소 커버리지
수집 중인 데이터 계열 중 하나에라도 있는 모든 거래소; 누락된 소스는 사유와 함께 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:18:40 UTC 점검HTTP 200815 ms스키마 일치최신 데이터 포인트: 5m 경과

최근 30일 가용성

점검 400회 중 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`로 응답합니다. HTTP 상태만 보지 말고 항상 `success`를 확인하십시오.메시지에 따라 다릅니다. 실패한 요청으로 처리하십시오.

직접 실행

GET/api/sd/quality사용 가능
파라미터

파라미터 없음.

요청 URLhttps://www.coinboss.com/api/sd/quality
엔드포인트를 선택하고 “요청 보내기”를 누르십시오. 응답, 헤더, 소요 시간이 여기에 표시됩니다.