GETAvailable
Bottom radar
Bottom radar (multi-indicator bottoming signals)
GET
/api/indices/bottom-radarRequest
This endpoint takes no parameters.
Example request
curl -s "https://www.coinboss.com/api/indices/bottom-radar"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.
| Field | Type | Unit | Description |
|---|---|---|---|
| success | boolean | — | true when the request succeeded. On failure the body is `{ success: false, code, error, request_id }`. |
| updated | number | ms | When the data was last updated. |
| lit | number | count | Number of lamps in `lamps` that are on. |
| total | number | — | Total. |
| level | string | — | Level. |
| levelZh | string | — | Chinese display text for `level`. |
| lamps | array | — | The bottom-structure conditions for BTC ("lamps"), such as `spring`, `crowd` and `ignite`. |
| lamps[] | object | — | One lamp: `key`, `zh` (Chinese name), `lit`, `detail` (Chinese text) and `raw` (the inputs; null when their data source failed). |
| lamps[].key | string | — | Key. |
| lamps[].zh | string | — | Text in Chinese. |
| lamps[].lit | boolean | — | true when the condition of this lamp is met. |
| lamps[].detail | string | — | Detail. |
| lamps[].raw | object | — | Value as received from the source. |
| lamps[].raw.realVol | number | % | Latest BTC realized volatility from the site's volatility series; the `spring` lamp needs it below 1. may be absent |
| lamps[].raw.iv30 | number | % | Latest BTC 30-day at-the-money implied volatility, in volatility points. may be absent |
| lamps[].raw.ivRank | number | fraction | Share of the last 60 daily `iv30` readings that are below the current one (0–1); the `spring` lamp needs 0.25 or less. may be absent |
| lamps[].raw.washDays | number | days | Days within the last 7 whose liquidation imbalance score is −60 or lower (longs flushed); the lamp needs 5 or more. may be absent |
| lamps[].raw.scores | array | — | Liquidation imbalance scores of the last 7 days. may be absent |
| lamps[].raw.scores[] | object | — | One day: `d` (date) and `s` (score). |
| lamps[].raw.scores[].d | string | — | Calendar date (UTC). |
| lamps[].raw.scores[].s | number | — | (short liquidations − long liquidations) ÷ total × 100 for BTC that day, −100 to 100; days under 1M USD in total are skipped. |
| lamps[].raw.longPct | number | % | Average long-account percentage across the BTC long/short ratio rows; the `crowd` lamp needs more than 63. may be absent |
| lamps[].raw.todayMax | number | fraction | Highest hourly average BTC funding rate so far in the current UTC day, as a fraction; the `crowd` lamp needs it above `ydayMax`. may be absent |
| lamps[].raw.ydayMax | number | fraction | Highest hourly average BTC funding rate of the previous UTC day, as a fraction. may be absent |
| lamps[].raw.tail | array | — | The two most recent BTC spot ETF flow days. may be absent |
| lamps[].raw.tail[] | object | — | One day: `d` (date) and `flow`. |
| lamps[].raw.tail[].d | string | — | Calendar date (UTC). |
| lamps[].raw.tail[].flow | number | USD million | Net flow of BTC spot ETFs on that day in millions of USD; the `ignite` lamp needs more than 150 on both days. |
| lamps[].raw.slopePerDay | number | percentage points | Linear slope of the share of supply held by the top 100 BTC addresses over its last 20 daily points, in percentage points per day. may be absent |
| lamps[].raw.latest | number | — | Most recent record. may be absent |
| lamps[].raw.value | number | — | Value. may be absent |
| confirmer | object | — | Real-time confirmation check shown beside the lamps: `lit`, `detail` (Chinese text) and `raw`. |
| confirmer.lit | boolean | — | true when `priceChg24` is above 1.5 and `negHours24` is 4 or more. |
| confirmer.detail | string | — | Detail. |
| confirmer.raw | object | — | Value as received from the source. |
| confirmer.raw.priceChg24 | number | % | Open-to-close change of the latest daily BTC candle (the current UTC day), not a rolling 24 hours. |
| confirmer.raw.negHours24 | number | count | Number of hourly BTC funding points below zero in the last 24 hours. |
| caseRef | string | — | Id of the reference case study this radar is modelled on (`case-0819`). |
Generated 2026-11-11 23:01 UTC from 1 real responses.
Example response
/api/indices/bottom-radar · Real response captured 2026-11-13 01:38:36 UTC. Long arrays and maps are shortened for display: lamps had 6 items; lamps[].raw.scores had 7 items.
- "success"true
- "updated"1794533614400
- "lit"3
- "total"6
- "level""quiet"
- "levelZh""⚪ 平静"
- "lamps"
- "confirmer"
- "lit"false
- "detail""24h -0.45% · 负费率 0h/24h (需 >1.5% 且 ≥4h)"
- "raw"
- "caseRef""case-0819"
Details
- Authentication
- None. Public endpoint.
- Rate limit
- 1200 requests per minute per IP
- Server cache
- 10m
- Edge micro-cache
- 10s
- Update frequency
- recomputed on request (10 min cache)
- Window
- latest snapshot
- Data sources
- In-house six-lamp bottoming checklist computed from self-collected exchange data plus public ETF-flow, holder-concentration and sentiment series.
- Exchange coverage
- BTC only.
- Units
- boolean lamps with their underlying values; level = ignition / watch / quiet
- Method
- Six lamps: low realized range + low 30d ATM IV, repeated long-liquidation washouts, crowded retail longs with rising funding, two consecutive BTC ETF daily inflows above 150M USD, rising 20-day slope of top-100 holder share, Fear & Greed below 35; ignition at >=5 lamps, watch at >=4.
- 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 2000 msSchema matchesNewest data point 5m 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 →
| Code | HTTP | Meaning | What to do |
|---|---|---|---|
| INVALID_PARAM | 400 | A 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. |
| UNAUTHORIZED | 401 | The `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. |
| FORBIDDEN | 403 | The route is not part of the public API (internal or account-only). | Do not retry. |
| NOT_FOUND | 404 | Unknown route, or the requested coin / exchange / fund does not exist. | Do not retry; check the path and identifiers against the catalog. |
| RATE_LIMITED | 429 | More requests than the per-minute limit. `Retry-After` gives the seconds to wait. | Wait for `Retry-After`, then retry with backoff. |
| INTERNAL | 500 | Unexpected 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_FAILED | 503 | The 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. |
| UNAVAILABLE | 501 / 503 | The 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_FAILED | 200 | Some 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/bottom-radarAvailableParameters
No parameters.
Request URL
https://www.coinboss.com/api/indices/bottom-radarChoose an endpoint and press “Send request”. The response, headers and timing will appear here.
More in this category
- AHR999 accumulation indicator series /api/indicators/ahr999
- Bitcoin bubble index /api/indicators/bitcoin-bubble
- Full BTC daily close history /api/indicators/btc-history
- Bull-market peak signal checklist /api/indicators/bull-peak-signals
- CBBI bull-run composite index /api/indicators/cbbi
- Derivatives risk index (CoinBoss method) /api/indicators/cdri
- Derivatives composite index (CoinBoss method) /api/indicators/cgdi
- BTC correlation with gold / S&P 500 /api/indicators/correlation
- Correlation matrix of major assets /api/indicators/correlation-matrix
- Crypto legal status by country /api/indicators/crypto-legality
- Cycle-top valuation bands /api/indicators/cycle-caps
- BTC price doubling-time series /api/indicators/doubling-time
- Google search-interest trend /api/indicators/google-trends
- Macro series /api/indicators/macro-series
- Price-forecast model output /api/indicators/price-forecast
- Drawdown-from-ATH series /api/indicators/price-no-turning-back
- Reddit Bitcoin subreddit subscriber count /api/indicators/reddit-subs
- Wikipedia page views /api/indicators/wikipedia-pageviews
- Altcoin season index (CoinBoss method) /api/indices/altseason
- Bottom radar /api/indices/bottom-radar
- Bottom-radar historical case study /api/indices/bottom-radar/case-0819
- BTC multi-factor signal dashboard /api/indices/btc-signal
- Backtest of the BTC signal /api/indices/btc-signal/backtest
- Fear & Greed index /api/indices/fear-greed
- Fear & Greed index (current and history) /api/market/fear-greed
- Signal backtest results /api/signal/backtest/:coin
- Signal monitor dashboard /api/signal/monitor/:coin