SEC EDGAR API for 8-K filings: track material events by ticker (2026)
The 10-K tells you how a company did last year. The 10-Q, last quarter. But when a company lands a big acquisition, loses its CFO, or gets breached, it doesn't wait for the next quarter to say so.
It files an 8-K. Within four business days.
That makes the 8-K the fastest signal SEC EDGAR carries, and it's the one most people building alerts, dashboards, or research tools actually want. The SEC EDGAR API returns every 8-K for a ticker as clean JSON, each with the filing date and a link straight to the document, so you can list them, monitor them, and jump to the source.
GET /v1/filings/{ticker}?form=8-K, each with the filing date, accession number, and a direct SEC.gov link. It gives you the filing record and the link, not the parsed item text.What is an 8-K filing?
An 8-K is a public company's "current report," the filing it uses to tell the market about a material event between its scheduled reports. Per the SEC's guide to reading an 8-K, companies must file most 8-Ks within four business days of the event, and sometimes sooner.
The word that matters is "material." An 8-K isn't a routine update. It's the stuff a reasonable investor would want to know right away.
Earnings. A merger. A CEO stepping down. A bankruptcy. A cybersecurity breach. Each of those is an 8-K, and each lands days after it happens, not at the end of the quarter.
What does an 8-K actually report?
An 8-K is organized into nine broad sections and roughly 33 numbered item codes, and the item is what tells you what happened. One 8-K can carry more than one item, but most carry just one. By far the most common is Item 2.02, results of operations, which is how nearly every public company delivers its quarterly earnings release.
Here are the item codes you'll see most, and what each one means.
| Item | Event | What it usually means |
|---|---|---|
2.02 | Results of Operations | The quarterly earnings release, attached as an exhibit |
1.01 | Material Definitive Agreement | A significant contract, partnership, or financing |
2.01 | Completion of Acquisition | A merger or asset sale closed |
5.02 | Director / Officer Change | An executive or board member joined or left |
1.05 | Material Cybersecurity Incident | A breach the company judges material (a 2023 rule) |
8.01 | Other Events | A catch-all for anything else the company deems important |
The full catalog runs from legal proceedings to Regulation FD disclosures (Item 7.01) to shareholder vote results (Item 5.07). But if you learn 2.02, 5.02, and 8.01, you've covered most of what actually moves.
Why is an 8-K faster than a 10-K or 10-Q?
Because it isn't on a schedule. A 10-K arrives once a year and a 10-Q once a quarter, on fixed deadlines tied to the fiscal calendar. An 8-K is triggered by an event, and the four-business-day clock starts the moment that event happens, so the news reaches EDGAR months before it would show up in the next periodic report.
This is why the 8-K is the filing type that matters for anything time-sensitive. If you're building an alerting tool, a news feed, or an event-driven trading signal, the 8-K is your raw material.
The 10-K is still the deep record, and we cover pulling it in the Form 10-K guide. The 10-Q covers the quarter, in the 10-Q guide. The 8-K is the part that can't wait.
How do you get a company's 8-K filings from the API?
You call the filings endpoint with the form set to 8-K. With Edgrapi that's GET /v1/filings/{ticker}?form=8-K, your key in the X-API-Key header, and you get back each 8-K as JSON with its filing date, accession number, and a direct link to the document on SEC.gov.
import requests
r = requests.get(
"https://api.edgrapi.com/v1/filings/AAPL",
headers={"X-API-Key": "edgr_your_key"},
params={"form": "8-K", "limit": 5},
)
for f in r.json()["filings"]:
print(f["filed"], f["url"])
# 2026-02-01 https://www.sec.gov/Archives/edgar/data/320193/...
# 2026-01-30 https://www.sec.gov/Archives/edgar/data/320193/...
Drop the form parameter and you get every filing type for the company; set it to 10-K, 10-Q, or 13F and you get those instead. The limit caps how many come back.
How do you monitor a company for new 8-Ks?
You poll the endpoint on a schedule and watch the newest accession number. Ask for the latest 8-K with ?form=8-K&limit=1, compare its accession to the last one you stored, and if it changed, a new 8-K just posted. The record is small and cheap to fetch, so a monitor is really just a loop and a comparison.
import requests, time
seen = None
while True:
latest = requests.get(
"https://api.edgrapi.com/v1/filings/AAPL",
headers={"X-API-Key": "edgr_your_key"},
params={"form": "8-K", "limit": 1},
).json()["filings"][0]
if latest["accession"] != seen:
seen = latest["accession"]
notify(latest["url"]) # a new 8-K just posted
time.sleep(300)
For an AI agent, the same call is a tool: Edgrapi runs a hosted MCP server, so a Claude or ChatGPT agent can check a company's latest 8-K mid-conversation. The agents guide covers that setup.
What the API returns, and what it doesn't
It returns the 8-K record, not the parsed item body. You get the form, the filing date, the accession number, and a link to the document, which is exactly what you need to list, dedupe, and monitor filings. It does not extract Item 2.02's earnings numbers or Item 5.02's text into structured fields, so for the content itself you follow the link.
That's an honest line worth drawing. The filings endpoint is built to be the index and the pointer. If you want the numbers, that's the fundamentals endpoint; if you want 10-K narrative text like Risk Factors, that's sections. For 8-Ks, you get the fast, reliable record and the link to the source.
Start with one ticker's 8-Ks
Grab a free key, call /v1/filings with form=8-K on a company you follow, and read the last few things that happened to it.
The free tier is 100 credits a month, no card, which is plenty to list 8-Ks across a watchlist or wire up a monitor. Point it at https://api.edgrapi.com and pull your first 8-K record. The full endpoint is in the docs, and the complete SEC EDGAR API guide ties the filing types together.
Frequently asked questions
What is an 8-K filing?
An 8-K is a public company's current report to the SEC. It discloses a material event, something a reasonable investor would want to know, within four business days of it happening. Unlike the 10-K (annual) and 10-Q (quarterly), it's event-driven: earnings, acquisitions, executive changes, bankruptcies, and cybersecurity incidents all arrive as 8-Ks.
How do I get 8-K filings from an API?
Call GET /v1/filings/{ticker}?form=8-K. Edgrapi returns each 8-K for that company as JSON: the form, the filing date, the accession number, and a direct link to the document on SEC.gov. Add a limit to cap how many you get. The free tier is 100 credits a month, no card.
What is the difference between an 8-K and a 10-K?
A 10-K is the annual report, filed once a year on a schedule, with full audited financials. An 8-K is a current report, filed within four business days whenever a specific material event happens. The 10-K is the deep record; the 8-K is the fast signal that something changed.
What do the 8-K item numbers mean?
Each 8-K lists one or more numbered items that say what happened. Item 2.02 is results of operations (the earnings release), 5.02 is a director or officer change, 1.01 is a material agreement, 1.05 is a material cybersecurity incident, 7.01 is a Regulation FD disclosure, and 8.01 is a catch-all for other events.
How fast is an 8-K filed after the event?
Within four business days of the triggering event, per SEC rules, and sometimes sooner. That deadline is why the 8-K is the fastest disclosure EDGAR carries, landing months ahead of the next quarterly or annual report.
Can I monitor a company for new 8-Ks?
Yes. Poll GET /v1/filings/{ticker}?form=8-K&limit=1 on a schedule and compare the newest accession number to the last one you stored. If it changed, a new 8-K posted, and you follow its url for the content. The record is small, so polling is cheap.