/api/meta/quality
GET사용 가능FRESH

데이터 품질 매트릭스

거래소 × 데이터 계열 매트릭스로, FRESH / PARTIAL / STALE / BROKEN / UNAVAILABLE 등급, 소스 및 수집 타임스탬프, 지연, 커버리지, 공백별 사유를 제공합니다.

GET/api/meta/quality

요청

쿼리 파라미터

이름타입필수기본값허용 값설명
exchangestring선택——이 거래소만 반환(소문자 ID, 예: `binance`).
familystring선택——이 데이터 계열만 반환(예: `oi`, `funding`, `liquidation`).

요청 예시

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

응답 필드

필드 표는 실제 응답에서 생성되므로 엔드포인트가 반환하는 내용을 그대로 보여 줍니다. 경로에서 a[]는 배열 항목을, {*}는 코인이나 거래소처럼 동적 이름을 키로 갖는 객체를 뜻합니다.

필드타입단위설명
successboolean—요청이 성공하면 true입니다. 실패하면 본문은 `{ success: false, code, error, request_id }`입니다.
schemastring—이 응답의 스키마 ID(`coinboss.meta.quality/1`).
nownumberms응답이 생성된 서버 시각.
familiesarray—거래소별로 판정하는 데이터 계열(시세, 미결제약정, 펀딩, 청산, 오더북, 옵션 등).
families[]object—계열 하나: `id`, `scope`, `title`, `what`, `table`, `cadence`, `fresh_within_s`.
families[].idstring—식별자.
families[].scopestring—`matrix`에서 거래소별로 판정하는 계열이면 `exchange`.
families[].titlestring—계열의 표시 제목.
families[].whatstring—계열이 다루는 데이터에 대한 짧은 설명.
families[].tablestring—계열을 판정하는 데 쓰이는 내부 데이터셋의 이름. 참고용입니다.
families[].cadencestring—계열의 수집 일정에 대한 일반 텍스트 설명. 명시되지 않았으면 null.
families[].fresh_within_snumbers신선도 창: 이보다 최신인 데이터는 최신으로 간주됩니다.
exchangesarray—거래소.
exchanges[]string—거래소.
matrixobject—행과 열을 키로 하는 매트릭스. 동적 키: aster,backpack,binance,bingx,bitfinex,bitget
matrix.{*}object—행과 열을 키로 하는 매트릭스. 동적 키: ticker,oi,funding,funding_settle,liquidation,ls
matrix.{*}.{*}object—행과 열을 키로 하는 매트릭스.
matrix.{*}.{*}.statusstring—상태.
matrix.{*}.{*}.lag_snumber|nulls현재 시각에서 해당 거래소(첫 번째 키)와 계열(두 번째 키)의 저장된 최신 데이터 타임스탬프를 뺀 값. 그 거래소에서 해당 계열을 사용할 수 없으면 null.
matrix.{*}.{*}.source_atnumber|nullms타임스탬프.
matrix.{*}.{*}.fetched_atnumber|nullmsCoinBoss가 소스에서 데이터를 가져온 시각.
matrix.{*}.{*}.fresh_within_snumber|nulls신선도 창: 이보다 최신인 데이터는 최신으로 간주됩니다.
matrix.{*}.{*}.coverageobject|null—포함된 항목과 누락된 항목.
matrix.{*}.{*}.coverage.rowsnumber—결과 행. 없을 수 있음
matrix.{*}.{*}.coverage.rows_freshnumber—신선도 창 안에서 갱신된 행. 없을 수 있음
matrix.{*}.{*}.coverage.rows_usablenumber—사용 가능 창 안에 있는 행. 없을 수 있음
matrix.{*}.{*}.coverage.rows_orphannumber—계약이 더 이상 상장되어 있지 않은 행. 없을 수 있음
matrix.{*}.{*}.coverage.rows_invalidnumber—유효성 검사에서 거부된 행. 없을 수 있음
matrix.{*}.{*}.reasonstring|null—사유 코드.
matrix.{*}.{*}.coverage.rows_no_livenessnumbercount실제 거래가 이루어지고 있다는 증거가 없는 계약(상장 폐지 또는 거래량 없음)의 펀딩 행. 신선도 집계에서 제외됩니다. 없을 수 있음
matrix.{*}.{*}.coverage.rows_unknown_intervalnumbercount최근 갱신되었지만 정산 주기를 알 수 없어 8시간으로 환산할 수 없는 펀딩 행. 없을 수 있음
matrix.{*}.{*}.coverage.symbolsnumber—심볼. 없을 수 있음
matrix.{*}.{*}.coverage.events_1hnumbercount최근 1시간 동안 해당 거래소에서 저장된 청산 주문. 최소 주문 규모는 거래소마다 다릅니다. 없을 수 있음
matrix.{*}.{*}.coverage.events_24hnumbercount최근 24시간 동안 해당 거래소에서 저장된 청산 주문. 최소 주문 규모는 거래소마다 다릅니다. 없을 수 있음
matrix.{*}.{*}.viastring—수집 경로. 없을 수 있음
matrix.{*}.{*}.coverage.booksnumbercount추적 대상 오더북 수. 없을 수 있음
matrix.{*}.{*}.coverage.books_freshnumbercount신선도 창 안에 갱신된 오더북 수. 없을 수 있음
matrix.{*}.{*}.coverage.books_reaching_2pctnumbercount중간가 기준 ±2 % 범위를 포괄할 만큼 깊이가 충분한 오더북 수. 없을 수 있음
matrix.{*}.{*}.coverage.contractsnumber—계약별 행. 없을 수 있음
matrix.{*}.{*}.coverage.contracts_freshnumbercount신선도 창 안에 갱신된 계약 수. 없을 수 있음
matrix.{*}.{*}.coverage.with_mark_and_indexnumbercount마크 가격과 지수 가격이 모두 있는 계약 수. 없을 수 있음
matrix.{*}.{*}.coverage.delivery_contractsnumbercount만기 선물(만기일이 정해진) 계약 수. 없을 수 있음
matrix.{*}.{*}.notestring—비고. 없을 수 있음
matrix.{*}.{*}.coverage.coinsnumber—코인. 없을 수 있음
matrix.{*}.{*}.coverage.rows_without_oinumbercountUSD 기준 미결제약정 값이 없는 코인 마진, USDC 마진 또는 만기 선물 계약 행. 없을 수 있음
matrix.{*}.{*}.coverage.with_mark_ivnumbercount마크 내재 변동성이 있는 옵션 계약 수. 없을 수 있음
matrix.{*}.{*}.coverage.with_greeksnumbercount그릭스가 있는 옵션 계약 수. 없을 수 있음
datasetsarray—거래소별이 아닌 데이터셋(예: 현물 ETF, CME 일별 데이터)의 품질 점검으로, 각각 상태, 지연, 커버리지, 사유를 포함합니다.
datasets[]object—단일 거래소에 속하지 않는 시장 전체 데이터셋 하나(옵션, 현물 ETF, CME, 오더북, 베이시스).
datasets[].familystring—데이터셋 ID, 예: `etf` 또는 `cme`.
datasets[].idstring—식별자.
datasets[].titlestring—데이터셋의 표시 이름.
datasets[].sourcestring—값의 출처.
datasets[].endpointstring—해당 데이터셋을 제공하는 공개 엔드포인트.
datasets[].statusstring—상태.
datasets[].lag_snumbers응답이 생성된 시점 기준 최신 데이터 포인트의 경과 시간.
datasets[].source_atnumberms타임스탬프.
datasets[].fetched_atnumbermsCoinBoss가 소스에서 데이터를 가져온 시각.
datasets[].fresh_within_snumbers신선도 창: 이보다 최신인 데이터는 최신으로 간주됩니다.
datasets[].coverageobject—포함된 항목과 누락된 항목.
datasets[].coverage.funds_totalnumbercount추적 대상 펀드 수. 없을 수 있음
datasets[].coverage.funds_coverednumbercount사용 가능한 공시가 있는 펀드 수. 없을 수 있음
datasets[].coverage.funds_unavailablenumbercount발행사가 기계 판독 가능한 공시를 게시하지 않는 펀드 수. 없을 수 있음
datasets[].coverage.funds_failingnumbercount마지막 수집 회차에서 공시를 읽지 못한 펀드 수. 없을 수 있음
datasets[].coverage.as_ofstring—커버되는 펀드 중 가장 최근 공시일(YYYY-MM-DD). 없을 수 있음
datasets[].coverage.as_of_minstring—커버되는 펀드 중 가장 오래된 공시일(YYYY-MM-DD). 없을 수 있음
datasets[].reasonstring|null—사유 코드.
datasets[].coverage.contractsnumber—계약별 행. 없을 수 있음
datasets[].coverage.report_datestring—최신 CFTC Commitments of Traders 보고서의 날짜(YYYY-MM-DD). 없을 수 있음
datasets[].coverage.productsnumbercount커버되는 CME 상품 수. 없을 수 있음
datasets[].coverage.trade_datestring—최신 CME 일별 보고서의 거래일(YYYY-MM-DD). 없을 수 있음
summaryobject—요약 블록. 동적 키: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE
summary.{*}number—요약 블록.
by_familyobject—계열별로 각 상태에 해당하는 거래소 수. 바깥쪽 키는 계열 ID입니다. 동적 키: ticker,oi,funding,funding_settle,liquidation,ls
by_family.{*}object—계열 하나의 상태별 개수, 키는 상태(`FRESH`, `PARTIAL`, `STALE`, `BROKEN`, `UNAVAILABLE`). 동적 키: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE
by_family.{*}.{*}numbercount해당 계열에서 해당 상태인 거래소 수.
alertsarray—미해결 상태이거나 최근 7일 내에 해결된 데이터 품질 순찰 경보, 미해결 경보가 먼저. 요청 파라미터로 필터링됩니다.
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.patrol_last_run_atnumberms타임스탬프.
monitor.patrol_age_snumbers이벤트 후 경과한 초.
monitor.patrol_okboolean—순찰이 최근 15분 이내에 실행되었으면 true. false이면 `alerts` 목록이 최신이 아닐 수 있지만 매트릭스는 실시간으로 유지됩니다.
monitor.collector_heartbeat_age_snumbers이벤트 후 경과한 초.
errorsnull—품질 점검 자체가 실패한 계열에 대해 계열 ID를 오류 코드에 대응시킨 맵. 모든 점검이 실행되었으면 null.
legendobject—각 셀 상태의 일반 텍스트 정의. 동적 키: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE
legend.{*}string—키가 가리키는 상태(`FRESH`, `PARTIAL`, `STALE`, `BROKEN`, `UNAVAILABLE`)의 정의.
methodobject—산식 / 산출 방식 참고 사항.
method.statusstring—상태.
method.lag_sstring—`lag_s`의 계산 방식에 대한 일반 텍스트 설명.
method.source_atstring—날짜-시간 문자열.
method.fetched_atstring—날짜-시간 문자열.
metaobject—이 응답의 엔벨로프: 스키마 ID, 생성 시스템, 타임스탬프, 캐시 수명, 신선도.
meta.schemastring—이 응답의 스키마 ID. 최상위 `schema`와 같은 값입니다.
meta.sourcearray—값의 출처.
meta.source[]object—값의 출처.
meta.source[].systemstring—데이터를 생성한 시스템. 개발자 센터 엔드포인트에서는 항상 `coinboss`입니다.
meta.source[].componentstring—데이터의 바탕이 되는 구성 요소: 엔드포인트 프로브와 데이터 품질 순찰.
meta.observed_atnull—타임스탬프.
meta.received_atnumberms타임스탬프.
meta.fetched_atnumbermsCoinBoss가 소스에서 데이터를 가져온 시각.
meta.windowstring—구간.
meta.cache_ttl_snumbers이 응답의 서버 측 캐시 수명.
meta.qualitystring—평상시에는 `FRESH`. 품질 순찰이 15분 이내에 실행되지 않았으면 `PARTIAL`(경보 목록만 영향을 받습니다).
meta.is_staleboolean—행이 신선도 창보다 오래되면 true. 만료된 행은 합계에 사용하지 않습니다.
meta.fallbackstring—입력 데이터가 만료되었거나 없을 때 이 엔드포인트가 무엇을 반환하는지에 대한 일반 텍스트 설명.

