현물 ETF 펀드
자산에 등록된 펀드당 한 행씩 반환합니다. 발행사, 기준일, 보유량, 순자산, 발행 주식 수, NAV, 시장가, 프리미엄, 보수, CoinBoss가 계산한 자금 흐름을 제공하며, 수집할 수 없는 펀드는 그 사유를 제공합니다.
/api/sd/etf/funds요청
쿼리 파라미터
| 이름 | 타입 | 필수 | 기본값 | 허용 값 | 설명 |
|---|---|---|---|---|---|
| asset | string | 필수 | — | BTC, ETH, SOL, HYPE | 기초 자산, 대소문자 구분 없음. `coin`도 별칭으로 허용됩니다. 예시: BTC |
요청 예시
curl -s "https://www.coinboss.com/api/sd/etf/funds?asset=BTC"응답 필드
필드 표는 실제 응답에서 생성되므로 엔드포인트가 반환하는 내용을 그대로 보여 줍니다. 경로에서 a[]는 배열 항목을, {*}는 코인이나 거래소처럼 동적 이름을 키로 갖는 객체를 뜻합니다.
| 필드 | 타입 | 단위 | 설명 |
|---|---|---|---|
| success | boolean | — | 요청이 성공하면 true입니다. 실패하면 본문은 `{ success: false, code, error, request_id }`입니다. |
| schema | string | — | 이 응답의 스키마 ID. 기존 필드의 의미나 타입이 바뀔 때만 변경됩니다. |
| now | number | ms | 응답이 생성된 서버 시각. |
| asset | string | — | 기초 자산. |
| as_of | string | — | 커버된 펀드 중 가장 최근의 발행사 기준일. |
| expected_as_of | string | — | 공시 마감 시각이 지난 가장 최근의 미국 거래일. |
| funds_total | number | — | 해당 자산에 등록된 펀드. |
| funds_covered | number | — | 최신 발행사 데이터가 있는 펀드. |
| funds | array | — | 수집할 수 없는 펀드를 포함해 등록된 펀드당 한 행. |
| funds[] | object | — | 수집할 수 없는 펀드를 포함해 등록된 펀드당 한 행. |
| funds[].ticker | string | — | 펀드 티커. |
| funds[].issuer | string | — | 펀드 발행사 ID. |
| funds[].name | string | — | 펀드 이름. |
| funds[].status | string | — | OK, STALE, ERROR 또는 UNAVAILABLE. |
| funds[].as_of_date | string|null | — | 행의 발행사 기준일. |
| funds[].holdings_coin | number|null | coin | 발행사가 공시한 보유 코인 수. |
| funds[].holdings_usd | number|null | USD | 발행사가 공시한 보유 자산의 시장 가치. |
| funds[].ref_price | number|null | USD | 발행사가 사용한 코인당 기준 가격. |
| funds[].aum_usd | number|null | USD | 펀드의 순자산. |
| funds[].aum_src | string|null | — | 순자산을 구한 방식: `reported`, `nav_x_shares` 또는 `holdings_mv_sum`. |
| funds[].shares_out | number|null | shares | 발행 주식 수. |
| funds[].shares_src | string|null | — | 발행 주식 수를 구한 방식: `reported` 또는 순자산과 NAV에서 산출. |
| funds[].nav | number|null | USD | 주당 순자산가치. |
| funds[].market_price | number|null | USD | 주당 시장 종가. |
| funds[].premium_pct | number|null | % | 발행사가 공시한, NAV 대비 시장 가격의 프리미엄(+) 또는 할인(−). |
| funds[].fee_pct | number|null | % | 연간 스폰서 보수. 공시되지 않으면 `null`입니다. |
| funds[].flow_usd | number|null | USD | 자금 흐름 기준일에 발생한 펀드의 순설정 / 순환매. CoinBoss 산출 방식. |
| funds[].flow_shares | number|null | shares | 발행 주식 수의 변화. |
| funds[].flow_coin | null | coin | 코인 보유량의 변화. 코인으로 지급된 보수 발생분이 포함되며 참고용입니다. |
| funds[].flow_method | string|null | — | 사용된 산식: `shares_x_nav` 또는 `aum_nav_ratio_t1`. |
| funds[].flow_as_of | string|null | — | 자금 흐름이 기록되는 날짜. |
| funds[].flow_obs_date | string|null | — | 사용된 두 행 중 더 최근 행의 기준일. |
| funds[].flow_prev_date | string|null | — | 사용된 두 행 중 더 오래된 행의 기준일. |
| funds[].flow_note | string|null | — | 자금 흐름이 없거나 특수한 이유(예: `no_previous_row`, `multi_day_gap`). |
| funds[].is_stale | boolean|null | — | 데이터가 신선도 창보다 오래되었으면 true. |
| funds[].source_url | string|null | — | 행을 수집한 발행사 엔드포인트(데이터 경로 표시용). |
| funds[].observed_at | number|null | ms | 소스가 데이터에 부여한 타임스탬프. |
| funds[].received_at | number|null | ms | CoinBoss 수집기가 데이터를 수신한 시각. |
| funds[].unavailable_reason | string|null | — | 펀드를 수집할 수 없을 때의 사유 코드. |
| funds[].unavailable_detail | string|null | — | 펀드를 수집할 수 없을 때의 설명. |
| coverage | object | — | 수치에 포함된 것과 포함되지 않은 것. 다른 소스와 합계를 비교하기 전에 먼저 이 항목을 비교하십시오. |
| coverage.included_exchanges | array | — | 최신 데이터가 포함된 소스. |
| coverage.included_exchanges[] | string | — | 최신 데이터가 포함된 소스. |
| coverage.unavailable | array | — | 포함할 수 없었던 소스와 각각의 사유. 0으로 집계하는 일은 없습니다. |
| coverage.unavailable[] | object | — | 포함할 수 없었던 소스와 각각의 사유. 0으로 집계하는 일은 없습니다. |
| coverage.unavailable[].exchange | string | — | 거래소 ID(소문자). |
| coverage.unavailable[].issuer | string | — | 펀드 발행사 ID. |
| coverage.unavailable[].reason | string | — | 기계 판독용 사유 코드. |
| coverage.unavailable[].detail | string | — | 사람이 읽을 수 있는 사유 설명. |
| coverage.stale_excluded | array | — | 마지막 갱신이 신선도 창을 벗어나 제외된 행. 이 표를 생성한 샘플에서는 비어 있음 |
| method | object | — | 이 응답에 사용된 산식을 필드당 한 항목씩 일반 텍스트로 기술한 내용. |
| method.holdings_coin_total | string | — | `holdings_coin_total`의 산식 설명, 일반 텍스트. |
| method.aum_usd_total | string | — | `aum_usd_total`의 산식 설명, 일반 텍스트. |
| method.net_flow_usd | string | — | `net_flow_usd`의 산식 설명, 일반 텍스트. |
| method.net_flow_missing | string | — | `net_flow_missing`의 산식 설명, 일반 텍스트. |
| method.flow_coin | string | — | `flow_coin`의 산식 설명, 일반 텍스트. |
| method.premium_pct | string | — | `premium_pct`의 산식 설명, 일반 텍스트. |
| method.is_stale | string | — | `is_stale`의 산식 설명, 일반 텍스트. |
| method.units | string | — | `units`의 산식 설명, 일반 텍스트. |
| meta | object | — | 이 응답의 데이터 경로와 신선도. |
| meta.schema | string | — | 이 응답의 스키마 ID. 기존 필드의 의미나 타입이 바뀔 때만 변경됩니다. |
| meta.source | array | — | 데이터를 수집한 업스트림 공개 엔드포인트. |
| meta.source[] | object | — | 데이터를 수집한 업스트림 공개 엔드포인트. |
| meta.source[].exchange | string | — | 거래소 ID(소문자). |
| meta.source[].endpoint | string | — | 수집기가 읽는 소스의 공개 엔드포인트(데이터 경로 표시용이며 클라이언트가 직접 호출하지 않음). |
| meta.observed_at | number | ms | 소스가 데이터에 부여한 타임스탬프. |
| meta.received_at | number | ms | CoinBoss 수집기가 데이터를 수신한 시각. |
| meta.fetched_at | number | ms | 이 응답이 조립된 시각. |
| meta.window | string | — | 수치가 포괄하는 시간 구간. |
| meta.quality | string | — | FRESH, PARTIAL, STALE, BROKEN 또는 UNAVAILABLE. 데이터 타임스탬프와 커버리지로 판정합니다. |
| meta.is_stale | boolean | — | 데이터가 신선도 창보다 오래되었으면 true. |
| meta.cache_ttl_s | number | s | 이 응답의 캐시 수명. |
| meta.fallback | string | — | 수집기나 소스에 장애가 발생했을 때 엔드포인트가 반환하는 내용. |
2026-11-11 23:00 UTC에 실제 응답 3건으로 생성.
응답 예시
/api/sd/etf/funds?asset=BTC · 2026-11-13 03:17:50 UTC에 수집한 실제 응답. 긴 배열과 맵은 표시를 위해 줄였습니다: funds: 원래 항목 12개; meta.source: 원래 항목 5개; coverage.unavailable: 원래 항목 7개.
- "success"true
- "schema""coinboss.sd.etf/1"
- "now"1794539870770
- "asset""BTC"
- "as_of""2026-11-12"
- "expected_as_of""2026-11-11"
- "funds_total"12
- "funds_covered"5
- "funds"
- "coverage"
- "included_exchanges"
- "unavailable"
- "stale_excluded"
- "method"
- "holdings_coin_total""sum of issuer-reported coin holdings over covered (non-stale) funds only; NOT a whole-market total, see funds_covered/funds_total"
- "aum_usd_total""sum of fund net assets (USD) over covered funds; aum_src per fund: reported | nav_x_shares (NAV x shares outstanding) | holdings_mv_sum (sum of issuer holdings …"
- "net_flow_usd""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…"
- "net_flow_missing""covered funds not included in net_flow_usd and why: no_previous_row (needs two consecutive issuer rows), t1_booking_available_next_trading_day (Franklin: flow o…"
- "flow_coin""holdings_coin[t] - holdings_coin[t-1]; includes daily sponsor-fee accrual paid in coin, informational only"
- "premium_pct""issuer-reported premium/discount to NAV in percent; null when the issuer does not publish it"
- "is_stale""fund as_of_date older than the trading day before expected_as_of (expected_as_of = latest NYSE trading day whose T+1 16:00 UTC publication deadline has passed)"
- "units""holdings in coins; aum/flow in USD; nav/market_price in USD per share; fee_pct/premium_pct in percent"
- "meta"
- "schema""coinboss.sd.etf/1"
- "source"
- "observed_at"1794441600000
- "received_at"1794537318126
- "fetched_at"1794539870770
- "window""latest"
- "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 | 200 | 4 ms | 통과 PARTIAL |
| asset=HYPE | 200 | 4 ms | 통과 PARTIAL |
| asset=DOGE | 400 | 1 ms | 통과 예상된 오류 반환 |
2026-11-13 02:58:12 UTC 점검
상세 정보
- 인증
- 없음. 공개 엔드포인트.
- 요청 한도
- IP당 분당 1200회
- 서버 캐시
- 5m
- 엣지 마이크로 캐시
- 10s
- 갱신 주기
- 하루 세 차례 수집합니다(02:35, 10:35, 16:35 UTC). 발행사는 미국 거래일마다 한 번, 보통 거래일 저녁에 공시합니다.
- 구간
- 펀드별 최신 발행사 기준일.
- 데이터 소스
- 펀드 발행사가 직접 공시하는 일별 공시 자료(보유량, 순자산, 발행 주식 수, NAV)를 CoinBoss가 수집해 저장합니다(sd_etf_fund_daily). 순유입은 CoinBoss가 이 공시 자료에서 계산합니다.
- 거래소 커버리지
- 발행사가 기계 판독 가능한 일별 데이터를 공시하는 펀드만 커버합니다. `funds_total`과 `funds_covered`가 그 수를 나타내며, 커버되지 않는 펀드는 모두 사유와 함께 `coverage.unavailable`에 나열됩니다. 합계는 시장 전체가 아니라 커버된 펀드만 합산한 값입니다(`totals_scope = "covered_funds_only"`).
- 페이지네이션
- 페이지네이션 없음. 해당 자산에 등록된 모든 펀드를 반환합니다.
- 정렬
- 티커 오름차순.
- 단위
- 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.
- 산출 방식
- `aum_src` tells how net assets were obtained: `reported`, `nav_x_shares` (NAV × shares outstanding) or `holdings_mv_sum` (sum of the issuer's holdings market values). `flow_method` tells which flow formula was used.
- 타임스탬프
- 필드 설명에 별도 언급이 없는 한 Unix epoch 밀리초(UTC)
- 응답 형식
- json
- 안정성
- 안정
- 제공 시작
- 2026-11-11
실시간 상태
엔드포인트가 보고한 데이터 품질: PARTIAL — 부분 커버리지: 일부 대형 발행사는 서버에서 수집할 수 있는 기계 판독 가능한 공개 공시를 제공하지 않습니다. 해당 발행사의 펀드는 사용 불가로 표시되며 합계는 나머지 펀드만 포함합니다. 다른 소스와 합계를 비교하기 전에 `funds_covered` / `funds_total`을 먼저 비교하십시오.
최근 30일 가용성
점검 399회 중 100% 통과
오류
실패한 호출은 모든 엔드포인트에서 동일한 구조로 반환됩니다. 전체 목록은 오류 페이지에 있습니다. 오류 및 요청 한도 →
| 코드 | 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`로 응답합니다. HTTP 상태만 보지 말고 항상 `success`를 확인하십시오. | 메시지에 따라 다릅니다. 실패한 요청으로 처리하십시오. |
직접 실행
/api/sd/etf/funds부분string — Underlying asset, case-insensitive. `coin` is accepted as an alias.
https://www.coinboss.com/api/sd/etf/funds?asset=BTC이 카테고리의 다른 엔드포인트
- 현물 ETF 펀드 /api/sd/etf/funds
- 현물 ETF 히스토리 /api/sd/etf/history
- 현물 ETF 개요(발행사 공시 기준) /api/sd/etf/overview
- 펀드별 현물 ETF 일별 순유입 /api/etf/detail
- 현물 ETF 일별 순유입 히스토리 /api/etf/flows
- 단일 ETF 상세 /api/etf/fund/:ticker
- ETF 펀드 목록 /api/etf/funds
- 펀드별 ETF 코인 보유량 /api/etf/holdings
- 단일 발행사의 ETF / 신탁 상품 /api/etf/issuer
- ETF 개요 /api/etf/overview
- Grayscale 신탁 프리미엄 / 할인 /api/grayscale/premium
- 선물 기반 ETF 거래량 /api/indicators/futures-etf-volumes