现货 ETF 历史
某资产(已覆盖基金加总)或单只基金的持有量、净资产或净流入日线序列。每个数据点都注明所含基金数量。
/api/sd/etf/history请求
查询参数
| 名称 | 类型 | 必填 | 默认值 | 可选值 | 说明 |
|---|---|---|---|---|---|
| asset | string | 必填 | — | BTC, ETH, SOL, HYPE | 标的资产,不区分大小写。`coin` 可作为别名使用。 示例: BTC |
| metric | string | 必填 | — | holdings, aum, flow | 要返回的序列:持有量(币)、净资产(USD)或净流入(USD)。 示例: flow |
| range | string | 可选 | 30d | 30d, 90d, all | 回溯范围。 |
| ticker | string | 可选 | — | — | 该资产已登记的基金代码(例如 `ARKB`)。默认:全部已覆盖基金之和。未登记的代码返回 404;已登记但无法采集的基金返回 200,且 `series: null`。 |
请求示例
curl -s "https://www.coinboss.com/api/sd/etf/history?asset=BTC&metric=flow"响应字段
字段表根据真实响应生成,因此所列内容与端点实际返回的完全一致。路径中 a[] 表示数组元素,{*} 表示以动态名称(如币种或交易所)为键的对象。
| 字段 | 类型 | 单位 | 说明 |
|---|---|---|---|
| success | boolean | — | 请求成功时为 true。失败时响应体为 `{ success: false, code, error, request_id }`。 |
| schema | string | — | 本响应的结构 ID。仅当已有字段的含义或类型发生变化时才会改变。 |
| now | number | ms | 响应生成时的服务器时间。 |
| asset | string | — | 标的资产。 |
| metric | string | — | 由 `metric` 参数选定的序列。 |
| range | string | — | 实际采用的回溯范围。 |
| ticker | string|null | — | 基金代码。 |
| unit | string | — | 序列数值的单位:`coin` 或 `USD`。 |
| funds_total | number | — | 该资产已登记的基金数。 |
| funds_in_series | array | — | 参与该序列的基金。 |
| funds_in_series[] | string | — | 参与该序列的基金。 |
| first_date_by_fund | object | — | 每只基金最早可用的日期(键为基金代码)。 动态键: ARKB,EZBC |
| first_date_by_fund.{*} | string | — | 每只基金最早可用的日期(键为基金代码)。 |
| points | number | — | 序列数据点,按时间从早到晚排列。 |
| series | array | — | 日度数据点,按时间从早到晚排列;基金无法采集时为 `null`。 |
| series[] | object | — | 日度数据点,按时间从早到晚排列;基金无法采集时为 `null`。 |
| series[].date | string | — | 该数据点的发行商截至日期。 |
| series[].value | number | — | 所选指标的数值,为当日有数据的基金之和。 |
| series[].funds | number | — | 每只已登记基金一行,包括无法采集的基金。 可能缺失 |
| 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.value | string | — | `value` 的公式说明,纯文本。 |
| method.funds | string | — | `funds` 的公式说明,纯文本。 |
| method.multi_day | string | — | `multi_day` 的公式说明,纯文本。 |
| method.history_start | string | — | `history_start` 的公式说明,纯文本。 |
| 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/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"
- "coverage"
- "included_exchanges"
- "unavailable"
- "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"
- "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=aum | 200 | 5 ms | 通过 PARTIAL |
| asset=BTC&metric=holdings&ticker=ARKB | 200 | 4 ms | 通过 FRESH |
| asset=BTC | 400 | 1 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 纪元毫秒(UTC)
- 响应格式
- json
- 稳定性
- 稳定
- 上线时间
- 2026-11-11
实时状态
该端点上报的数据质量为 PARTIAL — 部分覆盖:若干大型发行商没有提供可由服务器采集的公开机器可读披露。其基金被列为不可用,合计仅涵盖其余基金。在与其他数据源比较合计之前,请先对比 `funds_covered` / `funds_total`。
近 30 天可用性
407 次检查中 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`。请务必检查 `success`,而不只是 HTTP 状态码。 | 取决于具体信息;按请求失败处理。 |
试一试
/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`.
https://www.coinboss.com/api/sd/etf/history?asset=BTC&metric=flow同分类的其他端点
- 现货 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