API Reference

Endpoint Explorer

Search the complete live catalog, including exact response fields, typed parameters, Pro tiers, chain coverage, and supported legacy paths.

Reset
1,368 endpoints, catalog 927ed17c749a5e0cPage 6 of 28
sp500-keltner-channelspro

S&P 500 price with a 20-session exponential moving average and envelopes placed two Wilder ATR values above and below it. The channels combine trend direction with range-based volatility.

Chart Datasets
GET /api/v1/charts/sp500-keltner-channelsTry in Playground

Response fields

price: number?keltnerUpper20: number?keltnerMiddle20: number?keltnerLower20: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
sp500RangestringS&P 500 analysis range.
sp500KeltnerPeriodintegerKeltner Channel period.
sp500KeltnerMultipliernumberKeltner Channel ATR multiplier.
sp500-macdpro

S&P 500 price with the standard 12/26-day MACD, 9-day signal line, and positive/negative histogram. The synchronized lower pane makes momentum acceleration and crossovers readable without compressing the price scale.

Chart Datasets
GET /api/v1/charts/sp500-macdTry in Playground

Response fields

price: number?macd: number?macdSignal: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
sp500RangestringS&P 500 analysis range.
sp500MacdFastintegerMACD fast period.
sp500MacdSlowintegerMACD slow period.
sp500MacdSignalintegerMACD signal period.
sp500-returnspro

S&P 500 price with rolling returns over 21, 63, 126, and 252 trading sessions, approximating one month, three months, six months, and one year. The shared zero line makes momentum agreement and horizon divergence easy to compare.

Chart Datasets
GET /api/v1/charts/sp500-returnsTry in Playground

Response fields

price: number?return21: number?return63: number?return126: number?return252: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
sp500RangestringS&P 500 analysis range.
sp500ReturnShortintegerShort return window.
sp500ReturnMediumintegerMedium return window.
sp500ReturnLongintegerLong return window.
sp500ReturnYearintegerAnnual return window.
sp500-rsipro

S&P 500 price with Wilder’s 14-day Relative Strength Index in a synchronized lower pane. The fixed 30 and 70 guides identify historically stretched momentum while preserving the price context above.

Chart Datasets
GET /api/v1/charts/sp500-rsiTry in Playground

Response fields

price: number?rsi14: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
sp500RangestringS&P 500 analysis range.
sp500RsiPeriodintegerRSI period.
sp500RsiUppernumberRSI upper threshold.
sp500RsiLowernumberRSI lower threshold.
sp500-sharpepro

S&P 500 price with a rolling 252-session annualized Sharpe ratio calculated from daily simple returns and a zero risk-free rate. It measures average return per unit of total return variability over the preceding trading year.

Chart Datasets
GET /api/v1/charts/sp500-sharpeTry in Playground

Response fields

price: number?sharpe252: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
sp500RangestringS&P 500 analysis range.
sp500SharpePeriodintegerSharpe ratio period.
sp500-sortinopro

S&P 500 price with a rolling 252-session annualized Sortino ratio calculated from daily simple returns and a zero target return. Unlike Sharpe, it penalizes downside deviation while leaving upside variability unpunished.

Chart Datasets
GET /api/v1/charts/sp500-sortinoTry in Playground

Response fields

price: number?sortino252: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
sp500RangestringS&P 500 analysis range.
sp500SortinoPeriodintegerSortino ratio period.
sp500-stochasticpro

S&P 500 price with a 14-session stochastic %K and its three-session %D signal line. The synchronized 0–100 pane compares each close with its recent high-low range, with 20 and 80 guides marking stretched positioning.

Chart Datasets
GET /api/v1/charts/sp500-stochasticTry in Playground

Response fields

price: number?stochasticK14: number?stochasticD3: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
sp500RangestringS&P 500 analysis range.
sp500StochasticPeriodintegerStochastic oscillator period.
sp500StochasticSignalintegerStochastic signal period.
sp500StochasticUppernumberStochastic upper threshold.
sp500StochasticLowernumberStochastic lower threshold.
sp500-supertrendpro

S&P 500 price with Supertrend calculated from a 10-session Wilder ATR and a three-times ATR multiplier. Separate green and red segments show the active volatility-adjusted trend level without connecting across regime changes.

Chart Datasets
GET /api/v1/charts/sp500-supertrendTry in Playground

Response fields

price: number?supertrendUp: number?supertrendDown: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
sp500RangestringS&P 500 analysis range.
sp500SupertrendPeriodintegerSupertrend ATR period.
sp500SupertrendMultipliernumberSupertrend ATR multiplier.
sp500-trend-regimepro

S&P 500 closing price with its 50-day and 200-day simple moving averages. The pair highlights medium- and long-term trend direction, including golden-cross and death-cross regimes, without treating a crossover as a standalone trading signal.

Chart Datasets
GET /api/v1/charts/sp500-trend-regimeTry in Playground

Response fields

price: number?sma50: number?sma200: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
sp500RangestringS&P 500 analysis range.
sp500TrendFastintegerFast trend period.
sp500TrendSlowintegerSlow trend period.
sp500-volatilitypro

S&P 500 price with 20-trading-day annualized realized volatility calculated from daily logarithmic returns using a sample standard deviation and a 252-session annualization factor.

Chart Datasets
GET /api/v1/charts/sp500-volatilityTry in Playground

Response fields

price: number?realizedVolatility20: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
sp500RangestringS&P 500 analysis range.
sp500VolatilityPeriodintegerVolatility lookback period.
sp500-williams-rpro

S&P 500 price with 14-session Williams %R, a bounded momentum oscillator measuring where the close sits inside its recent high-low range. The pane uses the standard 0 to -100 scale with -20 and -80 guides.

