Blog · 2026-06-29

SEC EDGAR API for 13F filings: institutional holdings data

13F filings show what institutional managers over $100 million hold, filed 45 days after each quarter and long-only
Every quarter the big funds show their hand. Late, and only the long side.

Every quarter, the biggest investors in the market have to show their hand. Berkshire, Bridgewater, every fund over $100 million.

There is a catch. They show it 45 days late, and they only show the long side.

That filing is the 13F, and it is one of the most-read documents on SEC EDGAR. Here is what is in it, how to pull it through the SEC EDGAR API, and where it quietly misleads you.

A 13F is a quarterly filing where institutional managers over $100 million report their long US holdings to the SEC. The data lives in an XML information table you pull by the manager's CIK, not by the stocks they own. This guide covers what the filing contains, how to get it, how to make it useful, and the two limits that trip people up.

What is a 13F filing?

A 13F is the quarterly report big institutional managers must file to disclose their holdings. Under Section 13(f) of the Securities Exchange Act, any manager with discretion over more than $100 million in covered US securities files within 45 days of each quarter's end, per Investor.gov. It is the clearest public window into what the smart money owns.

There are two versions, and the difference matters.

The one you want is the 13F-HR, the holdings report with the actual positions. A 13F-NT is just a notice that says another manager reports those holdings. Filter for 13F-HR or you will pull empty notices.

This is not a niche document. The SEC estimates over 5,000 managers file every quarter, per the 2024 rulemaking petition to modernize the rule. Funds get read, copied, and second-guessed off these filings within minutes of hitting EDGAR.

A 13F-HR filing has a cover page, a summary page, and an information table in XML that lists every holding
Three parts to a 13F. The information table is the one with the data.

What is inside a 13F information table?

The information table is where the holdings live. It lists one row per position, and each row carries seven fields: issuer name, title of class, CUSIP, market value in thousands of dollars, share or principal amount, investment discretion, and voting authority, per the SEC's Form 13F data sets. The SEC has required XML for this table since 2013 Q2, so it parses cleanly.

One 13F holding row exploded into its seven fields: issuer, title of class, CUSIP, value in thousands, shares, discretion, and voting
One holding, seven fields. The CUSIP is your join key.

One number burns people more than any other: value is in thousands.

A row that reads 1,743,219 means roughly $1.74 billion, not $1.7 million. Miss the unit and your analysis is off by three orders of magnitude.

And notice what is not there. No purchase price, no cost basis, no trade dates. A 13F is a snapshot at quarter-end, nothing about how or when the manager got there.

How do you get 13F data from the SEC EDGAR API?

You pull it by the manager's CIK, not by the stocks. Resolve the manager to a CIK, list its 13F-HR filings, then fetch the information table XML and read the rows. To sweep many managers at once, the SEC's quarterly full-index lists every 13F-HR with its CIK and accession number, so you can loop the whole quarter.

Workflow: resolve the manager to a CIK, list its 13F-HR filings, fetch the information table XML, read the holdings
13F data is keyed to the manager, so the manager's CIK is where you start.

The raw SEC route is free and needs no key, just a User-Agent header. We walked through that header in the guide to the SEC EDGAR API key, and 13F works the same way.

The friction is the CIK. Most fund managers are private, so they have no ticker to look them up by. You find them by name in EDGAR, grab the CIK once, and reuse it every quarter.

How do you pull a fund's 13F filings by ticker?

If the manager is itself a public company, you can skip the CIK hunt and use a ticker. Berkshire Hathaway is the obvious one. Call Edgrapi's filings endpoint with form 13F-HR and you get Berkshire's 13F filings back with direct links to the holdings document on SEC.gov.

import requests

r = requests.get(
    "https://api.edgrapi.com/v1/filings/BRK-B",
    headers={"Authorization": "Bearer edgr_your_key"},
    params={"form": "13F-HR"},
)
for f in r.json()["filings"]:
    print(f["filed"], f["period"], f["url"])

That gives you the filing and the link to its information table. You still parse the XML at that link to get the rows, but you skipped the lookup.

This trick only works for managers that trade as a stock, which is a short list. For a private hedge fund, go by CIK on the raw route above. The main SEC EDGAR API guide covers the filings endpoint and the rest in more depth.

How do you turn 13F holdings into analysis?

A 13F tells you what a fund owns, not whether any of it is worth owning. The fix is enrichment: take each holding's CUSIP, convert it to a ticker, and pull fundamentals and ratios for the underlying company. With Edgrapi that is /v1/fundamentals and /v1/ratios, so you can rank a fund's book by margins, growth, and valuation instead of position size alone.

Convert a holding's CUSIP to a ticker, then pull fundamentals and ratios from Edgrapi to turn positions into analysis
A list of stocks becomes analysis once you join it to company fundamentals.

Here is the move in practice. Buffett owns Apple, so once the CUSIP resolves to AAPL you pull its ratios:

r = requests.get(
    "https://api.edgrapi.com/v1/ratios/AAPL",
    headers={"Authorization": "Bearer edgr_your_key"},
)
print(r.json())   # margins, ROE, ROA, debt-to-equity, growth

Do that for every name in the book and a flat list of positions turns into a ranked table. Which holdings actually have the margins. Which are cheap. Which are just big.

The free tier is 100 requests with no card, which covers a full fund's holdings in one pass.

What are the limits of 13F data?

Two limits decide how much you can trust a 13F. The 45-day filing lag means a position opened early in a quarter can be about 135 days old by the time it is public. And 13F is long-only: it leaves out short positions, most derivatives, non-US holdings, and cash, so what you see is a partial book.

A 13F can be filed 45 days after quarter-end, so early positions are about 135 days stale, and it excludes shorts, non-US holdings, and cash
Delayed and long-only. Read 13F for positioning trends, not timing.

That lag is not a small thing.

The 45-day window has stood since 1979, and the Society for Corporate Governance, NIRI, and the NYSE petitioned the SEC in 2024 to cut it to five business days. Until that changes, treat 13F as a map of where money sat last quarter, not where it is now.

So use it for what it is good at: spotting which names funds are crowding into, generating ideas, and watching positioning shift over several quarters. Do not use it to time a trade.

Raw EDGAR, a data vendor, or enrichment: which should you use?

Pick by how much parsing you want to own. The raw SEC route is free but you parse the XML yourself. A 13F data vendor sells pre-parsed holdings with history. Edgrapi sits in the middle: it lists filings for managers that have a ticker, and it gives you the fundamentals to make any holdings list mean something.

Raw SEC EDGAR13F data vendorEdgrapi
CostFreePaidFree tier, then paid
Holdings tableYou parse the XMLPre-parsedLinked (you parse the XML)
Manager coverageAll, by CIKAllManagers with a ticker
Fundamentals to enrichNoSometimesYes (fundamentals + ratios)
Best forDIY pipelinesTurnkey holdings historyJoining holdings to company quality

If you are building a serious holdings database across thousands of funds, a vendor or your own EDGAR pipeline wins. If you want to read one fund and judge what it owns, the raw filing plus Edgrapi fundamentals gets you there for free.

Start: read one fund's book

Pick a fund you actually follow. Pull its latest 13F-HR, parse the information table, and you have its long positions with values and share counts.

Then enrich it. Resolve a few CUSIPs to tickers, grab a free Edgrapi key, and pull ratios for those names. In one sitting you go from a raw list of holdings to a view of which ones are any good. Point it at https://api.edgrapi.com and start with the fund's biggest position.

Frequently asked questions

What is an SEC 13F filing?

A 13F is a quarterly report that institutional investment managers with over $100 million in US-listed securities must file with the SEC. It lists their long positions: each holding's issuer, CUSIP, market value, and share count. Managers file it within 45 days of each quarter's end, under Section 13(f), so it is a delayed, long-only snapshot of where big money sits.

Who has to file a 13F?

Any institutional investment manager with discretion over more than $100 million in Section 13(f) securities, mostly US-listed stocks and options. That sweeps in hedge funds, mutual funds, pensions, banks, and registered advisers. The SEC estimates over 5,000 managers file each quarter. Once you cross the threshold you keep filing for the next year even if your assets drop back below it.

How do I get 13F filing data from SEC EDGAR?

Find the manager's CIK, list its 13F-HR filings, then fetch the information table XML and parse the rows. The SEC has required XML for 13F since 2013 Q2, so the holdings come as structured data, not free text. For many managers at once, the SEC's quarterly full-index lists every 13F-HR by CIK and accession number, which you can loop over.

What information is in a 13F filing?

The information table reports one row per holding with seven fields: issuer name, title of class, CUSIP, market value in thousands of dollars, share or principal amount, investment discretion, and voting authority. The cover and summary pages add the manager's name, CIK, period, and totals. Value is always in thousands, so a reported 1,743,219 means about 1.74 billion dollars.

What are the limitations of 13F data?

Two big ones. The 45-day filing lag means a position opened early in the quarter can be roughly 135 days old before you see it. And 13F is long-only: it excludes short positions, most derivatives, non-US holdings, and cash, so it is a partial view. The 45-day window has stood since 1979, and industry groups have asked the SEC to shorten it to five business days.

Can I get a hedge fund's 13F holdings by ticker?

Only if the manager is itself a public company with a ticker, like Berkshire Hathaway. Then Edgrapi's /v1/filings/BRK-B?form=13F-HR returns its 13F filings with direct SEC document links. Most fund managers have no ticker, so you reach them by CIK on the raw SEC route. Where Edgrapi helps every case is enrichment: turn a holding's CUSIP into a ticker and pull fundamentals and ratios.

Get a free API key