Skip to Content
f1owdocs
Tool reference

ETF Flows

Daily spot-ETF net flows for BTC, ETH, SOL and XRP — the latest day, the per-fund breakdown, and the trailing trend it has to be read against.

Events & catalystscatalysts_etf_flowsGET /catalysts/etf-flowsx402 · $0.01 / callRead-onlyMCP App

What it does

Recent daily spot-ETF net flows (USD) for an underlying asset (BTC, ETH, SOL, XRP; defaults to BTC): latest day total, per-fund breakdown, and the trailing daily trend. Positive means net inflows. Flows settle behind spot and skip weekends, so the latest row is routinely a day or more old — its age is reported next to the date, and the price it carries is the price on THAT date, not spot. 'symbol' is accepted as an alias for 'asset'.

Parameters

NameTypeDescription
assetquerystringUnderlying asset symbol, e.g. "BTC" or "ETH". Defaults to BTC.
symbolquerystringAlias for 'asset'.

Call it

One API key works for MCP, REST and WebSocket; each call uses one unit. Agents without an account can pay per call with x402.

curl "https://mcp.f1ow.com/v1/catalysts/etf-flows?asset=BTC" \
  -H "Authorization: Bearer $F1OW_API_KEY"
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "catalysts_etf_flows",
    "arguments": {
      "asset": "BTC"
    }
  }
}
const res = await fetch("https://mcp.f1ow.com/v1/catalysts/etf-flows?asset=BTC", {
  headers: { Authorization: `Bearer ${process.env.F1OW_API_KEY}` },
});
const data = await res.json(); // the tool's result as JSON, typed in the OpenAPI spec
console.log(data);
import os, requests

res = requests.get(
    "https://mcp.f1ow.com/v1/catalysts/etf-flows?asset=BTC",
    headers={"Authorization": f"Bearer {os.environ['F1OW_API_KEY']}"},
)
data = res.json()  # the tool's result as JSON, typed in the OpenAPI spec
print(data)
// wss://mcp.f1ow.com/v1/ws — subprotocol "jsonrpc-2.0", Authorization: Bearer <key>
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "catalysts_etf_flows",
    "arguments": {
      "asset": "BTC"
    }
  }
}

// Or push a fresh result whenever it changes (minimum interval 15 s)
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "subscriptions/subscribe",
  "params": {
    "name": "catalysts_etf_flows",
    "arguments": {
      "asset": "BTC"
    },
    "intervalSeconds": 60
  }
}
# No account: the first call answers 402 with a PAYMENT-REQUIRED challenge;
# an x402 client pays it in USDC on Base and retries.
curl "https://mcp.f1ow.com/x402/v1/catalysts/etf-flows?asset=BTC"

Sample response

A real response captured 2026-11-13. Interactive is the tool's MCP App rendering it, as Claude, ChatGPT and other MCP Apps hosts show it; here it is read-only. JSON is what REST and WebSocket return, and the structuredContent of an MCP call (trimmed for length), with generatedAt for freshness. Text is the report an MCP client hands to a model.

