SEC EDGAR filings, structured and delivered

EDGAR holds every filing every US public company has made since the early nineties, free, with no key required. The catch is that it was designed as a document archive rather than a data source. Filings are HTML of wildly varying quality, the full-text search covers only recent years, and the daily index tells you a filing exists without telling you what changed inside it. Turning that into something a model or a screen can consume is the work.

Starting at
from £1,200
Refresh
Real-time on the filing feed, or daily batch
Access
public api

What comes out of it

  • 10-K, 10-Q, and 8-K filings with item codes
  • Form 4 insider transactions with buy and sell detail
  • 13F institutional holdings by quarter
  • Normalised XBRL financials from the Company Facts API
  • Filer metadata: CIK, ticker, SIC, and fiscal year end

What makes SEC EDGAR awkward

Filing HTML has no consistent structure across filers or decades, so section extraction by markup fails immediately. Locating the risk factors or MD&A section means anchoring on heading text and handling the many ways a filer writes it. Financial statement data is better served by the Company Facts API, which returns normalised XBRL, but that only covers filers and periods where XBRL was required, so a complete history needs both paths and a rule for which wins.

Everyone builds against the daily index and then discovers the interesting signal is in Form 4 insider transactions and 8-K item codes, not the headline filings. Form 4 is XML and parses well. The 8-K item number tells you whether a filing is a leadership change or a bankruptcy, and filtering on it turns an unreadable firehose into a handful of events worth a human's attention.

The signal people are usually after

Insider transactions are the most requested and the easiest to get right, because Form 4 is XML with a defined schema. You can reliably answer who bought, how much, at what price, and whether it was an open market purchase or an option exercise. That last distinction is where naive trackers go wrong, since counting exercises as buying signals produces a stream of false positives.

The 8-K feed is the second common ask. Filtered by item code it becomes a genuine event stream: item 5.02 for officer departures, item 1.03 for bankruptcy, item 2.02 for results. Unfiltered it is hundreds of documents a day and nobody reads it.

The third is fundamentals for screening, where the Company Facts API does most of the work and the build is mostly about normalising fiscal calendars so companies with different year ends can be compared without producing nonsense.

How it is built

For live coverage, a poller watches the current filing index every few minutes, deduplicates against what it has already seen, and enqueues new accession numbers for processing. Processing fetches the document, routes it by form type to the right parser, and writes structured output. Keeping fetch and parse as separate stages means a parser bug is a reprocessing job rather than a refetch of everything.

Alerting sits on top of the structured layer with rules you define: this ticker list, these item codes, transactions above this value. Alerts go to Slack, email, or a webhook into whatever you already run.

For historical backfill, the work is a bulk walk of the archives with the same parsers, run once, checkpointed so it can be stopped and resumed. Backfill is usually the larger job and it is worth being explicit about how far back you actually need.

Scope, cost, and the honest caveats

Workflow automation starts from £1,200 for a bounded extraction of one SEC filing type to one agreed destination. Ticker coverage, scheduled alerts, historical backfill and additional filing parsers are scoped separately before a fixed quote is agreed.

The caveat worth stating early: extracting narrative sections from older filings is unreliable, and any vendor promising clean risk-factor text across thirty years of filings is describing a best case as a guarantee. I will give you a measured hit rate on a sample of your actual target filers before you commit to a fixed price.

If your use case is trading rather than research, latency becomes the design constraint and the architecture changes. Worth mentioning in your enquiry, because it changes the estimate.

Where the line is

Official public API. No terms are being worked around.

EDGAR is public domain US government data with no licence restriction on reuse. The SEC asks for a descriptive User-Agent header identifying who is making requests, and rate limits to ten requests a second. Both are trivial to honour and I honour them. The failure mode here is not legal exposure but getting a client's IP blocked by hammering the endpoint, which is why every job I build for this source is politely throttled and identifies itself properly.

MathersLabs is not affiliated with or endorsed by SEC EDGAR. Work is scoped to publicly accessible data and to compliance with applicable terms and law, and feasibility is assessed per engagement before any fixed price is agreed.

Related work

SignalSauce

250 qualified leads a month, fully automated

Built an end-to-end intelligence pipeline that ingests from 5 curated news sources twice daily, scores every announcement against a custom algorithm, and enriches the ones that pass with 21 structured data points per company.

See all work

Questions people ask first

Is your source on this list?

Tell me what data you need and where it lives. I will tell you whether it is feasible, what it would take, and whether it is worth building before you commit to anything. Working hours overlap with US Eastern and Pacific.