Funds Data Plane

ETF capabilities, identifiers and base metrics

One ETF: capabilities (cascade, priced, priced_from, holdings, holdings_as_of, factor_role) and identifiers (bw_sym_id, bw_etf_id, figi, cik, ticker; null where unknown) for every known fund — the holdings catalog, the priced ETF return store, the cascade lists, or an ETF row in the symbol registry. 404 with code: symbol_not_found only when the ticker is on none of them.

Funds with holdings also carry the latest knowledge-mode metrics — registry-level metadata (portfolio_id, source_kind, teo_frequency, sponsor) and the latest aggregate metrics from the canonical PortfolioSurface zarr (aum_reported, aum_erm3, coverage_pct, n_total_holdings, report_date, availability_date). Bitemporal lineage on response headers — never collapsed: X-Data-As-Of (= report_date) and X-Data-Availability (= availability_date). No per-holding rows — call /api/data/etf/{ticker}/holdings for those.

get/data/etf/{ticker}

Request

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

Path parameters

tickerstring required

Response

ETF capabilities and identifiers; for funds with holdings, also the latest metrics block.

tickerstring required
namestring nullable
portfolio_idstring

Holdings funds only.

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_total_holdingsinteger

Example response

{
  "ticker": "IVV",
  "capabilities": {
    "factor_role": "sector"
  },
  "identifiers": {
    "bw_sym_id": "BW-BBG000BDTBL9",
    "bw_etf_id": "BW-ETF-SPY",
    "figi": "BBG000BDTBL9",
    "ticker": "SPY"
  },
  "portfolio_id": "BW-ETF-IVV",
  "sponsor": "ishares"
}

Changes

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