Loading interactive view…
BTC ETF flows — latest 2026-11-12 (32.1h old)
  net -47.7M | price $73980
  recent daily (newest first): -47.7M, -299.8M, -95.0M, -201.0M, -411.9M, -430.2M, +74.6M
  top funds: BITB -26.4M, ARKB -18.5M, HODL -6.1M, MSBT +3.3M, IBIT +0.0M
{
  "asset": "BTC",
  "days": [
    {
      "byTicker": [
        {
          "flowUsd": 0,
          "ticker": "IBIT"
        },
        {
          "flowUsd": 0,
          "ticker": "FBTC"
        },
        {
          "flowUsd": -26400000,
          "ticker": "BITB"
        },
        {
          "flowUsd": -18500000,
          "ticker": "ARKB"
        },
        {
          "flowUsd": 0,
          "ticker": "BTCO"
        },
        {
          "flowUsd": 0,
          "ticker": "EZBC"
        },
        "… 6 more"
      ],
      "date": "2026-11-12",
      "dateMs": 1794441600000,
      "netFlowUsd": -47700000,
      "priceUsd": 73979.9
    },
    {
      "byTicker": [
        {
          "flowUsd": -269700000,
          "ticker": "IBIT"
        },
        {
          "flowUsd": 0,
          "ticker": "FBTC"
        },
        {
          "flowUsd": 0,
          "ticker": "BITB"
        },
        {
          "flowUsd": 0,
          "ticker": "ARKB"
        },
        {
          "flowUsd": 0,
          "ticker": "BTCO"
        },
        {
          "flowUsd": 0,
          "ticker": "EZBC"
        },
        "… 6 more"
      ],
      "date": "2026-11-11",
      "dateMs": 1794355200000,
      "netFlowUsd": -299800000,
      "priceUsd": 73762.9
    },
    {
      "byTicker": [
        {
          "flowUsd": -78200000,
          "ticker": "IBIT"
        },
        {
          "flowUsd": -36800000,
          "ticker": "FBTC"
        },
        {
          "flowUsd": 0,
          "ticker": "BITB"
        },
        {
          "flowUsd": 0,
          "ticker": "ARKB"
        },
        {
          "flowUsd": 0,
          "ticker": "BTCO"
        },
        {
          "flowUsd": 0,
          "ticker": "EZBC"
        },
        "… 6 more"
      ],
      "date": "2026-11-10",
      "dateMs": 1794268800000,
      "netFlowUsd": -95000000,
      "priceUsd": 75327.1
    },
    {
      "byTicker": [
        {
          "flowUsd": -213200000,
          "ticker": "IBIT"
        },
        {
          "flowUsd": 0,
          "ticker": "FBTC"
        },
        {
          "flowUsd": 0,
          "ticker": "BITB"
        },
        {
          "flowUsd": -9900000,
          "ticker": "ARKB"
        },
        {
          "flowUsd": 0,
          "ticker": "BTCO"
        },
        {
          "flowUsd": 0,
          "ticker": "EZBC"
        },
        "… 6 more"
      ],
      "date": "2026-11-09",
      "dateMs": 1794182400000,
      "netFlowUsd": -201000000,
      "priceUsd": 74823.4
    },
    {
      "byTicker": [
        {
          "flowUsd": -403000000,
          "ticker": "IBIT"
        },
        {
          "flowUsd": 42800000,
          "ticker": "FBTC"
        },
        {
          "flowUsd": -20500000,
          "ticker": "BITB"
        },
        {
          "flowUsd": -20100000,
          "ticker": "ARKB"
        },
        {
          "flowUsd": 0,
          "ticker": "BTCO"
        },
        {
          "flowUsd": 0,
          "ticker": "EZBC"
        },
        "… 6 more"
      ],
      "date": "2026-11-06",
      "dateMs": 1793923200000,
      "netFlowUsd": -411900000,
      "priceUsd": 76050
    },
    {
      "byTicker": [
        {
          "flowUsd": -105000000,
          "ticker": "IBIT"
        },
        {
          "flowUsd": -199900000,
          "ticker": "FBTC"
        },
        {
          "flowUsd": 0,
          "ticker": "BITB"
        },
        {
          "flowUsd": -18900000,
          "ticker": "ARKB"
        },
        {
          "flowUsd": 0,
          "ticker": "BTCO"
        },
        {
          "flowUsd": -32900000,
          "ticker": "EZBC"
        },
        "… 6 more"
      ],
      "date": "2026-11-05",
      "dateMs": 1793836800000,
      "netFlowUsd": -430200000,
      "priceUsd": 80466.4
    },
    "… 24 more"
  ],
  "generatedAt": "2026-11-12T00:00:00.0000000+00:00"
}

Call ETF Flows from your agent

Sign in, get an API key and make your first call in under a minute. No card required.

For agents: this page as Markdown · all docs

On this page