To extract data from SEC filings, start with what the filer already had to tag. Regulation S-T Rule 405 requires Inline XBRL tags on the financial statements and every footnote, on certain schedules and on a short list of other Regulation S-K disclosures [1]. The SEC serves tagged financial facts as JSON from data.sec.gov, with no API key [12]. Risk factors, management's discussion and analysis (MD&A), legal proceedings and material contract exhibits are not on the list [1, 3, 5, 6, 7], so their fields come from the filing's text. This explainer reads the rules in the eCFR, up to date as of 5 November 2026 [1], against what the SEC's APIs return.
What is an XBRL filing
An Interactive Data File is machine-readable code that presents information in XBRL [4]. With Inline XBRL, part of it is embedded in the HTML filing and the rest goes in as an exhibit, so one document is both human-readable and machine-readable [4, 17]. The SEC first required XBRL in 2009 [12]. Inline XBRL applied to large accelerated filers using US GAAP for fiscal periods ending on or after 15 June 2019, accelerated filers from 15 June 2020 and all other operating companies from 15 June 2021 [19].
For an operating company, Regulation S-T Rule 405 sets what the file holds: the complete financial statements, face and all footnotes, certain Regulation S-X schedules, and the Regulation S-K items its paragraph (b)(4) names [1]. Every data element must match the filing, and none may be changed, deleted or summarized [1]. A filer must create its own tag "if and only if" no appropriate standard tag exists [1]. For filers required to submit Inline XBRL, Regulation S-T Rule 406 adds tags on all the cover page information of Forms 10-K, 10-Q, 8-K, 20-F and 40-F [2].
Footnotes: text blocks and detail tags
Footnotes carry two kinds of tag [1]:
- Block text. Each complete footnote, each significant accounting policy and each table in a footnote is tagged as one block of text.
- Detail tags. Each amount in a footnote, whether a monetary value, a percentage or a number, is tagged on its own.
Other facts in footnote sentences carry tags only where the filer chooses [1]. A condition or a party's name stated in words sits inside the block and needs extraction.
The SEC's Financial Statement and Notes Data Sets publish this text and numeric detail each month, without change from the filings [15]. Their text field strips the markup and is truncated to a maximum length, for text analysis only [16]. A long footnote needs the filing itself.
Regulation S-K items that carry tags
Regulation S-T Rule 405(b)(4) names the Regulation S-K disclosures that must be tagged, "including, as applicable": pay versus performance, recovery of erroneously awarded compensation, awards granted close to the release of material nonpublic information, insider trading plans and policies, cybersecurity, and special purpose acquisition company (SPAC) disclosures [1, 10, 17].
The cybersecurity tags hold narrative in a fixed form. In the SEC's March 2026 cybersecurity taxonomy guide, a true or false flag records whether risk management processes are integrated, and a text block holds the description of how [23]. The rules require block text tags on the narrative and detail tags on quantitative amounts [22]. Tagging of annual cybersecurity disclosure became required for fiscal years ending on or after 15 December 2024 [22]. The flag gives a yes or no, and the text block gives the passage [23]. Apart from the flags, only quantitative amounts carry detail tags, so the words of the description sit inside the text block [22, 23].
What the data.sec.gov API returns
The EDGAR APIs at data.sec.gov return JSON and "do not require any authentication or API keys to access" [12]. They cover each filer's submission history and XBRL financial data from Forms 10-Q, 10-K, 8-K, 20-F, 40-F, 6-K and their variants [12]. The XBRL APIs keep only facts that use a standard taxonomy, such as us-gaap, ifrs-full, dei or srt, and that apply to the whole filing entity [12]. Custom-tagged facts, and facts for part of the entity, fall outside them. The Financial Statement and Notes Data Sets carry custom tags too [16].
We retrieved one large accelerated filer's companyfacts file on 8 November 2026. It held 25,604 facts, every one a number, under 512 us-gaap concepts, 2 dei concepts and 6 filing fee concepts, and no text blocks, no cybersecurity or executive compensation facts and no proxy statement facts (computed for this report from [12]). That describes one file.
The same file held 341 net income facts for 124 periods, with more than one distinct value for 5 periods (computed for this report from [12]). The companyfacts file keeps the value each filing reported. The frames API keeps one fact per entity for a calendar period, the one "last filed" [12]. On 8 November 2026, for accounts payable at the end of 2025's fourth quarter, frames returned 3,613 entities (computed for this report from [12]).
Risk factors, MD&A and legal proceedings
Form 10-K asks for risk factors in Item 1A, legal proceedings in Item 3 and MD&A in Item 7, each set by a Regulation S-K item [11]. Regulation S-T Rule 405's list names none of Item 105 (risk factors), Item 303 (MD&A) or Item 103 (legal proceedings) [1, 5, 6, 7].
These sections still have structure to extract into:
- Risk factors. Item 105 puts each risk under a subcaption that describes it, generic risks last under "General Risk Factors", and a summary of no more than two pages when the section runs past 15 pages [5].
- Legal proceedings. Item 103 names the fields of a record: the court or agency, the date instituted, the principal parties, the factual basis alleged and the relief sought [6].
- Cross-references. Item 103 may be met by cross-reference to MD&A, risk factors or the notes [6], so a lawsuit described in a footnote sits inside that footnote's text block [1].
One research team that built a 10-K corpus removed the tables, stripped the HTML and split items with regular expressions [32]. Notre Dame's Software Repository for Accounting and Finance reports that in one 2012 10-K file, about 7.6% of the characters were the 10-K text, exhibits and tables included [31].
Material contracts and redacted terms
Item 601(b)(10) asks for material contracts not made in the ordinary course of business, ordinary-course contracts in listed categories, and management contracts and compensatory plans [3]. Regulation S-T Rule 405 does not list them, so no tag carries their terms [1]. A filer may redact provisions it customarily and actually treats as private or confidential and that are not material [3]. It marks the exhibit index, puts a statement on the first page and brackets each omission [3]. That standard replaced a competitive harm test, effective 15 March 2021 [21].
EDGAR full-text search covers all electronic filings since 2001, exhibits included [14]. An exact search on 8 November 2026 for the first-page statement's wording, over documents filed in 2025, returned 1,206 documents, with EX-10.1 and EX-10.2 the top document types (computed for this report from [14]). That counts documents containing a phrase, and it does not count redacted contracts.
Tagged data is as filed
The SEC presents its data sets without change from the filings and cannot guarantee their accuracy [15]. In fiscal 2025 Forms 10-K, custom tags averaged 11.8% of filers' line item tags in the financial statements and 17.0% with the notes, against 11.3% and 21.4% in fiscal 2012 (SEC DERA chart data, rounded) [26]. The SEC's Division of Economic and Risk Analysis (DERA) lists 28 data quality reminders from 2016 to September 2026 (counted for this report from [28]). In one, a filer reported a public float of $78 million in its HTML filing and $78 in its XBRL data [29].
How to extract data from SEC filings
- Take numbers from companyfacts or frames, with the accession number, form and period each fact carries, and decide by a stated rule which of several filed values to keep [12].
- Take footnote text from the filing's text blocks, since the data set's text field is truncated [1, 16].
- Read risk factors, MD&A, legal proceedings and exhibits from the filing's text, along the structure the rules give: Item 105's subcaptions, Item 103's fields and Item 601's brackets [3, 5, 6].
- Keep each extracted field with its passage, and check tagged values against the HTML [29].
- Stay within EDGAR's fair access rule: 10 requests per second and a declared user agent [13].
Assigning facts to tags is hard for models too. A 2025 benchmark found that LLMs generalize well in extraction and struggle significantly with linking facts to fine-grained US GAAP concepts [34]. Scoring fields like these is the subject of how to test document extraction accuracy. Material contract exhibits are contracts, and the benchmarks in LLM contract review accuracy score clause extraction on contracts. The clocks on which an EDGAR filing reaches the market are covered in company disclosure timing.
Rillor's document and regulation intelligence work reads contracts and filings into one record each, with parties, defined terms, obligations, conditions and deadlines, and each field links to its passage and page.
Read the full report
The full report adds the rule tables, the custom tag trend by year and filer status, the API and phrase checks with their endpoints, and all 36 sources.

