SEC EDGAR API: free company filings and financials

What is the SEC EDGAR API?

The SEC EDGAR API is the free machine-readable interface to the US Securities and Exchange Commission's filing system, covering roughly 800,000 filing entities with no API key and no signup. Every public company, fund, and large private issuer files here — 10-K annual reports, 10-Q quarterlies, 8-K events, and Form D private placements. In our data, EDGAR is one of only two federal-level free company sources in the US (the other being state registries, which stop at incorporation records). Three endpoints cover the whole workflow:

How do you find a company's CIK number?

A CIK (Central Index Key) is the 10-digit identifier EDGAR assigns every filer, and resolving it is step one of any EDGAR workflow. The full-text search endpoint at efts.sec.gov accepts a plain company name and returns matching entities with their CIK, filing form, and date. We tested both endpoints on 2026-07-24; the resolve-then-fetch pattern:

# 1. Name → CIK
curl "https://efts.sec.gov/LATEST/search-index?q=%22Stripe%22&forms=D"
# 2. CIK → issuer profile + recent filings
curl -H "User-Agent: your-name research you@example.com" \
  "https://data.sec.gov/submissions/CIK0000320193.json"

The same two calls in Python, since the response is plain JSON either way:

import requests

UA = {"User-Agent": "your-name research you@example.com"}
hits = requests.get("https://efts.sec.gov/LATEST/search-index",
                    params={"q": '"Stripe"', "forms": "D"}, headers=UA).json()
profile = requests.get("https://data.sec.gov/submissions/CIK0000320193.json",
                       headers=UA).json()

One gotcha, according to the SEC's fair-access policy: every request must send a descriptive User-Agent header with contact information, and traffic above 10 requests per second gets throttled. No header — no data.

What financial data does XBRL companyfacts return?

The companyfacts endpoint returns all reported facts for an issuer as structured XBRL: revenue, net income, assets, share counts — every line item from every filing, tagged by accounting concept and period. In our data, this is the only free source of normalized US financials; commercial data vendors largely resell repackaged versions of these same facts. What one JSON response contains:

The practical limit is coverage, not depth: XBRL facts exist only for SEC filers, so private companies without public debt or Form D activity stay invisible.

Can you track private companies through EDGAR?

Partially — through Form D, and that is the honest limit of the free route. A Form D is the notice a private company files within 15 days of raising an exempt round; according to SEC rules it discloses the amount raised, the date, and the issuer's industry group, but not investor names — the full search workflow is in the SEC Form D guide. In our data, Form D works as a funding signal for sector-level opportunity scanning rather than company-level financials: you learn that a company raised, when, and roughly in what sector. For the remaining private-company picture, the free stack joins EDGAR with state registries — 10,137,727 official records across the 4 open Socrata states — and the UK Companies House register for cross-border ownership chains.


Test page. Endpoints as probed on 2026-07-24 via the Aidenix Atlas catalog. Not yet editorially reviewed.

Need this at scale? The Aidenix Atlas catalog maps verified data sources with runnable recipes — see the live MCP demo or start free.
Find these guides useful? Add Aidenix as a preferred source on Google — our pages will surface in your AI Overviews.