Discovery and markets API

How many market-cycle top indicators are flashing right now?

About 30 cycle-top indicators (MVRV, Pi cycle, Puell, NUPL, Mayer, dominance and more), each with its reading, the level that marks a top, and whether it is hit now.

GET/api/external/discovery/market-cycle-indicators

What it returns

One snapshot of a panel of market-cycle top indicators, mostly about bitcoin: valuation ratios (MVRV, Puell, Mayer, ahr999, RHODL, reserve risk, NUPL), moving-average models (Pi cycle, 2-year multiplier), holder supply, dominance and season indices, a stablecoin savings rate, and three price forecasts. Each indicator carries its latest reading (current), the reading before (previous, or null), the level that marks a top (target; targetUpper when the level is a range), which side of it is a top (trigger: at-or-above, at-or-below, or null for the forecasts, which state none) and whether it is hit now (triggered). No chain and no subject in the request. Readings are display-rounded, so a small ratio can be a few percent off its exact value (use bitcoin-cycle-indicators or bitcoin-onchain-metrics for the exact daily series). Percent readings are percent values (nupl 38.33 means 0.3833 there). id is stable; unit is usd, btc, percent, days, index (a unitless ratio or score), or null for an indicator not yet described. Some readings are live today, some are yesterday's close.

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/market-cycle-indicators"

Response fields

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

Response fields of How many market-cycle top indicators are flashing right now?
FieldTypeDescription
indicatorsobject[]The panel, in its own order.
indicators[].idstringStable identifier, e.g. mvrv-z-score.
indicators[].namestringDisplay name.
indicators[].unitstring | nullThe unit of current, previous and target.
indicators[].currentnumberThe latest reading.
indicators[].previousnumber | nullThe reading before, in the same unit.
indicators[].targetnumberThe level that marks a top; the lower bound when it is a range.
indicators[].targetUppernumber | nullThe upper bound when the top level is a range.
indicators[].triggerstring | nullA top is a reading at or above / at or below target; null when none is stated.
indicators[].triggeredbooleanWhether the top level is hit now.

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