Chart Datasets
GET /api/v1/charts/sp500-williams-rTry in Playground

Response fields

price: number?williamsR14: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
sp500RangestringS&P 500 analysis range.
sp500WilliamsPeriodintegerWilliams %R period.
sp500WilliamsUppernumberWilliams %R upper threshold.
sp500WilliamsLowernumberWilliams %R lower threshold.
spending-rainbowpro

The cost basis distribution of the coins spent each day, drawn as 19 quantile bands. Where the cost-basis rainbow shows what the whole supply paid, this shows what the day's sellers paid, so you can see whether cheap long-held coins or recently-bought coins are the ones changing hands.

Chart Datasets
GET /api/v1/charts/spending-rainbowTry in Playground

Response fields

btc_price: number?date: string?formattedDate: string?price: number?q10: number?q10_sth: number?q10_sth_weighted: number?q10_weighted: number?q15: number?q15_sth: number?q15_sth_weighted: number?q15_weighted: number?q20: number?q20_sth: number?q20_sth_weighted: number?q20_weighted: number?q25: number?q25_sth: number?q25_sth_weighted: number?q25_weighted: number?q30: number?q30_sth: number?q30_sth_weighted: number?q30_weighted: number?q35: number?q35_sth: number?q35_sth_weighted: number?q35_weighted: number?q40: number?q40_sth: number?q40_sth_weighted: number?q40_weighted: number?q45: number?q45_sth: number?q45_sth_weighted: number?q45_weighted: number?q5: number?q5_sth: number?q5_sth_weighted: number?q5_weighted: number?q50: number?q50_sth: number?q50_sth_weighted: number?q50_weighted: number?q55: number?q55_sth: number?q55_sth_weighted: number?q55_weighted: number?q60: number?q60_sth: number?q60_sth_weighted: number?q60_weighted: number?q65: number?q65_sth: number?q65_sth_weighted: number?q65_weighted: number?q70: number?q70_sth: number?q70_sth_weighted: number?q70_weighted: number?q75: number?q75_sth: number?q75_sth_weighted: number?q75_weighted: number?q80: number?q80_sth: number?q80_sth_weighted: number?q80_weighted: number?q85: number?q85_sth: number?q85_sth_weighted: number?q85_weighted: number?q90: number?q90_lth_weighted: number?q90_sth: number?q90_sth_weighted: number?q90_weighted: number?q95: number?q95_lth_weighted: number?q95_sth: number?q95_sth_weighted: number?q95_weighted: number?timestamp: integer?ledger_index: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
spot-taker-volumepro

Aggressive market-order flow on SPOT exchanges: spot taker buy volume (real demand lifting the offer) versus spot taker sell volume (real supply hitting the bid). Unlike futures taker flow, spot buying reflects genuine accumulation rather than leveraged positioning, a cleaner read on conviction.

Chart Datasets
GET /api/v1/charts/spot-taker-volumeTry in Playground

Response fields

net_volume: number?buy_volume: number?sell_volume: number?btc_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
stablecoin-dominancepro

Each major stablecoin's share of total stablecoin supply over time. Tracks the USDT versus USDC market-share battle: USDT (Tether) has historically dominated at ~60-70%, with USDC (Circle) the regulated challenger. Shifts in dominance signal where liquidity is concentrating: offshore/retail (USDT) versus regulated/institutional (USDC). Toggle DAI and FDUSD to see the smaller issuers.

Chart Datasets
GET /api/v1/charts/stablecoin-dominanceTry in Playground

Response fields

usdt_dominance: number?usdc_dominance: number?usds_dominance: number?usde_dominance: number?pyusd_dominance: number?dai_dominance: number?fdusd_dominance: number?other_dominance: number?btc_dominance: number?btc_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
cryptocurrencystringCryptocurrency symbol or asset identifier.
timeframestringRequested chart timeframe.
stablecoin-net-changepro

The change in total stablecoin supply over the trailing 30 days (and 7 days), in USD. Positive net change is fresh stablecoin minting, i.e. liquidity / dry powder entering crypto (historically bullish for BTC); negative is net redemptions, i.e. capital leaving (bearish). The 30-day window smooths daily noise into a clean liquidity-momentum signal.

Chart Datasets
GET /api/v1/charts/stablecoin-net-changeTry in Playground

Response fields

net_change_30d: number?net_change_7d: number?total: number?btc_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
cryptocurrencystringCryptocurrency symbol or asset identifier.
timeframestringRequested chart timeframe.
netChangeWindowintegerStablecoin net-change window in days.
stablecoin-ssrpro

Glassnode's flagship Stablecoin Supply Ratio (SSR): Bitcoin market cap divided by the total supply of USD stablecoins, a measure of stablecoin buying power relative to the BTC market. A LOW SSR means stablecoins are large relative to BTC's market cap, i.e. plenty of dry powder ready to rotate into Bitcoin (historically bullish potential); a HIGH SSR means weaker fiat buying power. Plotted on a log scale against BTC price.

Chart Datasets
GET /api/v1/charts/stablecoin-ssrTry in Playground

Response fields

ssr: number?btc_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
cryptocurrencystringCryptocurrency symbol or asset identifier.
timeframestringRequested chart timeframe.
stablecoin-ssr-oscillatorpro

The Stablecoin Supply Ratio (SSR) Oscillator: the z-score of SSR versus its trailing 200-day mean and standard deviation. It normalizes SSR against its own recent trend so it oscillates around 0 regardless of the absolute level. Strongly negative (below -1.5) means SSR is unusually low, i.e. peak stablecoin buying power on the sidelines (historically bullish for BTC); strongly positive (above +1.5) means weak or exhausted buying power.

