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.
/api/external/discovery/market-cycle-indicatorsWhat 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.
| Field | Type | Description |
|---|---|---|
indicators | object[] | The panel, in its own order. |
indicators[].id | string | Stable identifier, e.g. mvrv-z-score. |
indicators[].name | string | Display name. |
indicators[].unit | string | null | The unit of current, previous and target. |
indicators[].current | number | The latest reading. |
indicators[].previous | number | null | The reading before, in the same unit. |
indicators[].target | number | The level that marks a top; the lower bound when it is a range. |
indicators[].targetUpper | number | null | The upper bound when the top level is a range. |
indicators[].trigger | string | null | A top is a reading at or above / at or below target; null when none is stated. |
indicators[].triggered | boolean | Whether 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