The SEC EDGAR API: Free Fundamental Data for Developers
Before you pay for a fundamentals API, know that the SEC gives away structured financial-statement data through EDGAR. Here's what the API offers, its quirks, and how to actually use it.
There’s a reflex among developers building finance tools to immediately shop for a fundamentals API and start paying a monthly fee. Sometimes that’s right. But for US-listed companies, the most authoritative source of fundamental data is free and comes straight from the regulator: the SEC’s EDGAR system, which exposes a public JSON API over the same data every filing is built from. This is a practical guide to what it offers and where it’ll trip you up. None of this is investment advice.
What EDGAR actually gives you
EDGAR is the SEC’s electronic filing system, and in recent years the SEC has put clean JSON endpoints in front of it. The two you’ll use most return a company’s submission history (every filing, with type and date) and its XBRL “company facts” — the structured financial data points pulled from filings, like revenue, net income, assets, and shares outstanding, with their reporting periods.
Because this data is sourced from the filings themselves, it’s authoritative in a way that aggregated third-party feeds aren’t. When a vendor’s number disagrees with EDGAR, EDGAR is the reference. For valuation models, screeners, and any tool where being wrong about reported financials is unacceptable, that matters.
The quirks you’ll hit
EDGAR is free and authoritative, but it was built for regulatory disclosure, not for quants, and it shows.
XBRL tags are inconsistent across companies. The same economic concept can be reported under different tags, and companies use custom extension tags. “Revenue” might appear as Revenues, RevenueFromContractWithCustomerExcludingAssessedTax, or a company-specific variant. You can’t assume one tag works everywhere — you’ll write fallback logic that checks several tags per concept.
It’s company-by-company. There’s no single endpoint that returns “every company’s revenue for Q3.” You query one CIK at a time and assemble universes yourself, which means caching and batch jobs if you want broad coverage.
You must send a User-Agent header. The SEC requires requests to identify you (typically a contact email) and enforces a fair-access rate limit. Hammer it without a proper header and you’ll get blocked. This catches everyone once.
A sane way to use it
The pattern that works: download and cache the ticker-to-CIK map once, then for each company you care about, pull its company-facts JSON and extract the concepts you need with a tag-fallback dictionary. Store the results in your own database keyed by CIK, concept, and period. Refresh on a schedule that matches filing cadence — quarterly and annual reports don’t change daily.
Treat EDGAR as your source of truth for reported fundamentals and layer faster, more convenient APIs on top only where you need coverage EDGAR doesn’t provide easily — like real-time prices, which EDGAR doesn’t do at all. EDGAR is for what companies reported, not for what they’re trading at right now.
For a developer building a stock screener, a valuation dashboard, or a research notebook on US issuers, starting with EDGAR means your foundational data is free, authoritative, and never gated behind a vendor’s pricing change. The cost is the engineering to tame XBRL. For a lot of projects, that’s a trade worth making.
FAQ
Is the EDGAR API really free?
Does it cover non-US companies?
Why not just use a paid fundamentals API?
Before your next finance project signs up for a fundamentals subscription, spend an afternoon with EDGAR. For US companies, the regulator already gives away the most trustworthy version of the data — you just have to do a little work to read it.
Related reading
2026-06-22
Position Sizing and Risk per Trade: The Math Retail Investors Skip in 2026
How to size a trade from risk instead of conviction: the fixed-fractional formula, fractional Kelly, R-multiples, and the drawdown math that decides whether a losing streak is survivable.
2026-06-22
Dollar-Cost Averaging vs Lump Sum: What the Math Really Says
A measured look at why lump-sum investing usually beats dollar-cost averaging on expected return, when DCA still makes sense, and how to decide for your own cash.
2026-06-22
What the Sharpe Ratio Actually Tells You (and Where It Misleads)
The Sharpe ratio measures excess return per unit of volatility. Here is exactly what the number captures, the four assumptions that break it, and when to trust it.
2026-06-22
Tiingo vs Polygon.io: Market Data APIs for Indie Quant Projects in 2026
A practical comparison of Tiingo and Polygon.io for solo quant builders in 2026 — pricing, rate limits, data coverage, and which one fits a weekend backtester.
2026-06-22
Building a Portfolio Rebalancing Script in Python: From Drift to Trades
A practical walkthrough of writing a Python rebalancing script: measuring allocation drift, generating a self-funding trade list, and using threshold bands to avoid over-trading.
Get the best tools, weekly
One email every Friday. No spam, unsubscribe anytime.