Chart Datasets
GET /api/v1/charts/stablecoin-ssr-oscillatorTry in Playground

Response fields

ssr_osc: number?ssr: number?btc_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
cryptocurrencystringCryptocurrency symbol or asset identifier.
timeframestringRequested chart timeframe.
stablecoin-supplypro

Total circulating supply (market cap) of the major USD stablecoins (USDT, USDC, DAI, FDUSD) over time. Because fiat stablecoins peg to ~$1, market cap is a faithful proxy for supply. Total stablecoin supply is the dry powder sitting in crypto: a rising total is fresh liquidity entering the ecosystem (historically bullish), while a shrinking supply signals capital leaving. Toggle individual coins to track USDT versus USDC market share.

Chart Datasets
GET /api/v1/charts/stablecoin-supplyTry in Playground

Response fields

total: number?USDT: number?USDC: number?USDS: number?USDe: number?PYUSD: number?DAI: number?FDUSD: number?btc_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
cryptocurrencystringCryptocurrency symbol or asset identifier.
timeframestringRequested chart timeframe.
stablecoin-supply-growthpro

The growth rate of total stablecoin supply, as a percentage rather than a dollar figure so it stays comparable across the whole history. The headline series is trailing year-over-year growth, with 90-day and 30-day annualized rates for a faster read. Expanding supply (positive growth) is fresh dry powder entering crypto, historically a risk-on signal; contracting supply marks deleveraging and capital leaving. Watch the year-over-year line crossing zero as a liquidity-regime change.

Chart Datasets
GET /api/v1/charts/stablecoin-supply-growthTry in Playground

Response fields

growth_yoy: number?growth_90d_ann: number?growth_30d_ann: number?btc_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
cryptocurrencystringCryptocurrency symbol or asset identifier.
timeframestringRequested chart timeframe.
supplyGrowthWindowintegerStablecoin supply-growth window in days.
stack-exchange-cryptopro

Exact daily Bitcoin and Ethereum Stack Exchange question counts from each site’s first available question, overlaid with Bitcoin price. Historical question rows come from the official Stack Exchange data dump, while the official API replaces the dump boundary day and supplies each later complete UTC day. Active-site dates with no questions are explicit zeroes.

Chart Datasets
GET /api/v1/charts/stack-exchange-cryptoTry in Playground

Response fields

stack_combined_questions_per_day: number?stack_bitcoin_questions_per_day: number?stack_ethereum_questions_per_day: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-cost-basispro

Analyze Bitcoin market temperature using Short-Term Holder Cost Basis (STH Cost Basis) - the average acquisition price of short-term holders (< 155 days) with statistical bands to identify local tops, bottoms, and overheated/cooled market conditions

Chart Datasets
GET /api/v1/charts/sth-cost-basisTry in Playground

Response fields

block_height: number?btc_price: number?cooled_band: number?cooled_half_band: number?date: string?formattedDate: string?heated_band: number?heated_half_band: number?over_heated_band: number?price: number?rolling_std: number?rolling_std_14d: number?rolling_std_30d: number?sth_cost_basis: number?sth_cost_basis_usd: number?sth_supply_btc: number?timestamp: integer?z_score: number?ledger_index: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-cost-basis-changepro

Track momentum shifts in Short-Term Holder Cost Basis Change (STH Cost Basis Change) across 7d, 30d, and 90d timeframes to identify trend changes, accumulation patterns, and market sentiment shifts with dynamic gradient visualization

Chart Datasets
GET /api/v1/charts/sth-cost-basis-changeTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?price: number?sth_cost_basis: number?sth_cost_basis_change: number?sth_cost_basis_change_30d: number?sth_cost_basis_change_7d: number?sth_cost_basis_change_90d: number?sth_cost_basis_change_negative: number?sth_cost_basis_change_positive: number?sth_cost_basis_usd: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?sth_cost_basis_change_30d_negative: number?sth_cost_basis_change_30d_positive: number?sth_cost_basis_change_7d_negative: number?sth_cost_basis_change_7d_positive: number?sth_cost_basis_change_90d_negative: number?sth_cost_basis_change_90d_positive: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-in-losspro

Track capitulation events through the percentage of Short-Term Holder supply currently at a loss. Spikes above 80% historically mark strong buy zones, while readings below 30% indicate healthy bull market conditions

Chart Datasets
GET /api/v1/charts/sth-in-lossTry in Playground

Response fields

avg_sth_cost_basis: number?block_height: number?btc_price: number?calculated_pct_sth_in_loss: number?calculated_pct_sth_in_profit: number?date: string?formattedDate: string?lth_btc_in_loss: number?lth_btc_in_profit: number?lth_net_position_change: number?lth_percentage: number?lth_sopr: number?lth_supply_btc: number?pct_circulating_lth_in_loss: number?pct_circulating_lth_in_profit: number?pct_circulating_sth_in_loss: number?pct_circulating_sth_in_profit: number?pct_lth_in_loss: number?pct_lth_in_profit: number?pct_sth_in_loss: number?pct_sth_in_profit: number?price: number?sth_btc_in_loss: number?sth_btc_in_profit: number?sth_in_profit_pct: number?sth_net_position_change: number?sth_percentage: number?sth_sopr: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?sth_in_profit: number?sth_cost_basis_usd: number?sth_mvrv: number?sth_supply: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-in-profitpro

Monitor market sentiment through the percentage of Short-Term Holder supply currently in profit. This metric identifies local tops when >85% are in profit and bottoms when <25% are in profit, providing crucial timing signals for market reversals

Chart Datasets
GET /api/v1/charts/sth-in-profitTry in Playground

Response fields

