# How to get SEC filings as data

EDGAR hands you every US filing as JSON, free and keyless. What the XBRL endpoints hold, what they do not, and the rate limit that stops the naive loop.

*https://stockmarketstack.com/how-to/get-sec-filings-as-data · next to Fundamental Data & Stock Research Platforms*

**Answer:** EDGAR publishes every US filing as JSON, free, with no account and no API key; the ceiling is ten requests a second and a User-Agent that names you. A submissions endpoint returns a company's filing index, and three XBRL endpoints return tagged financial facts from the 10-K, 10-Q, 8-K, 20-F, 40-F and 6-K series. Form 4 and 13F are in neither, so insider and institutional data come from the raw filing XML or from quarterly flat files.

## The tools that do this

*In the order this page recommends trying them. Paid placement does not affect this order.*

1. [SEC EDGAR](https://stockmarketstack.com/tools/sec-edgar.md) — The source, free and keyless — a submissions index per company, XBRL facts, full-text search since 2001 and quarterly flat files. Ten requests a second.
2. [sec-api.io](https://stockmarketstack.com/tools/sec-api-io.md) — The same filings as queryable JSON, with section extraction and a websocket push, from $55 a month. Redistribution is Enterprise-only and unpriced.
3. [SEC EDGAR MCP](https://stockmarketstack.com/tools/sec-edgar-mcp.md) — An AGPL server handing an assistant 10-K sections, XBRL facts and parsed Forms 3, 4 and 5, so the reading happens outside your context window.
4. [WhaleWisdom](https://stockmarketstack.com/tools/whalewisdom.md) — 13F only, parsed back to the first quarter of 2001 behind a signed REST API. A free registered key reaches eight quarters; history starts at $300 a year.
5. [Daloopa](https://stockmarketstack.com/tools/daloopa.md) — Not the filing but the numbers inside it — segment splits, KPIs and guidance, each linked to its source page. Quote only, and sold to research desks.

## The short way

Every filing a company has made comes back as one JSON document, with no key and no account —
but the request has to introduce itself:

```python
import requests

headers = {"User-Agent": "Your Name your.email@example.com"}

cik = "0000320193"  # ten digits, leading zeros included
url = f"https://data.sec.gov/submissions/CIK{cik}.json"

filings = requests.get(url, headers=headers).json()
recent = filings["filings"]["recent"]

# parallel arrays, newest first
for form, date, accession in zip(recent["form"], recent["filingDate"], recent["accessionNumber"]):
    print(date, form, accession)
```

Two things in there are doing more work than they look. The `User-Agent` header is not
decoration: the SEC's own sample is `Sample Company Name AdminContact@<sample company domain>.com`,
alongside `Accept-Encoding: gzip, deflate`, and it asks you to declare it on every request. And
the CIK is zero-padded to ten digits, because EDGAR is organised by CIK rather than by ticker —
the mapping file is a separate download keyed by an index position, with `cik_str`, `ticker` and
`title` in each entry, and joining it is your job.

If it is the reported numbers you want rather than the filing index, the XBRL endpoints return
them already tagged: `companyconcept` for one concept at one company, `companyfacts` for
everything one company has tagged, and `frames` for one concept across every filer in a period.

## What the options are

**The source, and nothing between you and it.** [SEC EDGAR](https://stockmarketstack.com/tools/sec-edgar) is the filing
system itself, and four surfaces matter to somebody building rather than browsing: the
submissions endpoint per company, the three XBRL endpoints, full-text search from 2001 onward,
and the quarterly flat files. The SEC gives a typical processing delay of under a second for
submissions and under a minute for the XBRL APIs, which makes this the fastest route in the
catalogue as well as the cheapest one. What it does not give you is a parser.

**Bulk, when you want the corpus rather than a company.** The same product publishes nightly
archives of the submissions and company-facts datasets, refreshed at about 3:00 a.m. Eastern.
Anything that wants everything belongs here rather than in a loop over endpoints, and the
arithmetic is the reason: ten requests a second against tens of thousands of registrants is
measured in days.

**A commercial layer over the same filings.** [sec-api.io](https://stockmarketstack.com/tools/sec-api-io) sells the parsing:
a query API over 20 million filings from 1993 onward with twenty-odd filterable properties, an
extractor that returns a named item out of a 10-K rather than a document you then parse, an
XBRL-to-JSON converter, and a websocket that pushes new filings. From $55 a month, $49 annually,
on a single-key personal licence. Read the tier table before the feature list — full-text search,
Form ADV, 13D/G, N-PORT, N-CEN and N-PX are all marked unavailable on the cheap plan, and
redistribution exists only on an unpriced Enterprise tier.

**An assistant doing the reading.** [SEC EDGAR MCP](https://stockmarketstack.com/tools/sec-edgar-mcp) is an AGPL-3.0 server
over these same free endpoints, exposing twenty-one tools: ticker-to-CIK lookup, filings by form
and date, 10-K and 10-Q section extraction, an 8-K item reader, XBRL statements, and Forms 3, 4
and 5 parsed into transactions. It requires `SEC_EDGAR_USER_AGENT` with a real name and email,
and defaults to the SEC's ten-per-second ceiling. The licence is the commercially material fact:
network-serve a modified copy and its users are owed that source, and the alternative is a
commercial licence with no published price. The rest of that shelf is in
[MCP servers and AI agents](https://stockmarketstack.com/categories/mcp-ai-agents).

**One form, done properly.** If the question is really 13F, [WhaleWisdom](https://stockmarketstack.com/tools/whalewisdom)
has it parsed back to the quarter ending 31 March 2001 behind a signed REST API, with N-PORT
constituents since 2019 alongside. A registered free account reaches the last eight quarters;
Standard at $300 a year opens the history and meters it at 50 funds and 50 stocks per 90 days.
[13F.info](https://stockmarketstack.com/tools/13f-info) is free and has no API at all, but it is MIT-licensed and the
ingestion code is public, which is a different way to end up with the same table.
[OpenInsider](https://stockmarketstack.com/tools/openinsider) does the Form 4 half free with a 40-field screener and, again,
no API. The rest are in
[insider, 13F and congressional trade trackers](https://stockmarketstack.com/categories/insider-13f-trackers).

**The numbers inside the filing rather than the filing.** [Daloopa](https://stockmarketstack.com/tools/daloopa) extracts
segment splits, operating KPIs, guidance and GAAP-to-non-GAAP bridges out of filings, press
releases and investor presentations, each figure hyperlinked to the page it came from. That is
the material XBRL never tagged, and it is quote-only — the free account is one data sheet
download inside a two-week window.

## Where this breaks

**Ten requests a second, and a header that names you.** The SEC publishes a maximum access rate
of ten requests per second and says it is carefully monitored to preserve equitable access. It
reserves the right to limit request rates, and says that any request identified as part of a
botnet or an automated tool outside the acceptable policy will be managed to ensure fair access
for all users. There is no key to lose, which means the only thing that can be withdrawn is your
address's access. A single-threaded backfill that politely sleeps is the correct shape here, and
anything wider should be reading the nightly archives instead.

**The XBRL endpoints are financial facts, not filings.** They cover the 10-Q, 10-K, 8-K, 20-F,
40-F and 6-K series and their variants, which means a great deal of what people actually want is
absent by design: Forms 3, 4 and 5, 13F holdings, 13D and 13G stakes, and — inside the forms
that are covered — the risk factors, the MD&A and every other block of prose. Those are the
document, and getting them means fetching and parsing it, which is precisely what the paid layers
and the MCP server sell.

**The submissions endpoint is not the whole history.** Its compact arrays hold at least one
year's filings or the 1,000 most recent, whichever is more. If the entity has filed more than
that, a `files` array points at additional JSON documents with the date range each one covers. A
script that reads `recent` and stops is a script that silently truncates the oldest filer in your
universe while working perfectly on the newest.

**Amended and restated are two different problems.** The first is easy to see and easy to miss:
the `form` array carries the suffix, so `8-K/A`, `3/A` and `144/A` sit in the index next to the
originals, and neither retracts the other. Filtering on `form == "10-K"` drops every amendment;
filtering on `startswith("10-K")` double-counts the year. The second problem is quieter. The
`frames` endpoint aggregates one fact for each reporting entity that is last filed and most
closely fits the period requested, and the SEC warns that users should be mindful of different
reporting start and end dates for facts inside a frame — so a frame is a mix of vintages, not a
snapshot of what was known on a date. The Financial Statement Data Sets are the other extreme:
presented without change from the as-filed reports, with no standardisation and no restatement
applied. Whether you want as-first-reported or as-currently-restated is a decision you have to
make, and neither surface makes it for you.

**Full-text search starts in 2001, and it is a search.** It covers all EDGAR filings submitted
electronically since 2001, including attachments and exhibits, which is genuinely more than most
people expect. What it is not is a query language: natural-language search is unsupported, and
the wildcard cannot lead or sit inside a word, or appear in an exact phrase or a boolean search
at all. Anything filed before 2001 is in the archives as a document you can fetch by CIK, form
and date, and not as text you can search.

**The flat files land a quarter behind.** The convenience is real — Forms 3, 4 and 5 flattened
from XML, 13F holdings as tables — and so is the lag. Insider Transactions run from January 2006
and Form 13F from July 2013, both updated quarterly, with the 13F sets run for the prior three
months following the end of February, May, August, November; the Financial Statement Data Sets
start in January 2009 and are quarterly too. The SEC attaches the same disclaimer to all of them:
the data is derived from what individual filers provided, accuracy is not guaranteed, and the
sets are not a substitute for the filings. So the choice is a parser plus sub-second latency, or
no parser and up to a quarter of delay. There is no third option that is both.

**Nothing is normalised across filers.** A 13F is what the manager typed. Names, CUSIPs and share
classes disagree between filings of the same security, and a company's own XBRL tag choices drift
across years. Reconciling that is not a bug in EDGAR — it is the work every paid vendor on this
page is actually charging for.

## If you outgrow this

**When the delay is the problem**, the next purchase is a push rather than a poll.
[sec-api.io](https://stockmarketstack.com/tools/sec-api-io) streams new filings over a websocket, and its own pricing page
puts that at under 300 milliseconds after a filing becomes public; [Daloopa](https://stockmarketstack.com/tools/daloopa)
offers webhooks for new and restated data, which is the same idea aimed at the numbers.

**When you want statements rather than documents**, stop parsing.
[Financial Modeling Prep](https://stockmarketstack.com/tools/financial-modeling-prep), [Intrinio](https://stockmarketstack.com/tools/intrinio) and
[Fiscal.ai](https://stockmarketstack.com/tools/fiscal-ai) sell standardised financials by API for a published monthly figure
— fine for an income statement, and useless for the metric that only ever appeared on slide 16.
The rest of that shelf is in
[fundamental data and research platforms](https://stockmarketstack.com/categories/fundamentals-research).

**When the question is timing rather than content**, the answer is not a vendor.
[When a trade shows up in the public record](https://stockmarketstack.com/guides/when-trades-become-public) sets out the
deadline behind each form — two business days for a Form 4, 45 days after quarter end for a
13F — because no API can hand you a filing that has not been made yet.

**When a person is going to read it**, [BamSEC](https://stockmarketstack.com/tools/bamsec) is the opposite trade: no API at
all, $69 a month billed annually, and filings relabelled with table downloads for a human doing
the reading. [Quartr](https://stockmarketstack.com/tools/quartr) and the [Quartr API](https://stockmarketstack.com/tools/quartr-api) sit beside it for
earnings calls, transcripts and slide decks, which are the company material EDGAR never held.

## FAQ

### Do I need an API key or an account for the EDGAR APIs?

No. The SEC states that these APIs do not require any authentication or API keys. What they do require is a declared User-Agent header naming you and giving a contact address, and the published access ceiling is ten requests a second. There is no paid tier to buy and no commercial licence to negotiate, because these are public records a filing requirement puts there.

### Can I get Form 4 or 13F out of the XBRL endpoints?

No, and it is the most expensive wrong assumption about EDGAR. The companyconcept, companyfacts and frames endpoints carry tagged financial facts from the 10-Q, 10-K, 8-K, 20-F, 40-F and 6-K series and their variants. Insider transactions and institutional holdings live in the raw filing XML, in full-text search, or in the quarterly flat files the SEC publishes separately.

### How far back does each surface go?

They all start in different places. Full-text search covers electronically submitted filings from 2001 onward. The Insider Transactions data sets begin in January 2006, the Form 13F data sets in July 2013, and the Financial Statement Data Sets in January 2009. Older filings still exist in the archives as documents rather than as parsed data, which is a different job.

### Why pay a vendor when the source is free?

Because access is not the cost. Writing and maintaining a parser for four hundred form types, reconciling identifiers a filer typed by hand, and backfilling twenty years of documents at ten requests a second is the work that commercial layers are charging for. If you want one form for a handful of companies, the free route is genuinely the shorter one.

### Does EDGAR hold congressional stock trades?

No. STOCK Act periodic transaction reports go to the Clerk of the House and the Secretary of the Senate, not to the SEC, and they are not on EDGAR at any address. Tools that carry them are joining a separate public record to this one.

## Sources

1. [Accessing EDGAR Data](https://www.sec.gov/search-filings/edgar-search-assistance/accessing-edgar-data) — U.S. Securities and Exchange Commission, read 2026-09-21
2. [Using EDGAR application programming interfaces](https://www.sec.gov/search-filings/edgar-application-programming-interfaces) — U.S. Securities and Exchange Commission, read 2026-09-21
3. [EDGAR Full-Text Search Frequently Asked Questions](https://www.sec.gov/edgar/search/efts-faq.html) — U.S. Securities and Exchange Commission, read 2026-09-21
4. [Insider Transactions Data Sets](https://www.sec.gov/data-research/sec-markets-data/insider-transactions-data-sets) — U.S. Securities and Exchange Commission, read 2026-09-21
5. [Form 13F Data Sets](https://www.sec.gov/data-research/sec-markets-data/form-13f-data-sets) — U.S. Securities and Exchange Commission, read 2026-09-21
6. [Financial Statement Data Sets](https://www.sec.gov/dera/data/financial-statement-data-sets.html) — U.S. Securities and Exchange Commission, read 2026-09-21

*Last updated 2026-09-21. A reference page, corrected in place — not a dated post.*
