/api/sd/options/chain
GET降级STALE

期权链(单个交易所)

单个交易所某一到期日下每个行权价的看涨与看跌期权并排展示:持仓量、成交量、标记价格、标记 / 买价 / 卖价 IV,以及交易所公布的希腊值。

GET/api/sd/options/chain
降级. 该端点上报的数据质量为 STALE

请求

查询参数

名称类型必填默认值可选值说明
coinstring必填——币种代码,不区分大小写(例如 `BTC`)。缺失或格式错误时返回 400。 示例: BTC
exchangestring必填—deribit, binance, bybit, okx, gate, coincall交易所 ID。此处不接受 `all`:一条期权链只属于一家交易所。 示例: okx
expirystring可选——UTC 到期日,格式为 `YYYY-MM-DD`。默认:最近的到期日。不接受 `all`。
kindstring可选—inverse, linear交易所同时上线币结算(`inverse`)和稳定币结算(`linear`)期权时的合约系列。默认:该到期日持仓量较大的系列。
limitinteger可选100≥ 1 · ≤ 500每页的行权价数量(一行 = 一个行权价及其看涨和看跌合约)。
offsetinteger可选0≥ 0 · ≤ 100000要跳过的行权价数量。

请求示例

curl -s "https://www.coinboss.com/api/sd/options/chain?coin=BTC&exchange=okx"

响应字段

字段表根据真实响应生成,因此所列内容与端点实际返回的完全一致。路径中 a[] 表示数组元素,{*} 表示以动态名称(如币种或交易所)为键的对象。

