GET可用
单个币种的持仓量
自采数据层:单个币种的持仓量(按交易所 / 合约,含质量标记)
GET
/api/sd/oi请求
查询参数
| 名称 | 类型 | 必填 | 默认值 | 可选值 | 说明 |
|---|---|---|---|---|---|
| coin | string | 必填 | — | — | 币种代码;缺失时返回 400。别名:`base`。 示例: BTC |
请求示例
curl -s "https://www.coinboss.com/api/sd/oi?coin=BTC"响应字段
字段表根据真实响应生成,因此所列内容与端点实际返回的完全一致。路径中 a[] 表示数组元素,{*} 表示以动态名称(如币种或交易所)为键的对象。
| 字段 | 类型 | 单位 | 说明 |
|---|---|---|---|
| success | boolean | — | 请求成功时为 true。失败时响应体为 `{ success: false, code, error, request_id }`。 |
| coin | string | — | 币种代码,大写(例如 BTC)。 |
| now | number | ms | 响应生成时的服务器时间。 |
| total_usd | number | USD | 全部已计入交易所和合约的持仓量,按各交易所上报的口径(USD 名义价值)。 |
| n_exchanges | number | — | 合计中的交易所数量。 |
| n_contracts | number | — | 合计中的合约数量。 |
| asof | number | ms | 已计入各行中最新的更新时间。 |
| total_usd_single_adjusted | number | USD | 将同时上报多空双边的交易所(`double_sided.exchanges`)的数值减半后的 `total_usd`,使每家交易所都只计单边。 |
| double_sided | object | — | 已知将多头 + 空头持仓量合并为一个数字公布的交易所。 |
| double_sided.exchanges | array | — | 交易所。 |
| double_sided.exchanges[] | string | — | 交易所。 |
| double_sided.oi_usd | number | USD | 这些交易所减半之前上报的持仓量。 |
| by_kind | object | — | 按线性 / 反向拆分。 |
| by_kind.linear_usd | number | USD | 线性合约(以稳定币或 USD 作为保证金并结算)的持仓量。 |
| by_kind.inverse_usd | number | USD | 反向(币本位)合约的持仓量,按合约价格换算为 USD。 |
| by_margin | object | — | 按保证金币种拆分。 |
| by_margin.other | number | USD | 其他保证金币种(例如 CME 等以 USD 结算的交易所)。 |
| by_margin.usdt | number | USD | USDT 本位合约。 |
| by_margin.usdc | number | USD | USDC 本位合约。 可能缺失 |
| by_margin.coin | number | USD | 币本位合约。 可能缺失 |
| by_contract_type | object | — | 按永续 / 交割拆分。 |
| by_contract_type.perpetual_usd | number | USD | 永续合约。 |
| by_contract_type.delivery_usd | number | USD | 交割合约(有到期日的期货)。 |
| change | object | — | 持仓量在 1h / 4h / 24h 内的变化,两端均基于同一组合约计算。 动态键: h1,h4,h24 |
| change.{*} | object | — | 在所述周期内的变化。 |
| change.{*}.pct | number | % | `prev` 与 `cur` 之间的变化百分比。 |
| change.{*}.cur | number | USD | 已匹配合约的当前合计。 |
| change.{*}.prev | number | USD | 同一组合约在 `prev_ts` 时刻的合计。 |
| change.{*}.n_matched | number | — | 两端都存在的合约(或交易所)。 |
| change.{*}.n_total | number | — | 当前存在的合约(或交易所)。 |
| change.{*}.matched_share_pct | number | % | 已匹配集合所覆盖的当前持仓量占比。 可能缺失 |
| change.{*}.prev_ts | number | ms | 基准快照的时间。 |
| change.{*}.span_min | number | min | 基准与当前时刻之间的实际间隔。 |
| change.{*}.basis | string | — | 基准来自哪个快照序列。 |
| change.{*}.frozen_excluded | object | — | 因数值在两次快照之间没有变动(数据源未更新)而未计入变化的行。 可能缺失 |
| change.{*}.frozen_excluded.n_baseline | number | — | 基准快照中的条目。 可能缺失 |
| change.{*}.frozen_excluded.n_current | number | — | 当前快照中的条目。 可能缺失 |
| change.{*}.frozen_excluded.cur_usd | number | USD | 当前值。 可能缺失 |
| change.{*}.frozen_excluded.prev_usd | number | USD | 基准值。 可能缺失 |
| by_exchange | array | — | 各交易所明细。 |
| by_exchange[] | object | — | 各交易所明细。 |
| by_exchange[].exchange | string | — | 交易所 ID,小写(例如 `binance`)。 |
| by_exchange[].oi_usd | number | USD | 持仓量,以 USD 名义价值计。 |
| by_exchange[].share_pct | number | % | 占总量的比例。 |
| by_exchange[].n_contracts | number | — | 合约数量。 |
| by_exchange[].linear_usd | number | USD | 线性合约。 |
| by_exchange[].inverse_usd | number | USD | 反向(币本位)合约。 |
| by_exchange[].perpetual_usd | number | USD | 永续合约。 |
| by_exchange[].delivery_usd | number | USD | 交割合约。 |
| by_exchange[].oi_side | string | — | 交易所将双边合并为一个数字上报时为 `double`,上报单边时为 `single`,交易所文档未说明时为 `unstated`。 |
| by_exchange[].oi_usd_single_adjusted | number|null | USD | 单边等值;单双边口径未说明时为 null。 |
| by_exchange[].updated_at | number | ms | 该行最近一次更新的时间。 |
| by_exchange[].age_s | number | s | 该行距上次更新的秒数。 |
| by_exchange[].is_stale | boolean | — | 该行超出新鲜窗口时为 true;过期的行不计入合计。 |
| contracts | array | — | 各合约的数据行。 |
| contracts[] | object | — | 各合约的数据行。 |
| contracts[].exchange | string | — | 交易所 ID,小写(例如 `binance`)。 |
| contracts[].symbol | string | — | 经 CoinBoss 归一化的合约代码(例如 BTCUSDT)。 |
| contracts[].native_symbol | string|null | — | 与交易所写法完全一致的合约代码。 |
| contracts[].oi_usd | number | USD | 持仓量,以 USD 名义价值计。 |
| contracts[].oi_side | string | — | `double`、`single` 或 `unstated`:交易所是否将持仓量的双边合并为一个数字上报。 |
| contracts[].oi_usd_single | number|null | USD | `oi_usd` 的单边等值;单双边口径未说明时为 null。 |
| contracts[].margin | string | — | 保证金币种类别:`usdt`、`usdc`、`coin` 或 `other`。 |
| contracts[].kind | string | — | `linear` 或 `inverse`。 |
| contracts[].contract_type | string | — | `perpetual` 或 `delivery`。 |
| contracts[].expiry_ts | number|null | ms | 交割合约的到期日;永续合约或未公布时为 null。 |
| contracts[].margin_basis | string | — | 保证金类别的判定依据(来自合约规格或交易所默认值)。 |
| contracts[].updated_at | number | ms | 该行最近一次更新的时间。 |
| contracts[].age_s | number | s | 该行距上次更新的秒数。 |
| contracts[].is_stale | boolean | — | 该行超出新鲜窗口时为 true;过期的行不计入合计。 |
| contracts[].collector | string | — | 生成该行的内部采集器。 |
| contracts[].included_since | number|null | ms | 该合约计入合计的时间;基础集合为 null。 |
| coverage | object | — | 上述数值包含什么、不包含什么。在与其他数据源比较合计之前,请先比对这一点。 |
| coverage.included_exchanges | array | — | 数据已计入合计的交易所。 |
| coverage.included_exchanges[] | string | — | 已计入合计的交易所。 |
| coverage.pending | array | — | 已采集但尚未计入合计的合约(例如其自身的 25 小时历史仍在积累中)。它们与当前值一并列出,使缺口一目了然。 |
| coverage.pending[] | object | — | 已采集但尚未计入的条目。 |
| coverage.pending[].exchange | string | — | 交易所 ID,小写(例如 `binance`)。 |
| coverage.pending[].symbol | string | — | 经 CoinBoss 归一化的合约代码(例如 BTCUSDT)。 |
| coverage.pending[].native_symbol | string | — | 与交易所写法完全一致的合约代码。 |
| coverage.pending[].margin | string | — | 保证金币种类别。 |
| coverage.pending[].contract_type | string | — | `perpetual` 或 `delivery`。 |
| coverage.pending[].oi_usd | number | USD | 持仓量,以 USD 名义价值计。 |
| coverage.pending[].age_s | number | s | 该行距上次更新的秒数。 |
| coverage.pending[].reason | string | — | 原因代码。 |
| coverage.pending[].detail | string|null | — | 详情。 |
| coverage.pending_usd | number|null | USD | 待计入合约的合计,不属于 `total_usd`。 |
| coverage.stale_excluded | array | — | 因最近一次更新超出可用窗口而被排除的行。 在生成此表所用的样本中为空 |
| coverage.unavailable | array | — | 无法计入的交易所 / 合约组合,每项均附原因。它们绝不会按 0 计。 |
| coverage.unavailable[] | object | — | 没有可用数据的条目,附原因。绝不会上报为 0。 |
| coverage.unavailable[].exchange | string | — | 交易所 ID,小写(例如 `binance`)。 |
| coverage.unavailable[].symbol | string | — | 经 CoinBoss 归一化的合约代码(例如 BTCUSDT)。 |
| coverage.unavailable[].native_symbol | string | — | 与交易所写法完全一致的合约代码。 |
| coverage.unavailable[].margin | string | — | 保证金币种类别。 |
| coverage.unavailable[].contract_type | string | — | `perpetual` 或 `delivery`。 |
| coverage.unavailable[].reason | string | — | 原因代码。 |
| coverage.unavailable[].detail | string | — | 详情。 |
| method | object | — | 以纯文本说明本响应所用的公式。 |
| method.total | string | — | 总数。 |
| method.usd | string | USD | 数值。 |
| method.change_h1_h4 | string | — | 1h 和 4h 持仓量变化的纯文本定义:每个合约与其自身距窗口起点最近的快照进行比较。 |
| method.change_h24 | string | — | 24h 持仓量变化的纯文本定义:同一交易所配对,对比距 24 小时前最近的小时快照,冻结的基准已剔除。 |
| method.oi_side | string | — | `double`、`single` 或 `unstated`:交易所是否将持仓量的双边合并为一个数字上报。 |
生成于 2026-11-11 23:00 UTC,基于 4 个真实响应。
响应示例
/api/sd/oi?coin=BTC · 真实响应,采集于 2026-11-13 03:57:39 UTC。 为便于展示,较长的数组和映射已被截短:change 原有 3 项; contracts 原有 95 项; by_exchange 原有 22 项; coverage.included_exchanges 原有 22 项。
- "success"true
- "coin""BTC"
- "now"1794542259643
- "total_usd"49005713133.94
- "n_exchanges"22
- "n_contracts"95
- "asof"1794542258000
- "total_usd_single_adjusted"43766392634.71
- "double_sided"
- "exchanges"
- "oi_usd"10478640998.46
- "by_kind"
- "linear_usd"44169662162.94
- "inverse_usd"4836050971
- "by_margin"
- "other"8250815931.650002
- "usdt"30919742583.03
- "usdc"4999103648.259998
- "coin"4836050971
- "by_contract_type"
- "perpetual_usd"40820877874.21
- "delivery_usd"8184835259.73
- "change"
- "h1"
- "h4"
- "by_exchange"
- "contracts"
- "coverage"
- "included_exchanges"
- "pending"
- "pending_usd"null
- "stale_excluded"
- "unavailable"
- "method"
- "total""SUM(oi_usd) over fresh contracts (non-CME updated within 3h; CME within 120h)"
- "usd""linear: contracts × contract_size × mark/last price; inverse: contracts × contract_face_value_usd (or coin amount × price)"
- "change_h1_h4""same-contract pairing vs own snapshot nearest to now−W (15-minute snapshots, hourly fallback)"
- "change_h24""same-exchange pairing vs hourly snapshot nearest to now−24h (site-wide convention); contracts whose baseline snapshot is a frozen carry-over (identical to the c…"
- "oi_side""as disclosed by each exchange; double = exchange API itself reports open interest as twice the single-sided figure"
已验证的样本
除上面的示例外,探针还会使用以下参数调用该端点,并在每次调用时校验结构。
| 参数 | HTTP | 延迟 | 结果 |
|---|---|---|---|
| coin=ETH | 200 | 24 ms | 通过 |
| coin=SOL | 200 | 21 ms | 通过 |
| coin=ARKM | 200 | 20 ms | 通过 |
| — | 400 | 1 ms | 通过 返回预期的错误 |
检查于 2026-11-13 03:57:39 UTC
详细信息
- 身份验证
- 无。公开端点。
- 速率限制
- 每个 IP 每分钟 1200 次请求
- 服务端缓存
- 20s
- 边缘微缓存
- 10s
- 更新频率
- 多数交易所每 60 秒(与行情一并写入;binance 前 50 和 okx 有专用的 60 秒任务);binance / bingx / aster / gate / htx 每 5 分钟全量扫描;币本位 / USDC 本位 / 交割合约每 120 秒(每 5 分钟并入共享表);cme 每个交易日一次(04:10 UTC);另有 15 分钟一次的合约级快照,用于计算短窗口变化
- 时间窗口
- 最新快照(3 小时内的行,cme 为 120 小时;超过 15 分钟后置 is_stale 标志,cme 为 36 小时);1 小时 / 4 小时变化(基于 15 分钟快照)和 24 小时变化(基于小时归档)
- 数据来源
- 持仓量由自有采集器轮询 22 家衍生品交易所(如 binance、okx、bybit、gate、bitget、hyperliquid)的公开 REST API 获得,外加 CME 官方的每日成交量/持仓量报告。
- 交易所覆盖范围
- 23 个有新鲜数据行的数据源(22 家交易所 + cme);全部合约类型(USDT / USDC / USD 线性、币本位反向、永续与交割);bybit 和 gate 上报双边持仓量,与交易所披露的口径一致;超过 3 小时(cme:120 小时)的行已排除;coverage 块列出已计入、待计入(等待积累 25 小时自有历史)、因过期被排除以及不可用的交易所
- 单位
- open interest in USD notional; total_usd_single_adjusted halves venues that report double-sided OI; changes in percent
- 计算方法
- total_usd = SUM(oi_usd) over fresh contracts (multiplier contracts folded); breakdowns by kind / margin / contract type; h1 / h4 change by same-contract pairing against 15-minute snapshots (+/- 10 min, fallback hourly archive) and only when >= 50% of OI is matched; h24 change by same-exchange pairing against the hourly bucket nearest now - 24 h
- 时间戳
- 除非字段说明另有注明,均为 Unix 纪元毫秒(UTC)
- 响应格式
- json
- 稳定性
- 稳定
- 上线时间
- 2026-11-11
实时状态
可用检查于 2026-11-13 03:57:39 UTCHTTP 20032 ms结构一致最新数据点距今 2s
近 30 天可用性
411 次检查中 100% 通过
最近一次探测发现结构漂移
- 实际返回但文档未记载: coverage.stale_excluded[], coverage.stale_excluded[].exchange, coverage.stale_excluded[].symbol, coverage.stale_excluded[].oi_usd, coverage.stale_excluded[].age_s, coverage.stale_excluded[].reason
错误
所有端点的失败响应格式一致。完整列表见错误页面。 错误与速率限制 →
| 错误码 | 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 状态码。 | 取决于具体信息;按请求失败处理。 |
试一试
GET
/api/sd/oi可用参数
string — Coin symbol; 400 when missing. Alias: `base`.
请求 URL
https://www.coinboss.com/api/sd/oi?coin=BTC选择一个端点,然后点击“发送请求”。响应、响应头和耗时将显示在这里。
同分类的其他端点
- 单个币种的持仓量 /api/sd/oi
- 跨交易所的币种持仓量排行 /api/market/open-interest
- 单个币种的 OI 堆叠图序列 /api/oi/chart
- 单个币种的聚合持仓量历史 /api/oi/history
- 持仓量矩阵 /api/oi/matrix
- 单个币种的持仓量摘要 /api/oi/summary