Derived per-ETF filing-cadence net flow estimate (creation/redemption proxy)
Derived endpoint that computes per-ETF net flow estimates for one ETF over the requested lookback window by walking the ETF snapshot history and emitting ONE period per CHANGE of the SEC-derived (aum_usd, nav) pair. Formula per period: net_flow = Δ(shares_outstanding) × to_nav where shares_outstanding = aum_usd / nav, from_date is the last snapshot carrying the old pair and to_date is the first snapshot carrying the new pair. This is the standard ETF creation/redemption proxy used by analysts; results are an ESTIMATE, not ICI-authoritative numbers. Snapshot aum_usd/nav derive from SEC filings (NPORT-P monthly, 485BPOS annual) and are constant between filings, so flows are reported on FILING CADENCE, not per calendar day (the previous per-day contract read 0.0 on every non-filing day). Consecutive snapshots with unchanged (aum_usd, nav) are a single plateau and produce NO entry. When fewer than 2 distinct plateaus exist in the window the response is 200 with period_flows=[] and total_net_flow_dollar_estimate=null (honest 'no change observed', not an error). Days where the snapshot blob is missing are silently skipped; plateaus span across missing dates. Use case: UC-3 Sector Rotation Detector per-ETF accumulation signal, complemented by ICI aggregate at /etf/flows/aggregate. BREAKING (DATA-N4.7.1): this endpoint replaced the per-calendar-day series contract with filing-cadence period_flows, and renamed the days query param to lookback_days. The old days param is SILENTLY IGNORED (FastAPI drops undeclared query params; it is not rejected) - a mid-migration client sending ?days=30 gets 200 with the default lookback window.
Path parameters
ETF ticker.
ETF ticker.
Query parameters
Lookback window in days (1..90, default 90). Bounded by the 90-day ETF snapshot retention - a wider window can never hold more data (dated snapshots are swept after 90 days). Out-of-range returns 400. NOTE: the pre-DATA-N4.7.1 param days is no longer declared, so it is silently ignored, not rejected.
Lookback window in days (1..90, default 90). Bounded by the 90-day ETF snapshot retention - a wider window can never hold more data (dated snapshots are swept after 90 days). Out-of-range returns 400. NOTE: the pre-DATA-N4.7.1 param days is no longer declared, so it is silently ignored, not rejected.
Response
Per-symbol derived filing-cadence period flows + total.
Example response
{
"data": {
"symbol": "SPY",
"lookback_days": 90,
"period_flows": [
{
"from_date": "2026-04-30",
"to_date": "2026-05-31"
}
]
},
"meta": {
"endpoint": "/api/v1/fred/us/cpi",
"data_time": "2026-04-16T14:30:00Z",
"response_time": "2026-04-16T14:30:12Z",
"provider": "Sugra API v1.0.1",
"source": "sugra_crypto",
"attribution": "Short interest and Reg SHO daily short volume data is owned by and sourced from FINRA (Financial Industry Regulatory Authority).",
"fallback_chain": [
"sugra_crypto",
"sugra_finance"
]
}
}