ETF Holdings Tracker — Daily Constituents & Weights API
Pricing
from $100.00 / 1,000 etf holding records
ETF Holdings Tracker — Daily Constituents & Weights API
Track ETF constituents and weights from SEC EDGAR — parsed, source-linked JSON for analysts, funds and AI agents. No API key. Pay per record.
Pricing
from $100.00 / 1,000 etf holding records
Rating
0.0
(0)
Developer
NexGenData
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
3
Monthly active users
a day ago
Last modified
Categories
Share
ETF Holdings Tracker
Track ETF constituents and weights, parsed into clean JSON. Built for analysts, funds, fintech builders and AI agents. Factual public market data — not financial or investment advice.
🗂 Where the data comes from
Holdings, weights, share counts and fund-level assets are parsed from the public ETF pages on stockanalysis.com (https://stockanalysis.com/etf/{ticker}/holdings/ and /etf/{ticker}/). Every record carries that source URL in etf_holdings_url and "data_source": "stockanalysis.com".
This Actor does not read SEC EDGAR, N-PORT or 13F filings, and records do not carry sec.gov links. For filing-derived holdings see the related SEC actors below.
Coverage limit you should know about before you run it. The source's free holdings page currently returns only the top 25 constituents by weight per ETF and states the rest are behind its subscription (for example "Showing 25 of 505 holdings" for SPY, 25 of 105 for QQQ, 25 of 47 for ARKK). This Actor returns what the source returns, reports the truncation in the run status message and in the OUTPUT record, and never fabricates the missing constituents.
📊 What you get
Clean JSON, one record per holding (15 fields):
etf_symbol,etf_name,etf_issuer,etf_aum_usd,etf_aum_billion_usdholding_symbol,holding_name,weight_pct,shares_heldmarket_value_usd— computed as ETF AUM × weight %holding_sector,holding_country— inferred from the ticker and company name, not read from a filingas_of_date,etf_holdings_url,data_source
💵 Pricing
- Actor start: $0.01 per event (one event per GB of run memory, minimum one)
- Result: $0.10 per holding record — about 10 records per $1
One charge per record delivered:
- No
etf_symbolsgiven → the run uses the default tickers SPY, QQQ and VTI (the same three the Console form prefills) and bills only the records it delivers. - A ticker the source doesn't cover (HTTP 404) → no records, no charge; it is named in the status message.
- Source blocked, non-200, or the holdings table missing → three attempts with a fresh residential proxy session each time; if no ETF yielded anything, the run fails with a status message naming the cause instead of finishing green and empty.
- Run time limit → the Actor stops cleanly, says "stopped early at the run time limit", and bills only the records already delivered.
- Charge limit → delivery stops the moment the run's charge limit is reached; a record is never delivered without its charge.
🤖 Use with AI agents
Structured, source-linked data for LLM and agent pipelines — point Claude, the OpenAI Agents SDK, an n8n flow or any MCP-aware client at it.
Sample agent prompt:
List the top 20 holdings and weights for an ETF as JSON.
Agentic payments (x402): Supports agentic payment via x402 — agents can call this actor with USDC, no API key required.
⏰ Run on a schedule (monitor mode)
Set monitor_new_only: true and a unique monitor_key. Each scheduled run then emits only holdings not seen before for that key (new positions), billed only for those.
- Open the actor → Schedules → Create new schedule.
- Set
etf_symbols,monitor_new_only: true, andmonitor_keyto a unique label. - Save. State is isolated per key.
Leave monitor_new_only off for the full snapshot (default).
🔗 Related SEC actors
Filing-derived holdings: 13F Tracker Pro, 13F Delta Tracker, N-PORT Holdings, N-PORT-P Holdings
Agent front doors: SEC Corporate Events MCP, Regulatory Filings MCP
Public market data parsed from stockanalysis.com. Not financial or investment advice. Not affiliated with the U.S. SEC or with any ETF issuer.