Discovery and markets API

What do Bitcoin's on-chain holder and address metrics say?

Active and new addresses, long- and short-term holder supply and realized prices, SOPR, NUPL, reserve risk or RHODL ratio for bitcoin, daily since 2009-2011. One metric per call.

GET/api/external/discovery/bitcoin-onchain-metrics

What it returns

One bitcoin on-chain metric as a daily series, one point per closed UTC day, over the last 30, 90, 365 or 1825 days or its whole history (days=all). The newest point is usually yesterday. Each point carries bitcoin's USD price that day (priceUsd, the day's open; the day's close for nupl) and the figure in values, named in valueNames:

  • active-addresses: activeAddresses; new-addresses: newAddresses — addresses seen, and seen for the first time, that day.
  • long-term-holder-supply: lthSupplyBtc; short-term-holder-supply: sthSupplyBtc — BTC held by long- and short-term holders; the two add up to the supply issued.
  • lth-realized-price: lthRealizedPriceUsd; sth-realized-price: sthRealizedPriceUsd — the average price each cohort acquired its coins at.
  • lth-sopr: lthSopr; sth-sopr: sthSopr — spent output profit ratio, above 1 when coins moved at a profit.
  • nupl: nupl — net unrealized profit/loss, a signed share of market value.
  • reserve-risk: reserveRisk; rhodl-ratio: rhodlRatio — long-horizon valuation ratios.

Some days are missing (a few gaps of 1 to 4 days in 2025-2026); they stay gaps. A figure the source has none for is null, never 0 — nupl and its price before bitcoin had a market (2009), newAddresses on a few days.

Chains

This endpoint is not tied to a chain: it takes no chain in its request.

Request

Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.

curl -H "x-dex-data-key: $DEXDATA_API_KEY" \
  "https://api.dexdata.io/api/external/discovery/bitcoin-onchain-metrics?metric=active-addresses"
Parameters
ParameterDescription
metric

query · string · required

The metric.active-addressesnew-addresseslong-term-holder-supplyshort-term-holder-supplylth-realized-pricesth-realized-pricelth-soprsth-soprnuplreserve-riskrhodl-ratio
days

query · string · optional

Trailing window in days back from the newest point, or all. Defaults to 365.30903651825all

Response fields

A JSON response. Every field is always present; null means the value could not be established, never zero.

Response fields of What do Bitcoin's on-chain holder and address metrics say?
FieldTypeDescription
metricstringThe metric answered.
daysstringThe window answered.
valueNamesstring[]The keys of every point's values, in order.
pointsobject[]Oldest first, one per day; the last is the newest closed day.
points[].timestampintegerUnix seconds, 00:00 UTC of the day.
points[].priceUsdnumber | nullBitcoin's USD price that day.
points[].valuesobjectThe figure that day, keyed by valueNames; null where there is none.

Start building with DexData today

Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.

Get a free API key