SEC Filings Explained for Developers: 10-K, 10-Q, 8-K, Form 4, 13F

Thesma ·
edgar sec-filings reference 10-k 10-q 8-k form-4 13f

SEC EDGAR has over a hundred distinct filing types. Most of them you will never need. If you are building a product on US public company data, there are really only six filings that matter, and this post is a short reference to each of them — what they are, what’s inside, who files them, how often, and how to get the data.

Think of this as the cheat sheet you wish someone had given you before you started reading the SEC’s own documentation.

The cast

FilingWhat it isWho filesHow often
10-KAnnual report with full audited financialsUS public companiesOnce per year
10-QQuarterly report with unaudited financialsUS public companiesThree times per year (the fourth quarter is covered by the 10-K)
8-KMaterial event disclosureUS public companiesOn demand, whenever something important happens
Form 4Insider transaction (buy, sell, grant)Officers, directors, and 10%+ shareholdersWithin two business days of the trade
13FInstitutional holdings reportInvestment managers with >$100M AUMQuarterly, within 45 days of quarter end
DEF 14AProxy statement (exec comp, board, shareholder votes)US public companiesOnce per year, ahead of the annual meeting

Now the detail.

10-K — the annual report

The 10-K is the definitive annual document for a US public company. It contains audited financial statements (income statement, balance sheet, cash flow), a business overview, a description of risk factors, management’s discussion and analysis (MD&A), and executive disclosures. If there is one filing you should know, it is this one.

What’s inside that you probably want:

  • Revenue, cost of revenue, gross profit, operating income, net income, EPS
  • Total assets, total liabilities, equity
  • Cash flow from operations, capital expenditures, financing activities
  • The full risk factors section (Item 1A) — text-mineable gold
  • Segment data, geographic breakdowns, and customer concentration

Filing cadence: annually, 60 to 90 days after fiscal year end depending on company size.

How to get it with Thesma:

curl https://api.thesma.dev/v1/us/sec/companies/0000320193/financials \
  -H "X-API-Key: $THESMA_API_KEY" \
  -G --data-urlencode "statement=income" \
     --data-urlencode "period=annual"

You get back a clean JSON object with normalised financial line items across every company — no XBRL wrangling required. Swap statement for balance-sheet or cash-flow to fetch the other two statements. (CIK 0000320193 is Apple. If you only know the ticker, GET /v1/us/sec/companies?ticker=AAPL turns a ticker into a CIK.)

10-Q — the quarterly report

The 10-Q is the unaudited quarterly cousin of the 10-K. It has similar structure — income statement, balance sheet, cash flow, MD&A — but is lighter, faster, and is not audited. There is no Q4 10-Q because the fourth quarter is covered by the annual 10-K.

What’s inside that you probably want:

  • Quarterly revenue and earnings
  • Quarter-over-quarter balance sheet changes
  • Updated guidance or changes in outlook (often tucked into MD&A)
  • Early warning of issues that will show up more formally in the 10-K

Filing cadence: quarterly, 40 to 45 days after quarter end.

How to get it with Thesma: same endpoint as the 10-K, with period=quarterly and optionally a quarter=1..4 and year=2025 filter.

8-K — the material event filing

The 8-K is how public companies report things that happen between scheduled filings. Earnings releases, acquisitions, executive departures, board changes, material contracts, bankruptcy, shareholder votes, changes in accountant — anything the SEC considers material. Each 8-K has one or more “items” that tell you the category of event (Item 2.02 is earnings, Item 5.02 is officer changes, Item 8.01 is “other events”).

What’s inside that you probably want:

  • Real-time notification of earnings releases and press releases
  • Executive departures and appointments (Item 5.02)
  • Mergers and acquisitions (Item 2.01)
  • Material contracts, bankruptcies, auditor changes
  • Shareholder vote results (Item 5.07)

The hard part: the item type tells you the category, but the content of each item is unstructured prose. Extracting “name of departing executive” or “amount of the acquisition” requires parsing lawyer-written English. Thesma does this parsing so you can query structured event data directly.

Filing cadence: on demand. Most 8-Ks are filed within four business days of the underlying event.

How to get it with Thesma:

curl https://api.thesma.dev/v1/us/sec/companies/0000320193/events \
  -H "X-API-Key: $THESMA_API_KEY" \
  -G --data-urlencode "category=earnings"

Event categories: earnings, ma, leadership, agreements, governance, accounting, distress, regulatory, other. You can also filter by the raw 8-K item code with item=2.02, or fetch events across all companies at /v1/us/sec/events.

Form 4 — insider transactions

