SEC Company Financials API: income, balance sheet, cash flow
Pricing
from $5.00 / 1,000 company periods
SEC Company Financials API: income, balance sheet, cash flow
US company financials from SEC XBRL: revenue, profit, EPS, balance sheet, cash flow, free cash flow and margins per fiscal year or quarter, 2009 to today. By ticker or CIK, 10-K/10-Q and 20-F filers. Each value cites its XBRL tag and SEC filing. Q4 derived where not reported.
Pricing
from $5.00 / 1,000 company periods
Rating
0.0
(0)
Developer
Bosco Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Security
Limited permissionsShare
Get clean financial statements of any US-listed company from the SEC's own XBRL data: revenue, profit, EPS, balance sheet, cash flow, free cash flow and margins, per fiscal year or per quarter, by ticker or CIK. For analysts, finance apps and AI agents that need a company's numbers over 5-20 years without parsing filings. Every value cites the XBRL tag and the SEC filing it came from.
Pricing (pay per event): $0.005 per company-period row ($5 per 1,000). Five years of Apple's annual figures cost $0.025; eight quarters $0.04. Empty or failed lookups are free, and the Actor stops at your max charge limit.
Data comes straight from the SEC's companyfacts API (data.sec.gov/api/xbrl/companyfacts):
every 10-K, 10-Q, 20-F, 40-F and 6-K filed with XBRL since 2009-2011. No scraping, no logins,
no third-party data.
What you get
One row per company per fiscal year (period: "annual") or fiscal quarter ("quarterly").
Real output for Apple's fiscal 2025 (shortened; sources lists every metric):
{"ticker": "AAPL","cik": "0000320193","company_name": "Apple Inc.","fiscal_year": 2025,"fiscal_period": "FY","period_start": "2024-09-29","period_end": "2025-09-27","form": "10-K","filed": "2025-10-31","accession_number": "0000320193-25-000079","source_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/0000320193-25-000079-index.htm","currency": "USD","revenue": 416161000000,"gross_profit": 195201000000,"operating_profit": 133050000000,"net_income": 112010000000,"eps_diluted": 7.46,"total_assets": 359241000000,"cash_and_equivalents": 35934000000,"long_term_debt": 78328000000,"total_equity": 73733000000,"operating_cash_flow": 111482000000,"capex": 12715000000,"free_cash_flow": 98767000000,"gross_margin": 0.4691,"operating_margin": 0.3197,"net_margin": 0.2692,"revenue_growth": 0.0643,"metrics_found": 29,"sources": {"revenue": {"tag": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","accession": "0000320193-25-000079"},"...": "one entry per reported metric"},"filings": {"0000320193-25-000079": {"form": "10-K","filed": "2025-10-31","url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/0000320193-25-000079-index.htm"}},"warnings": [],"schema_version": "1","retrieved_at": "2026-11-05T21:38:54+00:00"}
All money values are in full units of currency (not thousands), EPS is per share, ratios are
fractions (0.25 = 25%). null means the company didn't report it; nothing is guessed and
unknown is never 0. Checked against the printed statements of Apple's fiscal 2025 10-K and
JPMorgan's 2024 10-K: every value matched.
Reported fields: revenue, cost_of_revenue, gross_profit, research_and_development,
selling_general_and_administrative, operating_profit, profit_before_tax, net_income,
net_income_attributable_to_parent, eps_basic, eps_diluted,
weighted_average_shares_basic, weighted_average_shares_diluted, depreciation_amortisation,
total_assets, current_assets, cash_and_equivalents, total_liabilities,
current_liabilities, noncurrent_liabilities, long_term_debt, total_equity,
equity_attributable_to_parent, shares_outstanding, operating_cash_flow,
investing_cash_flow, financing_cash_flow, capex, dividends_paid.
Derived fields (computed only when every input is there): free_cash_flow
(operating cash flow - capex), ebitda (operating profit + D&A), gross_margin,
operating_margin, net_margin, return_on_equity (fiscal years only), equity_ratio,
revenue_growth (versus the same period a year earlier), plus gross_profit and
total_liabilities when the company doesn't tag them (marked derived in sources).
The field names are the same as in our EU Annual Reports (ESEF) Actor, so US and European companies come out in one vocabulary.
Input
{ "tickers": ["AAPL", "MSFT"], "period": "quarterly", "years": 2, "metrics": ["revenue", "net_income", "free_cash_flow"] }
| Field | Meaning |
|---|---|
tickers | US tickers, e.g. ["AAPL"]; share classes BRK-B or BRK.B. Foreign filers too, e.g. NVO |
ciks | SEC CIKs, e.g. ["320193"], for delisted companies or filers without a ticker |
period | annual (default) or quarterly |
years | Latest fiscal years per company, default 5, max 20 (quarterly + 2 = 8 quarters) |
metrics | Only these fields. Empty = all |
includeSources | Per-value tag and filing (default true); false makes rows about 3x smaller |
How the numbers are cleaned
- One metric, many tags. Companies tag the same line differently, and change tags over the
years (Apple's revenue was
SalesRevenueNetuntil 2018, thenRevenueFromContractWithCustomerExcludingAssessedTax). Each metric has an ordered list of candidate tags; the first one with a value for that exact period wins, andsourcesnames it. - Duplicates and restatements. The same figure appears in every later filing that shows it
as a comparative. The Actor keeps the latest filed value (restatements and 10-K/A
amendments win) and cites the first filing that reported that value. When a value was
restated,
warningssays so with the old value. Only periodic reports count (10-K, 10-Q, 20-F, 40-F, 6-K, 10-KT, 10-QT and amendments): proxy statements repeat rounded figures (JPM's 2026 proxy shows 2024 net income as 58.5bn; the 10-K says 58,471m) and are ignored. - Fiscal years are found from the period dates, not from the filings' own labels, and named the way the company names them (Apple's year ending September 2025 is 2025, Target's year ending January 2026 is 2025, Walmart's is 2026).
- Quarters are discrete 3-month periods. Companies don't report Q4 separately, and most
report cash flows only year-to-date in their 10-Qs. For flow items (income statement and
cash flow), the Actor derives Q4 as fiscal year minus the 9-month YTD, and Q2/Q3 as YTD minus
the previous YTD when no 3-month figure exists.
sources.<metric>.derivedandwarningssay so. Balance-sheet values are never derived (Q4 = the year-end balance sheet), and EPS and share counts are never derived (they don't add up), so they arenullfor Q4 unless reported.
Tag mapping
First tag with a value for the period wins (us-gaap first, then ifrs-full for IFRS filers).
| Field | Candidate tags, in order |
|---|---|
revenue | Revenues, RevenueFromContractWithCustomerExcludingAssessedTax, RevenueFromContractWithCustomerIncludingAssessedTax, SalesRevenueNet, SalesRevenueGoodsNet, RevenuesNetOfInterestExpense; ifrs Revenue, RevenueFromContractsWithCustomers |
cost_of_revenue | CostOfRevenue, CostOfGoodsAndServicesSold, CostOfGoodsSold, CostOfServices; ifrs CostOfSales |
gross_profit | GrossProfit; ifrs GrossProfit (else revenue - cost_of_revenue) |
research_and_development | ResearchAndDevelopmentExpense, ResearchAndDevelopmentExpenseExcludingAcquiredInProcessCost; ifrs ResearchAndDevelopmentExpense |
selling_general_and_administrative | SellingGeneralAndAdministrativeExpense; ifrs SellingGeneralAndAdministrativeExpense |
operating_profit | OperatingIncomeLoss; ifrs ProfitLossFromOperatingActivities |
profit_before_tax | IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest, IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments; ifrs ProfitLossBeforeTax |
net_income | ProfitLoss, NetIncomeLoss; ifrs ProfitLoss |
net_income_attributable_to_parent | NetIncomeLoss; ifrs ProfitLossAttributableToOwnersOfParent |
eps_basic | EarningsPerShareBasic, EarningsPerShareBasicAndDiluted; ifrs BasicEarningsLossPerShare |
eps_diluted | EarningsPerShareDiluted, EarningsPerShareBasicAndDiluted; ifrs DilutedEarningsLossPerShare |
weighted_average_shares_basic | WeightedAverageNumberOfSharesOutstandingBasic; ifrs WeightedAverageShares |
weighted_average_shares_diluted | WeightedAverageNumberOfDilutedSharesOutstanding; ifrs AdjustedWeightedAverageShares |
depreciation_amortisation | DepreciationDepletionAndAmortization, DepreciationAndAmortization, DepreciationAmortizationAndAccretionNet; ifrs DepreciationAndAmortisationExpense, AdjustmentsForDepreciationAndAmortisationExpense |
total_assets | Assets; ifrs Assets |
current_assets | AssetsCurrent; ifrs CurrentAssets |
cash_and_equivalents | CashAndCashEquivalentsAtCarryingValue, Cash, CashAndDueFromBanks; ifrs CashAndCashEquivalents |
total_liabilities | Liabilities; ifrs Liabilities (else total_assets - total_equity) |
current_liabilities | LiabilitiesCurrent; ifrs CurrentLiabilities |
noncurrent_liabilities | LiabilitiesNoncurrent; ifrs NoncurrentLiabilities |
long_term_debt | LongTermDebtNoncurrent, LongTermDebtAndCapitalLeaseObligations, LongTermDebt; ifrs NoncurrentPortionOfNoncurrentBorrowings, LongtermBorrowings |
total_equity | StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest, StockholdersEquity; ifrs Equity |
equity_attributable_to_parent | StockholdersEquity; ifrs EquityAttributableToOwnersOfParent |
shares_outstanding | CommonStockSharesOutstanding; ifrs NumberOfSharesOutstanding |
operating_cash_flow | NetCashProvidedByUsedInOperatingActivities, ...ContinuingOperations; ifrs CashFlowsFromUsedInOperatingActivities |
investing_cash_flow | NetCashProvidedByUsedInInvestingActivities, ...ContinuingOperations; ifrs CashFlowsFromUsedInInvestingActivities |
financing_cash_flow | NetCashProvidedByUsedInFinancingActivities, ...ContinuingOperations; ifrs CashFlowsFromUsedInFinancingActivities |
capex | PaymentsToAcquirePropertyPlantAndEquipment, PaymentsToAcquireProductiveAssets; ifrs PurchaseOfPropertyPlantAndEquipmentClassifiedAsInvestingActivities, PurchaseOfPropertyPlantAndEquipment |
dividends_paid | PaymentsOfDividends, PaymentsOfDividendsCommonStock; ifrs DividendsPaidClassifiedAsFinancingActivities, DividendsPaid |
Use cases
- Fundamental research: revenue, margins and cash flow of a company over 5-20 years, or quarter by quarter, in one call.
- Peer comparison: the same fields for a list of tickers, ready for a spreadsheet.
- Valuation inputs: free cash flow, EBITDA, net debt components, shares, EPS.
- Due diligence and credit checks: balance sheet and equity trend of a supplier or counterparty, with the SEC filing behind each number.
- AI agents: small, typed JSON with a source for every value, so the agent doesn't invent numbers.
Use from an AI agent (MCP)
Agents can call this Actor as a tool through the Apify MCP server. Add this server URL to your MCP client (Claude, Cursor, VS Code, ...):
https://mcp.apify.com?tools=bosco_labs/sec-company-financials
It loads this Actor as a tool, plus the tools that read its results (get-actor-run,
get-dataset-items). The hosted server signs you in with OAuth, or accepts your Apify token as
Authorization: Bearer <APIFY_TOKEN>. On the default server (https://mcp.apify.com), agents
can also find this Actor with search-actors and run it with call-actor.
Example prompts this Actor answers:
- "How did Microsoft's revenue, net income and free cash flow develop over the last 8 quarters?"
- "Compare Nvidia, AMD and Intel on operating margin for the last 5 fiscal years."
- "What was JPMorgan's net income in 2024, and which filing is it from?"
For the first one, the agent passes:
{"tickers": ["MSFT"], "period": "quarterly", "years": 2, "metrics": ["revenue", "net_income", "free_cash_flow"]}
Output for agents: stable, typed JSON, one row per company and period, newest first. Every
row has schema_version, a source_url (the EDGAR filing most values come from), and with
includeSources the tag and accession number of each value, so the agent can cite its source.
Derived quarter values and restatements are explained in warnings. A typical answer is
20-40 KB with sources, 2-6 KB without. An unknown ticker fails in seconds with suggestions
("APPLE (did you mean AAPL?)"); a company without XBRL data gets a status message saying so.
Cost: $0.005 per company-period row, billed to the Apify account the MCP server is signed in with.
FAQ
Which companies? Every SEC filer with XBRL financial statements: US companies filing 10-K
and 10-Q (large companies since 2009, all since 2011) and foreign companies filing 20-F or 40-F
(IFRS, mostly since 2018). Foreign filers report in their own
currency (e.g. Novo Nordisk in DKK, see currency), and most of them report annually only:
asking them for quarters returns fiscal years with a warning.
How fresh? The SEC updates companyfacts within minutes of a filing, so a 10-Q is in the next run after it is filed.
Are the values as reported? Yes: as tagged in the filings (latest restated value), not adjusted, not normalized for one-offs, not converted between currencies. No forecasts.
Banks and insurers? Their statements have no gross profit, operating income, current assets,
current liabilities or (usually) capex, so those fields, and the margins and free cash flow
built on them, are null. Revenue for banks is total net revenue (JPMorgan: 177,556m for 2024);
profit_before_tax, net_income, EPS, assets, liabilities and equity are there.
cash_and_equivalents for banks is usually cash and due from banks.
Why is a field empty for some companies? Companies tag differently. Some use their own
company-specific tags instead of the standard ones (Microsoft reports sales & marketing and G&A
separately, so selling_general_and_administrative is null); those stay null rather than
being guessed. metrics_found tells you how complete a row is.
What is not included? Market data (share prices, market cap, valuation multiples), segment and geographic breakdowns, guidance, non-GAAP figures, and anything before a company's first XBRL filing (2009-2011).
Legal basis? SEC filings are US government public records. See LEGAL.md.