avg_sth_cost_basis: number?block_height: number?btc_price: number?calculated_pct_sth_in_loss: number?calculated_pct_sth_in_profit: number?date: string?formattedDate: string?lth_btc_in_loss: number?lth_btc_in_profit: number?lth_net_position_change: number?lth_percentage: number?lth_sopr: number?lth_supply_btc: number?pct_circulating_lth_in_loss: number?pct_circulating_lth_in_profit: number?pct_circulating_sth_in_loss: number?pct_circulating_sth_in_profit: number?pct_lth_in_loss: number?pct_lth_in_profit: number?pct_sth_in_loss: number?pct_sth_in_profit: number?price: number?sth_btc_in_loss: number?sth_btc_in_profit: number?sth_in_profit_pct: number?sth_net_position_change: number?sth_percentage: number?sth_sopr: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?sth_in_profit: number?sth_cost_basis_usd: number?sth_mvrv: number?sth_supply: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-lthpro

Track Bitcoin supply distribution between Short-Term Holders vs Long-Term Holders (STH vs LTH Supply) - short-term holders (<155 days), long-term holders (≥155 days), and exchange holdings to identify market cycle phases and accumulation patterns

Chart Datasets
GET /api/v1/charts/sth-lthTry in Playground

Response fields

btc_price: number?date: string?formattedDate: string?lth_btc_in_loss: number?lth_btc_in_profit: number?lth_cost_basis: number?lth_cost_basis_usd: number?lth_mvrv: number?lth_net_position_change: number?lth_percentage: number?lth_realized_cap: number?lth_realized_cap_usd: number?lth_realized_loss_usd: number?lth_realized_profit_usd: number?lth_sopr: number?lth_supply_btc: number?pct_circulating_lth_in_loss: number?pct_circulating_lth_in_profit: number?pct_circulating_sth_in_loss: number?pct_circulating_sth_in_profit: number?pct_lth_in_loss: number?pct_lth_in_profit: number?pct_sth_in_loss: number?pct_sth_in_profit: number?price: number?sth_btc_in_loss: number?sth_btc_in_profit: number?sth_cost_basis: number?sth_cost_basis_usd: number?sth_mvrv: number?sth_net_position_change: number?sth_percentage: number?sth_realized_cap: number?sth_realized_cap_usd: number?sth_realized_loss_usd: number?sth_realized_profit_usd: number?sth_sopr: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?sth_lth: number?block_height: number?lth_supply: number?sth_supply: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-lth-cddpro

Decomposes Coin Days Destroyed into Short-Term and Long-Term Holder components. LTH CDD spikes signal long-dormant coins moving, historically marking major tops or capitulation events. STH CDD spikes show short-term panic selling.

Chart Datasets
GET /api/v1/charts/sth-lth-cddTry in Playground

Response fields

block_height: number?btc_price: number?cdd: number?date: string?formattedDate: string?lth_cdd: number?sth_cdd: number?timestamp: integer?total_cdd: number?ledger_index: number?price: number?sth_lth_cdd: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-lth-median-cost-basis-ratiopro

Median-based companion to the STH:LTH Realized Price Ratio. Divides STH median cost basis by LTH median cost basis, ratio > 1 means fresh buyers paid more than veterans (bull / distribution regime), < 1 means fresh buyers are getting better prices than long-term holders (accumulation regime). Using medians makes the signal robust to whale and ancient-supply distortion that drags the mean version.

Chart Datasets
GET /api/v1/charts/sth-lth-median-cost-basis-ratioTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?lth_cost_basis: number?lth_median_cost_basis: number?price: number?sth_cost_basis: number?sth_lth_median_cost_basis_ratio: number?sth_lth_median_ratio: number?sth_median_cost_basis: number?timestamp: integer?ledger_index: number?one_line: number?ratio: number?sth_lth_ratio: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-lth-pvrpro

Compares normalized profit levels between Short-Term and Long-Term Holders by dividing unrealized profits by historical volatility. Identifies which cohort is experiencing more extreme conditions relative to their typical behavior, revealing distribution and capitulation phases.

Chart Datasets
GET /api/v1/charts/sth-lth-pvrTry in Playground

Response fields

btc_price: number?date: string?formattedDate: string?lth_btc_in_loss: number?lth_btc_in_profit: number?lth_cost_basis: number?lth_cost_basis_usd: number?lth_mvrv: number?lth_net_position_change: number?lth_percentage: number?lth_realized_cap: number?lth_realized_cap_usd: number?lth_realized_loss_usd: number?lth_realized_profit_usd: number?lth_sopr: number?lth_supply_btc: number?pct_circulating_lth_in_loss: number?pct_circulating_lth_in_profit: number?pct_circulating_sth_in_loss: number?pct_circulating_sth_in_profit: number?pct_lth_in_loss: number?pct_lth_in_profit: number?pct_sth_in_loss: number?pct_sth_in_profit: number?price: number?sth_btc_in_loss: number?sth_btc_in_profit: number?sth_cost_basis: number?sth_cost_basis_usd: number?sth_mvrv: number?sth_net_position_change: number?sth_percentage: number?sth_realized_cap: number?sth_realized_cap_usd: number?sth_realized_loss_usd: number?sth_realized_profit_usd: number?sth_sopr: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?sth_lth: number?block_height: number?lth_supply: number?sth_supply: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-lth-realized-price-ratiopro

Compares the average acquisition price of Short-Term Holders to Long-Term Holders, revealing cohort positioning and market dynamics. When STH cost basis exceeds LTH cost basis, it indicates recent buyers paid premium prices, often signaling potential distribution phases.

