/api/sd/coin
GETAvailable

One-shot coin bundle (OI, funding, liquidations, volume, long/short)

Self-data layer: one-shot coin bundle (OI / funding / liquidations / volume / long-short, per-block fault isolation)

GET/api/sd/coin

Request

Query parameters

NameTypeRequiredDefaultAllowed valuesDescription
coinstringRequired——Coin symbol; 400 when missing. Alias: `base`. Example: BTC

Example request

curl -s "https://www.coinboss.com/api/sd/coin?coin=BTC"

Response fields

The field table is generated from real responses, so it lists exactly what the endpoint returns. Paths use a[] for array items and {*} for objects keyed by a dynamic name such as a coin or an exchange.

FieldTypeUnitDescription
successboolean—true when the request succeeded. On failure the body is `{ success: false, code, error, request_id }`.
coinstring—Coin symbol, upper case (for example BTC).
nownumbermsServer time when the response was built.
oiobject—Same object as `/api/sd/oi` returns for this coin.
oi.coinstring—Coin symbol, upper case (for example BTC).
oi.nownumbermsServer time when the response was built.
oi.total_usdnumberUSDOpen interest across all included exchanges and contracts, as each exchange reports it (USD notional).
oi.n_exchangesnumber—Number of exchanges in the total.
oi.n_contractsnumber—Number of contracts in the total.
oi.asofnumbermsNewest update time among the included rows.
oi.total_usd_single_adjustednumberUSD`total_usd` with the figures of exchanges that report both sides (`double_sided.exchanges`) halved, so every venue counts one side.
oi.double_sidedobject—Exchanges known to publish long + short open interest as one number.
oi.double_sided.exchangesarray—Exchanges.
oi.double_sided.exchanges[]string—Exchanges.
oi.double_sided.oi_usdnumberUSDReported open interest of those exchanges before halving.
oi.by_kindobject—Split by linear / inverse.
oi.by_kind.linear_usdnumberUSDOpen interest of linear contracts (margined and settled in a stablecoin or USD).
oi.by_kind.inverse_usdnumberUSDOpen interest of inverse (coin-margined) contracts, converted to USD at the contract price.
oi.by_marginobject—Split by margin currency.
oi.by_margin.othernumberUSDOther margin currencies (for example USD-settled venues such as CME).
oi.by_margin.usdtnumberUSDUSDT-margined contracts.
oi.by_margin.usdcnumberUSDUSDC-margined contracts. may be absent
oi.by_margin.coinnumberUSDCoin-margined contracts. may be absent
oi.by_contract_typeobject—Split by perpetual / delivery.
oi.by_contract_type.perpetual_usdnumberUSDPerpetual contracts.
oi.by_contract_type.delivery_usdnumberUSDDated futures (delivery contracts).
oi.changeobject—Change of open interest over 1h / 4h / 24h, computed on the same set of contracts at both ends. dynamic keys: h1,h4,h24
oi.change.{*}object—Change over the stated period.
oi.change.{*}.pctnumber%Percentage change between `prev` and `cur`.
oi.change.{*}.curnumberUSDCurrent sum over the matched contracts.
oi.change.{*}.prevnumberUSDSum over the same contracts at `prev_ts`.
oi.change.{*}.n_matchednumber—Contracts (or exchanges) present at both ends.
oi.change.{*}.n_totalnumber—Contracts (or exchanges) present now.
oi.change.{*}.matched_share_pctnumber%Share of current open interest covered by the matched set. may be absent
oi.change.{*}.prev_tsnumbermsTime of the baseline snapshot.
oi.change.{*}.span_minnumberminActual distance between baseline and now.
oi.change.{*}.basisstring—Which snapshot series the baseline comes from.
oi.change.{*}.frozen_excludedobject—Rows left out of the change because their value did not move between the two snapshots (source not updating). may be absent
oi.change.{*}.frozen_excluded.n_baselinenumber—Items in the baseline snapshot. may be absent
oi.change.{*}.frozen_excluded.n_currentnumber—Items in the current snapshot. may be absent
oi.change.{*}.frozen_excluded.cur_usdnumberUSDCurrent value. may be absent
oi.change.{*}.frozen_excluded.prev_usdnumberUSDBaseline value. may be absent
oi.by_exchangearray—Per-exchange breakdown.
oi.by_exchange[]object—Per-exchange breakdown.
oi.by_exchange[].exchangestring—Exchange id, lower case (for example `binance`).
oi.by_exchange[].oi_usdnumberUSDOpen interest in USD notional.
oi.by_exchange[].share_pctnumber%Share of the total.
oi.by_exchange[].n_contractsnumber—Number of contracts.
oi.by_exchange[].linear_usdnumberUSDLinear contracts.
oi.by_exchange[].inverse_usdnumberUSDInverse (coin-margined) contracts.
oi.by_exchange[].perpetual_usdnumberUSDPerpetual contracts.
oi.by_exchange[].delivery_usdnumberUSDDelivery contracts.
oi.by_exchange[].oi_sidestring—`double` when the exchange reports both sides in one number, `single` when it reports one side, `unstated` when the exchange does not document it.
oi.by_exchange[].oi_usd_single_adjustednumber|nullUSDSingle-side equivalent; null when the side convention is unstated.
oi.by_exchange[].updated_atnumbermsWhen this row was last updated.
oi.by_exchange[].age_snumbersSeconds since this row was last updated.
oi.by_exchange[].is_staleboolean—true when the row is older than the freshness window; stale rows are not used in totals.
oi.contractsarray—Per-contract rows.
oi.contracts[]object—Per-contract rows.
oi.contracts[].exchangestring—Exchange id, lower case (for example `binance`).
oi.contracts[].symbolstring—Instrument symbol as normalised by CoinBoss (for example BTCUSDT).
oi.contracts[].native_symbolstring|null—Symbol exactly as the exchange writes it.
oi.contracts[].oi_usdnumberUSDOpen interest in USD notional.
oi.contracts[].oi_sidestring—`double`, `single` or `unstated`: whether the exchange reports both sides of open interest in one number.
oi.contracts[].oi_usd_singlenumber|nullUSDSingle-side equivalent of `oi_usd`; null when the side convention is unstated.
oi.contracts[].marginstring—Margin currency class: `usdt`, `usdc`, `coin` or `other`.
oi.contracts[].kindstring—`linear` or `inverse`.
oi.contracts[].contract_typestring—`perpetual` or `delivery`.
oi.contracts[].expiry_tsnumber|nullmsExpiry of a delivery contract; null for perpetuals or when not published.
oi.contracts[].margin_basisstring—How the margin class was determined (from the contract specification or the venue default).
oi.contracts[].updated_atnumbermsWhen this row was last updated.
oi.contracts[].age_snumbersSeconds since this row was last updated.
oi.contracts[].is_staleboolean—true when the row is older than the freshness window; stale rows are not used in totals.
oi.contracts[].collectorstring—Internal collector that produced the row.
oi.contracts[].included_sincenumber|nullmsWhen this contract entered the totals; null for the base set.
oi.coverageobject—What is and is not included in the numbers above. Compare this before comparing totals with another source.
oi.coverage.included_exchangesarray—Exchanges whose data is included in the totals.
oi.coverage.included_exchanges[]string—Exchanges included in the totals.
oi.coverage.pendingarray—Contracts that are collected but not yet included in totals (for example while their own 25-hour history is still building). Listed with their current value so the gap is visible.
oi.coverage.pending[]object—Items collected but not yet included.
oi.coverage.pending[].exchangestring—Exchange id, lower case (for example `binance`).
oi.coverage.pending[].symbolstring—Instrument symbol as normalised by CoinBoss (for example BTCUSDT).
oi.coverage.pending[].native_symbolstring—Symbol exactly as the exchange writes it.
oi.coverage.pending[].marginstring—Margin currency class.
oi.coverage.pending[].contract_typestring—`perpetual` or `delivery`.
oi.coverage.pending[].oi_usdnumberUSDOpen interest in USD notional.
oi.coverage.pending[].age_snumbersSeconds since this row was last updated.
oi.coverage.pending[].reasonstring—Reason code.
oi.coverage.pending[].detailstring|null—Detail.
oi.coverage.pending_usdnumber|nullUSDSum of the pending contracts, not part of `total_usd`.
oi.coverage.stale_excludedarray—Rows left out because their last update is outside the usable window. empty in the samples used to generate this table
oi.coverage.unavailablearray—Exchange / contract pairs that could not be included, each with a reason. They are never counted as 0.
oi.coverage.unavailable[]object—Items for which no data is available, with reasons. Never reported as 0.
oi.coverage.unavailable[].exchangestring—Exchange id, lower case (for example `binance`).
oi.coverage.unavailable[].symbolstring—Instrument symbol as normalised by CoinBoss (for example BTCUSDT).
oi.coverage.unavailable[].native_symbolstring—Symbol exactly as the exchange writes it.
oi.coverage.unavailable[].marginstring—Margin currency class.
oi.coverage.unavailable[].contract_typestring—`perpetual` or `delivery`.
oi.coverage.unavailable[].reasonstring—Reason code.
oi.coverage.unavailable[].detailstring—Detail.
oi.methodobject—Plain-text statement of the formulas used for this response.
oi.method.totalstring—Total.
oi.method.usdstringUSDValue.
oi.method.change_h1_h4string—Plain-text definition of the 1h and 4h open interest changes: each contract is compared with its own snapshot nearest to the window start.
oi.method.change_h24string—Plain-text definition of the 24h open interest change: same-exchange pairing against the hourly snapshot nearest to 24 hours ago, frozen baselines excluded.
oi.method.oi_sidestring—`double`, `single` or `unstated`: whether the exchange reports both sides of open interest in one number.
fundingobject—Same object as `/api/sd/funding` returns for this coin.
funding.coinstring—Coin symbol, upper case (for example BTC).
funding.nownumbermsServer time when the response was built.
funding.unitstring—Unit of all rate fields in this response: `fraction` (0.0001 = 0.01 %).
funding.avg_8hnumberfraction per 8hSimple mean of the 8h-normalised rates, one contract per exchange.
funding.oi_weighted_8hnumberfraction per 8hOpen-interest-weighted mean of the 8h-normalised rates.
funding.apr_pctnumber% per yearSimple annualisation: 8h rate × 3 × 365 × 100.
funding.apr_basisstring—Which aggregate the headline `apr_pct` is based on.
funding.n_exchangesnumber—Number of exchanges contributing.
funding.n_normalizednumber—Exchanges whose funding interval is known and could be normalised to 8h.
funding.n_unknown_intervalnumber—Exchanges left out of the aggregates because their funding interval is unknown.
funding.settled_cum_7dobject—Sum of actually settled funding rates over the last 7 days, averaged across exchanges with settlement history.
funding.settled_cum_7d.avgnumberfractionSimple mean across exchanges.
funding.settled_cum_7d.oi_weightednumberfractionOpen-interest-weighted mean.
funding.settled_cum_7d.nnumber—Exchanges with a complete window.
funding.settled_cum_30dobject—Same, over 30 days.
funding.settled_cum_30d.avgnumberfractionSimple mean across exchanges.
funding.settled_cum_30d.oi_weightednumberfractionOpen-interest-weighted mean.
funding.settled_cum_30d.nnumber—Exchanges with a complete window.
funding.by_exchangearray—One row per exchange: its main contract for this coin (the one with the largest open interest).
funding.by_exchange[]object—Per-exchange breakdown.
funding.by_exchange[].exchangestring—Exchange id, lower case (for example `binance`).
funding.by_exchange[].symbolstring—Instrument symbol as normalised by CoinBoss (for example BTCUSDT).
funding.by_exchange[].marginstring—Margin currency class.
funding.by_exchange[].kindstring—Kind.
funding.by_exchange[].primaryboolean—True for the contract representing its exchange in the aggregates (the one with the largest open interest); always true in this list.
funding.by_exchange[].ratenumber—Rate.
funding.by_exchange[].interval_hnumberhInterval.
funding.by_exchange[].rate_8hnumber—Rate normalised to an 8-hour period.
funding.by_exchange[].apr_pctnumber% per yearAnnualised percentage.
funding.by_exchange[].next_funding_timenumber|nullmsTimestamp.
funding.by_exchange[].next_derivedboolean—True when `next_funding_time` was not published by the exchange and is inferred as the next full UTC hour (hourly-settling venues only).
funding.by_exchange[].predicted_ratenull—Indicative next-period rate; null when not published.
funding.by_exchange[].oi_usdnumber|nullUSDOpen interest in USD notional.
funding.by_exchange[].updated_atnumbermsWhen this row was last updated.
funding.by_exchange[].age_snumbersSeconds since this row was last updated.
funding.by_exchange[].is_staleboolean—true when the row is older than the freshness window; stale rows are not used in totals.
funding.by_exchange[].settledobject|null—Actual settlement records; null when no public history exists.
funding.by_exchange[].settled.last_ratenumberfractionFunding rate actually charged at the most recent settlement (`last_time`), from the exchange's funding history (0.0001 = 0.01 %). may be absent
funding.by_exchange[].settled.last_timenumbermsTimestamp. may be absent
funding.by_exchange[].settled.interval_hnumberhInterval. may be absent
funding.by_exchange[].settled.cum_7dnumberfractionSum of the funding rates settled on this contract in the last 7 days (0.0015 = 0.15 %); null when no settlement was recorded. may be absent
funding.by_exchange[].settled.n_7dnumbercountNumber of settlement records collected for the last 7 days. may be absent
funding.by_exchange[].settled.n_7d_expectednumbercountSettlements a full 7-day window should contain: 168 ÷ settlement interval in hours; null when the interval is unknown. may be absent
funding.by_exchange[].settled.cum_7d_completeboolean—True when the history covers the start of the 7-day window and holds at least 90 % of the expected settlements. may be absent
funding.by_exchange[].settled.cum_30dnumberfractionSum of the funding rates settled on this contract in the last 30 days (0.006 = 0.6 %). may be absent
funding.by_exchange[].settled.n_30dnumbercountNumber of settlement records collected for the last 30 days. may be absent
funding.by_exchange[].settled.n_30d_expectednumbercountSettlements a full 30-day window should contain: 720 ÷ settlement interval in hours; null when the interval is unknown. may be absent
funding.by_exchange[].settled.cum_30d_completeboolean—True when the history covers the start of the 30-day window and holds at least 90 % of the expected settlements. may be absent
funding.by_exchange[].settled.history_fromnumbermsEarliest record held. may be absent
funding.other_contractsarray—Further contracts of the same coin (USDC, coin-margined, …). Not part of the aggregates.
funding.other_contracts[]object—One additional funding contract of an exchange (coin-margined, USDC, …) that is not its primary contract and is excluded from the aggregates.
funding.other_contracts[].exchangestring—Exchange id, lower case (for example `binance`).
funding.other_contracts[].symbolstring—Instrument symbol as normalised by CoinBoss (for example BTCUSDT).
funding.other_contracts[].marginstring—Margin currency class.
funding.other_contracts[].kindstring—Kind.
funding.other_contracts[].primaryboolean—False for every row of this list: the contract is not the one representing its exchange in the aggregates.
funding.other_contracts[].ratenumber—Rate.
funding.other_contracts[].interval_hnumber|nullhInterval.
funding.other_contracts[].rate_8hnumber|null—Rate normalised to an 8-hour period.
funding.other_contracts[].apr_pctnumber|null% per yearAnnualised percentage.
funding.other_contracts[].next_funding_timenumber|nullmsTimestamp.
funding.other_contracts[].next_derivedboolean—True when `next_funding_time` was not published by the exchange and is inferred as the next full UTC hour (hourly-settling venues only).
funding.other_contracts[].predicted_ratenumber|null—Indicative next-period rate; null when not published.
funding.other_contracts[].oi_usdnumber|nullUSDOpen interest in USD notional.
funding.other_contracts[].updated_atnumbermsWhen this row was last updated.
funding.other_contracts[].age_snumbersSeconds since this row was last updated.
funding.other_contracts[].is_staleboolean—true when the row is older than the freshness window; stale rows are not used in totals.
funding.other_contracts[].settledobject|null—Actual settlement records; null when no public history exists.
funding.other_contracts[].settled.last_ratenumberfractionFunding rate actually charged at the most recent settlement (`last_time`), from the exchange's funding history (0.0001 = 0.01 %). may be absent
funding.other_contracts[].settled.last_timenumbermsTimestamp. may be absent
funding.other_contracts[].settled.interval_hnumberhInterval. may be absent
funding.other_contracts[].settled.cum_7dnumberfractionSum of the funding rates settled on this contract in the last 7 days (0.0015 = 0.15 %); null when no settlement was recorded. may be absent
funding.other_contracts[].settled.n_7dnumbercountNumber of settlement records collected for the last 7 days. may be absent
funding.other_contracts[].settled.n_7d_expectednumbercountSettlements a full 7-day window should contain: 168 ÷ settlement interval in hours; null when the interval is unknown. may be absent
funding.other_contracts[].settled.cum_7d_completeboolean—True when the history covers the start of the 7-day window and holds at least 90 % of the expected settlements. may be absent
funding.other_contracts[].settled.cum_30dnumberfractionSum of the funding rates settled on this contract in the last 30 days (0.006 = 0.6 %). may be absent
funding.other_contracts[].settled.n_30dnumbercountNumber of settlement records collected for the last 30 days. may be absent
funding.other_contracts[].settled.n_30d_expectednumbercountSettlements a full 30-day window should contain: 720 ÷ settlement interval in hours; null when the interval is unknown. may be absent
funding.other_contracts[].settled.cum_30d_completeboolean—True when the history covers the start of the 30-day window and holds at least 90 % of the expected settlements. may be absent
funding.other_contracts[].settled.history_fromnumbermsEarliest record held. may be absent
funding.coverageobject—What is and is not included in the numbers above. Compare this before comparing totals with another source.
funding.coverage.settle_history_exchangesarray—Exchanges for which actual settlement records are collected.
funding.coverage.settle_history_exchanges[]string—Exchange id for which actual funding settlement records are collected for this coin.
funding.coverage.no_settle_historyarray—Exchanges without a public settlement-history source; their `settled` is null.
funding.coverage.no_settle_history[]string—Exchange id of a primary contract that has no collected settlement history, so its `settled` block is null.
funding.coverage.unknown_intervalarray—Rows whose funding interval could not be determined. empty in the samples used to generate this table
funding.coverage.no_liveness_excludedarray—Rows excluded because the contract shows no sign of trading (no recent ticker, open interest or quote). empty in the samples used to generate this table
funding.methodobject—Plain-text statement of the formulas used for this response.
funding.method.ratestring—Rate.
funding.method.rate_8hstring—Rate normalised to an 8-hour period.
funding.method.apr_pctstring% per yearAnnualised percentage.
funding.method.aggregatestring—Aggregate across exchanges.
funding.method.settledstring—Actual settlement records; null when no public history exists.
funding.method.predicted_ratestring—Indicative next-period rate; null when not published.
funding.method.livenessstring—Plain-text rule for dropping dead contracts: a funding row counts only with a ticker within 1h, open interest within 3h or an own quote within 3h.
liquidationsobject—Same object as `/api/sd/liquidations` returns for this coin.
liquidations.coinstring—Coin symbol, upper case (for example BTC).
liquidations.nownumbermsServer time when the response was built.
liquidations.windowsobject—Totals for each window (keys such as `1h`, `4h`, `12h`, `24h`). dynamic keys: 1h,4h,12h,24h
liquidations.windows.{*}object—Per-window values.
liquidations.windows.{*}.long_usdnumberUSDLiquidated long positions; null when no source covered the window.
liquidations.windows.{*}.short_usdnumberUSDLiquidated short positions; null when no source covered the window.
liquidations.windows.{*}.total_usdnumberUSDLong + short.
liquidations.windows.{*}.countnumber—Number of liquidation orders.
liquidations.windows.{*}.long_pctnumber%Share of longs in the total.
liquidations.windows.{*}.max_orderobject—Largest single liquidation in the window.
liquidations.windows.{*}.max_order.exchangestring—Exchange id, lower case (for example `binance`).
liquidations.windows.{*}.max_order.symbolstring—Instrument symbol as normalised by CoinBoss (for example BTCUSDT).
liquidations.windows.{*}.max_order.sidestring—`long` / `short` or `buy` / `sell`.
liquidations.windows.{*}.max_order.pricenumber—Last price in the quote currency (USD or USDT unless stated).
liquidations.windows.{*}.max_order.qtynumber—Quantity.
liquidations.windows.{*}.max_order.contract_multipliernumberxCoins per quoted contract unit of the largest order (1000 for 1000PEPE-style contracts); `price` and `qty` are already converted to single coins.
liquidations.windows.{*}.max_order.value_usdnumberUSDValue.
liquidations.windows.{*}.max_order.timestampnumbermsTimestamp.
liquidations.by_exchangeobject—Per-exchange split for each window. dynamic keys: 1h,4h,12h,24h
liquidations.by_exchange.{*}array—Per-exchange breakdown.
liquidations.by_exchange.{*}[]object—Per-exchange breakdown.
liquidations.by_exchange.{*}[].exchangestring—Exchange id, lower case (for example `binance`).
liquidations.by_exchange.{*}[].long_usdnumberUSDLong side.
liquidations.by_exchange.{*}[].short_usdnumberUSDShort side.
liquidations.by_exchange.{*}[].total_usdnumberUSDTotal.
liquidations.by_exchange.{*}[].countnumber—Number of items.
liquidations.by_exchange.{*}[].share_pctnumber%Share of the total.
liquidations.last_event_atnumbermsTime of the most recent liquidation for this coin.
liquidations.last_event_age_snumbersSeconds since that event.
liquidations.sourcesarray—State of every liquidation feed: how it is collected and when it last delivered.
liquidations.sources[]object—Data sources.
liquidations.sources[].exchangestring—Exchange id, lower case (for example `binance`).
liquidations.sources[].viastring—Collection method (`ws`, `rest`, …).
liquidations.sources[].statusstring—Feed state judged from its own event times and heartbeats.
liquidations.sources[].feed_last_event_age_snumber|nullsSeconds since the event.
liquidations.sources[].ws_heartbeat_age_snumber|nullsSeconds since the event.
liquidations.sources[].judged_bystring—Which timestamp the status was judged from.
liquidations.sources[].coin_last_event_age_snumber|nullsSeconds since the event.
liquidations.sources[].min_event_usdnumberUSDSmallest order size the feed publishes; smaller liquidations are not visible on this venue.
liquidations.sources[].notestring|null—Note.
liquidations.sources[].node_heartbeat_age_snumbersSeconds since the event. may be absent
liquidations.sources[].pipeline_last_event_age_snumbersSeconds since the event. may be absent
liquidations.coverageobject—What is and is not included in the numbers above. Compare this before comparing totals with another source.
liquidations.coverage.collected_exchangesarray—Exchanges with a public liquidation feed that CoinBoss collects.
liquidations.coverage.collected_exchanges[]string—Exchanges collected.
liquidations.coverage.unavailablearray—Exchange / contract pairs that could not be included, each with a reason. They are never counted as 0.
liquidations.coverage.unavailable[]object—Items for which no data is available, with reasons. Never reported as 0.
liquidations.coverage.unavailable[].exchangestring—Exchange id, lower case (for example `binance`).
liquidations.coverage.unavailable[].reasonstring—Reason code.
liquidations.methodobject—Plain-text statement of the formulas used for this response.
liquidations.method.eventstring—Plain-text note on what one liquidation event is: one liquidation order pushed by the exchange stream or returned by its public REST API.
liquidations.method.sidestring—`long` / `short` or `buy` / `sell`.
liquidations.method.value_usdstringUSDValue.
liquidations.method.dedupestring—Plain-text note on de-duplication: events are unique by exchange, symbol, side, price, value and timestamp, plus the exchange order id where provided.
liquidations.method.null_rulestring—Plain-text note that a window without any collected event returns null rather than 0, and where exchanges without a public feed are listed.
liquidations.method.binance_notestring—Plain-text caveat that Binance pushes at most one liquidation per symbol per second, so Binance totals are a lower bound.
liquidations.method.min_event_usdstringUSDSmallest order the feed publishes.
volumeobject—Same object as `/api/sd/volume` returns for this coin.
volume.coinstring—Coin symbol, upper case (for example BTC).
volume.nownumbermsServer time when the response was built.
volume.futuresobject—Futures market block or value.
volume.futures.total_usdnumberUSD24h futures volume across exchanges (USD notional).
volume.futures.n_exchangesnumber—Number of exchanges contributing.
volume.futures.by_exchangearray—Per-exchange breakdown.
volume.futures.by_exchange[]object—Per-exchange breakdown.
volume.futures.by_exchange[].exchangestring—Exchange id, lower case (for example `binance`).
volume.futures.by_exchange[].vol_usdnumberUSDVolume in USD notional.
volume.futures.by_exchange[].legacy_usdnumberUSDPart of the volume that comes from the USDT-perpetual ticker set.
volume.futures.by_exchange[].sd_usdnumberUSDPart that comes from additional contracts (USDC, coin-margined, delivery) already included.
volume.futures.by_exchange[].share_pctnumber%Share of the total.
volume.futures.change_24hobject—24h change.
volume.futures.change_24h.pctnumber%Percentage.
volume.futures.change_24h.curnumber—Current value.
volume.futures.change_24h.prevnumber—Previous value (baseline).
volume.futures.change_24h.n_matchednumber—Items present at both ends of the comparison.
volume.futures.change_24h.n_totalnumber—Items present now.
volume.futures.change_24h.prev_tsnumbermsTime of the baseline snapshot.
volume.futures.change_24h.basisstring—Futures price minus spot price, or the basis block.
volume.futures.selfdata_contractsobject—Additional contracts: what is already included and what is still pending.
volume.futures.selfdata_contracts.included_usdnullUSD24h volume of the additionally collected contracts (coin-margined, USDC, delivery) already counted in the futures total; null when none is counted yet.
volume.futures.selfdata_contracts.n_includednumbercountNumber of additionally collected contracts counted in the futures total (those that have their own snapshot from about 24 hours ago).
volume.futures.selfdata_contracts.pending_usdnumber|nullUSDSum of pending items, not in the total.
volume.futures.selfdata_contracts.n_pendingnumbercountNumber of additionally collected contracts not yet counted because they lack their own 24h-ago baseline; the largest are listed in `pending`.
volume.futures.selfdata_contracts.pendingarray—Items collected but not yet included.
volume.futures.selfdata_contracts.pending[]object—Items collected but not yet included.
volume.futures.selfdata_contracts.pending[].exchangestring—Exchange id, lower case (for example `binance`).
volume.futures.selfdata_contracts.pending[].symbolstring—Instrument symbol as normalised by CoinBoss (for example BTCUSDT).
volume.futures.selfdata_contracts.pending[].marginstring—Margin currency class.
volume.futures.selfdata_contracts.pending[].contract_typestring—`perpetual` or `delivery`.
volume.futures.selfdata_contracts.pending[].vol_usdnumberUSDVolume in USD notional.
volume.futures.selfdata_contracts.pending[].reasonstring—Reason code.
volume.spotobject—Spot market block or value.
volume.spot.total_usdnumberUSD24h spot volume across exchanges.
volume.spot.n_exchangesnumber—Number of exchanges contributing.
volume.spot.asofnumbermsTime of the newest data used.
volume.spot.by_exchangearray—Per-exchange breakdown.
volume.spot.by_exchange[]object—Per-exchange breakdown.
volume.spot.by_exchange[].exchangestring—Exchange id, lower case (for example `binance`).
volume.spot.by_exchange[].vol_usdnumberUSDVolume in USD notional.
volume.spot.by_exchange[].quotestring—Quote currencies included for this exchange.
volume.spot.by_exchange[].tsnumbermsTimestamp.
volume.spot.by_exchange[].pricenumber—Last price in the quote currency (USD or USDT unless stated).
volume.spot.by_exchange[].age_snumbersSeconds since this row was last updated.
volume.spot.by_exchange[].share_pctnumber%Share of the total.
volume.spot.change_24hobject—24h change.
volume.spot.change_24h.pctnumber%Percentage.
volume.spot.change_24h.curnumber—Current value.
volume.spot.change_24h.prevnumber—Previous value (baseline).
volume.spot.change_24h.n_matchednumber—Items present at both ends of the comparison.
volume.spot.change_24h.n_totalnumber—Items present now.
volume.spot.change_24h.prev_tsnumbermsTime of the baseline snapshot.
volume.spot.change_24h.basisstring—Futures price minus spot price, or the basis block.
volume.ratiosobject—Volume ratios: `futures_to_spot` (24h futures volume ÷ 24h spot volume) and `oi_to_futures_volume`; each null when an input is missing.
volume.ratios.futures_to_spotnumber—Futures volume divided by spot volume.
volume.ratios.oi_to_futures_volumenumber—Open interest divided by 24h futures volume.
volume.methodobject—Plain-text statement of the formulas used for this response.
volume.method.futuresstring—Futures market block or value.
volume.method.spotstring—Spot market block or value.
volume.method.changestring—Change over the stated period.
volume.method.oi_to_futures_volumestring—Plain-text definition of `ratios.oi_to_futures_volume`: total open interest in USD ÷ 24h futures volume in USD.
lsobject—Same object as `/api/sd/ls` returns for this coin.
ls.coinstring—Coin symbol, upper case (for example BTC).
ls.nownumbermsServer time when the response was built.
ls.accountobject—Share of all accounts that are net long vs net short.
ls.account.long_pctnumber%Long share.
ls.account.short_pctnumber%Short share.
ls.account.rationumber—Ratio.
ls.account.n_exchangesnumber—Number of exchanges contributing.
ls.account.by_exchangearray—Per-exchange breakdown.
ls.account.by_exchange[]object—Per-exchange breakdown.
ls.account.by_exchange[].exchangestring—Exchange id, lower case (for example `binance`).
ls.account.by_exchange[].symbolstring—Instrument symbol as normalised by CoinBoss (for example BTCUSDT).
ls.account.by_exchange[].long_pctnumber%Long share.
ls.account.by_exchange[].short_pctnumber%Short share.
ls.account.by_exchange[].rationumber—Ratio.
ls.account.by_exchange[].updated_atnumbermsWhen this row was last updated.
ls.account.by_exchange[].age_snumbersSeconds since this row was last updated.
ls.account.by_exchange[].is_staleboolean—true when the row is older than the freshness window; stale rows are not used in totals.
ls.account.by_exchange[].sourcestring—Where the value comes from.
ls.account.by_exchange[].periodstring—Period.
ls.top_accountobject—Same, restricted to the exchange-defined top traders.
ls.top_account.long_pctnumber|null%Long share.
ls.top_account.short_pctnumber|null%Short share.
ls.top_account.rationumber|null—Ratio.
ls.top_account.n_exchangesnumber—Number of exchanges contributing.
ls.top_account.by_exchangearray—Per-exchange breakdown.
ls.top_account.by_exchange[]object—Per-exchange breakdown.
ls.top_account.by_exchange[].exchangestring—Exchange id, lower case (for example `binance`).
ls.top_account.by_exchange[].symbolstring—Instrument symbol as normalised by CoinBoss (for example BTCUSDT).
ls.top_account.by_exchange[].long_pctnumber%Long share.
ls.top_account.by_exchange[].short_pctnumber%Short share.
ls.top_account.by_exchange[].rationumber—Ratio.
ls.top_account.by_exchange[].updated_atnumbermsWhen this row was last updated.
ls.top_account.by_exchange[].age_snumbersSeconds since this row was last updated.
ls.top_account.by_exchange[].is_staleboolean—true when the row is older than the freshness window; stale rows are not used in totals.
ls.top_account.by_exchange[].sourcestring—Where the value comes from.
ls.top_account.by_exchange[].periodstring—Period.
ls.top_positionobject—Long vs short share of the positions held by top traders.
ls.top_position.long_pctnumber|null%Long share.
ls.top_position.short_pctnumber|null%Short share.
ls.top_position.rationumber|null—Ratio.
ls.top_position.n_exchangesnumber—Number of exchanges contributing.
ls.top_position.by_exchangearray—Per-exchange breakdown.
ls.top_position.by_exchange[]object—Per-exchange breakdown.
ls.top_position.by_exchange[].exchangestring—Exchange id, lower case (for example `binance`).
ls.top_position.by_exchange[].symbolstring—Instrument symbol as normalised by CoinBoss (for example BTCUSDT).
ls.top_position.by_exchange[].long_pctnumber%Long share.
ls.top_position.by_exchange[].short_pctnumber%Short share.
ls.top_position.by_exchange[].rationumber—Ratio.
ls.top_position.by_exchange[].updated_atnumbermsWhen this row was last updated.
ls.top_position.by_exchange[].age_snumbersSeconds since this row was last updated.
ls.top_position.by_exchange[].is_staleboolean—true when the row is older than the freshness window; stale rows are not used in totals.
ls.top_position.by_exchange[].sourcestring—Where the value comes from.
ls.top_position.by_exchange[].periodstring—Period.
ls.position_allobject—Long vs short share of all positions (venues that publish it).
ls.position_all.long_pctnumber|null%Long share.
ls.position_all.short_pctnumber|null%Short share.
ls.position_all.rationumber|null—Ratio.
ls.position_all.n_exchangesnumber—Number of exchanges contributing.
ls.position_all.by_exchangearray—Per-exchange breakdown.
ls.position_all.by_exchange[]object—Per-exchange breakdown.
ls.position_all.by_exchange[].exchangestring—Exchange id, lower case (for example `binance`).
ls.position_all.by_exchange[].symbolstring—Instrument symbol as normalised by CoinBoss (for example BTCUSDT).
ls.position_all.by_exchange[].long_pctnumber%Long share.
ls.position_all.by_exchange[].short_pctnumber%Short share.
ls.position_all.by_exchange[].rationumber—Ratio.
ls.position_all.by_exchange[].updated_atnumbermsWhen this row was last updated.
ls.position_all.by_exchange[].age_snumbersSeconds since this row was last updated.
ls.position_all.by_exchange[].is_staleboolean—true when the row is older than the freshness window; stale rows are not used in totals.
ls.position_all.by_exchange[].sourcestring—Where the value comes from.
ls.position_all.by_exchange[].periodstring—Period.
ls.takerobject—Taker buy vs taker sell volume share.
ls.taker.long_pctnumber|null%Long share.
ls.taker.short_pctnumber|null%Short share.
ls.taker.rationumber|null—Ratio.
ls.taker.n_exchangesnumber—Number of exchanges contributing.
ls.taker.by_exchangearray—Per-exchange breakdown.
ls.definitionsobject—Definition of each measure. The five measures answer different questions and are never blended. may be absent
ls.definitions.accountstring—Account-based measure. may be absent
ls.definitions.top_accountstring—Top-trader account measure. may be absent
ls.definitions.top_positionstring—Top-trader position measure. may be absent
ls.definitions.position_allstring—All-position measure. may be absent
ls.definitions.takerstring—Taker buy / sell measure. may be absent
ls.methodobject—Plain-text statement of the formulas used for this response. may be absent
ls.method.normalizestring—Plain-text note on normalisation: each exchange value is rescaled so long % + short % = 100, and ratio = long % ÷ short %. may be absent
ls.method.aggregatestring—Aggregate across exchanges. may be absent
ls.method.freshnessstring—Plain-text freshness rule: rows updated within 24 hours are shown and `is_stale` marks rows older than 2 hours. may be absent
errorsobject—Parts of the bundle that failed to build, keyed by part name; empty when all parts are present. may be absent

