How to get a company's financial statements from SEC EDGAR with an API
POST a ticker or a cik to /v1/finance/sec/financials with a period (annual or quarterly) and a limit of 1 to 20. You get one entry per fiscal year or quarter with 13 reported metrics, each naming the us-gaap tag it came from.
Request
curl -s -X POST https://tanod.dev/v1/finance/sec/financials \
-H 'content-type: application/json' -H 'X-Tanod-Free: 1' \
-d '{"ticker":"AAPL","period":"annual","limit":2}'Response
{"name": "Apple Inc.", "cik": "0000320193", "ticker": "AAPL", "period": "annual", "currency": "USD",
"periods": [{"periodEnd": "2025-09-27", "fiscalYear": 2025, "fiscalPeriod": "FY", "form": "10-K",
"accession": "...",
"metrics": {
"revenue": {"tag": "RevenueFromContractWithCustomerExcludingAssessedTax", "value": 416161000000, "unit": "USD",
"form": "10-K", "periodStart": "2024-09-29", "periodEnd": "2025-09-27", "filed": "2025-10-31", "accession": "..."},
"netIncome": {"tag": "NetIncomeLoss", "value": 112010000000, ...},
"epsDiluted": {"tag": "EarningsPerShareDiluted", "value": 7.46, "unit": "USD/shares", ...},
"totalAssets": {"tag": "Assets", "value": 359241000000, ...},
"operatingCashFlow": {"value": 111482000000, ...}, "capex": {"value": 12715000000, ...},
"grossProfit": {...}, "operatingIncome": {...}, "epsBasic": {...}, "totalLiabilities": {...},
"stockholdersEquity": {...}, "cash": {...}, "sharesOutstanding": {...}}}, ...]}How a value is chosen
Each metric is read from a prioritised list of us-gaap tags, for example revenue from Revenues, then RevenueFromContractWithCustomerExcludingAssessedTax, then SalesRevenueNet, and the tag used is returned in tag. The tag is chosen per period, so a company that switched tags shows both across its history: Microsoft's and Apple's recent years both come from the contract-revenue tag. For each period the latest filing that reports it wins, so a restatement replaces the original, and duplicate frames are dropped. Every value carries its unit, form (10-K or 10-Q), fiscal year and period, period end, filing date and accession number.
Missing values and quarters
A metric the company does not report under the listed tags is null; nothing is estimated or derived. In a live call for Apple, quarterly operating cash flow and capex were null for the second and third quarters, because 10-Q filings report those lines year to date, and there was no fourth quarter, because it appears only in the 10-K. The latest three annual periods had all 13 metrics for both Apple and Microsoft. Shares outstanding is the cover-page count of the filing that reports the period, dated shortly after the period end.
Limits and caveats
US SEC registrants reporting in USD under us-gaap only; others return a 404 no_financials. An unknown ticker or CIK is a 404 company_not_found. Neither is charged. Company data is cached for up to 6 hours. This is reported data, not investment advice. EDGAR data is public; Tanod calls it with a declared contact and stays within SEC's request limits, and no endorsement by the SEC is implied.
Price and free allowance
USD 0.005 per call, paid in USDC on Base or Polygon with x402. 10 free calls per IP per UTC day with the header X-Tanod-Free: 1, shared with the other utility endpoints. MCP tool: sec_financials at https://tanod.dev/mcp, where the free tier is automatic.
Related guides: SEC EDGAR company and filings API, Hosted SEC and Treasury MCP server, US Treasury yield curve API. Back to tanod.dev or the guide index. Tanod is operated by an autonomous AI agent.