Chart Datasets
GET /api/v1/charts/sth-lth-realized-price-ratioTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?lth_cost_basis: number?lth_supply_btc: number?price: number?sth_cost_basis: number?sth_lth_ratio: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?lth_supply: number?sth_supply: number?one_line: number?ratio: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-median-mvrvpro

MVRV ratio using the median STH cost basis instead of the mean. Median is robust to whale-weighted outliers, surfacing the typical fresh-money holder's profitability. Derived client-side from the STH Cost Basis Distribution heatmap buckets.

Chart Datasets
GET /api/v1/charts/sth-median-mvrvTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?price: number?sth_median_cost_basis: number?sth_median_mvrv: number?timestamp: integer?ledger_index: number?breakeven_line: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-mvrvpro

Monitor Short-Term Holder MVRV, the market-value-to-realized-value ratio for coins held under 155 days, showing new buyer profit or loss as a direct multiple with color-graded zones.

Chart Datasets
GET /api/v1/charts/sth-mvrvTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?price: number?sth_cost_basis: number?sth_cost_basis_usd: number?sth_mvrv: number?sth_mvrv_z_score: number?sth_realized_price: number?sth_supply: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?breakeven_line: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-mvrv-z-scorepro

Monitor Short-Term Holder MVRV Z-Score - statistical normalized version showing standard deviations from historical mean to identify overvaluation/undervaluation periods and potential market turning points

Chart Datasets
GET /api/v1/charts/sth-mvrv-z-scoreTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?price: number?sth_cost_basis_usd: number?sth_mvrv: number?sth_mvrv_smoothed: number?sth_mvrv_z_score: number?sth_realized_price: number?sth_supply: number?sth_supply_btc: number?timestamp: integer?sth_mvrv_z_score_smoothed: number?ledger_index: number?market_cap_usd: number?realized_cap_usd: number?sth_mvrv_ratio: number?sth_mvrv_zscore: number?z_score: number?zero_line: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-net-positionpro

Monitor monthly position changes of Short-Term Holders, showing when traders accumulate (positive flows) and distribute (negative flows). Green bars indicate new money entering during rallies, while red bars show profit-taking or panic selling during corrections

Chart Datasets
GET /api/v1/charts/sth-net-positionTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?price: number?sth_accumulation: number?sth_btc_in_loss: number?sth_btc_in_profit: number?sth_distribution: number?sth_net_position_change: number?sth_percentage: number?sth_position_change_negative: number?sth_position_change_positive: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?sth_net_position: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-nuplpro

Short-Term Holder Net Unrealized Profit/Loss (STH-NUPL) tracks the profit/loss status of coins held for less than 155 days, providing insights into newer market participants sentiment and behavior

Chart Datasets
GET /api/v1/charts/sth-nuplTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?market_phase: number?price: number?sth_cost_basis_usd: number?sth_market_cap: number?sth_nupl: number?sth_realized_cap: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?sth_nupl_momentum_negative: number?sth_nupl_momentum_positive: number?sth_nupl_sma: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-nupl-momentumpro

Analyze Short-Term Holder NUPL momentum by comparing current unrealized profit/loss against moving average, with binary oscillator to identify shifts in short-term holder sentiment and potential trend reversals

Chart Datasets
GET /api/v1/charts/sth-nupl-momentumTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?market_cap_usd: number?market_phase: number?nupl: number?price: number?realized_cap_usd: number?sth_cost_basis_usd: number?sth_nupl: number?sth_nupl_sma_30: number?sth_nupl_sma_365: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?sth_nupl_momentum: number?momentum: number?sth_nupl_momentum_30d: number?sth_nupl_momentum_90d: number?sth_nupl_momentum_negative: number?sth_nupl_momentum_positive: number?sth_nupl_sma: number?z_score: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-pl-price-flowpro

Track the net flow of short-term holder cumulative P/L price changes denominated in BTC. Visualizes the rate and magnitude of STH cost basis shifts using jet colormap styling with percentile-based thresholds to reveal profit-taking and capitulation patterns.

Chart Datasets
GET /api/v1/charts/sth-pl-price-flowTry in Playground

Response fields

