XBRL-to-JSON Converter API: SEC financial statements as JSON
Convert the XBRL in any 10-K, 10-Q, 20-F or 8-K into JSON: every statement in the company's own order, plus the cover page.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/xbrl-to-json?accessionNo=0000320193-26-000020&cik=320193"
import os, requests
r = requests.get(
"https://secfeedapi.com/v1/xbrl-to-json",
params={'accessionNo': '0000320193-26-000020', 'cik': '320193'},
headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
)
print(r.json())Overview
XBRL makes financial statements machine readable, but reading it means joining an instance document, a presentation linkbase and FilingSummary.xml. The XBRL-to-JSON Converter does that for you and returns every statement the company presented, in the order the company presented it, with values, periods, units and decimals.
Point it at an accession number, the filing's HTML URL or its XBRL file. Add notes=true to include the notes. For a company's whole reporting history use company facts, and for one concept across every company use frames.
What you get
Built for developers who would rather not parse EDGAR.
CoverPage, StatementsOfIncome, BalanceSheets, StatementsOfCashFlows and every other statement presented.
Each fact carries value, period (instant or start and end), unitRef, decimals and segment when present.
Every XBRL fact a company ever reported, from the SEC's companyfacts data.
One concept, such as Assets, across all companies for a period like CY2025Q4I.
Endpoints
Authenticate with Authorization: Bearer YOUR_KEY. Responses are JSON.
Every statement of a filing from its XBRL, in the company's order, plus the cover page.
Parameters: accessionNo | htmUrl | xbrlUrl, cik, notes=true
One concept over time for a company.
Parameters: ticker | cik, concept, taxonomy
One concept across all companies for a period.
Parameters: concept, period (CY2025, CY2025Q4I), unit
Response fields
The main fields in every result. The raw filing data is always one level down.
| Field | Meaning |
|---|---|
CoverPage | dei facts: DocumentType, DocumentPeriodEndDate, EntityRegistrantName, shares outstanding and more. |
StatementsOfIncome, BalanceSheets, StatementsOfCashFlows | Statement objects keyed by us-gaap concept. |
value, period, unitRef, decimals | The reported number and its context, on every fact. |
Use cases
- Build a fundamentals database without an XBRL library
- Compare quarterly results across companies
- Feed clean statements to valuation models and LLMs
- Screen all companies on one concept with frames
Datasets behind this API
The SEC forms this API reads, with live filing counts.
Every Form 10-K annual report filed on EDGAR since 1993, searchable by company, date and text, with sections and XBRL financials as JSON.
10-QQuarterly reportsEvery Form 10-Q quarterly report on EDGAR since 1993: unaudited financials, MD&A and risk factor updates, searchable and parsed as JSON.
20-FForeign annualEvery Form 20-F annual report and 20-F registration filed by foreign private issuers on EDGAR, searchable by company and date, with sections as text.
40-FCanadian annualForm 40-F annual reports filed by eligible Canadian companies under the US Canada multijurisdictional disclosure system, on EDGAR since 2001.
Tutorials
Download any 10-K or 10-Q's financial statements as an .xlsx workbook, one sheet per statement, with no spreadsheet library on your side.
Financial dataCompare one financial metric across every public companyUse XBRL frames to get one concept, such as total assets, for every SEC filer in a single period, then rank and screen companies.
Financial dataConvert XBRL financial statements to JSONTurn the XBRL in any 10-K or 10-Q into JSON statements: income statement, balance sheet, cash flow and cover page, with periods and units.
FAQ
Which filings have XBRL?
10-K, 10-Q, 20-F, 40-F and many 8-Ks and S-1s filed since 2009 to 2011, depending on filer size. Inline XBRL is required for most filers today.
What is the difference between xbrl-to-json and company facts?
xbrl-to-json returns the statements of one filing as presented. Company facts returns every value a company reported for each concept, across all its filings.
Can I get the result in Excel?
Yes. /v1/financial-statements/xlsx returns one filing's statements as a workbook with one sheet per statement.
Try the XBRL-to-JSON Converter free
500 API calls a month on the free plan. No sales call.