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.
Request format
curl -X GET "https://newhedge.io/api/v2/metrics/etf-and-treasury-demand-vs-issuance/METRIC_NAME?api_token=YOUR_TOKEN"
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.
:metric_name — one of the metric names listed below.
200 with JSON payload, 400 for an unknown include value, 401 for missing/invalid token, 404 for missing resources. A 404 for a metric withdrawn on purpose adds withdrawn, withdrawn_on and reason, for example {"error":"Metric not found","withdrawn":true,"withdrawn_on":"2026-09-07","reason":"The venue's public feed reports insurance-fund settlements, not liquidation orders."}; a removed chart can add successor.
Plan and quota refusals keep these statuses and error texts and add code, required_plan, current_plan, feature, upgrade_url, limit and resets_at where they apply. A Pro token whose history window removed points also gets the X-Newhedge-History-Truncated headers, and for a Pro token X-Newhedge-Available-From is the start of the window. See Errors and plan limits.
Metrics
Each metric is fetched independently. Responses are trimmed samples to show structure.
ETF Net Flowspot_btc_etf_total_flows_btc
Data used by the ETF and Treasury Demand vs Issuance chart.
Resolutions: 1d only.
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.
[
[
1792627200000,
-7563.095805004446
],
[
1792713600000,
-1697.682300486321
],
[
1792972800000,
1377.712582425434
]
]
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. The latest day can appear before every fund has reported: it then holds the sum of the funds reported so far and is revised as the rest arrive.
Universe: US spot Bitcoin ETFs.
Methodology version: 2026-10-06
Treasury Net Purchasestreasury_net_btc_demand
Data used by the ETF and Treasury Demand vs Issuance chart.
Resolutions: 1d only.
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.
[
[
1792972800000,
0.0
],
[
1793059200000,
0.0
],
[
1793145600000,
0.0
]
]
Units: btc
Timestamp: Labelled 00:00 UTC of the day it describes.
Calendar: calendar_daily
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.
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.
[
[
1792972800000,
506.25
],
[
1793059200000,
496.875
],
[
1793145600000,
453.125
]
]
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
Demand vs Issuance (1D)etf_treasury_demand_vs_issuance
Data used by the ETF and Treasury Demand vs Issuance chart.
Resolutions: 1d only.
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.
[
[
1792972800000,
2.72140757022308
],
[
1793059200000,
0.0
],
[
1793145600000,
0.0
]
]
Units: ratio
Timestamp: Labelled 00:00 UTC of the day it describes.
Calendar: calendar_daily
Demand vs Issuance (30D)etf_treasury_demand_vs_issuance_30d
Data used by the ETF and Treasury Demand vs Issuance chart.
Resolutions: 1d only.
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.
[
[
1792972800000,
1.139934954339473
],
[
1793059200000,
1.136714099219627
],
[
1793145600000,
0.9966846913596678
]
]
Units: ratio
Timestamp: Labelled 00:00 UTC of the day it describes.
Calendar: calendar_daily