/api/sd/etf/history
GET부분PARTIAL

현물 ETF 히스토리

단일 자산(커버리지에 포함된 펀드 합산) 또는 단일 펀드의 보유량, 순자산, 순유입 일별 시계열입니다. 각 포인트에는 포함된 펀드 수가 명시됩니다.

GET/api/sd/etf/history
부분 커버리지. 부분 커버리지: 일부 대형 발행사는 서버에서 수집할 수 있는 기계 판독 가능한 공개 공시를 제공하지 않습니다. 해당 발행사의 펀드는 사용 불가로 표시되며 합계는 나머지 펀드만 포함합니다. 다른 소스와 합계를 비교하기 전에 `funds_covered` / `funds_total`을 먼저 비교하십시오.

요청

쿼리 파라미터

이름타입필수기본값허용 값설명
assetstring필수—BTC, ETH, SOL, HYPE기초 자산, 대소문자 구분 없음. `coin`도 별칭으로 허용됩니다. 예시: BTC
metricstring필수—holdings, aum, flow반환할 시리즈: 보유량(코인), 순자산(USD) 또는 순유입(USD). 예시: flow
rangestring선택30d30d, 90d, all조회 기간.
tickerstring선택——해당 자산에 등록된 펀드 티커(예: `ARKB`). 기본값: 커버된 모든 펀드의 합계. 등록되지 않은 티커는 404를 반환하고, 등록되어 있지만 수집할 수 없는 펀드는 `series: null`과 함께 200을 반환합니다.

요청 예시

curl -s "https://www.coinboss.com/api/sd/etf/history?asset=BTC&metric=flow"

응답 필드

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

필드타입단위설명
successboolean—요청이 성공하면 true입니다. 실패하면 본문은 `{ success: false, code, error, request_id }`입니다.
schemastring—이 응답의 스키마 ID. 기존 필드의 의미나 타입이 바뀔 때만 변경됩니다.
nownumberms응답이 생성된 서버 시각.
assetstring—기초 자산.
metricstring—`metric` 파라미터로 선택한 시리즈.
rangestring—적용된 조회 기간.
tickerstring|null—펀드 티커.
unitstring—시리즈 값의 단위: `coin` 또는 `USD`.
funds_totalnumber—해당 자산에 등록된 펀드.
funds_in_seriesarray—시리즈에 기여하는 펀드.
funds_in_series[]string—시리즈에 기여하는 펀드.
first_date_by_fundobject—펀드별 사용 가능한 첫 날짜(키는 티커). 동적 키: ARKB,EZBC
first_date_by_fund.{*}string—펀드별 사용 가능한 첫 날짜(키는 티커).
pointsnumber—시리즈 포인트, 오래된 순.
seriesarray—일별 포인트, 오래된 순. 펀드를 수집할 수 없으면 `null`입니다.
series[]object—일별 포인트, 오래된 순. 펀드를 수집할 수 없으면 `null`입니다.
series[].datestring—포인트의 발행사 기준일.
series[].valuenumber—선택한 지표의 값으로, 해당 날짜에 존재하는 펀드를 합산한 값.
series[].fundsnumber—수집할 수 없는 펀드를 포함해 등록된 펀드당 한 행. 없을 수 있음
coverageobject—수치에 포함된 것과 포함되지 않은 것. 다른 소스와 합계를 비교하기 전에 먼저 이 항목을 비교하십시오.
coverage.included_exchangesarray—최신 데이터가 포함된 소스.
coverage.included_exchanges[]string—최신 데이터가 포함된 소스.
coverage.unavailablearray—포함할 수 없었던 소스와 각각의 사유. 0으로 집계하는 일은 없습니다.
coverage.unavailable[]object—포함할 수 없었던 소스와 각각의 사유. 0으로 집계하는 일은 없습니다.
coverage.unavailable[].exchangestring—거래소 ID(소문자).
coverage.unavailable[].issuerstring—펀드 발행사 ID.
coverage.unavailable[].reasonstring—기계 판독용 사유 코드.
coverage.unavailable[].detailstring—사람이 읽을 수 있는 사유 설명.
coverage.stale_excludedarray—마지막 갱신이 신선도 창을 벗어나 제외된 행. 이 표를 생성한 샘플에서는 비어 있음
methodobject—이 응답에 사용된 산식을 필드당 한 항목씩 일반 텍스트로 기술한 내용.
method.valuestring—`value`의 산식 설명, 일반 텍스트.
method.fundsstring—`funds`의 산식 설명, 일반 텍스트.
method.multi_daystring—`multi_day`의 산식 설명, 일반 텍스트.
method.history_startstring—`history_start`의 산식 설명, 일반 텍스트.
metaobject—이 응답의 데이터 경로와 신선도.
meta.schemastring—이 응답의 스키마 ID. 기존 필드의 의미나 타입이 바뀔 때만 변경됩니다.
meta.sourcearray—데이터를 수집한 업스트림 공개 엔드포인트.
meta.source[]object—데이터를 수집한 업스트림 공개 엔드포인트.
meta.source[].exchangestring—거래소 ID(소문자).
meta.source[].endpointstring—수집기가 읽는 소스의 공개 엔드포인트(데이터 경로 표시용이며 클라이언트가 직접 호출하지 않음).
meta.observed_atnumberms소스가 데이터에 부여한 타임스탬프.
meta.received_atnumbermsCoinBoss 수집기가 데이터를 수신한 시각.
meta.fetched_atnumberms이 응답이 조립된 시각.
meta.windowstring—수치가 포괄하는 시간 구간.
meta.qualitystring—FRESH, PARTIAL, STALE, BROKEN 또는 UNAVAILABLE. 데이터 타임스탬프와 커버리지로 판정합니다.
meta.is_staleboolean—데이터가 신선도 창보다 오래되었으면 true.
meta.cache_ttl_snumbers이 응답의 캐시 수명.
meta.fallbackstring—수집기나 소스에 장애가 발생했을 때 엔드포인트가 반환하는 내용.

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

