ETF.com Scraper | ETF Data Holdings and Returns
Pricing
from $19.00 / 1,000 results
ETF.com Scraper | ETF Data Holdings and Returns
Scrapes the ETF.com directory for fund metrics including AUM, expense ratio, YTD return, average volume, and asset class. Returns each ETF as a flat row, filterable by asset class and sortable by assets, return, or volume.
Pricing
from $19.00 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
ETF.com Scraper | ETF Data Holdings and Returns
Scrape ETF holdings, returns, and fund metrics from ETF.com, up to a million ETFs per run. Every fund row includes AUM, expense ratio, YTD return, average volume, and asset class. No API key. Export to CSV, JSON, Excel, or XML.
ETF.com lists every exchange-traded fund with its holdings, performance, and key metrics, but browsing the directory page by page is slow and manual. This Actor reads the public ETF directory directly, filters by asset class, and sorts by assets, YTD return, or volume, so you get a clean dataset in minutes.
| Who uses it | What they scrape ETF.com for |
|---|---|
| Portfolio analysts | Screen the entire ETF universe for funds matching a specific asset class and size threshold. |
| Quantitative researchers | Build a daily-updated dataset of ETF returns and volume for factor model inputs. |
| Financial advisors | Compare expense ratios and YTD performance across all equity ETFs for client recommendations. |
| Data vendors | Populate an internal ETF database with current AUM and return figures from a single source. |
What it does
This Actor collects ETF directory listings from ETF.com, filtered by asset class and sorted by your chosen metric, and returns each fund as a flat row.
- 📊 Full directory coverage: scrape every ETF on ETF.com, or narrow by asset class like Equity, Fixed Income, or Commodity.
- 📈 Performance sorting: order results by assets under management, YTD return, or average volume to surface the most relevant funds first.
- 🔢 Flat row output: each ETF returns as one row with its ticker, name, AUM, expense ratio, YTD return, volume, and asset class.
- ⚙️ Pay-as-you-go: free users get a 10-ETF preview; paid users can pull up to one million funds in a single run.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with ETF.com data
📋 Build a daily ETF watchlist.
A portfolio analyst runs the Actor each morning with Equity selected and sorted by YTD return, then imports the CSV into a spreadsheet to flag top movers.
📊 Feed a quantitative model.
A researcher scrapes all Fixed Income ETFs sorted by average volume, pulls the dataset into Python, and uses the AUM and return columns as model features.
💰 Compare fund costs at scale.
A financial advisor scrapes every ETF, filters for expense ratios under 0.20% in Excel, and identifies the cheapest funds in each asset class for client portfolios.
🔍 Audit an ETF universe.
A data vendor runs the Actor weekly with no filter, sorts by assets, and loads the full directory into a SQL database to power an internal screening tool.
Why choose this scraper
| What you get | |
|---|---|
| No API registration | Reads the public ETF.com directory with zero authentication or rate-limit headaches. |
| One fixed schema | Every fund arrives with the same columns, ready for analysis or a database load. |
| Sort before export | Get the largest funds, best performers, or most liquid ETFs at the top of your file. |
How it compares
No other Store actor targets ETF.com the same way, so the honest comparison is with the alternatives teams actually weigh.
| | ETF.com Scraper | ETF Data Holdings and Returns | Build it in-house | By hand | |---|---|---|---| | Setup | Run it now, zero config | Days of engineering | None, but hours per pull | | When ETF.com changes | Maintained for you | You fix it | You re-learn the page | | Proxies, retries, anti-bot | Built in | Your problem | Browser only | | Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste | | Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor with an optional asset class filter and a sort order; filtering runs as the directory is read so only matching ETFs reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{"maxItems": 10,"sortBy": "assets"}
A larger pull:
{"maxItems": 200,"sortBy": "assets"}
Pricing
Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $2.10 |
| 1,000 results | $21.00 |
| 10,000 results | $210.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the ETF.com Scraper | ETF Data Holdings and Returns.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to ETF.com through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/etf-com-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting only 10 results?
You are likely on the free plan, which limits runs to a 10-ETF preview. Upgrade to a paid Apify plan and increase the 'Maximum ETFs' setting to pull more funds.
The run finished but my dataset is empty.
Check your asset class filter. If you selected an asset class that has no ETFs on ETF.com at the moment, the Actor returns nothing. Try running with 'All' to confirm the directory is reachable.
Why are the YTD return values different from my brokerage?
ETF.com calculates YTD return based on its own methodology and update schedule. Your brokerage may use a different pricing source or calculation date. The Actor returns exactly what ETF.com displays.
The Actor is timing out on large runs.
Set a lower 'Maximum ETFs' value or increase the Actor's timeout in the Apify run settings. The full directory is large, and a slow network can push a run past the default timeout.
Can I get real-time or intraday data?
No. ETF.com updates its directory daily, not intraday. The Actor scrapes the current snapshot, so you get end-of-day or latest-available figures, not streaming prices.
FAQ
| Question | Answer |
|---|---|
| Does this Actor get the underlying holdings of each ETF? | No. This Actor scrapes the ETF directory listing, which includes summary metrics like AUM, expense ratio, YTD return, and volume. It does not drill into the individual stock or bond holdings of each fund. |
| Can I filter by expense ratio or AUM range? | The input schema lets you filter by asset class and sort by AUM, YTD return, or volume. Range filters on numeric fields are not built into the Actor, but you can apply them in Excel or Python after export. |
| How many ETFs can I scrape in one run? | Free users are limited to a 10-ETF preview. Paid Apify plans can scrape up to 1,000,000 ETFs per run, which covers the entire ETF.com directory many times over. |
| What asset classes are available? | You can choose Equity, Fixed Income, Commodity, Currency, Alternatives, Asset Allocation, or leave the filter blank to scrape all asset classes at once. |
| Does this Actor require an ETF.com login or API key? | No. It reads the public ETF.com directory pages directly. No account, no API key, and no OAuth flow are needed. |
| What export formats are supported? | Your dataset can be exported to CSV, JSON, Excel, or XML from the Apify platform after the run completes. |
| How often is the ETF.com data updated? | The Actor scrapes whatever ETF.com displays at the moment you run it. Most metrics like YTD return and AUM are updated daily by ETF.com, so a morning run gives you the latest figures. |
| Can I schedule this Actor to run automatically? | Yes. Apify supports scheduled runs. You can set this Actor to run daily, weekly, or on any cron schedule and have the dataset waiting for you. |
| Does the Actor handle pagination automatically? | Yes. It walks through every page of the ETF.com directory for you, respecting the maxItems limit you set. |
| What is the difference between this and the ETF Holdings Overlap Intelligence Scraper? | That Actor analyzes overlap between the holdings of two specific ETFs. This Actor scrapes the full ETF.com directory to give you summary metrics on every fund, not the underlying holdings. |
Related actors
Browse the full ParseForge collection for more scrapers.
🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by ETF.com. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
