Funds Data Plane

ETF top-N holdings (canonical PortfolioSurface)

Top-N current holdings of an ETF, read from its canonical PortfolioSurface zarr (Funds_DAG etf_holdings_zarr — source_kind=etf, teo_frequency=daily). Only the in-ERM3 sleeve is materialized, so every holding carries a bw_sym_id plus its current ticker and name (null when the id does not resolve; POST /api/data/symbols/batch with {"symbols": [...]} does the same lookup). format=csv returns the rows as a CSV download. report_date (the sponsor's "Fund Holdings as of" date) and availability_date (when that file was first observed) are surfaced distinctly — never collapsed — and also as headers X-Data-As-Of (= report_date) and X-Data-Availability (= availability_date).

v1 returns the latest snapshot only (no ?as_of= query). See docs/architecture/CANONICAL_INTELLIGENCE_OBJECTS.md §9.

get/data/etf/{ticker}/holdings

Request

  • Base URL: https://riskmodels.app/api
  • URL: https://riskmodels.app/api/data/etf/{ticker}/holdings
  • Auth: one of:
    • HTTP bearer
    • none

Path parameters

tickerstring required

Query parameters

topinteger
format'json' | 'csv'

json (default) or csv. CSV columns: rank, bw_sym_id, ticker, name, weight, adj_mv; the filename carries the ETF and report_date.

Response

ETF holdings snapshot.

portfolio_idstring
tickerstring
source_kind'etf'
teo_frequency'daily'
sponsorstring nullable
report_datestring date
availability_datestring date nullable
aum_reportednumber nullable
aum_erm3number nullable
coverage_pctnumber nullable

aum_erm3 / aum_reported — in-ERM3 share of the resolved sleeve.

n_holdings_returnedinteger
n_total_holdingsinteger

Example response

{
  "portfolio_id": "BW-ETF-IVV",
  "ticker": "IVV",
  "sponsor": "ishares"
}

Changes

No recorded changes to this operation across all 1 revision of this API.