ETF and Treasury Demand vs Issuance

Spot ETF and corporate treasury buying measured against the bitcoin miners issue.

Daily spot ETF net creations in BTC plus net corporate and government treasury purchases, divided by the block subsidy paid to miners that day. A ratio above 1 means ETF and treasury demand absorbed more bitcoin than was newly mined; below 1 means issuance outran that demand. ETF flows publish on US market days and treasury purchases are event-driven, so the 30-day line is the readable one and the daily line shows the individual prints.

How to call

Request format

GET
curl -X GET "https://newhedge.io/api/v2/metrics/etf-and-treasury-demand-vs-issuance/METRIC_NAME?api_token=YOUR_TOKEN"
Query params

api_token (required) — 24 character token.

resolution (optional) — 1d (default), 12h, 4h, 1h, 30m, 10m, coarsest to finest. Finer buckets are served to Advanced and Enterprise accounts, and only for the metrics that ingest them (listed per metric below); see Resolutions.

before (optional) — exclusive cursor, returns observations older than this timestamp_ms. Works on every resolution.

limit (optional) — the most recent N observations, maximum 5000. Finer resolutions page by default (2500); a 1d request returns the whole series unless you send limit or before.

before and limit narrow a time series. A response with no single time axis, such as a hash keyed by venue or a labelled snapshot table, has nothing to cut on. It is returned whole, and both parameters are ignored rather than rejected.

A before that is not a positive epoch-millisecond timestamp is a 400. It is the one paging value we reject rather than ignore, because a page size has a sensible default and a cursor does not.

include (optional) — definition wraps the response as {"definition": …, "data": …} and returns the record shown under each metric; see Definitions. Any other value is a 400.

Path params

:metric_name — one of the metric names listed below.

Responses

200 with JSON payload, 400 for an unknown include value, 401 for missing/invalid token, 404 for missing resources.

Metrics

Each metric is fetched independently. Responses are trimmed samples to show structure.

5 metrics
Metric

ETF Net Flowspot_btc_etf_total_flows_btc

Data used by the ETF and Treasury Demand vs Issuance chart.

Resolutions: 1d only.

Endpoint
https://newhedge.io/api/v2/metrics/etf-and-treasury-demand-vs-issuance/spot_btc_etf_total_flows_btc?api_token=YOUR_TOKEN

Replace `YOUR_TOKEN` with your API token.

Sample response
200 Successful response
[
  [
    1790726400000,
    -1777.755461188262
  ],
  [
    1790812800000,
    1229.245853479639
  ],
  [
    1790899200000,
    373.8964599318045
  ]
]
Definition

Value: Daily net creation and redemption flow across every US spot Bitcoin ETF in bitcoin, summed from the per-issuer series.

Units: btc

Timestamp: Labelled 00:00 UTC of the US trading day it describes.

Calendar: us_trading_day

Revision policy: recomputed. Re-summed from the issuer series on every run, so a revised issuer value also revises the total.

Universe: US spot Bitcoin ETFs.

Methodology version: 2026-09-06

Metric

Treasury Net Purchasestreasury_net_btc_demand

Data used by the ETF and Treasury Demand vs Issuance chart.

Resolutions: 1d only.

Endpoint
https://newhedge.io/api/v2/metrics/etf-and-treasury-demand-vs-issuance/treasury_net_btc_demand?api_token=YOUR_TOKEN

Replace `YOUR_TOKEN` with your API token.

Sample response
200 Successful response
[
  [
    1790812800000,
    0.0
  ],
  [
    1790899200000,
    0.0
  ],
  [
    1790985600000,
    0.0
  ]
]
Definition (from the chart description)

Units: btc

Timestamp: Labelled 00:00 UTC of the day it describes.

Calendar: calendar_daily

Metric

Block Reward per Day BTCblock_reward_per_day

Data used by the ETF and Treasury Demand vs Issuance chart.

Resolutions: 1d, 12h, 4h, 1h, 30m, 10m.

Endpoint
https://newhedge.io/api/v2/metrics/etf-and-treasury-demand-vs-issuance/block_reward_per_day?api_token=YOUR_TOKEN

Replace `YOUR_TOKEN` with your API token.

Sample response
200 Successful response
[
  [
    1790812800000,
    437.5
  ],
  [
    1790899200000,
    446.875
  ],
  [
    1790985600000,
    418.75
  ]
]
Definition (from the chart description)

Units: btc

Timestamp (1d): Labelled 00:00 UTC of the day it describes.

Timestamp (finer resolutions): A finer resolution is labelled in UTC at the end of the interval it covers, not at its start. Add include=definition to a request and the definition describes the bucket that request was served.

Calendar: calendar_daily

Metric

Demand vs Issuance (1D)etf_treasury_demand_vs_issuance

Data used by the ETF and Treasury Demand vs Issuance chart.

Resolutions: 1d only.

Endpoint
https://newhedge.io/api/v2/metrics/etf-and-treasury-demand-vs-issuance/etf_treasury_demand_vs_issuance?api_token=YOUR_TOKEN

Replace `YOUR_TOKEN` with your API token.

Sample response
200 Successful response
[
  [
    1790812800000,
    2.809704807953461
  ],
  [
    1790899200000,
    0.8366913788683736
  ],
  [
    1790985600000,
    0.0
  ]
]
Definition (from the chart description)

Units: ratio

Timestamp: Labelled 00:00 UTC of the day it describes.

Calendar: calendar_daily

Metric

Demand vs Issuance (30D)etf_treasury_demand_vs_issuance_30d

Data used by the ETF and Treasury Demand vs Issuance chart.

Resolutions: 1d only.

Endpoint
https://newhedge.io/api/v2/metrics/etf-and-treasury-demand-vs-issuance/etf_treasury_demand_vs_issuance_30d?api_token=YOUR_TOKEN

Replace `YOUR_TOKEN` with your API token.

Sample response
200 Successful response
[
  [
    1790812800000,
    2.994458123048201
  ],
  [
    1790899200000,
    2.920949122191356
  ],
  [
    1790985600000,
    2.256782660452906
  ]
]
Definition (from the chart description)

Units: ratio

Timestamp: Labelled 00:00 UTC of the day it describes.

Calendar: calendar_daily