/api/indices/btc-signal
GETAvailable

BTC multi-factor signal dashboard

BTC multi-factor signal dashboard

GET/api/indices/btc-signal

Request

This endpoint takes no parameters.

Example request

curl -s "https://www.coinboss.com/api/indices/btc-signal"

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 }`.
totalScorenumber—Weighted sum of the six dimension scores, −100 to 100; positive is bullish.
labelobject—Label.
label.keystring—Key.
label.zhstring—Text in Chinese.
dimsarray—The six dimensions of the signal: `liq`, `funding`, `oi`, `ls`, `options`, `basis`.
dims[]object—One dimension: `key`, `zh` (Chinese name), `weight`, `score`, `detail` (Chinese text) and `raw` (the inputs).
dims[].keystring—Key.
dims[].zhstring—Text in Chinese.
dims[].weightnumberfractionWeight of the dimension in `totalScore`: 0.25 for `liq`, 0.15 for each of the others.
dims[].scorenumber—Score.
dims[].detailstring—Detail.
dims[].rawobject—Value as received from the source.
dims[].raw.longLiqnumberUSDBTC long liquidations in the last 4 hours. may be absent
dims[].raw.shortLiqnumberUSDBTC short liquidations in the last 4 hours. may be absent
dims[].raw.imbalancenumberratio(`shortLiq` − `longLiq`) ÷ (`shortLiq` + `longLiq`), −1 to 1; reported as 0 when there were no liquidations. may be absent
dims[].raw.ratenumber—Rate. may be absent
dims[].raw.oiChgnumber%Change of summed BTC USDT-contract open interest against the hourly snapshot at least 24 hours old; reported as 0 when no snapshot exists. may be absent
dims[].raw.priceChgnumber%Open-to-close change of the latest daily BTC candle (the current UTC day), not a rolling 24 hours. may be absent
dims[].raw.oiCurnumberUSDCurrent open interest summed over BTC USDT-margined contracts. may be absent
dims[].raw.longPctnumber%Average long percentage across the BTC long/short ratio rows; the code substitutes 55 when no row exists. may be absent
dims[].raw.pcnumberratioBTC option put open interest ÷ call open interest, both in USD; the code substitutes 1 when there is no call open interest. may be absent
dims[].raw.callOinumberUSDOpen interest of BTC call options. may be absent
dims[].raw.putOinumberUSDOpen interest of BTC put options. may be absent
dims[].raw.basisPctnumber%Average perpetual basis (perpetual vs spot price) across BTC contracts; reported as 0 when no row exists. may be absent
tsnumbermsTimestamp.

Generated 2026-11-11 23:01 UTC from 1 real responses.

Example response

/api/indices/btc-signal · Real response captured 2026-11-13 01:38:36 UTC. Long arrays and maps are shortened for display: dims had 6 items.

  • {
    • "success": true,
    • "totalScore": -29.8,
    • "label": {
      • "key": "bear",
      • "zh": "偏空"
      },
    • "dims": [
      • { … 6 },
      • { … 6 }
      ],
    • "ts": 1794533916317
    }

Details

Authentication
None. Public endpoint.
Rate limit
1200 requests per minute per IP
Server cache
2m
Edge micro-cache
10s
Update frequency
recomputed on request (2 min cache); inputs refresh every 1-10 min
Window
latest snapshot (liquidations: last 4 hours; open interest: 24h change)
Data sources
In-house composite score built from exchange liquidation, funding, open-interest, long/short, options and basis data collected directly from exchanges.
Exchange coverage
BTC only.
Units
score -100..+100 per dimension and overall, with a label
Method
Weighted sum of six dimension scores: liquidation imbalance (0.25) and funding rate, OI/price change, retail long share (contrarian), put/call OI ratio, basis (0.15 each); labels strong_bull >=40, bull >=15, bear <=-15, strong_bear <=-40.
Timestamps
Unix epoch milliseconds (UTC) unless the field description says otherwise
Response format
json
Stability
Stable

Live status

AvailableChecked 2026-11-13 01:38:36 UTCHTTP 200297 msSchema matchesNewest data point 0s old

Availability, last 30 days

100% of 380 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/indices/btc-signalAvailable
Parameters

No parameters.

Request URLhttps://www.coinboss.com/api/indices/btc-signal
Choose an endpoint and press “Send request”. The response, headers and timing will appear here.