SEC filings API — 10-K and 10-Q financials as JSON
Companies file their financials with the SEC as 10-K (annual) and 10-Q (quarterly) reports — plus 20-F and 40-F for foreign issuers. SECfinAPI reads the structured XBRL inside those filings and returns the numbers as clean, standardized JSON, each period stamped with the date it was actually filed. You get the substance of every filing without downloading or parsing a single document.
From filing to structured data
Every modern SEC filing embeds XBRL — machine-readable financial facts. We ingest those facts, resolve restatements (a later 10-K may restate a prior year), keep the earliest filing date as the point-in-time stamp, and map each filer’s tags to one schema. The result is queryable per company:
# Standardized financials extracted from the filings
GET /v1/company/MSFT/financials -H "X-API-Key: YOUR_KEY"
# Per-period metadata includes the original filing date + form
# (10-K / 10-Q / 20-F / 40-F) and reporting currency.Point-in-time by design
Each period’s filing_date is when that fiscal period first became public — not the most recent amendment that still lists it as a comparative. That’s exactly what you need to backtest without lookahead bias. Absolute figures are kept as-originally-reported; only per-share figures are split-adjusted to the current basis for comparability.
Annual and quarterly
Request annual (10-K family) or quarterly (10-Q) periods with the period parameter. We also expose growth and trailing-twelve-month views, and a /scores endpoint surfacing the Data Quality Score and reconciliation flags per filing.
FAQ
Does this return the full filing text?
No — it returns the financial data (income statement, balance sheet, cash flow, ratios) extracted from each filing’s XBRL, as standardized JSON. For the full document text, link out to SEC EDGAR (we include the EDGAR URL per company).
Which filing types are supported?
10-K and 10-Q for domestic filers, plus 20-F and 40-F for foreign issuers. Both annual and quarterly periods.
How quickly do new filings appear?
Typically within a day. A daily job re-ingests every company that filed in the last 48 hours; a full refresh runs weekly.
Is there a filing date for each number?
Yes. Every period carries the original filing_date and the source form, so you can use the data point-in-time.
Related
Start querying SEC data in minutes
Free API key, no credit card. Standardized JSON for 19,000+ US public companies.
Get your free key →