字段类型单位说明
successboolean—请求成功时为 true。失败时响应体为 `{ success: false, code, error, request_id }`。
schemastring—本响应的结构 ID。仅当已有字段的含义或类型发生变化时才会改变。
nownumberms响应生成时的服务器时间。
coinstring—币种代码(大写)。
exchangestring—交易所 ID(小写)。
expirystring—到期日(UTC),格式为 `YYYY-MM-DD`,或 `all`。
expiry_tsnumberms到期时间。
days_leftnumberdays距到期日的天数。
kindstring—合约系列:`inverse`(币结算)或 `linear`(稳定币结算)。
kinds_availablearray—交易所为该到期日上线的合约系列。
kinds_available[]string—交易所为该到期日上线的合约系列。
expiries_availablearray—当前有合约的到期日。
expiries_available[]string—当前有合约的到期日。
underlyingstring—合约系列的标的。
settlestring—合约系列的结算货币。
contract_sizenumbercoin每张合约对应的标的币数量。
underlying_pricenumberUSD交易所为该到期日公布的远期 / 标的价格。
index_pricenumberUSD用于 USD 换算的现货指数价格(在聚合值中取各交易所自身指数价格的中位数)。
total_strikesnumber—分页前该到期日可用的行权价数量。
limitnumber—实际应用的行数上限。
offsetnumber—跳过的行数。
returnednumber—本页返回的行权价数量。
rowsarray—每个行权价一行,含其看涨和看跌合约。
rows[]object—每个行权价一行,含其看涨和看跌合约。
rows[].strikenumberUSD行权价。
rows[].callobject—该行权价的看涨合约;交易所未上线时为 `null`。
rows[].call.instrumentstring—交易所原始写法的合约名称。
rows[].call.oi_contractsnumbercontracts以合约张数计的持仓量,按交易所的计数方式。
rows[].call.oi_coinnumbercoin以标的币数量计的持仓量。
rows[].call.oi_usdnumberUSD以 USD 名义价值计的持仓量:币数量 × 现货指数价格。单边口径。
rows[].call.vol_contracts_24hnumbercontracts以合约张数计的 24h 成交量,按交易所的计数方式。
rows[].call.vol_coin_24hnumbercoin以标的币数量计的 24h 成交数量。
rows[].call.vol_usd_24hnumberUSD24h 名义成交额:成交币数量 × 当前现货指数价格。不是权利金成交额。
rows[].call.vol_premium_usd_24hnumber|nullUSD24h 权利金成交额(期权价格 × 数量),仅在交易所公布时提供;否则为 `null`。绝不计入名义成交额。
rows[].call.mark_pricenumber|null—期权的标记价格,以其报价单位计(币结算合约以币计)。
rows[].call.mark_price_usdnumber|nullUSD换算为 USD 的期权标记价格。
rows[].call.mark_ivnumber%标记价格对应的隐含波动率。
rows[].call.bid_ivnumber|null%最优买价对应的隐含波动率;交易所未公布时为 `null`。
rows[].call.ask_ivnumber|null%最优卖价对应的隐含波动率;交易所未公布时为 `null`。
rows[].call.deltanumber|null—交易所公布的 Delta;未公布时为 `null`。
rows[].call.gammanumber|null—交易所公布的 Gamma;未公布时为 `null`。
rows[].call.veganumber|null—交易所公布的 Vega;未公布时为 `null`。
rows[].call.thetanumber|null—交易所公布的 Theta;未公布时为 `null`。
rows[].call.observed_atnumberms数据源为该数据给出的时间戳。
rows[].putobject—该行权价的看跌合约;交易所未上线时为 `null`。
rows[].put.instrumentstring—交易所原始写法的合约名称。
rows[].put.oi_contractsnumbercontracts以合约张数计的持仓量,按交易所的计数方式。
rows[].put.oi_coinnumbercoin以标的币数量计的持仓量。
rows[].put.oi_usdnumberUSD以 USD 名义价值计的持仓量:币数量 × 现货指数价格。单边口径。
rows[].put.vol_contracts_24hnumbercontracts以合约张数计的 24h 成交量,按交易所的计数方式。
rows[].put.vol_coin_24hnumbercoin以标的币数量计的 24h 成交数量。
rows[].put.vol_usd_24hnumberUSD24h 名义成交额:成交币数量 × 当前现货指数价格。不是权利金成交额。
rows[].put.vol_premium_usd_24hnumber|nullUSD24h 权利金成交额(期权价格 × 数量),仅在交易所公布时提供;否则为 `null`。绝不计入名义成交额。
rows[].put.mark_pricenumber—期权的标记价格,以其报价单位计(币结算合约以币计)。
rows[].put.mark_price_usdnumberUSD换算为 USD 的期权标记价格。
rows[].put.mark_ivnumber%标记价格对应的隐含波动率。
rows[].put.bid_ivnumber|null%最优买价对应的隐含波动率;交易所未公布时为 `null`。
rows[].put.ask_ivnumber|null%最优卖价对应的隐含波动率;交易所未公布时为 `null`。
rows[].put.deltanumber|null—交易所公布的 Delta;未公布时为 `null`。
rows[].put.gammanumber|null—交易所公布的 Gamma;未公布时为 `null`。
rows[].put.veganumber|null—交易所公布的 Vega;未公布时为 `null`。
rows[].put.thetanumber|null—交易所公布的 Theta;未公布时为 `null`。
rows[].put.observed_atnumberms数据源为该数据给出的时间戳。
coverageobject—这些数值包含什么、不包含什么。在与其他数据源比较合计之前,请先比对这一点。
coverage.included_exchangesarray—新鲜数据已计入的数据源。
coverage.included_exchanges[]string—新鲜数据已计入的数据源。
coverage.unavailablearray—无法计入的数据源,每项均附原因。它们绝不会按 0 计。 在生成此表所用的样本中为空
coverage.stale_excludedarray—因最近一次更新超出新鲜窗口而被排除的行。 在生成此表所用的样本中为空
coverage.field_gapsarray—交易所未公布的列;该交易所的这些列为 `null`。
coverage.field_gaps[]object—交易所未公布的列;该交易所的这些列为 `null`。
coverage.field_gaps[].exchangestring—交易所 ID(小写)。
coverage.field_gaps[].fieldsarray—缺失列的名称。
coverage.field_gaps[].fields[]string—缺失列的名称。
coverage.field_gaps[].kindstring—合约系列:`inverse`(币结算)或 `linear`(稳定币结算)。
methodobject—以纯文本说明本响应所用的公式,每个字段一条。
method.chainstring—`chain` 的公式说明,纯文本。
method.kindstring—`kind` 的公式说明,纯文本。
method.oi_usdstring—`oi_usd` 的公式说明,纯文本。
method.mark_pricestring—`mark_price` 的公式说明,纯文本。
method.ivstring—`iv` 的公式说明,纯文本。
method.greeksstring—`greeks` 的公式说明,纯文本。
method.vol_usd_24hstring—`vol_usd_24h` 的公式说明,纯文本。
method.vol_premium_usd_24hstring—`vol_premium_usd_24h` 的公式说明,纯文本。
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/options/chain?coin=BTC&exchange=okx · 真实响应,采集于 2026-11-13 03:52:54 UTC。 为便于展示,较长的数组和映射已被截短:rows 原有 45 项; expiries_available 原有 12 项。

  • {
    • "success": true,
    • "schema": "coinboss.sd.options/1",
    • "now": 1794541974766,
    • "coin": "BTC",
    • "exchange": "okx",
    • "expiry": "2026-11-13",
    • "expiry_ts": 1794556800000,
    • "days_left": 0.1716,
    • "kind": "inverse",
    • "kinds_available": [
      • "inverse",
      • "linear"
      ],
    • "expiries_available": [
      • "2026-11-13",
      • "2026-11-14",
      • "2026-11-15",
      • "2026-11-16",
      • "2026-11-20",
      • "2026-11-27",
      • "2026-12-04",
      • "2026-12-25"
      ],
    • "underlying": "BTC-USD",
    • "settle": "BTC",
    • "contract_size": 0.01,
    • "underlying_price": 71428.8359576,
    • "index_price": 71417.4,
    • "total_strikes": 45,
    • "limit": 100,
    • "offset": 0,
    • "returned": 45,
    • "rows": [
      • { … 3 },
      • { … 3 }
      ],
    • "coverage": {
      • "included_exchanges": [ … 1 ],
      • "unavailable": [],
      • "stale_excluded": [],
      • "field_gaps": [ … 1 ],
      • "stale_included": [ … 1 ]
      },
    • "method": {
      • "chain": "T-quote for one exchange, one expiry and one contract family: one row per strike (ascending) with the call and put legs; paginated by strike with limit (default…",
      • "kind": "inverse = coin-settled (Deribit BTC/ETH, OKX *-USD); linear = USD/USDT/USDC-settled. When an exchange lists both families for the expiry and kind is omitted, th…",
      • "oi_usd": "sum over contracts of oi_coin x that exchange's spot index price (USDT/USDC treated 1:1 as USD); oi_coin is open interest in units of the underlying coin after …",
      • "mark_price": "exchange-native quote: Deribit/OKX inverse in underlying coin per 1 coin; Binance in USDT per contract (contract_size coins); others in USD per 1 coin. mark_pri…",
      • "iv": "mark_iv / bid_iv / ask_iv in percent as published by the exchange (no-quote sentinels such as 0 or -1 are null)",
      • "greeks": "delta/gamma/vega/theta exactly as published by the exchange (OKX: Black-Scholes greeks in USD terms); never computed by CoinBoss; null where the exchange does n…",
      • "vol_usd_24h": "NOTIONAL 24h volume = sum of vol_coin (24h traded quantity in underlying coin) x the exchange's CURRENT spot index price; not premium turnover. Binance statisti…",
      • "vol_premium_usd_24h": "PREMIUM turnover (option price x quantity) as reported by the exchange: Deribit volume_usd, Binance amount, Gate sum(|size| x multiplier x price) from the 24h t…"
      },
    • "meta": {
      • "schema": "coinboss.sd.options/1",
      • "source": [ … 1 ],
      • "observed_at": 1794522472654,
      • "received_at": 1794522473638,
      • "fetched_at": 1794541974766,
      • "window": "latest",
      • "quality": "STALE",
      • "is_stale": true,
      • "cache_ttl_s": 60,
      • "fallback": "on collector failure the last stored rows are served: an exchange whose newest batch is older than 25 min (collector cycle is 10 min) is excluded from totals (l…"
      }
    }

