Bitcoin
Indicator API
The CryptoQuant data endpoints powering this heatmap. All requests are GET against https://api.cryptoquant.com with a Bearer token and window=day&limit=10000. For full definitions, thresholds, and query links, see the CryptoQuant indicator sheet.
curl -H "Authorization: Bearer $CRYPTOQUANT_API_KEY" \
"https://api.cryptoquant.com/v2/community/bitcoin-mvrv-z-score?window=day&limit=10000"| Indicator | Endpoint | Fields | What it measures | How to use |
|---|---|---|---|---|
| MVRV Z-Score | GET /v2/community/bitcoin-mvrv-z-score | mvrv_ratio_zscore | MVRV ratio (market cap ÷ realized cap) standardized as a Z-score from its historical mean. | Crossing below the 365-day MA = bearish; deep negative = undervaluation near bottoms; crossing above the mean = early bull confirmation. |
| Trader Unrealized Profit (NUPL) | GET /v2/community/bitcoin-trader-unrealized-profit-margin | nupl_1m_3m | Percent gap between price and the 1–3 month holder cost basis (Trader Realized Price). | Contrarian at extremes: >40% = overheating / correction risk; deeply negative = capitulation may be near. |
| PnL Index | GET /v2/community/bitcoin-pnl-index | pnl_indexpnl_index_365day_MA | Composite valuation index built from the MVRV ratio, NUPL, and LTH/STH SOPR. | >1 = overvalued, < −1.38 = undervalued; the 365-day MA separates bull from bear regimes. |
| Bull/Bear Indicator | GET /v2/community/bitcoin-bull-bear-indicator | bull_bear_indicator | Momentum metric: the difference between the PnL Index and its 365-day moving average. | Above 0 = bull cycle; below 0 and below its 365-day MA = bear cycle. |
| Apparent Demand (1Y) | GET /v2/community/bitcoin-apparent-demand | apparent_demandapparent_demand_1y | Net change in BTC inactive for 1+ year, adjusted for block rewards (1-year rolling sum). | Rising = structural accumulation (bullish); negative or below its 365-day MA = distribution / bear. |
| NVM Ratio | GET /v2/community/bitcoin-metcalfe-price | active_addresses_squared_price_365ma | Market value vs Metcalfe fair value (active addresses²) — price relative to network activity. | Above fair value = overvalued vs usage; near or below the lower bands = fundamental support. |
| Realized Net P&L (1Y) | GET /v2/community/bitcoin-realized-profit-loss | yearly_realized_net_profit_btc | Net profit/loss realized by sellers, as a 1-year rolling sum in BTC. | High = late-cycle profit-taking (top risk); declining peaks = cycle top passed; negative = capitulation near bottoms. |
| Adjusted SOPR* | GET /v1/btc/market-indicator/sopr | a_sopr | Value of spent coins ÷ their value at acquisition, excluding coins <1h old. >1 = realized profit. | Sustained >1 = profit-taking / top risk; pullbacks to ~1 act as support in bull markets. |
| SOPR Ratio (LTH/STH)* | GET /v1/btc/market-indicator/sopr-ratio | sopr_ratio | Long-term holder SOPR ÷ short-term holder SOPR. | High = long-term holders selling into strength (late cycle); low = long-term holders holding. |
| Thermocap Multiple* | GET /v1/btc/market-data/capitalization | market_capthermo_cap | Market cap ÷ thermocap (cumulative miner revenue). | High = price stretched vs cumulative security spend → cycle tops; low = undervalued. |
| Analyst Consensus Indexunbias.fyi | GET unbias.fyi/api/v1/consensus?asset=BTC | raw_indexindex_30d_ma | Net analyst sentiment (−100 bearish … +100 bullish) aggregated from crypto analysts by unbias.fyi. | Read contrarian: crowded bullishness = top risk; capitulation in sentiment = opportunity. |
* v1 endpoint — definition is a standard on-chain definition, not documented in the linked sheet.
The Analyst Consensus Index is served by unbias.fyi — a separate API from CryptoQuant, with its own key and billing. Get an API key & pricing →