Generated 2026-11-11 23:00 UTC from 4 real responses.

Example response

No example is stored because the last successful response was too large to display. Call the endpoint in the Playground.

Verified samples

Besides the example above, the probe calls this endpoint with these parameters and checks the schema each time.

ParametersHTTPLatencyResult
coin=ETH20073 msPass
coin=SOL20059 msPass
coin=ARKM20059 msPass
—4002 msPass returns the expected error

Checked 2026-11-13 03:57:35 UTC

Details

Authentication
None. Public endpoint.
Rate limit
1200 requests per minute per IP
Server cache
15s
Edge micro-cache
10s
Update frequency
see /api/sd/oi, /api/sd/funding, /api/sd/liquidations, /api/sd/volume, /api/sd/ls (60 s to 5 min polling; liquidations real-time; spot every 10 min)
Window
latest snapshot per block plus each block's own rolling windows
Data sources
Combined open interest, funding, liquidations, volume and long/short blocks for one coin, all built from CoinBoss's own collectors polling the public APIs of about 30 venues (e.g. binance, okx, bybit, bitget, gate, hyperliquid).
Exchange coverage
same as the five single-block endpoints; the contracts list is truncated to 60 rows
Units
USD notional for OI / volume / liquidations; funding as fraction; long/short in percent
Method
same builders as the five single-block endpoints
Timestamps
Unix epoch milliseconds (UTC) unless the field description says otherwise
Response format
json
Stability
Stable
Available since
2026-11-11

