SEC 13F Holdings Scraper avatar

SEC 13F Holdings Scraper

Pricing

from $11.99 / 1,000 result items

Go to Apify Store
SEC 13F Holdings Scraper

SEC 13F Holdings Scraper

Scrape institutional investment holdings from SEC 13F filings by CIK or fund name. Returns each holding with issuer, CUSIP, shares, value, and put/call flags.

Pricing

from $11.99 / 1,000 result items

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

2 days ago

Last modified

Share

ParseForge

SEC 13F Holdings Scraper

Scrape SEC 13F holdings from any institutional filer, by CIK or name, up to a million records per run. Every holding comes with the filer name, report period, security name, class, put/call flag, shares, and value. No API key. Export to CSV, JSON, Excel, or XML.

Tracking institutional investment moves from SEC 13F filings normally means downloading PDFs or XML manually, filing by filing. This scraper reads the public EDGAR index, matches filings by CIK or institution name, and parses each holding into a flat row. Date filters and form-type selection let you narrow the run to exactly the filings you need.

Who uses itWhat they scrape SEC EDGAR for
Investment analystsTrack which stocks the largest funds are buying or selling each quarter.
Hedge fund researchersMonitor competitor or peer fund portfolios from public 13F filings.
Financial data vendorsBuild a database of institutional holdings for quantitative models.
Individual investorsSee what famous investors like Berkshire Hathaway or Renaissance Technologies hold.

What it does

This Actor collects SEC 13F holdings from institutional investment manager filings on EDGAR, returning each holding as a structured record with filer, security, and value details.

  • πŸ” CIK or name search: Enter a SEC Central Index Key for exact matching, or an institution name for fuzzy lookup.
  • πŸ“… Date range filters: Set filing start and end dates, or a specific report period, to limit results to a quarter or year.
  • πŸ“„ Form-type selection: Choose 13F-HR, 13F-HR/A, or both to include amended filings.
  • ⏱ Per-filing limits: Cap holdings per filing to avoid oversized datasets from large filers.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with SEC EDGAR data

πŸ“ˆ Monitor institutional portfolio changes.

An analyst runs the scraper quarterly by CIK for the top 50 hedge funds to detect new positions and exits.

πŸ” Research competitor fund strategies.

A fund manager inputs competitor CIKs and compares sector allocations across recent 13F filings.

πŸ“Š Build a holdings database for backtesting.

A quant developer collects all 13F filings from 2010 to present by iterating CIKs and date ranges.

πŸ“‹ Automate compliance reporting.

A compliance officer pulls their own firm's 13F filings to verify reported holdings match internal records.

Why choose this scraper

What you get
Filer identitySEC CIK, institution name, and filing date for every holding.
Security detailsIssuer name, security class, CUSIP, put/call flag, and option type.
ValuationShares held, market value in USD, and value change from prior filing.
Raw dataDirect access to the original XML filing text for audit or custom parsing.

How it compares

No other Store actor targets SEC EDGAR the same way, so the honest comparison is with the alternatives teams actually weigh.

SEC 13F Holdings ScraperBuild it in-houseBy hand
SetupRun it now, zero configDays of engineeringNone, but hours per pull
When SEC EDGAR changesMaintained for youYou fix itYou re-learn the page
Proxies, retries, anti-botBuilt inYour problemBrowser only
OutputFixed JSON schema, CSV/Excel exportWhatever you buildCopy-paste
CostPay per resultEngineering timeAnalyst hours

Configure the run

Drive the Actor from a CIK or institution name, alone or together, and apply date and form-type filters so only the filings you need are parsed. The Input tab lists every parameter.

A first run with the defaults:

{
"maxItems": 10,
"cik": "1067983",
"formTypes": [
"13F-HR"
],
"maxFilings": 5
}

A larger pull:

{
"maxItems": 200,
"cik": "1067983",
"formTypes": [
"13F-HR"
],
"maxFilings": 5
}

Pricing

Pay-per-result: $0.01599 per result collected. You pay only for the results written to your dataset.

Results collectedApproximate cost
100 results$1.60
1,000 results$15.99
10,000 results$159.90

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

  1. Create a free Apify account with $5 in credit.
  2. Open the SEC 13F Holdings Scraper.
  3. Set your inputs and any filters, then click Start.
  4. 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 SEC EDGAR 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/sec-13f-holdings-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that the CIK or institution name is correct. For name searches, try a shorter or more common variant. Also verify the date range includes filings that exist.

The run returns fewer holdings than expected.

Increase maxFilings or maxHoldingsPerFiling. Some large filers like Berkshire Hathaway have thousands of holdings per filing.

Can I scrape all filers at once?

Leave CIK and institutionName empty, set a report period, and increase maxFilings. The scraper will iterate all filers that filed on that date.

The scraper is slow for large runs.

Reduce maxFilings or set a narrower date range. Each filing requires a separate HTTP request to EDGAR.

What does 'No filings found' mean?

The CIK or name may not have filed a 13F in the selected period. Try expanding the date range or checking the CIK on EDGAR directly.

FAQ

QuestionAnswer
What is a CIK and where do I find it?A CIK is the SEC's Central Index Key, a unique 10-digit number assigned to every filer. You can look it up on EDGAR's search page or use the institution name field instead.
Can I scrape all 13F filings from a single quarter?Yes. Set the report period to the quarter end date (e.g., 2024-09-30) and leave CIK empty to get all filers. Use maxFilings to control volume.
Does this include amended filings (13F-HR/A)?Yes, if you include '13F-HR/A' in the formTypes array. By default only 13F-HR is collected.
What data does each holding record contain?Each record includes filer CIK and name, filing date, report period, issuer name, security class, CUSIP, put/call flag, shares, market value, and the raw XML snippet.
How many holdings can I scrape in one run?Up to 1,000,000 holdings total, with a configurable maxFilings (up to 1,000) and maxHoldingsPerFiling limit.
Is an API key or login required?No. All data is from public SEC EDGAR filings. No registration or authentication needed.
Can I scrape by fund name instead of CIK?Yes. Use the institutionName field. The scraper will search EDGAR for matching filers. CIK is recommended for precision.
What if a filing has no holdings?The scraper skips filings that contain no holdings data (e.g., cover pages only). No empty records are returned.
How are put/call options represented?The putCall field contains 'Put' or 'Call' when applicable, and is empty for common stock or other equity holdings.
Can I export to Excel or CSV?Yes. The Actor supports CSV, JSON, Excel, XML, and HTML table export formats from the Apify dataset.

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 U.S. Securities and Exchange Commission. 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.