2026-11-11 23:01 UTC에 실제 응답 3건으로 생성.

응답 예시

/api/meta/quality · 2026-11-13 03:53:46 UTC에 수집한 실제 응답. 긴 배열과 맵은 표시를 위해 줄였습니다: alerts: 원래 항목 11개; legend: 원래 항목 5개; matrix: 원래 항목 30개; summary: 원래 항목 5개; datasets: 원래 항목 12개; families: 원래 항목 12개.

  • {
    • "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"
      }
    }

검증된 샘플

프로브는 위 예시 외에도 아래 파라미터로 이 엔드포인트를 호출하고 매번 스키마를 검사합니다.

파라미터HTTP지연 시간결과
exchange=binance2001 ms통과 FRESH
family=funding2001 ms통과 FRESH

2026-11-13 03:29:27 UTC 점검

상세 정보

인증
없음. 공개 엔드포인트.
요청 한도
IP당 분당 1200회
서버 캐시
20s
엣지 마이크로 캐시
10s
갱신 주기
요청 시 모든 거래소 × 데이터 계열 쌍의 최신 데이터 타임스탬프로 평가합니다.
데이터 소스
CoinBoss 원본 테이블(최신 행 타임스탬프), 수집기 상태 로그. 프로세스가 실행 중이라는 사실만으로 데이터를 정상으로 판정하는 일은 없습니다.
타임스탬프
필드 설명에 별도 언급이 없는 한 Unix epoch 밀리초(UTC)
응답 형식
json
안정성
안정
제공 시작
2026-11-11

실시간 상태

사용 가능2026-11-13 03:53:46 UTC 점검HTTP 200887 ms스키마 일치최신 데이터 포인트: 0s 경과

최근 30일 가용성

점검 407회 중 100% 통과

오류

실패한 호출은 모든 엔드포인트에서 동일한 구조로 반환됩니다. 전체 목록은 오류 페이지에 있습니다. 오류 및 요청 한도 →

코드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/meta/quality사용 가능
파라미터

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

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

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