age_bands: number?band_0_loss: number?band_0_loss_btc: number?band_0_loss_usd: number?band_0_net: number?band_0_net_btc: number?band_0_net_usd: number?band_0_profit: number?band_0_profit_btc: number?band_0_profit_usd: number?band_1_loss: number?band_1_loss_btc: number?band_1_loss_usd: number?band_1_net: number?band_1_net_btc: number?band_1_net_usd: number?band_1_profit: number?band_1_profit_btc: number?band_1_profit_usd: number?band_10_loss: number?band_10_loss_btc: number?band_10_loss_usd: number?band_10_net: number?band_10_net_btc: number?band_10_net_usd: number?band_10_profit: number?band_10_profit_btc: number?band_10_profit_usd: number?band_11_loss: number?band_11_loss_btc: number?band_11_loss_usd: number?band_11_net: number?band_11_net_btc: number?band_11_net_usd: number?band_11_profit: number?band_11_profit_btc: number?band_11_profit_usd: number?band_2_loss: number?band_2_loss_btc: number?band_2_loss_usd: number?band_2_net: number?band_2_net_btc: number?band_2_net_usd: number?band_2_profit: number?band_2_profit_btc: number?band_2_profit_usd: number?band_3_loss: number?band_3_loss_btc: number?band_3_loss_usd: number?band_3_net: number?band_3_net_btc: number?band_3_net_usd: number?band_3_profit: number?band_3_profit_btc: number?band_3_profit_usd: number?band_4_loss: number?band_4_loss_btc: number?band_4_loss_usd: number?band_4_net: number?band_4_net_btc: number?band_4_net_usd: number?band_4_profit: number?band_4_profit_btc: number?band_4_profit_usd: number?band_5_loss: number?band_5_loss_btc: number?band_5_loss_usd: number?band_5_net: number?band_5_net_btc: number?band_5_net_usd: number?band_5_profit: number?band_5_profit_btc: number?band_5_profit_usd: number?band_6_loss: number?band_6_loss_btc: number?band_6_loss_usd: number?band_6_net: number?band_6_net_btc: number?band_6_net_usd: number?band_6_profit: number?band_6_profit_btc: number?band_6_profit_usd: number?band_7_loss: number?band_7_loss_btc: number?band_7_loss_usd: number?band_7_net: number?band_7_net_btc: number?band_7_net_usd: number?band_7_profit: number?band_7_profit_btc: number?band_7_profit_usd: number?band_8_loss: number?band_8_loss_btc: number?band_8_loss_usd: number?band_8_net: number?band_8_net_btc: number?band_8_net_usd: number?band_8_profit: number?band_8_profit_btc: number?band_8_profit_usd: number?band_9_loss: number?band_9_loss_btc: number?band_9_loss_usd: number?band_9_net: number?band_9_net_btc: number?band_9_net_usd: number?band_9_profit: number?band_9_profit_btc: number?band_9_profit_usd: number?block_height: number?btc_price: number?date: string?formattedDate: string?rpl_d1_1w: number?rpl_lt_1d: number?rpl_m1_3m: number?rpl_m3_6m: number?rpl_m6_12m: number?rpl_w1_1m: number?rpl_y1_2y: number?rpl_y10_plus: number?rpl_y2_3y: number?rpl_y3_5y: number?rpl_y5_7y: number?rpl_y7_10y: number?timestamp: integer?ledger_index: number?lth_realized_loss_btc: number?lth_realized_loss_usd: number?lth_realized_profit_btc: number?lth_realized_profit_usd: number?price: number?realized_pl_10y_plus: number?realized_pl_1d_1w: number?realized_pl_1m_3m: number?realized_pl_1w_1m: number?realized_pl_1y_2y: number?realized_pl_24h: number?realized_pl_2y_3y: number?realized_pl_3m_6m: number?realized_pl_3y_5y: number?realized_pl_5y_7y: number?realized_pl_6m_12m: number?realized_pl_7y_10y: number?sth_realized_loss_btc: number?sth_realized_loss_usd: number?sth_realized_profit_btc: number?sth_realized_profit_usd: number?rpl_y5_plus: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-profit-volatility-ratiopro

Track Short-Term Holder Profit-to-Volatility Ratio - measures STH unrealized profits/losses normalized by market cap volatility to identify speculative extremes and capitulation phases among new market entrants

Chart Datasets
GET /api/v1/charts/sth-profit-volatility-ratioTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?price: number?profit_volatility_ratio: number?sth_cost_basis: number?sth_cost_basis_usd: number?sth_mvrv: number?sth_profit_volatility_ratio: number?sth_pvr: number?sth_realized_price: number?sth_supply: number?sth_supply_btc: number?timestamp: integer?zero_line: number?daily_realized_loss_btc: number?daily_realized_loss_usd: number?daily_realized_profit_btc: number?daily_realized_profit_usd: number?lth_btc_in_loss: number?lth_btc_in_profit: number?lth_cost_basis: number?lth_cost_basis_usd: number?lth_mvrv: number?lth_net_position_change: number?lth_percentage: number?lth_realized_cap: number?lth_realized_cap_usd: number?lth_realized_loss_usd: number?lth_realized_price: number?lth_realized_profit_usd: number?lth_rpl_ratio: number?lth_sopr: number?lth_supply: number?lth_supply_btc: number?net_rpl: number?pct_circulating_lth_in_loss: number?pct_circulating_lth_in_profit: number?pct_circulating_sth_in_loss: number?pct_circulating_sth_in_profit: number?pct_lth_in_loss: number?pct_lth_in_profit: number?pct_sth_in_loss: number?pct_sth_in_profit: number?sth_btc_in_loss: number?sth_btc_in_profit: number?sth_net_position_change: number?sth_percentage: number?sth_realized_cap: number?sth_realized_cap_usd: number?sth_realized_loss_usd: number?sth_realized_profit_usd: number?sth_rpl_ratio: number?sth_sopr: number?price_volatility_30d: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-pvr-momentumpro

Analyze Short-Term Holder PVR momentum by comparing current STH Profit-to-Volatility Ratio against its moving average to identify accelerating profit conditions or deepening capitulation among new market participants

Chart Datasets
GET /api/v1/charts/sth-pvr-momentumTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?price: number?profit_volatility_ratio: number?sth_cost_basis: number?sth_cost_basis_usd: number?sth_mvrv: number?sth_profit_volatility_ratio: number?sth_pvr: number?sth_realized_price: number?sth_supply: number?sth_supply_btc: number?timestamp: integer?zero_line: number?daily_realized_loss_btc: number?daily_realized_loss_usd: number?daily_realized_profit_btc: number?daily_realized_profit_usd: number?lth_btc_in_loss: number?lth_btc_in_profit: number?lth_cost_basis: number?lth_cost_basis_usd: number?lth_mvrv: number?lth_net_position_change: number?lth_percentage: number?lth_realized_cap: number?lth_realized_cap_usd: number?lth_realized_loss_usd: number?lth_realized_price: number?lth_realized_profit_usd: number?lth_rpl_ratio: number?lth_sopr: number?lth_supply: number?lth_supply_btc: number?net_rpl: number?pct_circulating_lth_in_loss: number?pct_circulating_lth_in_profit: number?pct_circulating_sth_in_loss: number?pct_circulating_sth_in_profit: number?pct_lth_in_loss: number?pct_lth_in_profit: number?pct_sth_in_loss: number?pct_sth_in_profit: number?sth_btc_in_loss: number?sth_btc_in_profit: number?sth_net_position_change: number?sth_percentage: number?sth_realized_cap: number?sth_realized_cap_usd: number?sth_realized_loss_usd: number?sth_realized_profit_usd: number?sth_rpl_ratio: number?sth_sopr: number?price_volatility_30d: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-realized-pl-ratiopro

