Financial Statements API: income statement, balance sheet and cash flow by ticker
Income statement, balance sheet and cash flow for the latest 10-K or 10-Q of any company, by ticker, as JSON or an Excel workbook.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/financial-statements?ticker=NVDA&formType=10-K"
import os, requests
r = requests.get(
"https://secfeedapi.com/v1/financial-statements",
params={'ticker': 'NVDA', 'formType': '10-K'},
headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
)
print(r.json())Overview
Most people do not want an accession number, they want Apple's last three annual income statements. The Financial Statements API takes a ticker or CIK and a form type, finds the latest n filings and returns their statements from XBRL.
Each statement is keyed by concept with every reported period, so the current year and the comparatives come back together. For spreadsheets, the xlsx endpoint writes one sheet per statement with periods as columns.
What you get
Built for developers who would rather not parse EDGAR.
Pass ticker or cik, formType (10-K or 10-Q) and n for how many filings.
StatementsOfIncome, BalanceSheets and StatementsOfCashFlows with all periods reported.
One filing as an .xlsx workbook: a sheet per statement, periods as columns.
Numbers come from the filing's own tagged data, not from a third party.
Endpoints
Authenticate with Authorization: Bearer YOUR_KEY. Responses are JSON.
Income statement, balance sheet, cash flow (totals) for the latest n 10-K or 10-Q.
Parameters: ticker | cik, formType, n
One filing's statements as an Excel workbook: a sheet per statement, periods as columns.
Parameters: accessionNo, cik
Response fields
The main fields in every result. The raw filing data is always one level down.
| Field | Meaning |
|---|---|
accessionNo | The 10-K or 10-Q the statements come from. |
StatementsOfIncome | Revenues, CostOfRevenue, OperatingIncomeLoss, NetIncomeLoss and the rest, by period. |
BalanceSheets | Assets, Liabilities, StockholdersEquity and line items at each balance sheet date. |
StatementsOfCashFlows | Operating, investing and financing cash flows by period. |
Use cases
- Populate a fundamentals screen by ticker
- Export statements to Excel for modeling
- Track quarterly revenue and margins for a watchlist
- Give an AI agent reliable numbers instead of scraped text
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.
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
How many years do I get?
Each 10-K includes the current year and the comparative years the company presented, usually two or three. Pass n to get more filings.
Are the numbers adjusted?
No. Values are exactly what the company reported in XBRL, with the unit and decimals it used.
Try the Financial Statements free
500 API calls a month on the free plan. No sales call.