# FundWatcher > Free mutual-fund and ETF research assembled from U.S. SEC EDGAR filings > (Forms N-PORT, N-CEN, and prospectus Risk/Return summaries): portfolio > holdings, allocations, fees, calendar & trailing returns, risk statistics, > issuer geography, and head-to-head portfolio overlap. Funds are addressed by > their share-class ticker (upper-case); tickerless funds fall back to the EDGAR > series id (S000…). ## How to read this site as an agent Every human page has machine-readable twins. Append `.json` or `.md`, or send `Accept: text/markdown`: - https://fundwatcher.app/funds/VFIAX.json — structured JSON - https://fundwatcher.app/funds/VFIAX.md — clean markdown with inline citations - `curl -H "Accept: text/markdown" https://fundwatcher.app/funds/VFIAX/` Every response cites its SEC EDGAR source (accession number + deep link + as-of date). Prefer citing those accessions over paraphrasing. ## URL patterns - Fund summary: `https://fundwatcher.app/funds/{TICKER}/` - Holdings (paginated): `https://fundwatcher.app/funds/{TICKER}/holdings/` (`?page=N`) - Portfolio breakdown (asset/sector/country/industry): `https://fundwatcher.app/funds/{TICKER}/portfolio/` - Portfolio moves (snapshot-to-snapshot changes): `https://fundwatcher.app/funds/{TICKER}/moves/` - Issuer geography: `https://fundwatcher.app/funds/{TICKER}/geography/` - Performance (calendar + trailing returns, risk): `https://fundwatcher.app/funds/{TICKER}/performance/` - Similar funds (holdings overlap): `https://fundwatcher.app/funds/{TICKER}/similar/` - Recent trust filings: `https://fundwatcher.app/funds/{TICKER}/filings/` - Who owns a security (funds holding it, ranked): `https://fundwatcher.app/securities/{ID}-{name}/owners/` (also `owners.json` / `owners.md`; position history at `history.json` / `history.md`) - Head-to-head overlap: `https://fundwatcher.app/compare/?a={TICKER}&b={TICKER}` (also `compare.json`) - Search: `https://fundwatcher.app/search.json?q={QUERY}` ## Data dictionary - **Fund** — an SEC investment "series" (S000…). Holdings, allocations, risk and geography are series-level; fees and returns are per share **class** (C000…), keyed by ticker. Sibling share classes share one portfolio. - **as_of / period_of_report** — the report date of the source filing. - **source_accession / accession_no** — the SEC EDGAR accession the fact came from; `edgar_url` deep-links to the filing index. - **weight** — a fraction of net assets (0..1). Holding `pct_nav` is already a percentage. Industry `weight_pct` is a percentage. - **returns** — fractions of 1 (0.12 = 12%). Calendar and trailing returns MERGE prospectus-reported years with newer complete years compounded from N-PORT monthly returns, so they stay current; `derived: true` marks a compounded year. - **coverage** — asymmetric holdings overlap between two funds (share of A's weight also held by B). - Security identity is name / ISIN / ticker. CUSIP is never exposed. ## Also available - REST API + OpenAPI schema: https://fundwatcher.app/api/v1/docs/ - MCP server (agent tools): `https://fundwatcher.app/mcp` — a stateless Model Context Protocol endpoint (JSON-RPC over HTTP POST). Tools: search_funds, get_fund, get_fund_holdings, diff_fund_holdings, who_owns_security, fund_overlap, similar_funds, security_history. Free anonymous tier; an optional API key raises the rate limit (header `X-Api-Key`). Same CUSIP-free, cited shapes as the pages above. - Terms: https://fundwatcher.app/terms/ · Privacy: https://fundwatcher.app/privacy/ ## Usage terms - Use of this site and its data (HTML, JSON, Markdown, and MCP) is subject to the FundWatcher Terms of Service: https://fundwatcher.app/terms/ - Information may be used only for personal, non-commercial research and may not be redistributed. ## Notes - Data is sourced from SEC EDGAR and refreshed by a daily filing sweep; N-PORT snapshots are quarterly and publish ~60 days after quarter-end. - Informational only — not investment advice. Verify figures against the source filing. FundWatcher is not affiliated with the SEC.