Form 4 is filed by company insiders — officers, directors, and anyone owning more than 10% of the company’s stock — whenever they buy or sell the company’s shares, receive equity grants, or exercise options. The filing is required within two business days of the transaction, which makes it one of the freshest signals in the entire filing ecosystem.

What’s inside that you probably want:

  • Who traded (name, role, insider relationship)
  • What they traded (shares, options, derivatives)
  • How many, at what price, on what date
  • Whether it was a direct or indirect holding
  • Whether the trade was part of a 10b5-1 plan (pre-arranged)

What developers build with it: insider trading alert systems, quant signals, “unusual activity” dashboards, and governance research tools.

Filing cadence: within two business days of the transaction.

How to get it with Thesma:

curl https://api.thesma.dev/v1/us/sec/companies/0000320193/insider-trades \
  -H "X-API-Key: $THESMA_API_KEY"

Filter by transaction type with type=purchase|sale|grant|exercise, by person with person=..., or by date range with from and to. For a firehose across all companies, use /v1/us/sec/insider-trades.

13F — institutional holdings

13F filings come from investment managers with more than $100 million under management. Each quarter, they disclose their long equity positions — what they own, how many shares, and the market value at quarter end. It is the only legally mandated window into what hedge funds, asset managers, and pension funds are holding.

A few important caveats:

  • 13Fs are filed up to 45 days after quarter end, so by the time you see them, the data is at least six weeks old.
  • They only cover long positions in US-listed equities. Shorts, cash, bonds, and international holdings are not disclosed.
  • Some managers get confidential treatment and delay disclosure by up to a year.
  • Identifying “the manager” is trickier than it sounds — a single parent company can file multiple 13Fs through different subsidiaries.

What developers build with it: hedge fund trackers, institutional ownership screeners, “smart money” dashboards, and quarter-over-quarter flow analysis.

Filing cadence: quarterly, within 45 days of quarter end.

How to get it with Thesma:

# Step 1: find the fund's CIK (once, then cache it)
curl https://api.thesma.dev/v1/us/sec/funds \
  -H "X-API-Key: $THESMA_API_KEY" \
  -G --data-urlencode "search=Berkshire"

# Step 2: fetch the holdings for a quarter
curl https://api.thesma.dev/v1/us/sec/funds/0001067983/holdings \
  -H "X-API-Key: $THESMA_API_KEY" \
  -G --data-urlencode "quarter=2025-Q3"

CIK 0001067983 is Berkshire Hathaway Inc. The quarter format is YYYY-Qn. For quarter-over-quarter flows (new positions, exits, increases, decreases), use /v1/us/sec/funds/{cik}/holding-changes.

DEF 14A — the proxy statement

The DEF 14A (definitive proxy statement) is filed once a year ahead of a company’s annual shareholder meeting. It is where you find the things that are not in the 10-K: detailed executive compensation, board member biographies, the CEO pay ratio, shareholder voting matters, and related-party transactions.

What’s inside that you probably want:

  • Named executive officer compensation (base, bonus, stock, options, total)
  • CEO pay ratio (CEO total comp divided by median employee comp)
  • Board member names, ages, tenure, independence status, and committee memberships
  • Shareholder proposals and board recommendations
  • Auditor changes and auditor fees

Filing cadence: annually, in the weeks before the annual meeting.

How to get it with Thesma:

curl https://api.thesma.dev/v1/us/sec/companies/0000320193/executive-compensation \
  -H "X-API-Key: $THESMA_API_KEY" \
  -G --data-urlencode "year=2025"

Omit year to get the most recent fiscal year available. Board members are a separate endpoint: /v1/us/sec/companies/{cik}/board.

A note on what’s not here

Three filing types come up often enough to mention but are outside the current Thesma core:

  • S-1 — the IPO registration statement. Filed once per company, when a private company goes public. We do not currently cover S-1s.
  • 20-F — the annual report equivalent filed by foreign private issuers (companies with primary listings outside the US). Roughly 1% of our target universe files 20-F instead of 10-K. We are tracking this as a backlog item.
  • 6-K — the 8-K equivalent for foreign private issuers. Same reasoning.

If you need these today, you will be going direct to EDGAR.

Putting it together

Once you know which filing type contains which data, SEC EDGAR gets a lot less mysterious. The hard parts become (1) getting the filings, (2) parsing them, and (3) normalising the data across thousands of companies and decades of filings. Thesma handles all three so you can get to the interesting part — whatever you are actually building — in a single API call per filing type.

If you’d rather see a practical three-line tutorial first, start with Get 10-K Financial Data in 3 Lines of Code and come back to this cheat sheet when you want to know which filing type has the data you need.

The free tier includes every endpoint mentioned in this post. Grab a key or browse the docs — the next post you read might be the last one you need before your first deploy.