Skip to main content
GET
/
indicator
/
demand-monitor
/
etf-demand
ETF Bitcoin Demand 30-days
curl --request GET \
  --url https://api.cryptoquant.com/v2/indicator/demand-monitor/etf-demand \
  --header 'Authorization: Bearer <token>'
{
  "status": {
    "code": 123,
    "message": "<string>"
  },
  "result": {
    "window": "<string>",
    "data": [
      {
        "date": "<string>",
        "chg_30d_btc": 123,
        "chg_1y_btc": 123
      }
    ]
  }
}

What it measures

Net cumulative BTC purchased or sold by US spot Bitcoin ETFs over a 30-day and 1-year rolling window.

How to interpret it

30-day. Positive = ETFs are net buyers. Negative = net sellers. Accelerating = institutional conviction growing. Decelerating even while positive = fading conviction. 1-year. Reveals whether institutional adoption is genuinely growing structurally or temporarily. Allows direct year-over-year comparison of institutional participation.

Key thresholds

~9K BTC/day avg (Q1 2024) = peak buying pace; 5–8K BTC/day = strong demand; Near 0 or negative = net selling mode; ETF demand = ~33% of total demand at Dec 2024 peak

How to use it

Monitor alongside broader apparent demand. ETF demand alone is insufficient to drive ATH rallies without expanding total market demand.

Run this metric in CryptoQuant Analytics

Authorizations

Authorization
string
header
required

For each API request, include the Authorization HTTP header with Bearer {access_token}.

Query Parameters

window
string
default:day

Time interval for aggregation.

from
string

Starting time, formatted as YYYYMMDDTHHMMSS (UTC). If window=day, YYYYMMDD is also accepted.

to
string

Ending time, formatted as YYYYMMDDTHHMMSS (UTC). If window=day, YYYYMMDD is also accepted.

limit
integer

Maximum number of data rows to return.

Response

200 - application/json

Monitoring Bitcoin demand

status
object
required

Returned with every response; indicates whether the request was successful.

result
object
required