已验证的样本

除上面的示例外,探针还会使用以下参数调用该端点,并在每次调用时校验结构。

参数HTTP延迟结果
coin=ETH&exchange=deribit20059 ms通过 STALE
coin=BTC&limit=5&exchange=bybit2003 ms通过 STALE
coin=BTC4001 ms通过 返回预期的错误

检查于 2026-11-13 03:28:17 UTC

详细信息

身份验证
无。公开端点。
速率限制
每个 IP 每分钟 1200 次请求
服务端缓存
60s
边缘微缓存
10s
更新频率
采集器每 10 分钟运行一轮;交易所在最近一次成功采集后的 25 分钟内视为新鲜。
时间窗口
单个到期日的最新快照。
数据来源
Deribit、Binance、Bybit、OKX、Gate 和 Coincall 的公开 REST 期权端点,由 CoinBoss 采集并存储(sd_opt_latest、sd_opt_summary_hourly)。不涉及任何第三方聚合商。
交易所覆盖范围
六家期权交易所。在所选交易所没有上线期权的币种返回 HTTP 200,字段为 null,`meta.quality = "UNAVAILABLE"`,原因列在 `coverage.unavailable` 下。没有公开期权数据源的交易所也列在该处。
分页
基于偏移量:`limit`(最大 500)和 `offset`;响应中带有 `total_strikes` 和 `returned`。
排序
按行权价升序。
单位
USD notional = contracts × contract size × spot index price of the venue. `*_coin` fields are in units of the underlying coin. Implied volatility is in percent (55 = 55 %). `vol_premium_usd_24h` is premium turnover, reported separately and never added to notional volume.
计算方法
Greeks and IV are passed through from the venue, not recomputed. A venue that does not publish a column returns `null` for it and the column is listed under `coverage.field_gaps`.
时间戳
除非字段说明另有注明,均为 Unix 纪元毫秒(UTC)
响应格式
json
稳定性
稳定
上线时间
2026-11-11

