Financial Statements Scraper
Pricing
Pay per event
Financial Statements Scraper
Extract clean financial data from SEC EDGAR XBRL API. Enter stock tickers, get structured income statements, balance sheets, and cash flow data. Supports annual and quarterly periods with automatic concept fallback resolution.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Actor stats
0
Bookmarked
8
Total users
4
Monthly active users
2 days ago
Last modified
Share
Extract structured financial statements from SEC EDGAR XBRL data for any U.S. public company. A free alternative to Bloomberg Terminal and S&P Capital IQ.
📊 What does Financial Statements Scraper do?
Financial Statements Scraper extracts clean, structured financial data from SEC EDGAR's XBRL API for any U.S. public company. Enter stock tickers and get ready-to-use financial statements:
🔹 Key Metrics — Revenue, Net Income, EPS, Assets, Equity in one view 🔹 Income Statement — Revenue through Net Income with all line items 🔹 Balance Sheet — Assets, Liabilities, and Stockholders' Equity 🔹 Cash Flow Statement — Operating, Investing, and Financing activities 🔹 All Statements — Complete financial data in one run
❓ Why use Financial Statements Scraper?
🔹 Free data source — SEC EDGAR XBRL API is free and public. No API key needed 🔹 Bloomberg alternative — Get the same financial data that costs $24,000/year on Bloomberg 🔹 Ticker resolution — Just enter stock tickers (AAPL, MSFT, TSLA) — CIK numbers resolved automatically 🔹 Clean output — Data is normalized and deduplicated. No XBRL complexity to deal with 🔹 Concept fallbacks — Handles different XBRL tags used by different companies (e.g., Apple's revenue tag) 🔹 Annual and quarterly — Supports both 10-K and 10-Q data
💡 Use cases
🔹 Financial analysis — Build DCF models, compare companies, track growth trends 🔹 Investment research — Screen stocks by financial metrics across thousands of companies 🔹 Fintech data pipelines — Feed structured financials into trading algorithms or dashboards 🔹 Academic research — Study corporate finance, profitability trends, and market dynamics 🔹 Competitive intelligence — Compare revenue, margins, and R&D spend across competitors 🔹 Journalism — Fact-check corporate claims with actual SEC filings
📊 Sample output
Apple Inc. (AAPL) — Key Metrics
| Fiscal Year | Revenue | Net Income | EPS | Assets | Equity |
|---|---|---|---|---|---|
| FY2025 | $416.2B | $112.0B | $7.46 | $359B | $88B |
| FY2024 | $391.0B | $93.7B | $6.08 | $365B | $57B |
| FY2023 | $383.3B | $97.0B | $6.13 | $353B | $62B |
💰 How much does it cost to scrape financial statements?
Financial Statements Scraper uses pay-per-event pricing:
| Event | Price |
|---|---|
| Start (per run) | $0.005 |
| Statement period scraped | $0.002 |
Free plan estimate: ~50 statement periods per month on the Apify Free plan ($5/month platform credit). That's 10 companies x 5 years of annual data.
🔢 How to get financial statements
- Go to the Financial Statements Scraper page on Apify
- Select the statement type (key metrics, income statement, balance sheet, cash flow, or all)
- Enter stock tickers (e.g., AAPL, MSFT, TSLA)
- Choose annual or quarterly data and how many years of history
- Click "Start" and wait for results
- Download data as JSON, CSV, Excel, or connect via API
📥 Input parameters
| Parameter | Type | Description |
|---|---|---|
| mode | string | Statement type: key-metrics, income-statement, balance-sheet, cash-flow, or all |
| tickers | string[] | Stock ticker symbols (e.g., AAPL, MSFT, TSLA) |
| ciks | string[] | SEC CIK numbers (alternative to tickers) |
| period | string | annual (10-K) or quarterly (10-Q) |
| maxYears | number | Years of historical data (default: 5, max: 30) |
📤 Output fields
Key Metrics
Revenues, NetIncomeLoss, EarningsPerShareDiluted, Assets, Liabilities, StockholdersEquity, CashAndCashEquivalentsAtCarryingValue, LongTermDebt, OperatingIncomeLoss, GrossProfit, CommonStockSharesOutstanding, NetCashProvidedByUsedInOperatingActivities
Income Statement
Revenues, CostOfRevenue, GrossProfit, ResearchAndDevelopmentExpense, SellingGeneralAndAdministrativeExpense, OperatingExpenses, OperatingIncomeLoss, InterestExpense, IncomeTaxExpenseBenefit, NetIncomeLoss, EarningsPerShareBasic, EarningsPerShareDiluted
Balance Sheet
CashAndCashEquivalentsAtCarryingValue, AccountsReceivableNetCurrent, InventoryNet, AssetsCurrent, PropertyPlantAndEquipmentNet, Goodwill, Assets, LiabilitiesCurrent, LongTermDebt, Liabilities, StockholdersEquity
Cash Flow
NetCashProvidedByUsedInOperatingActivities, DepreciationDepletionAndAmortization, PaymentsToAcquirePropertyPlantAndEquipment, NetCashProvidedByUsedInInvestingActivities, NetCashProvidedByUsedInFinancingActivities, PaymentsOfDividends, PaymentsForRepurchaseOfCommonStock
💡 Tips
🔹 XBRL concept names — Output field names use standard XBRL US-GAAP taxonomy names. These are consistent across all companies and are the same as used in SEC filings. 🔹 Null values — Some fields may be null if the company doesn't report that line item or uses a non-standard XBRL tag. Key concepts have automatic fallback resolution. 🔹 Foreign companies — Works with foreign companies that file with the SEC (20-F filers like BABA, TSM). 🔹 Up to 30 years — SEC EDGAR has XBRL data going back to 2009 for most companies. Set maxYears=30 for full history.
🔗 Integrations
Export financial data to Google Sheets, Excel, Slack, Zapier, Make, or any webhook. Connect via the Apify API to build automated financial analysis pipelines.
💻 API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('automation-lab/financial-statements-scraper').call({mode: 'income-statement',tickers: ['AAPL', 'MSFT', 'GOOGL'],period: 'annual',maxYears: 5,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('automation-lab/financial-statements-scraper').call(run_input={'mode': 'key-metrics','tickers': ['TSLA', 'RIVN', 'LCID'],'period': 'quarterly','maxYears': 3,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl "https://api.apify.com/v2/acts/automation-lab~financial-statements-scraper/runs" \-X POST -H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_TOKEN" \-d '{"mode": "all", "tickers": ["AAPL"], "period": "annual", "maxYears": 10}'
Use with AI agents via MCP
Financial Statements Scraper is available as a tool for AI assistants via the Model Context Protocol (MCP).
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/financial-statements-scraper"
Setup for Claude Desktop, Cursor, or VS Code
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/financial-statements-scraper"}}}
Example prompts
- "Get financial statements for Microsoft from SEC EDGAR"
- "Scrape income statements for these public companies"
Learn more in the Apify MCP documentation.
How do I get free financial data for public companies?
Most financial data services charge hundreds or thousands of dollars per year. Bloomberg Terminal costs $24,000/year, S&P Capital IQ starts at $7,500/year, and even basic APIs like Alpha Vantage or Quandl charge $50-300/month for historical data.
Financial Statements Scraper pulls the same underlying data — directly from SEC EDGAR's free XBRL API — and structures it for immediate use. On Apify's free plan ($5/month platform credit), you can extract ~50 statement periods per month, which covers 10 companies x 5 years of annual data. For larger research projects, pay-per-event pricing keeps costs under $1 for most analyses.
What is the best API for SEC EDGAR financial data?
The SEC provides a free XBRL API (CompanyFacts), but it returns raw XBRL taxonomy data that requires significant parsing — different companies use different tags for the same concept, values need deduplication across filings, and you need to map CIK numbers to tickers.
Financial Statements Scraper handles all of this automatically: ticker-to-CIK resolution, concept fallback resolution (e.g., Apple uses a non-standard revenue tag), value deduplication, and clean output formatting. You get a structured table of financial data ready for analysis, not raw XBRL.
How do I compare financial statements across companies?
Run Financial Statements Scraper with multiple tickers in a single run. Each company's data is returned as separate dataset items, which you can export to Google Sheets or CSV and pivot for side-by-side comparison. Use "key-metrics" mode for a quick overview (Revenue, Net Income, EPS, Assets, Equity) or "all" mode for full financial statements.
For automated comparison pipelines, call the actor via API and feed results into your analysis tools. The output uses standard XBRL US-GAAP field names, so the same column names work across all companies.
⚖️ Legality
Financial Statements Scraper only accesses publicly available data through the official SEC EDGAR XBRL API. SEC filings are public records under U.S. law. The SEC explicitly provides these APIs for programmatic access.
❓ FAQ
Q: What companies are covered? A: All U.S. public companies that file with the SEC — over 8,000 companies including all S&P 500, NASDAQ, and NYSE listed companies.
Q: How current is the data? A: Data is updated as companies file their 10-K and 10-Q reports with the SEC. Annual reports are typically filed within 60-90 days of fiscal year end.
Q: Can I get quarterly data? A: Yes. Set period to "quarterly" to get 10-Q data. Note that quarterly data may have more null fields as companies report less detail in 10-Q filings.
Q: What about non-GAAP metrics? A: This scraper extracts GAAP (Generally Accepted Accounting Principles) data from XBRL filings. Non-GAAP metrics like adjusted EBITDA are not standardized in XBRL and require parsing 10-K text.
Q: Why are some fields null? A: Companies use different XBRL tags for the same concept. The scraper has fallback resolution for common variations (e.g., Apple's revenue tag), but some companies may use tags not yet mapped.
Q: My ticker returns no data — what should I check? A: Verify the ticker symbol is correct and that the company files with the SEC. Some tickers (e.g., OTC stocks, foreign companies without SEC filings) may not have XBRL data available. Try using the CIK number directly instead.
Q: The data looks different from what I see on Yahoo Finance — why? A: This scraper extracts raw GAAP data from SEC XBRL filings. Financial data sites like Yahoo Finance often adjust numbers (e.g., restating for stock splits, using non-GAAP metrics). The SEC data is the authoritative source for as-reported figures.
🔗 Other business and government data scrapers
🔹 Company Funding Tracker — Track startup funding rounds from SEC Form D filings 🔹 SEC EDGAR Scraper — Search all SEC filing types (10-K, 10-Q, 8-K) 🔹 Court Records Scraper — Search federal court records from CourtListener 🔹 USA Spending Scraper — Track federal government contracts and spending 🔹 Regulations.gov Scraper — Search federal regulations and public comments