Skip to main content
Loading market data…
GET/api/v1/etf/{asset}/biggest-flowsHobbyist tier+ · 30 req/min

Top-N biggest inflow and outflow days for the asset.

Historical extremes — the days that defined each ETF era. Inflows are sorted biggest→smallest; outflows most-negative→least-negative. Days that don't qualify (pure inflow-only or outflow-only history) drop out rather than showing as zero.

Path parameters

Segments of the URL path, validated server-side.

NameTypeRequiredDefaultDescription
assetenumrequired
bitcoin | ethereum | btc | eth
bitcoinethereumbtceth

Query parameters

All query parameters are optional unless marked required.

NameTypeRequiredDefaultDescription
limitnumberoptional10
Top-N bucket size for each side. Max 50.

Response shape

Always wrapped in the standard envelope. Nullable fields are explicitly marked — treat missing numeric data as a real data-source gap, not as an error.

data payloadtypescript
// Wrapped in the standard envelope:
// {
//   data: /* shape below */,
//   meta?: { total?: number; limit?: number; offset?: number; ... }
// }

{
  asset: "BTC" | "ETH";
  inflows:  Array<{ date: string; totalUsdM: number }>;
  outflows: Array<{ date: string; totalUsdM: number }>;
}

Example

Copy the curl, replace YOUR_KEY with a real key from your dashboard, and run.

Requestbash
curl -sS "http://localhost:3000/api/v1/etf/btc/biggest-flows?limit=5" \
  -H "Authorization: Bearer cg_live_YOUR_KEY"
Responsejson
{
  "data": {
    "asset": "BTC",
    "inflows": [
      { "date": "2026-03-05", "totalUsdM": 1045.3 },
      { "date": "2026-02-14", "totalUsdM": 780.1 }
    ],
    "outflows": [
      { "date": "2026-02-19", "totalUsdM": -385.7 }
    ]
  },
  "meta": { "total": 3, "limit": 5, "asset": "BTC" }
}

Next

Check the error code reference, or get an API key to try the request against your own account.