实时状态

降级检查于 2026-11-13 03:52:54 UTCHTTP 20057 ms结构一致最新数据点距今 5.4h

该端点上报的数据质量为 STALE

近 30 天可用性

406 次检查中 100% 通过

最近一次探测发现结构漂移
  • 实际返回但文档未记载: coverage.stale_included, coverage.stale_included[], coverage.stale_included[].exchange, coverage.stale_included[].age_s

错误

所有端点的失败响应格式一致。完整列表见错误页面。 错误与速率限制 →

错误码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`。请务必检查 `success`,而不只是 HTTP 状态码。取决于具体信息;按请求失败处理。

试一试

GET/api/sd/options/chain降级
参数

string — Coin symbol, case-insensitive (for example `BTC`). Missing or malformed values return 400.

string — Venue id. `all` is not accepted here: a chain belongs to one venue.

string — UTC expiry date as `YYYY-MM-DD`. Default: the nearest expiry. `all` is not accepted.

string — Contract family when the venue lists both coin-settled (`inverse`) and stablecoin-settled (`linear`) options. Default: the family with the larger open interest for that expiry.

integer · 默认 100 · 最小 1 · 最大 500 — Strikes per page (one row = one strike with its call and put).

integer · 默认 0 · 最小 0 · 最大 100000 — Number of strikes to skip.

请求 URLhttps://www.coinboss.com/api/sd/options/chain?coin=BTC&exchange=okx
选择一个端点,然后点击“发送请求”。响应、响应头和耗时将显示在这里。