응답 예시

/api/sd/etf/history?asset=BTC&metric=flow · 2026-11-13 03:58:17 UTC에 수집한 실제 응답. 긴 배열과 맵은 표시를 위해 줄였습니다: series: 원래 항목 21개; meta.source: 원래 항목 5개; first_date_by_fund: 원래 항목 5개; coverage.unavailable: 원래 항목 7개.

  • {
    • "success": true,
    • "schema": "coinboss.sd.etf/1",
    • "now": 1794542297946,
    • "asset": "BTC",
    • "metric": "flow",
    • "range": "30d",
    • "ticker": null,
    • "unit": "USD",
    • "funds_total": 12,
    • "funds_in_series": [
      • "ARKB",
      • "BITB",
      • "BTCO",
      • "EZBC",
      • "HODL"
      ],
    • "first_date_by_fund": {
      • "ARKB": "2026-10-14",
      • "BITB": "2026-11-11"
      },
    • "points": 21,
    • "series": [
      • { … 3 },
      • { … 3 }
      ],
    • "coverage": {
      • "included_exchanges": [ … 5 ],
      • "unavailable": [ … 2 ],
      • "stale_excluded": []
      },
    • "method": {
      • "value": "own method, per fund between two consecutive issuer as-of rows: shares_x_nav = (shares_out[t] - shares_out[t-1]) x NAV[t], dated t; aum_nav_ratio_t1 (issuer pub…",
      • "funds": "number of funds contributing to that date; the aggregate is only comparable across dates with the same contributing funds (history starts on different dates per…",
      • "multi_day": "true when a contributing flow spans more than one trading day because the issuer history has no row for the day(s) in between",
      • "history_start": "issuer-provided official history is back-filled where it exists (21Shares valuation history, Franklin price history); other issuers start on the first collectio…"
      },
    • "meta": {
      • "schema": "coinboss.sd.etf/1",
      • "source": [ … 2 ],
      • "observed_at": 1794441600000,
      • "received_at": 1794537318126,
      • "fetched_at": 1794542297946,
      • "window": "30d",
      • "quality": "PARTIAL",
      • "is_stale": false,
      • "cache_ttl_s": 300,
      • "fallback": "collector failure keeps the last issuer row with its real as_of_date; a fund whose as_of_date is more than 1 trading day behind the expected as-of is flagged is…"
      }
    }

검증된 샘플

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

파라미터HTTP지연 시간결과
asset=ETH&range=90d&metric=aum2005 ms통과 PARTIAL
asset=BTC&metric=holdings&ticker=ARKB2004 ms통과 FRESH
asset=BTC4001 ms통과 예상된 오류 반환

2026-11-13 03:58:17 UTC 점검

상세 정보

인증
없음. 공개 엔드포인트.
요청 한도
IP당 분당 1200회
서버 캐시
5m
엣지 마이크로 캐시
10s
갱신 주기
하루 세 차례 수집합니다(02:35, 10:35, 16:35 UTC). 발행사는 미국 거래일마다 한 번, 보통 거래일 저녁에 공시합니다.
구간
30d / 90d / all, 발행사 기준일당 포인트 하나.
데이터 소스
펀드 발행사가 직접 공시하는 일별 공시 자료(보유량, 순자산, 발행 주식 수, NAV)를 CoinBoss가 수집해 저장합니다(sd_etf_fund_daily). 순유입은 CoinBoss가 이 공시 자료에서 계산합니다.
거래소 커버리지
발행사가 기계 판독 가능한 일별 데이터를 공시하는 펀드만 커버합니다. `funds_total`과 `funds_covered`가 그 수를 나타내며, 커버되지 않는 펀드는 모두 사유와 함께 `coverage.unavailable`에 나열됩니다. 합계는 시장 전체가 아니라 커버된 펀드만 합산한 값입니다(`totals_scope = "covered_funds_only"`).
페이지네이션
페이지네이션 없음. `range`가 포인트 수를 결정합니다.
정렬
날짜 오름차순.
단위
Amounts in USD; holdings in units of the underlying coin; NAV and market price in USD per share; `premium_pct` and `fee_pct` in percent.
산출 방식
A point sums the funds that have a row on that date; `funds` is that count. Points with different `funds` are not directly comparable. Flow is bucketed by its booking date.
타임스탬프
필드 설명에 별도 언급이 없는 한 Unix epoch 밀리초(UTC)
응답 형식
json
안정성
안정
제공 시작
2026-11-11

실시간 상태

부분2026-11-13 03:58:17 UTC 점검HTTP 2005 ms스키마 일치최신 데이터 포인트: 83m 경과

엔드포인트가 보고한 데이터 품질: PARTIAL — 부분 커버리지: 일부 대형 발행사는 서버에서 수집할 수 있는 기계 판독 가능한 공개 공시를 제공하지 않습니다. 해당 발행사의 펀드는 사용 불가로 표시되며 합계는 나머지 펀드만 포함합니다. 다른 소스와 합계를 비교하기 전에 `funds_covered` / `funds_total`을 먼저 비교하십시오.

최근 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/sd/etf/history부분
파라미터

string — Underlying asset, case-insensitive. `coin` is accepted as an alias.

string — Series to return: holdings (coin), net assets (USD) or net flow (USD).

string · 기본값 30d — Look-back range.

string — Fund ticker registered for the asset (for example `ARKB`). Default: all covered funds summed. An unregistered ticker returns 404; a registered fund that cannot be collected returns 200 with `series: null`.

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