SEC EDGAR API for 13D and 13G: activist stakes data
When an investor crosses 5% of a company's voting stock, the clock starts. Within a few days they have to tell the SEC, and everyone else, that they are there.
That disclosure is a Schedule 13D or a Schedule 13G. The difference between the two is the difference between "I might come after your board" and "I'm just holding."
This is how to pull both from the SEC EDGAR API, why the data only became clean to parse in late 2024, and the one field most people read wrong.
A Schedule 13D or 13G is the SEC filing anyone must submit after acquiring beneficial ownership of more than 5% of a public company's voting class. A 13D is the activist version, filed when the holder might push for change and required within 5 business days. A 13G is the passive short form for investors with no intent to influence control. Both name the issuer, the CUSIP, the reporting person, and the exact percent of class held.
What is a Schedule 13D filing?
A Schedule 13D is the disclosure an investor files after crossing 5% of a company's voting stock with any intent to influence control. It runs through seven items, and Item 4, "purpose of transaction," is where the activist plan lives: a board seat, a sale, a strategy change. Under the SEC's 2023 amendments the initial 13D is due within 5 business days of crossing the threshold, down from 10 calendar days.
The 5% line comes from Section 13(d) of the Securities Exchange Act of 1934. Cross it, and passivity is no longer assumed. You have to say who you are, how much you own, how you paid for it, and what you plan to do.
Item 4 is the one traders read first. A hedge fund that just took 8% and writes that it intends to "engage with management regarding capital allocation" is telling you a proxy fight might be coming.
Amendments matter as much as the first filing. Any material change, and a 13D amendment is due within 2 business days, per the 2023 rule changes. A stake going from 8% to 12% is a new data point that lands almost immediately.
13D vs 13G: which one signals an activist?
The 13D is the activist filing and the 13G is the passive one. A holder files 13D when they might influence control, so it carries the Item 4 purpose statement and a tighter deadline. A 13G is the short form for investors who cross 5% with no such intent, mostly index funds, long-only managers, and passive institutions. If you only have time to watch one, watch new 13Ds.
Here is the split that actually matters when you build against the data.
| Schedule 13D | Schedule 13G | |
|---|---|---|
| Who files | Holders who may seek to influence control | Passive holders, qualified institutions, exempt investors |
| Signal | Activist. Something might happen. | Ownership. Big, but quiet. |
| Purpose statement | Yes, Item 4 | No |
| Initial deadline | 5 business days | 5 business days (since Sept 2024) |
| Amendment trigger | Any material change, 2 business days | Quarterly or on threshold moves |
| What to do with it | Read Item 4, watch for a proxy fight | Note the holder, move on |
A holder can also switch. An investor who filed 13G as passive, then decides to get involved, has to flip to a 13D. That switch is itself a signal.
How do you get 13D and 13G data from the SEC EDGAR API?
Pull 13D and 13G filings from SEC EDGAR by reading the real-time filing feed for form types starting with "SC," then parsing each filing's structured primary document. Every recent filing ships as machine-readable XML, so the issuer, CUSIP, reporting person, and percent of class come out as fields, not prose. Edgrapi does that parse for you and returns clean JSON from one endpoint.
On the raw SEC route, you watch the EDGAR current-events feed filtered to the "SC" form prefix, which catches 13D, 13G, and their amendments. Each entry links to a filing folder that holds a primary_doc.xml. You fetch it, strip the namespace, and read the cover and reporting-person blocks.
With Edgrapi it is one call. The market-wide feed of new stakes:
curl -H "X-API-Key: edgr_your_key" \
"https://api.edgrapi.com/v1/activist/latest?activist_only=true"
{
"scope": "market-wide Schedule 13D/13G filings (>5% ownership)",
"count": 24,
"filings": [
{
"form": "13D/A",
"is_activist": true,
"issuer": "Gossamer Bio, Inc.",
"cusip": "38341G102",
"top_percent": 7.1,
"filers": [
{ "name": "D. E. Shaw Valence Portfolios, L.L.C.",
"percent": 7.1, "type": "IA" }
],
"filed_url": "https://www.sec.gov/..."
}
]
}
Pass a ticker instead of latest to see the stakes filed on one company. The feed is public to browse too, no key needed, on the 5% radar.
Why 13D/13G data used to be a nightmare to parse
For decades, 13D and 13G filings were free text. The numbers you wanted, percent of class, shares held, the purpose statement, sat inside prose and HTML tables that every filer laid out differently. That changed on December 18, 2024, when the SEC's structured-data mandate took effect and required these schedules to be filed in machine-readable XML.
Before the mandate, pulling a clean percent-of-class number meant writing a scraper per filer and babysitting it. Miss a table layout and you booked a wrong number.
Now the same data arrives tagged. The XML mandate covers the cover page, the reporting-person tables, and the checkboxes. Only the exhibits stay unstructured.
This is the quiet reason a real-time 13D feed is even practical in 2026. The filings finally come as data. If you tried this in 2021, you were parsing HTML and hoping.
The one field most people read wrong
The number to trust is percent of class, and the trap is joint filers. A single 13D often lists several reporting persons, a fund, its adviser, its principal, who all report the same shares. Add their percentages and you triple-count a position that is really one stake. You take the aggregate for the group, not the sum of the rows.
This is the same shape of bug that bites people in 13F data, where one holding is split across sub-managers. In beneficial-ownership filings, the joint-filer group is the unit. The cover page reports the group's aggregate, and each person's block repeats it.
The second thing people miss: the value is percent of a class, not of the company. A 7% stake in a thinly held class can be a small dollar figure. Read the class title next to the CUSIP.
Edgrapi returns top_percent as the largest single reporting-person figure and lists every filer, so you never have to guess whether 7.1 plus 7.1 means 14 or means 7.
What a fresh 13D tells you, and what it doesn't
A new 13D tells you an investor crossed 5% and is willing to be public about wanting a say. It does not tell you they will win, or that anything will happen soon. The filing is a starting gun, not a result. Item 4 states intent, and intent is cheap; the follow-through shows up in later amendments, proxy filings, and 8-Ks.
Treat the first 13D as a lead, not a conclusion. The pattern worth watching is the sequence: a 13D, then amendments raising the stake, then an 8-K about a board change. That arc is the story, not any single filing.
To catch the arc, you want the material events next to the stake. Edgrapi's 8-K events and the insider cluster buys page cover the two other signals that tend to travel with an activist campaign.
And the obvious limit: this is US-listed equity only, above 5%. A fund quietly holding 4.9% is invisible here by design.
Track new >5% stakes as they file
The highest-signal way to use this data is a live feed of new 13D filings, read the moment they hit EDGAR. A fresh activist stake in a company you follow is the kind of event that moves a stock before most people have read the document. Edgrapi's activist endpoint accumulates each filing as it lands, so you can poll for new stakes or filter to a single ticker.
You can wire it two ways. Poll /v1/activist/latest on a schedule and diff against what you have seen. Or watch a specific ticker with /v1/activist/TICKER and alert when the count changes.
Grab a free key, which comes with 100 credits a month, and the activist endpoint costs 5 credits a call. The radar page shows the same data live if you want to see it before writing any code. If you also track what those funds hold, pair it with 13F holdings.
Frequently asked questions
What is the difference between a 13D and a 13G?
A 13D is the activist filing and a 13G is the passive one. Both disclose ownership above 5% of a company's voting class, but a 13D is filed when the holder might seek to influence control, so it carries an Item 4 purpose statement. A 13G is the short form for passive investors, index funds, and qualified institutions with no such intent.
How many days do you have to file a Schedule 13D?
Five business days from crossing 5% beneficial ownership, under the SEC's 2023 amendments that took effect February 2024. The old window was 10 calendar days. Any material change to the stake then requires a 13D amendment within 2 business days, so a position moving from 8% to 12% shows up almost immediately.
Does a 13D filing mean an activist is coming?
It means an investor crossed 5% and is willing to be public about wanting a say. It does not guarantee action. Item 4 states intent, and intent is cheap. The real signal is the sequence: a 13D, then amendments raising the stake, then an 8-K about a board change. Treat the first filing as a lead, not a conclusion.
How do I get 13D and 13G filings from the SEC EDGAR API?
Read the EDGAR real-time feed for form types starting with 'SC', then parse each filing's structured primary document. Since December 2024 these arrive as machine-readable XML, so the issuer, CUSIP, reporting person, and percent of class come as fields. Edgrapi's /v1/activist/latest endpoint does that parse and returns clean JSON.
What does percent of class mean on a 13D?
It is the reporting person's beneficial ownership as a share of that class of stock, not of the whole company. Watch for joint filers: one 13D often lists a fund, its adviser, and its principal all reporting the same shares. Take the group aggregate, not the sum of the rows, or you triple-count a single stake.
Are 13D and 13G filings machine readable?
Yes, since December 18, 2024. The SEC's structured-data mandate requires the cover page, reporting-person tables, and checkboxes on Schedules 13D and 13G to be filed in XML. Only the exhibits stay unstructured. Before the mandate these were free text and HTML, which is why a reliable real-time feed of 5% stakes only became practical in 2026.