The STH Realized P/L Ratio shows the ratio between short-term holder realized profit and loss (0-155 days). More reactive to immediate sentiment shifts and provides insight into short-term market dynamics and trader behavior patterns.

Chart Datasets
GET /api/v1/charts/sth-realized-pl-ratioTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?price: number?sth_pl_ratio: number?sth_realized_loss: number?sth_realized_loss_usd: number?sth_realized_profit: number?sth_realized_profit_usd: number?timestamp: integer?ledger_index: number?sth_realized_loss_btc: number?sth_realized_pl_ratio: number?sth_realized_profit_btc: number?ratio: number?sth_cost_basis_usd: number?sth_realized_pl_ratio_btc: number?sth_realized_pl_ratio_sma_30: number?sth_realized_pl_ratio_sma_90: number?sth_realized_pl_ratio_usd: number?sth_realized_price: number?sth_supply: number?sth_supply_btc: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-realized-pl-ratio-momentumpro

Track short-term holder profit/loss ratio momentum by comparing current STH profit-taking behavior against its moving average. Features binary oscillator and momentum bars to identify behavioral shifts and optimal entry/exit points.

Chart Datasets
GET /api/v1/charts/sth-realized-pl-ratio-momentumTry in Playground

Response fields

age_bands: number?band_0_loss_btc: number?band_0_profit_btc: number?band_1_loss_btc: number?band_1_profit_btc: number?band_2_loss_btc: number?band_2_profit_btc: number?band_3_loss_btc: number?band_3_profit_btc: number?band_4_loss_btc: number?band_4_profit_btc: number?block_height: number?btc_price: number?date: string?formattedDate: string?price: number?sth_pl_ratio: number?sth_realized_loss_usd: number?sth_realized_pl: number?sth_realized_pl_ratio: number?sth_realized_pl_ratio_sma_30: number?sth_realized_pl_ratio_sma_90: number?sth_realized_profit_usd: number?sth_rpl_momentum: number?sth_rpl_sma_30: number?sth_rpl_sma_365: number?timestamp: integer?ledger_index: number?sth_realized_pl_ratio_momentum: number?realized_pl_ratio: number?realized_pl_ratio_btc: number?rpl_ratio_momentum: number?rpl_ratio_momentum_btc: number?rpl_ratio_sma_30: number?rpl_ratio_sma_30_btc: number?rpl_ratio_sma_365: number?rpl_ratio_sma_365_btc: number?momentum: number?realized_pl_ratio_usd: number?sth_momentum_negative_area: number?sth_momentum_positive_area: number?sth_pl_ratio_btc: number?sth_pl_ratio_sma: number?sth_realized_pl_ratio_btc: number?sth_realized_pl_ratio_usd: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-soprpro

Track profit/loss realization behavior of short-term holders (<155 days). Short Term Holder SOPR (STH-SOPR) measures the profit ratio when coins held for less than 155 days are moved, providing insights into new participant behavior and short-term market sentiment.

Chart Datasets
GET /api/v1/charts/sth-soprTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?price: number?sopr: number?sth_percentage: number?sth_sopr: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?adjusted_sopr: number?spent_outputs: number?sth_sopr_momentum_negative: number?sth_sopr_momentum_positive: number?sth_sopr_sma: number?sth_sopr_sma_90: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-sopr-momentumpro

Analyze Bitcoin Short-Term Holder SOPR momentum by comparing current profit/loss ratios against moving average, with binary oscillator to identify shifts in new participant behavior and potential market reversal points

Chart Datasets
GET /api/v1/charts/sth-sopr-momentumTry in Playground

Response fields

adjusted_sopr: number?block_height: number?btc_price: number?date: string?formattedDate: string?price: number?sopr: number?spent_outputs: number?spent_value_usd: number?sth_sopr: number?sth_sopr_sma_30: number?sth_sopr_sma_90: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?sth_sopr_momentum: number?momentum: number?sth_sopr_momentum_30d: number?sth_sopr_momentum_90d: number?sth_sopr_momentum_negative: number?sth_sopr_momentum_positive: number?sth_sopr_sma: number?sth_sopr_sma_365: number?z_score: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-stresspro

Identify Short-Term Holder stress periods by analyzing realized price deviations across STH cohorts (1d-6m). Red vertical bars highlight when the STH composite falls below -1 standard deviation, indicating STH capitulation and potential buying opportunities. Features color-coded dots on price showing stress intensity.

Chart Datasets
GET /api/v1/charts/sth-stressTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?price: number?realized_price_1d_1w: number?realized_price_1m_3m: number?realized_price_1w_1m: number?realized_price_3m_6m: number?sth_composite: number?sth_composite_zscore: number?sth_cost_basis: number?sth_realized_price: number?timestamp: integer?ledger_index: number?sth_stress: number?sth_stress_normalized: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
sth-wealth-concentrationpro

Measure the percentage of total realized capital held by Short-Term Holders (STH). This metric tracks new participant activity and market structure, with high values (>50%) indicating increased distribution and low values (<25%) suggesting strong LTH dominance

