XOOMAR

Free ETF Flows API

Spot bitcoin and ether ETF holdings from the issuers' own daily files, with each day's net flow derived from the change in reported holdings: iShares, Bitwise and ARK 21Shares for bitcoin, iShares and Bitwise for ether. History starts 20 August 2026.

Endpoints

GET
/api/markets/etf-flows?asset=btc|eth&days=90

Per-fund daily rows, newest first.

GET
/api/markets/etf-flows/csv

Everything as CSV.

Limits

  • Issuer files only: iShares, Bitwise and ARK 21Shares for bitcoin; iShares and Bitwise for ether. Funds without a published daily holdings file show no flows.
  • Flow is derived from the change in each fund's reported holdings, valued in USD: computed, not reported by the issuer.
  • No weekend rows; issuer files update on trading days.
  • History starts 20 August 2026.

Response shape

Every endpoint returns the same JSON envelope: { data, updatedAt, source, docs, license, attribution, meta }. In meta, source names who publishes the data and sourceAttribution is the credit line to show with it. The data field is an array of records with these fields:

FieldTypeDescription
datestring (date)The as-of date of the issuer file
tickerstringFund ticker (IBIT, ETHA...)
issuerstringIssuer name
assetstringbtc or eth
holdingsstring | nullCoins held per the issuer file
flowUsdstring | nullNet flow for the day in USD, derived from the change in the fund's reported holdings
aumUsdstring | nullHoldings valued in USD

Rows update daily on US trading days, as each issuer posts its holdings. A null flow means there's no earlier file to compare with yet.

Numeric fields typed string in the table carry exact decimals; parse them with your language's decimal type. No key needed to start: 10 requests a minute per IP without a key and 30 a minute with a free account key, with at least six months of history. A 429 response carries a Retry-After header in seconds. Credit XOOMAR with a link to the dataset page when you republish the data; the data terms are on the terms page.

A free account key raises the limit; send it in an X-API-Key header.

Frequently Asked Questions

Which funds are covered?
iShares, Bitwise and ARK 21Shares for bitcoin; iShares and Bitwise for ether, from the issuers' own daily holdings files. History starts 20 August 2026.
How is the flow number computed?
It's derived from the change in each fund's reported holdings, valued in USD, so it's computed, not reported by the issuer. The holdings figure is in every row.
When does it update?
Daily on US trading days, as each issuer posts its holdings. Each file is booked on its own as-of date.
What are the rate limits?
10 requests a minute per IP without a key and 30 a minute with a free account key, with at least six months of history.

Data on this page is provided for informational purposes only and is not financial advice. See our editorial policy.