Dataroma Superinvestor Holdings Scraper
Pricing
from $2.00 / 1,000 superinvestor holdings
Dataroma Superinvestor Holdings Scraper
Turn Dataroma into a spreadsheet of named-manager 13F holdings. Select Buffett, Burry, Klarman or leave empty for all 80+. Each row is one position with numeric shares, value, % and prices — not money strings. Optional quarter history stays on the same row. $2 per 1,000 holdings.
Pricing
from $2.00 / 1,000 superinvestor holdings
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Turn Dataroma's superinvestor pages into one typed row per stock holding. Pick Buffett, Burry, Klarman or any of the 80+ managers on the live list — or leave the list empty and take all of them.
Portfolio value, shares, reported price, and current price are numbers (299253558000, not "$299,253,558,000"). Recent activity is split into Buy / Add / Reduce / Sell plus a percent. Optional quarterly history attaches on the same row.
Why Use This Scraper?
- Pick managers from a Console list (BRK, SAM, BAUPOST, …) instead of guessing raw IDs
- Empty selection follows Dataroma's live manager list — not a hardcoded "82"
- Typed money and share fields that sort and filter in CSV / Excel
- Activity parsed as
activityType+activityPercent(Add 45.24%,Reduce 5.89%,Buy) - Optional
history[]from each holding's hist.php page (still one billed row) - Optional ticker filter if you only want AAPL across a set of managers
- Direct HTTP, 512 MB default — no browser
Overview
Built for analysts, fund researchers, and data teams who already use Dataroma and want the same 13F-derived holdings in a dataset.
One dataset row is one current holding. A Buffett run is ~29 rows (one per stock in the latest filing), not one row per manager. Sector mix is repeated on every row of that portfolio so a spreadsheet filter still works. Quarterly history is an array on the holding when you turn includeHoldingHistory on — it is not extra billed rows.
This is Dataroma's HTML tables, not EDGAR itself. Filing lag matches the site.
Supported Inputs
| Input | What it is | Example |
|---|---|---|
| Manager IDs | Multi-select from the live Dataroma list | BRK, SAM, BAUPOST |
| Empty ID list | Every manager currently on managers.php | [] → all ~83 |
| Holdings URL | Optional paste of a portfolio page | https://www.dataroma.com/m/holdings.php?m=BRK |
| Tickers | Keep only those symbols | AAPL, MOH |
{"startUrls": ["https://www.dataroma.com/m/holdings.php?m=BRK","https://www.dataroma.com/m/holdings.php?m=SAM"]}
Unsupported: EDGAR / 13F XML, WhaleWisdom, GuruFocus, insider Form 4, Congress trades, login-only Dataroma pages, and historical portfolio snapshots as separate rows (use includeHoldingHistory on each current stock instead).
Use Cases
| Audience | Use case |
|---|---|
| Long-only / family-office research | Track what named managers added or cut last quarter |
| Quant / data teams | Feed typed holdings into a warehouse without parsing money strings |
| Journalists | Pull Buffett / Burry / Klarman positions for a story without copying tables |
| Product & API builders | Expose a holdings feed behind your own app |
| Agencies | Deliver a client-ready 13F-style extract without writing a scraper |
How It Works
- Read the live manager list from
dataroma.com/m/managers.php(IDs + names). - Fetch each holdings table you selected (
holdings.php?m=BRK, …). - Parse one row per stock — ticker, shares, %, prices, activity, sector mix — as numbers.
- (Opt-in) Attach quarter history from
hist.phpfor each current holding. - Push to the dataset (JSON / CSV / Excel). Billed per current holding.
Input Configuration
| Field | Type | Default | Description |
|---|---|---|---|
superinvestors | array | [] | Manager IDs. Empty = every live manager. Case-insensitive (brk → BRK). |
startUrls | array | – | Optional holdings.php?m= URLs; IDs merge with superinvestors. |
symbols | array | – | Optional ticker allowlist. Empty = all holdings in the selected portfolios. |
includeHoldingHistory | boolean | false | Attach history[] (period, shares, %, activity, reported price). Still one billed row per current holding. |
maxItems | integer | 10000 | Cap on holding rows (billing). Free Apify accounts are capped at 100. |
maxConcurrency | integer | 5 | Parallel page fetches. |
proxy | object | off | Dataroma answers a direct request today. Turn Apify Proxy on only if you start seeing blocks. |
{"superinvestors": ["BRK", "SAM"],"maxItems": 50}
{"superinvestors": ["BRK", "psc", "BAUPOST"],"symbols": ["AAPL", "GOOGL"],"includeHoldingHistory": true,"maxItems": 20}
Output Overview
Each item is one current position at one manager. Identifiers (superinvestorId, symbol, superinvestorUrl) are always present on a successful parse. Money fields are numbers. history is null unless includeHoldingHistory is on.
A manager with zero stocks (empty portfolio on Dataroma) contributes no rows.
Output Samples
Michael Burry / Molina Healthcare, with history enabled (trimmed):
{"superinvestorId": "SAM","superinvestorName": "Michael Burry - Scion Asset Management","superinvestorUrl": "https://www.dataroma.com/m/holdings.php?m=SAM","period": "2025 Q3","periodYear": 2025,"periodQuarter": 3,"portfolioDate": "2025-09-30","portfolioValue": 55001000,"numberOfStocks": 3,"symbol": "MOH","stockName": "Molina Healthcare Inc.","percentOfPortfolio": 43.49,"recentActivity": "Buy","activityType": "Buy","activityPercent": null,"shares": 125000,"reportedPrice": 191.36,"value": 23920000,"currentPrice": 200.79,"changeFromReportedPrice": 4.93,"week52Low": 121.06,"week52High": 244.89,"sectorBreakdown": {"Health Care": 43.49,"Consumer Goods": 32.35,"Financials": 24.16},"history": [{"period": "2025 Q3","periodYear": 2025,"periodQuarter": 3,"shares": 125000,"percentOfPortfolio": 43.49,"recentActivity": "Buy","activityType": "Buy","activityPercent": null,"reportedPrice": 191.36},{"period": "2025 Q1","periodYear": 2025,"periodQuarter": 1,"shares": 0,"percentOfPortfolio": 0,"recentActivity": "Sell 100.00%","activityType": "Sell","activityPercent": 100,"reportedPrice": null}],"historyUrl": "https://www.dataroma.com/m/hist/hist.php?f=SAM&s=MOH","stockUrl": "https://www.dataroma.com/m/stock.php?sym=MOH","scrapedAt": "2026-09-19T06:23:39.088Z"}
Key Output Fields
| Group | Fields |
|---|---|
| Manager | superinvestorId, superinvestorName, superinvestorUrl |
| Filing | period, periodYear, periodQuarter, portfolioDate, portfolioValue, numberOfStocks, sectorBreakdown |
| Position | symbol, stockName, stockUrl, percentOfPortfolio, shares, value |
| Activity | recentActivity, activityType, activityPercent |
| Prices | reportedPrice, currentPrice, changeFromReportedPrice, week52Low, week52High |
| History (opt-in) | history[], historyUrl |
FAQ
How do I scrape one manager?
Set superinvestors to ["BRK"] (Buffett) or paste https://www.dataroma.com/m/holdings.php?m=BRK in startUrls.
What if I leave Superinvestors empty? The actor reads the current managers.php list (83 names on 2026-09-19) and scrapes all of them. A full run is typically a few thousand holdings.
Are values numbers or strings?
Numbers. portfolioValue is 55001000, not "$55,001,000". Compact listing-page figures like $2.05 B become 2050000000.
What does includeHoldingHistory cost?
Still one dataroma-holding event per current position. History is nested on that row. It does extra page fetches, so the run is slower.
Is this official SEC data? No. Dataroma republishes public 13F filings. Use EDGAR if you need the raw filing.
Do I need a proxy? Not in current tests. The site returned 200 over a direct request. Use the proxy field if that changes.
Support
- Issues and feature requests: the Issues tab on this actor in Apify Console.
- Custom work:
- Website: https://muhamed-didovic.github.io/
- Email: muhamed.didovic@gmail.com
Additional Services
- Custom fields or a one-off full-manager dump: muhamed.didovic@gmail.com
- API access (no Apify platform fee, usage fee only): muhamed.didovic@gmail.com
Explore More Scrapers
Same author, same export shape: jobs, reviews, and property scrapers on memo23's Apify profile.
🤖 For AI Agents & LLM Apps
Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/dataroma-scraper).
Purpose: Scrape current Dataroma superinvestor holdings (one row per stock) with typed numeric fields and optional quarterly history.
Minimal input:
{"superinvestors": ["SAM"],"maxItems": 10}
Output: one dataset row per holding — superinvestorId, superinvestorName, superinvestorUrl, period, periodYear, periodQuarter, portfolioDate, portfolioValue, numberOfStocks, symbol, stockName, stockUrl, percentOfPortfolio, recentActivity, activityType, activityPercent, shares, reportedPrice, value, currentPrice, changeFromReportedPrice, week52Low, week52High, sectorBreakdown, history, historyUrl, scrapedAt.
Behaviors an agent should know:
- Always set
maxItems. Emptysuperinvestorsscrapes every live manager (thousands of rows). - IDs are case-insensitive.
startUrlsholdings.php links merge withsuperinvestors. symbolsis an allowlist; omit it to keep every holding.includeHoldingHistory(default false) addshistory[]and extra fetches; billing stays one event per current holding.- Free Apify accounts are capped at 100 rows. Billed as PPE event
dataroma-holding. - Public Dataroma HTML only — not EDGAR XML, not insider Form 4.
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Dataroma or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.
The scraper accesses only publicly available superinvestor holdings pages on dataroma.com — no authenticated endpoints, paid features, or content behind a login. Users are responsible for ensuring their use complies with dataroma.com's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.
SEO Keywords
Dataroma scraper, scrape Dataroma, Dataroma API, superinvestor scraper, 13F holdings scraper, Buffett holdings scraper, Michael Burry scraper, Klarman holdings, hedge fund 13F data, superinvestor portfolio export, Dataroma holdings CSV, famous investor stock picks, 13F dataset, fund holdings API, Apify Dataroma