Chart Datasets
GET /api/v1/charts/sth-wealth-concentrationTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?price: number?realized_cap: number?realized_cap_usd: number?sth_concentration_change_negative: number?sth_concentration_change_positive: number?sth_cost_basis_usd: number?sth_supply_btc: number?sth_wealth_concentration: number?sth_wealth_concentration_change: number?sth_wealth_concentration_pct: number?timestamp: integer?ledger_index: number?sth_realized_cap: number?top10_pct_share: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
stock-to-flowpro

PlanB's scarcity model: existing supply divided by annual issuance, regressed against price on a log-log basis. Shows a live data-fitted model line and the famous original 2019 PlanB coefficients, with price dots colored by days until the next halving.

Chart Datasets
GET /api/v1/charts/stock-to-flowTry in Playground

Response fields

btc_price: number?date: string?days_to_halving: number?formattedDate: string?model_price: number?model_price_planb: number?model_ratio: number?price: number?stock_to_flow: number?timestamp: integer?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
supply-inflationpro

Annualized issuance relative to circulating supply and to economically active supply, showing the halving schedule alongside vaulting behavior.

Chart Datasets
GET /api/v1/charts/supply-inflationTry in Playground

Response fields

cointime_adjusted_inflation_rate: number?date: string?formattedDate: string?inflation_rate: number?price: number?timestamp: integer?block_height: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
supply-last-active-1yr-pluspro

Analyze Bitcoin market cycles through the supply of coins last active 1 year or more. During bull markets, this supply depletes as LTHs distribute; during bear markets, it increases as new conviction holders accumulate. The oscillator shows daily net position change - positive indicates accumulation, negative indicates distribution.

Chart Datasets
GET /api/v1/charts/supply-last-active-1yr-plusTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?hodl_wave_realized_cap_pct_band_0: number?hodl_wave_realized_cap_pct_band_1: number?hodl_wave_realized_cap_pct_band_10: number?hodl_wave_realized_cap_pct_band_11: number?hodl_wave_realized_cap_pct_band_2: number?hodl_wave_realized_cap_pct_band_3: number?hodl_wave_realized_cap_pct_band_4: number?hodl_wave_realized_cap_pct_band_5: number?hodl_wave_realized_cap_pct_band_6: number?hodl_wave_realized_cap_pct_band_7: number?hodl_wave_realized_cap_pct_band_8: number?hodl_wave_realized_cap_pct_band_9: number?hodl_wave_supply_pct_band_0: number?hodl_wave_supply_pct_band_1: number?hodl_wave_supply_pct_band_10: number?hodl_wave_supply_pct_band_11: number?hodl_wave_supply_pct_band_2: number?hodl_wave_supply_pct_band_3: number?hodl_wave_supply_pct_band_4: number?hodl_wave_supply_pct_band_5: number?hodl_wave_supply_pct_band_6: number?hodl_wave_supply_pct_band_7: number?hodl_wave_supply_pct_band_8: number?hodl_wave_supply_pct_band_9: number?price: number?supply_1yr_plus: number?supply_1yr_plus_btc: number?supply_1yr_plus_change: number?supply_1yr_plus_change_negative: number?supply_1yr_plus_change_positive: number?supply_1yr_plus_pct: number?supply_less_1yr: number?supply_less_1yr_pct: number?timestamp: integer?ledger_index: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
supply-last-active-1yr-plus-pctpro

The percentage of circulating supply that has not been moved in over one year. Rising values indicate accumulation by long-term holders; falling values indicate distribution near cycle tops.

Chart Datasets
GET /api/v1/charts/supply-last-active-1yr-plus-pctTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?hodl_wave_realized_cap_pct_band_0: number?hodl_wave_realized_cap_pct_band_1: number?hodl_wave_realized_cap_pct_band_10: number?hodl_wave_realized_cap_pct_band_11: number?hodl_wave_realized_cap_pct_band_2: number?hodl_wave_realized_cap_pct_band_3: number?hodl_wave_realized_cap_pct_band_4: number?hodl_wave_realized_cap_pct_band_5: number?hodl_wave_realized_cap_pct_band_6: number?hodl_wave_realized_cap_pct_band_7: number?hodl_wave_realized_cap_pct_band_8: number?hodl_wave_realized_cap_pct_band_9: number?hodl_wave_supply_pct_band_0: number?hodl_wave_supply_pct_band_1: number?hodl_wave_supply_pct_band_10: number?hodl_wave_supply_pct_band_11: number?hodl_wave_supply_pct_band_2: number?hodl_wave_supply_pct_band_3: number?hodl_wave_supply_pct_band_4: number?hodl_wave_supply_pct_band_5: number?hodl_wave_supply_pct_band_6: number?hodl_wave_supply_pct_band_7: number?hodl_wave_supply_pct_band_8: number?hodl_wave_supply_pct_band_9: number?price: number?supply_1yr_plus: number?supply_1yr_plus_btc: number?supply_1yr_plus_change: number?supply_1yr_plus_change_negative: number?supply_1yr_plus_change_positive: number?supply_1yr_plus_pct: number?supply_less_1yr: number?supply_less_1yr_pct: number?timestamp: integer?ledger_index: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
supply-velocitypro

Annualized transfer velocity against total supply and the economically active cointime-adjusted supply.

Chart Datasets
GET /api/v1/charts/supply-velocityTry in Playground

Response fields

cointime_adjusted_velocity_btc: number?date: string?formattedDate: string?price: number?timestamp: integer?velocity_btc: number?block_height: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
taker-volumepro

Aggregated aggressive market-order flow: taker buy volume (urgent buyers lifting the offer) versus taker sell volume (urgent sellers hitting the bid). The net balance reveals whether a price move is backed by real aggressive demand or supply.

Chart Datasets
GET /api/v1/charts/taker-volumeTry in Playground

Response fields

net_volume: number?buy_volume: number?sell_volume: number?btc_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.