/api/sd/volume
GETAvailable

Futures volume for one coin

Self-data layer: futures volume for one coin

GET/api/sd/volume

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/volume?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.
futuresobject—Futures market block or value.
futures.total_usdnumberUSD24h futures volume across exchanges (USD notional).
futures.n_exchangesnumber—Number of exchanges contributing.
futures.by_exchangearray—Per-exchange breakdown.
futures.by_exchange[]object—Per-exchange breakdown.
futures.by_exchange[].exchangestring—Exchange id, lower case (for example `binance`).
futures.by_exchange[].vol_usdnumberUSDVolume in USD notional.
futures.by_exchange[].legacy_usdnumberUSDPart of the volume that comes from the USDT-perpetual ticker set.
futures.by_exchange[].sd_usdnumberUSDPart that comes from additional contracts (USDC, coin-margined, delivery) already included.
futures.by_exchange[].share_pctnumber%Share of the total.
futures.change_24hobject—24h change.
futures.change_24h.pctnumber%Percentage.
futures.change_24h.curnumber—Current value.
futures.change_24h.prevnumber—Previous value (baseline).
futures.change_24h.n_matchednumber—Items present at both ends of the comparison.
futures.change_24h.n_totalnumber—Items present now.
futures.change_24h.prev_tsnumbermsTime of the baseline snapshot.
futures.change_24h.basisstring—Futures price minus spot price, or the basis block.
futures.selfdata_contractsobject—Additional contracts: what is already included and what is still pending.
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.
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).
futures.selfdata_contracts.pending_usdnumber|nullUSDSum of pending items, not in the total.
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`.
futures.selfdata_contracts.pendingarray—Items collected but not yet included.
futures.selfdata_contracts.pending[]object—Items collected but not yet included.
futures.selfdata_contracts.pending[].exchangestring—Exchange id, lower case (for example `binance`).
futures.selfdata_contracts.pending[].symbolstring—Instrument symbol as normalised by CoinBoss (for example BTCUSDT).
futures.selfdata_contracts.pending[].marginstring—Margin currency class.
futures.selfdata_contracts.pending[].contract_typestring—`perpetual` or `delivery`.
futures.selfdata_contracts.pending[].vol_usdnumberUSDVolume in USD notional.
futures.selfdata_contracts.pending[].reasonstring—Reason code.
spotobject—Spot market block or value.
spot.total_usdnumberUSD24h spot volume across exchanges.
spot.n_exchangesnumber—Number of exchanges contributing.
spot.asofnumbermsTime of the newest data used.
spot.by_exchangearray—Per-exchange breakdown.
spot.by_exchange[]object—Per-exchange breakdown.
spot.by_exchange[].exchangestring—Exchange id, lower case (for example `binance`).
spot.by_exchange[].vol_usdnumberUSDVolume in USD notional.
spot.by_exchange[].quotestring—Quote currencies included for this exchange.
spot.by_exchange[].tsnumbermsTimestamp.
spot.by_exchange[].pricenumber—Last price in the quote currency (USD or USDT unless stated).
spot.by_exchange[].age_snumbersSeconds since this row was last updated.
spot.by_exchange[].share_pctnumber%Share of the total.
spot.change_24hobject—24h change.
spot.change_24h.pctnumber%Percentage.
spot.change_24h.curnumber—Current value.
spot.change_24h.prevnumber—Previous value (baseline).
spot.change_24h.n_matchednumber—Items present at both ends of the comparison.
spot.change_24h.n_totalnumber—Items present now.
spot.change_24h.prev_tsnumbermsTime of the baseline snapshot.
spot.change_24h.basisstring—Futures price minus spot price, or the basis block.
ratiosobject—Volume ratios: `futures_to_spot` (24h futures volume ÷ 24h spot volume) and `oi_to_futures_volume`; each null when an input is missing.
ratios.futures_to_spotnumber—Futures volume divided by spot volume.
ratios.oi_to_futures_volumenumber—Open interest divided by 24h futures volume.
methodobject—Plain-text statement of the formulas used for this response.
method.futuresstring—Futures market block or value.
method.spotstring—Spot market block or value.
method.changestring—Change over the stated period.
method.oi_to_futures_volumestring—Plain-text definition of `ratios.oi_to_futures_volume`: total open interest in USD ÷ 24h futures volume in USD.

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

Example response

/api/sd/volume?coin=BTC · Real response captured 2026-11-13 03:57:37 UTC. Long arrays and maps are shortened for display: spot.by_exchange had 14 items; futures.by_exchange had 23 items; futures.selfdata_contracts.pending had 5 items.

  • {
    • "success": true,
    • "coin": "BTC",
    • "now": 1794542257033,
    • "futures": {
      • "total_usd": 79049803843.06,
      • "n_exchanges": 23,
      • "by_exchange": [ … 2 ],
      • "change_24h": { … 7 },
      • "selfdata_contracts": { … 5 }
      },
    • "spot": {
      • "total_usd": 7929483908.44,
      • "n_exchanges": 14,
      • "asof": 1794541800000,
      • "by_exchange": [ … 2 ],
      • "change_24h": { … 7 }
      },
    • "ratios": {
      • "futures_to_spot": 9.9691,
      • "oi_to_futures_volume": 0.6197
      },
    • "method": {
      • "futures": "SUM of each exchange 24h quote turnover in USD for this coin's contracts (ticker fresh within 1h); self-collected coin-margined/USDC/delivery contracts are adde…",
      • "spot": "per exchange: 24h quote turnover summed over that exchange's USD/USDT/USDC-quoted spot pairs of the coin (quote = the largest pair); total = SUM over exchanges …",
      • "change": "same-exchange pairing: only exchanges with both a current value and a snapshot ~24h ago enter numerator and denominator",
      • "oi_to_futures_volume": "total open interest (USD) / 24h futures turnover (USD)"
      }
    }

Verified samples

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

ParametersHTTPLatencyResult
coin=ETH20038 msPass
coin=SOL20046 msPass
coin=ARKM20043 msPass
—4001 msPass returns the expected error

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

Details

Authentication
None. Public endpoint.
Rate limit
1200 requests per minute per IP
Server cache
30s
Edge micro-cache
10s
Update frequency
futures tickers every 60 s (coin-margined / USDC / dated contracts every 120 s); spot snapshots every 10 min
Window
rolling 24 h volume as reported by each venue; 24 h change vs own archive about 24 h earlier
Data sources
24h futures volume from in-house ticker collectors (24 derivatives venues) and 24h spot volume from in-house spot ticker collectors (14 spot exchanges, e.g. binance, okx, bybit, coinbase, kraken, upbit).
Exchange coverage
futures: up to 24 venues; spot: 14 exchanges, USD / USDT / USDC quoted pairs
Units
volumes in USD; changes in percent; ratios dimensionless
Method
futures total = SUM(volume_usd) of tickers fresh within 1 h, plus non-USDT-perp contracts once they have their own ~24 h baseline; spot total = SUM of the latest per-exchange snapshot within 30 min; 24 h change by same-exchange pairing; ratios futures_to_spot and oi_to_futures_volume
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:37 UTCHTTP 20042 msSchema matchesNewest data point 8m old

Availability, last 30 days

100% of 411 checks passed

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/volumeAvailable
Parameters

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

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