Financial Statements Scraper avatar

Financial Statements Scraper

Pricing

Pay per event

Go to Apify Store
Financial Statements Scraper

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

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

4

Monthly active users

2 days ago

Last modified

Categories

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 YearRevenueNet IncomeEPSAssetsEquity
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:

EventPrice
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

  1. Go to the Financial Statements Scraper page on Apify
  2. Select the statement type (key metrics, income statement, balance sheet, cash flow, or all)
  3. Enter stock tickers (e.g., AAPL, MSFT, TSLA)
  4. Choose annual or quarterly data and how many years of history
  5. Click "Start" and wait for results
  6. Download data as JSON, CSV, Excel, or connect via API

📥 Input parameters

ParameterTypeDescription
modestringStatement type: key-metrics, income-statement, balance-sheet, cash-flow, or all
tickersstring[]Stock ticker symbols (e.g., AAPL, MSFT, TSLA)
ciksstring[]SEC CIK numbers (alternative to tickers)
periodstringannual (10-K) or quarterly (10-Q)
maxYearsnumberYears 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 ApifyClient
client = 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().items
print(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