Live status

AvailableChecked 2026-11-13 03:57:35 UTCHTTP 200875 msSchema matchesNewest data point 0s old

Availability, last 30 days

100% of 411 checks passed

Schema drift detected by the last probe
  • Returned but not documented: oi.coverage.stale_excluded[], oi.coverage.stale_excluded[].exchange, oi.coverage.stale_excluded[].symbol, oi.coverage.stale_excluded[].oi_usd, oi.coverage.stale_excluded[].age_s, oi.coverage.stale_excluded[].reason, ls.taker.by_exchange[], ls.taker.by_exchange[].exchange, ls.taker.by_exchange[].symbol, ls.taker.by_exchange[].long_pct

Errors

Failed calls share one shape on every endpoint. The full list is on the errors page. Errors and rate limits →

CodeHTTPMeaningWhat to do
INVALID_PARAM400A required parameter is missing or a value is not accepted. `param` names the parameter when it is known.Do not retry unchanged; fix the request.
UNAUTHORIZED401The `CB-API-KEY` header was sent but the key is unknown or revoked. Public data needs no key — drop the header or use a valid key.Do not retry unchanged.
FORBIDDEN403The route is not part of the public API (internal or account-only).Do not retry.
NOT_FOUND404Unknown route, or the requested coin / exchange / fund does not exist.Do not retry; check the path and identifiers against the catalog.
RATE_LIMITED429More requests than the per-minute limit. `Retry-After` gives the seconds to wait.Wait for `Retry-After`, then retry with backoff.
INTERNAL500Unexpected server error. The message is generic by design; quote `request_id` when reporting it.Retry once after a few seconds; report it with the request id if it persists.
UPSTREAM_FAILED503The data source behind this endpoint did not answer in time. No stale or substitute numbers are returned in its place.Retry with backoff; check the status page.
UNAVAILABLE501 / 503The dataset is temporarily not ready (cache warming) or the endpoint has no lawful public source yet.Retry later; the catalog marks endpoints that are unavailable by design.
REQUEST_FAILED200Some older endpoints answer HTTP 200 with `success: false`. Always check `success`, not only the HTTP status.Depends on the message; treat as a failed request.

Try it

GET/api/sd/coinAvailable
Parameters

string — Coin symbol; 400 when missing. Alias: `base`.

Request URLhttps://www.coinboss.com/api/sd/coin?coin=BTC
Choose an endpoint and press “Send request”. The response, headers and timing will appear here.