Skip to main content
Skip to main content

US ETF Holdings — Top 500 ETFs By AUM (Current Snapshot)

DatasetCSV.GZOpenFinanceETFHoldingsFlowFactor ExposureFree

Current holdings for the top 500 US-listed ETFs by AUM — 623,253 ETF-position rows covering 434 ETFs. Each row carries the parent ETF's symbol, name, AUM (market cap), sector and exchange, alongside the held asset's ticker, full name, ISIN, CUSIP, share count, weight percentage, and market value. Rows pre-sorted by ETF symbol then weight descending, so top holdings per fund appear first. Pairs naturally with the existing ETF Master List for fund-level metadata. Read with pandas.read_csv(path, compression='gzip', parse_dates=['updatedAt']). Useful for: flow analysis (who's buying / dumping a stock at the ETF level), factor-exposure decomposition (roll up positions across multiple ETFs), copycat strategies for active ETFs, sector/factor overlap analysis, and identifying liquidity sources for specific names.

Use Cases

  • Aggregate ETF flow / exposure analysis per underlying stock
  • Factor exposure decomposition across multiple ETFs
  • Copycat strategies for thematic and active ETFs
  • Sector / factor overlap detection between funds
  • Identifying ETF-side liquidity sources for specific tickers

Methodology

Two-phase build. Phase 1: discovered ETFs via FMP's /stable/company-screener?isEtf=true endpoint, paginated, kept the top 500 by market-cap (AUM proxy). Phase 2: pulled current holdings via /stable/etf/holdings for each ETF. Rows pre-sorted by ETF symbol then weight descending so top holdings come first per fund. Note: FMP does not expose a historical-holdings endpoint at the listing level — this listing ships a single point-in-time snapshot. Re-running captures a new snapshot.

Update Schedule

Snapshot as of build date. Re-run monthly for fresh holdings.

Attribution

Source: ETF holdings data via Financial Modeling Prep.

Schema

nametype
etfSymbolstring
etfNamestring
etfMarketCapnumber
etfSectorstring
etfIndustrystring
etfExchangestring
assetstring
assetNamestring
isinstring
securityCusipstring
sharesNumbernumber
weightPercentagenumber
marketValuenumber
updatedAtdatetime

Sample Data

isinassetetfNameassetNameetfSectoretfSymbolupdatedAtetfExchangeetfIndustrymarketValueetfMarketCapsharesNumbersecurityCusipweightPercentage
TW00023300082330.TWiShares MSCI All Country Asia ex Japan ETFTAIWAN SEMICONDUCTOR MANUFACTURINGFinancial ServicesAAXJ2026-05-17 10:05:02NASDAQAsset Management648383020.784629924183.09001670.0S6889106815.657
KR7005930003005930.KSiShares MSCI All Country Asia ex Japan ETFSAMSUNG ELECTRONICS LTDFinancial ServicesAAXJ2026-05-17 10:05:02NASDAQAsset Management343152733.494629924183.01728458.07005930008.287
KR7000660001000660.KSiShares MSCI All Country Asia ex Japan ETFSK HYNIX INCFinancial ServicesAAXJ2026-05-17 10:05:02NASDAQAsset Management263312344.484629924183.0199282.0S645026776.359

Get this via API

# 1. Add dAgentBase once, in any MCP client. No install, no vendor keys.
#    Claude.ai / Claude Desktop: Settings -> Connectors -> Add custom connector
#    Cursor / Claude Code / others: mcp.json
{
  "mcpServers": {
    "dagentbase": {
      "url": "https://dagentbase.com/api/mcp",
      "headers": { "Authorization": "Bearer dm_live_YOUR_KEY" }
    }
  }
}

# 2. Then ask your agent, in plain language:
#    "Preview 'US ETF Holdings — Top 500 ETFs by AUM (Current Snapshot)' and, if it fits, claim it and download the files."
#    Tools it will use: search_listings -> preview_listing -> purchase_listing -> get_download_urls

# 1. Add dAgentBase once, in any MCP client. No install, no vendor keys.
#    Claude.ai / Claude Desktop: Settings -> Connectors -> Add custom connector
#    Cursor / Claude Code / others: mcp.json
{
  "mcpServers": {
    "dagentbase": {
      "url": "https://dagentbase.com/api/mcp",
      "headers": { "Authorization": "Bearer dm_live_YOUR_KEY" }
    }
  }
}

# 2. Then ask your agent, in plain language:
#    "Preview 'US ETF Holdings — Top 500 ETFs by AUM (Current Snapshot)' and, if it fits, claim it and download the files."
#    Tools it will use: search_listings -> preview_listing -> purchase_listing -> get_download_urls
Free

one time · open license

Details

Date Range2026-09-052026-09-05
Rows623,253
Size19 MB
Files1
FormatCSV.GZ

Available formats

CSV.GZ19 MB
Freeopen
US ETF Holdings — Top 500 ETFs By AUM (Current Snapshot) — dAgentBase | dAgentBase