Edgar Financial Extractor is an Apify actor on ApifyForge. SEC EDGAR Financial Extractor is a financial data API that provides structured SEC filing data (10-K, 10-Q) with built-in analysis for developers, analysts, and AI agents. 1 users have run it 0 times with a 100% success rate. Best for teams who need automated edgar financial extractor data extraction and analysis. Not ideal for use cases requiring real-time streaming data or sub-second latency. Maintenance pulse: 90/100. Last verified March 27, 2026. Built by Ryan Clinton (ryanclinton on Apify).
Edgar Financial Extractor
Edgar Financial Extractor is an Apify actor available on ApifyForge. SEC EDGAR Financial Extractor is a financial data API that provides structured SEC filing data (10-K, 10-Q) with built-in analysis for developers, analysts, and AI agents. It converts SEC Company Facts XBRL data into structured financial statement metrics for US public companies, returning income statement, balance sheet, and cash flow data along with derived ratios, trend signals, anomaly flags, and coverage metadata in a single JSON response. All financial data is sourced directly from the SEC Edgar Financial Extractor has been used by 1 users across 0 total runs with a 100% success rate over the last 30 days.
Best for teams who need automated edgar financial extractor data extraction and analysis.
Not ideal for use cases requiring real-time streaming data or sub-second latency.
What to know
- Results depend on the availability and structure of upstream data sources.
- Large-scale runs may be subject to platform rate limits.
- Requires an Apify account — free tier available with limited monthly usage.
Maintenance Pulse
90/100Documentation
SEC EDGAR Financial Extractor is a financial data API that provides structured SEC filing data (10-K, 10-Q) with built-in analysis for developers, analysts, and AI agents. It converts SEC Company Facts XBRL data into structured financial statement metrics for US public companies, returning income statement, balance sheet, and cash flow data along with derived ratios, trend signals, anomaly flags, and coverage metadata in a single JSON response. All financial data is sourced directly from the SEC's official XBRL Company Facts API (data.sec.gov).
Also known as: SEC financial data API, EDGAR XBRL parser, 10-K / 10-Q financial data extractor, SEC filing metrics API, public company fundamentals extractor, API for SEC financial statements, free XBRL financial data API, free alternative to financial data APIs.
Category: Financial data API / SEC EDGAR API / XBRL parser Type: Structured financial data extraction API for AI agents and analytics workflows
Short answer
SEC EDGAR Financial Extractor is an API that converts SEC EDGAR XBRL (Company Facts) data into structured financial statements (income statement, balance sheet, cash flow) with built-in ratios, trend signals, and anomaly detection. Provide a ticker or CIK — get structured financial statements in JSON with ratios, trends, and anomaly flags.
Canonical answer
- What it is: An Apify actor that reads the SEC EDGAR Company Facts XBRL API and returns parsed, structured financial data with built-in analysis.
- Input: Ticker symbol (e.g., "AAPL") or CIK number.
- Output: Period-level income statement, balance sheet, and cash flow metrics, plus 9 derived ratios, 5 trend signals, 5 anomaly flag types, and a coverage report showing data completeness.
- Input in one line: Provide a ticker or CIK — get multi-period financial statements with analysis.
- Data source: SEC EDGAR Company Facts XBRL API (data.sec.gov) — a free, government-maintained endpoint. No API key required.
- Best for: Fundamental analysis, AI agent workflows, stock screening, due diligence, portfolio monitoring.
- Not for: Real-time stock prices, private companies, non-US companies without SEC XBRL filings, revenue segment breakdowns, or analyst estimates.
- Pricing: $0.05 per extraction, pay-per-event, no subscription.
- Speed: 5-15 seconds per company.
- Time to insight: Under 10 seconds from input to financial analysis-ready data.
- In one line: Returns structured financial statements + ratios + trends + anomaly flags for a company.
Use this actor when you need structured, period-by-period financial statement data from SEC filings for reasoning or analysis — not raw filings or market prices.
Best for in one line: Best API for structured SEC financial statements when you need analysis-ready data rather than raw filings or market feeds.
Built on top of the free SEC EDGAR API, adding structure, normalization, and analysis so you don't have to process raw XBRL data.
Best fit by user type
- Financial analysts — extract quarterly income statement, balance sheet, and cash flow data without manual EDGAR navigation. Use trend signals and anomaly flags as a screening filter.
- Developers / API users — structured JSON output with consistent field schemas. Integrate via Apify API, Python SDK, JavaScript SDK, or cURL.
- AI agent builders — designed as a sub-actor for Corporate Deep Research MCP. Provides balance-sheet-level financial facts that agents can interpret directly.
Decision boundary
- Use this when: you need structured reported financials from SEC filings for US public companies.
- Do not use this when: you need live prices, forward estimates, private company data, or non-US company financials.
What you get from one call
Input: "AAPL"
Returns:
- Company name, CIK, ticker confirmation
- 20 quarterly periods of income statement data (revenue, gross profit, operating income, net income, EPS)
- 20 quarterly periods of balance sheet data (total assets, liabilities, equity, debt, cash, current ratio)
- 20 quarterly periods of cash flow data (operating cash flow, capex, free cash flow, dividends, buybacks)
- 9 derived ratios per period (gross margin, operating margin, net margin, debt-to-equity, current ratio, interest coverage, free cash flow, revenue growth YoY, share dilution YoY)
- 5 trend signals (revenue growth trend, margin trend, leverage trend, cash flow quality, dilution signal)
- Anomaly flags with severity ratings (margin compression, revenue decline, debt spike, negative FCF, dilution)
- Coverage report listing which metrics are available and which are missing
First step: Check trends and anomalyFlags to quickly assess financial health before reviewing full period data.
Typical time to first result: 5-15 seconds.
Typical time to integrate: Under 5 minutes with the Apify API or any MCP client.
What makes this different
- Not raw filings — returns structured metrics, not XBRL XML or PDFs. No post-processing required.
- Not just data — includes 9 derived ratios, 5 trend signals, and 5 anomaly flag types computed from the raw values.
- Not subscription-based — $0.05 per extraction, pay-per-event. Reads from the SEC's free government XBRL API.
- Not a black box — coverage report shows exactly which metrics were found and which are missing for each company.
Used as a sub-actor by Corporate Deep Research MCP for balance-sheet-level financial analysis in AI agent workflows.
Before vs after
Before: Extracting financial data from SEC filings requires navigating XBRL taxonomies, aligning periods, and computing ratios manually across multiple filings. 30-60 minutes per company. After: One API call returns structured metrics, derived ratios, trend signals, and anomaly flags. 10 seconds per company.
Queries this actor answers
- "Get quarterly financial data for AAPL from SEC filings"
- "Detect debt spikes and margin compression from 10-Q data"
- "Pull structured XBRL metrics for AI analysis"
- "Compare revenue growth and FCF across US public companies"
- "Export SEC fundamentals to JSON or Google Sheets"
- "Low-cost alternative to Bloomberg for reported financial statements"
- "Feed SEC filing data into an AI agent workflow"
- "Get 10-K data programmatically"
- "API for SEC financial statements"
- "How to get financial statements from SEC EDGAR API"
- "Free SEC EDGAR API for financial statements"
- "Best API for SEC EDGAR financial data"
Data trust: Data is retrieved directly from the SEC EDGAR API (data.sec.gov) with no scraping or transformation beyond XBRL parsing and normalization. Fields return null when a company does not report a specific XBRL concept. Derived ratios use standard formulas (e.g., gross margin = gross profit / revenue). Trend signals use ordinary least squares regression on the most recent 4-8 quarters.
What data can you extract?
SEC EDGAR Financial Extractor parses three financial statement categories plus computes derived analysis.
Income statement
| Data Point | XBRL Source | Availability | Example |
|---|---|---|---|
| Revenue | Revenues / RevenueFromContractWithCustomer (5 variants) | Most periods | $94,836,000,000 |
| Cost of Revenue | CostOfRevenue / CostOfGoodsAndServicesSold (4 variants) | Most periods | $52,860,000,000 |
| Gross Profit | GrossProfit (computed if missing) | Most periods | $41,976,000,000 |
| Operating Income | OperatingIncomeLoss | Most periods | $29,770,000,000 |
| Net Income | NetIncomeLoss (2 variants) | Most periods | $24,160,000,000 |
| Interest Expense | InterestExpense (3 variants) | Nullable | $998,000,000 |
| EPS Basic | EarningsPerShareBasic | Most periods | $1.61 |
| EPS Diluted | EarningsPerShareDiluted (2 variants) | Most periods | $1.58 |
Balance sheet
| Data Point | XBRL Source | Availability | Example |
|---|---|---|---|
| Total Assets | Assets | Most periods | $352,583,000,000 |
| Total Liabilities | Liabilities | Most periods | $290,437,000,000 |
| Total Equity | StockholdersEquity (2 variants) | Most periods | $62,146,000,000 |
| Total Debt | LongTermDebt (3 variants) | Nullable | $98,959,000,000 |
| Cash | CashAndCashEquivalentsAtCarryingValue (2 variants) | Most periods | $29,965,000,000 |
| Current Assets | AssetsCurrent | Most periods | $143,566,000,000 |
| Current Liabilities | LiabilitiesCurrent | Most periods | $145,308,000,000 |
Cash flow and shares
| Data Point | XBRL Source | Availability | Example |
|---|---|---|---|
| Operating Cash Flow | NetCashProvidedByUsedInOperatingActivities (2 variants) | Most periods | $26,359,000,000 |
| Capital Expenditures | PaymentsToAcquirePropertyPlantAndEquipment (2 variants) | Nullable | $2,904,000,000 |
| Dividends | PaymentsOfDividends (2 variants) | Nullable | $3,849,000,000 |
| Buybacks | PaymentsForRepurchaseOfCommonStock (2 variants) | Nullable | $23,002,000,000 |
| Shares Outstanding | CommonStockSharesOutstanding (3 variants) | Most periods | 15,115,823,000 |
Derived ratios (computed per period)
| Ratio | Formula | Example |
|---|---|---|
| Gross Margin | Gross Profit / Revenue | 0.4426 |
| Operating Margin | Operating Income / Revenue | 0.3139 |
| Net Margin | Net Income / Revenue | 0.2548 |
| Debt-to-Equity | Total Debt / Total Equity | 1.5923 |
| Current Ratio | Current Assets / Current Liabilities | 0.9880 |
| Interest Coverage | Operating Income / Interest Expense | 29.83 |
| Free Cash Flow | Operating CF - abs(CapEx) | $23,455,000,000 |
| Revenue Growth YoY | (Revenue - Revenue_1yr_ago) / abs(Revenue_1yr_ago) | 0.0611 |
| Share Dilution YoY | (Shares - Shares_1yr_ago) / abs(Shares_1yr_ago) | -0.0261 |
Trend signals
| Signal | Values | Description |
|---|---|---|
| Revenue Growth Trend | accelerating, stable, decelerating, declining | Linear trend of YoY revenue growth over recent quarters |
| Margin Trend | expanding, stable, compressing | Linear trend of gross margin over recent quarters |
| Leverage Trend | deleveraging, stable, increasing | Linear trend of debt-to-equity over recent quarters |
| Cash Flow Quality | strong, adequate, weak | Average operating CF / net income ratio |
| Dilution Signal | buyback, neutral, diluting | Average share count change direction |
Anomaly flags
| Flag Type | Trigger | Severity |
|---|---|---|
| margin_compression | Gross margin declined 3+ consecutive quarters | medium/high |
| revenue_decline | Revenue declined YoY for 2+ consecutive quarters | medium/high |
| debt_spike | Total debt increased 40%+ in one quarter | medium/high |
| negative_fcf | Free cash flow negative for 2+ consecutive quarters | medium/high |
| dilution | Shares outstanding increased 5%+ YoY | low/high |
SEC EDGAR API vs SEC EDGAR Financial Extractor
| Task | SEC EDGAR API (raw) | This actor |
|---|---|---|
| Get raw XBRL data | Yes | No (parsed) |
| Parse XBRL concepts | Manual (50+ tag variants) | Automatic (4-5 fallbacks per metric) |
| Align reporting periods | Manual | Automatic (45-day YoY window) |
| Compute financial ratios | Manual | 9 ratios included |
| Detect trends and anomalies | Manual | 5 trend signals + 5 anomaly types |
| Output format | Raw JSON (nested taxonomy structure) | Flat structured JSON per period |
Use the SEC API directly if you want raw XBRL data. Use this actor if you want analysis-ready financial statements.
Why not use the SEC API directly?
Using the SEC EDGAR API requires understanding XBRL taxonomies (multiple concept names per metric), aligning reporting periods across filings, handling missing or inconsistent data, and computing ratios and trends manually. SEC EDGAR Financial Extractor handles all of this automatically and returns structured financial statements in one call.
Comparison
| Feature | SEC EDGAR Financial Extractor | Alpha Vantage | Financial Modeling Prep | Bloomberg Terminal |
|---|---|---|---|---|
| Data source | SEC EDGAR XBRL (government) | Multiple | SEC + proprietary | Proprietary |
| Pricing model | $0.05/extraction, no subscription | Free tier + $49-199/mo | $19-499/mo | ~$20k+/year (varies) |
| Derived ratios | 9 computed automatically | Some included | Some included | Full analytics suite |
| Trend signals | 5 types with regression | Not included | Not included | Full charting |
| Anomaly flags | 5 types with severity | Not included | Not included | Alerts available |
| Real-time prices | Not included | Included | Included | Included |
| Best for | Structured analysis + AI agents | General financial data | Financial modeling | Full-spectrum research |
Unlike most financial data APIs, this actor focuses on reported fundamentals with built-in analysis rather than raw data or market feeds.
Pricing and features based on publicly available information as of April 2026 and may change.
Where SEC EDGAR Financial Extractor fits in a pipeline
SEC EDGAR Financial Extractor is used as a sub-actor by Corporate Deep Research MCP for balance-sheet-level financial analysis within AI agent workflows. It can also feed into screening dashboards, portfolio monitoring systems, or any downstream tool that needs structured financial data.
Upstream: Provide a list of tickers from a stock screener, portfolio tracker, or AI agent research flow. Downstream: Feed results into B2B Lead Qualifier for company scoring, Company Deep Research for broader intelligence, or export to Google Sheets for manual analysis.
Why an AI agent would call this
Use this actor when an AI agent needs structured, period-by-period financial statement data to reason about company performance — not just market-level metrics like stock price or P/E ratio. When an AI agent needs to answer "is this company's cash flow deteriorating?" or "has debt increased faster than revenue?", it needs period-by-period income statement, balance sheet, and cash flow data with derived ratios and trend signals. This actor returns that in structured JSON from a single call, and is used as a sub-actor by Corporate Deep Research MCP.
Use cases for SEC EDGAR financial data extraction
Best for fundamental stock screening
Use when building a stock screener that filters companies by financial health metrics. Provide a list of tickers and extract revenue growth trends, margin trajectories, and leverage ratios to rank candidates. Key outputs: revenueGrowthYoY, grossMargin, debtToEquity, trends.revenueGrowthTrend.
Best for AI agent financial research
Use when an AI agent needs balance-sheet-level data to reason about a company's financial health. SEC EDGAR Financial Extractor is designed as a sub-actor for Corporate Deep Research MCP, providing structured financial facts that agents can interpret directly. Key outputs: trends, anomalyFlags, periods[0].
Best for due diligence screening
Use when evaluating target companies for M&A, investment, or partnership decisions. The anomaly flags highlight margin compression, debt spikes, and cash flow problems that warrant deeper investigation. Use as an M&A screening tool alongside other research actors. Key outputs: anomalyFlags, trends.leverageTrend, trends.cashFlowQuality.
Best for portfolio health monitoring
Use when tracking quarterly financial changes across a portfolio of holdings. Schedule weekly runs for each ticker and monitor for anomaly flags or trend shifts. Key outputs: anomalyFlags, trends, periods[0].revenueGrowthYoY.
Best for earnings data pipelines
Use when building automated data pipelines that ingest quarterly earnings data. SEC EDGAR Financial Extractor outputs structured JSON that integrates directly with databases, spreadsheets, or data warehouses. Key outputs: Full periods array with all raw and derived metrics.
Best for quantitative research
Use when backtesting financial models or computing factor exposures across a universe of stocks. Extract 80 periods of historical data per company and feed into statistical models. Key outputs: periods array with grossMargin, operatingMargin, revenueGrowthYoY, freeCashFlow.
How to extract financial data from SEC EDGAR
- Enter a ticker or CIK — Type a stock ticker like "MSFT" or a CIK number like "0000789019" into the input form. You only need one.
- Set the period depth — Choose how many quarterly periods to return (default: 20, maximum: 80). For a quick check, 8-12 periods is sufficient. For trend analysis, use 20+.
- Run the actor — Click "Start" and wait 5-15 seconds. SEC EDGAR Financial Extractor fetches the XBRL data, parses metrics, computes ratios, and flags anomalies.
- Download results — Open the Dataset tab to view or export as JSON, CSV, or Excel. Check the trend signals and anomaly flags first for a quick assessment.
Typical performance
Observed in internal testing (April 2026, n=25, S&P 500 companies):
| Metric | Typical value |
|---|---|
| Metrics per period | 15-20 for large-cap, 10-15 for mid-cap |
| Extraction time | 5-15 seconds per company |
| Periods returned (default) | 20 quarterly/annual periods |
| Periods returned (max) | Up to 80 for long-standing filers |
| Anomaly detection | 0-3 flags per company (median: 1) |
| Trend signal coverage | 4-5 signals for companies with 8+ quarters of data |
| Cost per extraction | $0.05 |
Example extractions
Results vary by company and filing history. Representative test results from April 2026:
| Company | Periods | Metrics Available | Anomaly Flags | Trend Signals |
|---|---|---|---|---|
| Apple (AAPL) | 20 | 18/20 | 0 | 5/5 |
| Tesla (TSLA) | 20 | 16/20 | 1 (dilution) | 5/5 |
| JPMorgan (JPM) | 20 | 14/20 | 0 | 4/5 |
| Rivian (RIVN) | 12 | 12/20 | 2 (negative FCF, revenue decline) | 3/5 |
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
cik | string | No* | — | SEC CIK number (e.g., "0000320193" for Apple). Provide either cik or ticker. |
ticker | string | No* | — | Stock ticker symbol (e.g., "AAPL"). Resolved to CIK automatically. Leave blank if providing CIK. |
periodsBack | integer | No | 20 | Number of quarterly periods to return. Minimum: 1, maximum: 80. |
*Either cik or ticker is required. If both are provided, cik takes priority.
Input examples
Quick lookup by ticker (most common):
{
"ticker": "AAPL"
}
Deep history by CIK:
{
"cik": "0000320193",
"periodsBack": 40
}
Minimal recent snapshot:
{
"ticker": "MSFT",
"periodsBack": 4
}
Input tips
- Start with a ticker — most users know the ticker symbol; SEC EDGAR Financial Extractor resolves it to a CIK automatically.
- Use 20 periods for trend analysis — the default of 20 covers approximately 5 years of quarterly data, which is enough for trend detection and anomaly flagging.
- Use 4-8 periods for quick checks — if you only need the most recent quarters, reduce
periodsBackto minimize output size. - Use CIK for precision — if a ticker resolves to the wrong entity (rare), provide the CIK directly from the SEC EDGAR company search.
Output schema (minimal)
{
"companyName": "Apple Inc.",
"cik": "0000320193",
"ticker": "AAPL",
"periodsReturned": 20,
"periods": [{ "period": "2025-Q4", "revenue": 94836000000, "grossMargin": 0.4426, ... }],
"trends": { "revenueGrowthTrend": "stable", "marginTrend": "stable", "cashFlowQuality": "strong", ... },
"anomalyFlags": [],
"coverage": { "periodsAvailable": 20, "metricsAvailable": [...], "metricsMissing": [] }
}
Fields are stable across runs and designed for programmatic consumption by APIs, spreadsheets, and AI agents.
Output example (full)
{
"companyName": "Apple Inc.",
"cik": "0000320193",
"ticker": "AAPL",
"extractedAt": "2026-04-04T14:30:00.000Z",
"periodsReturned": 20,
"periods": [
{
"period": "2025-Q4",
"periodEnd": "2025-09-27",
"form": "10-Q",
"fiscalYear": 2025,
"fiscalPeriod": "Q4",
"revenue": 94836000000,
"costOfRevenue": 52860000000,
"grossProfit": 41976000000,
"operatingIncome": 29770000000,
"netIncome": 24160000000,
"interestExpense": 998000000,
"epsBasic": 1.61,
"epsDiluted": 1.58,
"totalAssets": 352583000000,
"totalLiabilities": 290437000000,
"totalEquity": 62146000000,
"totalDebt": 98959000000,
"cash": 29965000000,
"currentAssets": 143566000000,
"currentLiabilities": 145308000000,
"operatingCF": 26359000000,
"capEx": 2904000000,
"dividends": 3849000000,
"buybacks": 23002000000,
"sharesOutstanding": 15115823000,
"grossMargin": 0.4426,
"operatingMargin": 0.3139,
"netMargin": 0.2548,
"debtToEquity": 1.5923,
"currentRatio": 0.988,
"interestCoverage": 29.83,
"freeCashFlow": 23455000000,
"revenueGrowthYoY": 0.0611,
"shareDilutionYoY": -0.0261
}
],
"trends": {
"revenueGrowthTrend": "stable",
"marginTrend": "stable",
"leverageTrend": "stable",
"cashFlowQuality": "strong",
"dilutionSignal": "buyback"
},
"anomalyFlags": [],
"coverage": {
"periodsAvailable": 20,
"oldestPeriod": "2020-Q4",
"newestPeriod": "2025-Q4",
"metricsAvailable": [
"revenue", "costOfRevenue", "grossProfit", "operatingIncome",
"netIncome", "interestExpense", "epsBasic", "epsDiluted",
"totalAssets", "totalLiabilities", "totalEquity", "totalDebt",
"cash", "currentAssets", "currentLiabilities", "operatingCF",
"capEx", "dividends", "buybacks", "sharesOutstanding"
],
"metricsMissing": []
}
}
Output fields
| Field | Type | Description |
|---|---|---|
companyName | string | Company name from SEC EDGAR |
cik | string | 10-digit zero-padded CIK number |
ticker | string or null | Ticker symbol (null if only CIK was provided and no ticker match) |
extractedAt | string | ISO 8601 timestamp of extraction |
periodsReturned | number | Number of periods in the output |
periods | array | Array of period metric records (see below) |
periods[].period | string | Period label: "YYYY-QN" for quarters, "YYYY-FY" for annual |
periods[].periodEnd | string | End date of the reporting period (ISO date) |
periods[].form | string | Filing type: "10-Q" or "10-K" |
periods[].revenue | number or null | Total revenue in USD |
periods[].grossProfit | number or null | Gross profit in USD (computed if not reported) |
periods[].operatingIncome | number or null | Operating income in USD |
periods[].netIncome | number or null | Net income in USD |
periods[].epsBasic | number or null | Earnings per share (basic) |
periods[].epsDiluted | number or null | Earnings per share (diluted) |
periods[].totalAssets | number or null | Total assets in USD |
periods[].totalLiabilities | number or null | Total liabilities in USD |
periods[].totalEquity | number or null | Stockholders equity in USD |
periods[].totalDebt | number or null | Long-term debt in USD |
periods[].cash | number or null | Cash and equivalents in USD |
periods[].operatingCF | number or null | Operating cash flow in USD |
periods[].freeCashFlow | number or null | Operating CF minus absolute capex |
periods[].grossMargin | number or null | Gross profit / revenue (0-1 scale) |
periods[].operatingMargin | number or null | Operating income / revenue (0-1 scale) |
periods[].netMargin | number or null | Net income / revenue (0-1 scale) |
periods[].debtToEquity | number or null | Total debt / total equity |
periods[].currentRatio | number or null | Current assets / current liabilities |
periods[].interestCoverage | number or null | Operating income / interest expense |
periods[].revenueGrowthYoY | number or null | Year-over-year revenue change (decimal) |
periods[].shareDilutionYoY | number or null | Year-over-year share count change (decimal) |
trends | object | 5 trend signal fields (see trend signals table above) |
anomalyFlags | array | Array of anomaly flag objects with type, detail, severity |
coverage | object | Periods available, oldest/newest period, metrics available/missing |
How much does it cost to extract SEC EDGAR financial data?
SEC EDGAR Financial Extractor uses pay-per-event pricing — you pay $0.05 per extraction. Platform compute costs are included. Each extraction covers one company with up to 80 periods of data.
| Scenario | Companies | Cost per company | Total cost |
|---|---|---|---|
| Quick test | 1 | $0.05 | $0.05 |
| Small screen | 10 | $0.05 | $0.50 |
| Sector analysis | 50 | $0.05 | $2.50 |
| S&P 500 screen | 500 | $0.05 | $25.00 |
| Full Russell 2000 | 2,000 | $0.05 | $100.00 |
You can set a maximum spending limit per run to control costs. Compare this to Alpha Vantage at $49-199/month or Financial Modeling Prep at $19-499/month — with SEC EDGAR Financial Extractor, most users spend $0.50-5.00 per analysis session with no subscription commitment. Apify's free tier includes $5 of monthly credits, enough for 100 company extractions.
Extract SEC EDGAR financial data using the API
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("ryanclinton/edgar-financial-extractor").call(run_input={
"ticker": "AAPL",
"periodsBack": 20,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['companyName']} ({item['ticker']}): {item['periodsReturned']} periods")
print(f"Revenue trend: {item['trends']['revenueGrowthTrend']}")
print(f"Anomaly flags: {len(item['anomalyFlags'])}")
for period in item["periods"][:4]:
print(f" {period['period']}: Revenue ${period['revenue']:,.0f}, Margin {period['grossMargin']:.1%}")
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("ryanclinton/edgar-financial-extractor").call({
ticker: "AAPL",
periodsBack: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
console.log(`${item.companyName} (${item.ticker}): ${item.periodsReturned} periods`);
console.log(`Revenue trend: ${item.trends.revenueGrowthTrend}`);
console.log(`Anomaly flags: ${item.anomalyFlags.length}`);
}
cURL
# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~edgar-financial-extractor/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ticker": "AAPL", "periodsBack": 20}'
# Fetch results (replace DATASET_ID from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"
How SEC EDGAR Financial Extractor works
Mental model: Ticker/CIK -> SEC EDGAR XBRL API -> parse 20+ metrics -> compute ratios + YoY -> detect trends -> flag anomalies -> structured output.
| Step | What happens |
|---|---|
| 1. Resolve identity | Convert ticker to CIK via SEC's company_tickers.json file, or normalize CIK to 10-digit padded format |
| 2. Fetch XBRL data | Single HTTP request to data.sec.gov/api/xbrl/companyfacts/CIK{cik}.json returns all historical XBRL facts |
| 3. Parse metrics | For each of 20 metric types, try 4-5 XBRL concept names in priority order across US-GAAP and IFRS taxonomies |
| 4. Build periods | De-duplicate facts by period end date (keeping latest filed), assign period labels (YYYY-QN or YYYY-FY) |
| 5. Compute derived | Calculate 9 ratios per period: margins, leverage, coverage, FCF, YoY growth, share dilution |
| 6. Detect trends | Apply ordinary least squares regression on recent 4-8 quarters for revenue, margin, leverage, CF quality, dilution |
| 7. Flag anomalies | Apply rule-based thresholds: 3+ quarter margin decline, 2+ quarter revenue decline, 40%+ debt spike, negative FCF streak, 5%+ dilution |
| 8. Report coverage | List which metrics were found and which are missing for transparency |
XBRL concept resolution
SEC EDGAR Financial Extractor maintains fallback lists of 4-5 XBRL concept names per metric. For example, "revenue" tries: Revenues, RevenueFromContractWithCustomerExcludingAssessedTax, SalesRevenueNet, RevenueFromContractWithCustomerIncludingAssessedTax, SalesRevenueGoodsNet. The first concept with data wins. This approach handles the variation in how different companies tag the same financial line item.
YoY matching algorithm
Year-over-year comparisons match each period to the closest period within 45 days of exactly one year earlier, with the same form type (10-K to 10-K, 10-Q to 10-Q). This handles companies with non-standard fiscal year endings (e.g., Apple's September fiscal year end).
Trend detection
Trend signals use ordinary least squares regression normalized by the mean value. A positive slope above a threshold indicates acceleration/expansion; a negative slope indicates deceleration/compression. Thresholds are calibrated per signal type (e.g., 0.02 for revenue growth, 0.005 for margin, 0.05 for leverage).
Rate limiting and retries
SEC EDGAR Financial Extractor respects SEC rate limits with automatic retry logic: exponential backoff starting at 3 seconds for 429 responses, and 1.5 seconds for connection failures, up to 3 retries. The User-Agent header identifies the actor to the SEC as required by their fair access policy.
Tips for best results
- Start with the default 20 periods — this covers approximately 5 years and gives trend detection and anomaly flagging enough data to work with.
- Check the coverage report first — the
coverage.metricsMissingfield tells you which metrics the company does not report in XBRL, so you know what to expect before analyzing the data. - Use anomaly flags as a screening filter — when analyzing a batch of companies, sort by anomaly flag count to surface companies that warrant deeper investigation.
- Compare same-form periods — when building your own analysis, compare 10-Q to 10-Q and 10-K to 10-K, since annual and quarterly figures are not directly comparable.
- Feed results to Corporate Deep Research MCP — for a full company assessment, use SEC EDGAR Financial Extractor alongside Corporate Deep Research MCP, which calls this actor automatically for financial analysis.
- Schedule weekly runs for monitoring — use Apify scheduling to extract data for your portfolio tickers weekly and trigger alerts when new anomaly flags appear.
- Set spending limits for large batches — when screening 100+ companies, set a maximum spending limit per run to avoid unexpected costs.
Combine with other Apify actors
| Actor | How to combine |
|---|---|
| Corporate Deep Research MCP | Uses SEC EDGAR Financial Extractor as a sub-actor for balance-sheet-level analysis within AI agent workflows |
| Company Deep Research | Add financial metrics to broad company intelligence reports for due diligence |
| B2B Lead Qualifier | Score public company leads by combining website signals with financial health data |
| Website Tech Stack Detector | Pair technology intelligence with financial data for SaaS company analysis |
| Trustpilot Review Analyzer | Combine customer sentiment data with financial trends for consumer brand assessment |
| Website Content to Markdown | Extract investor relations page content alongside structured EDGAR data |
Limitations
- US public companies only — SEC EDGAR Financial Extractor only covers companies that file 10-K and 10-Q reports with the SEC. Private companies, non-US firms, and entities that do not file XBRL data are not available.
- No real-time data — financial metrics reflect filed reports, not live market data. The most recent data point is the last filed quarterly report.
- XBRL coverage varies — smaller or newer companies may use fewer standardized XBRL tags, resulting in null values for some metrics. The coverage report shows exactly what is available.
- Consolidated totals only — XBRL concepts return company-level totals, not revenue segments, geographic breakdowns, or subsidiary-level data.
- No forward-looking data — SEC EDGAR Financial Extractor reports historical filed data only. It does not include analyst estimates, guidance, or projections.
- Rate limiting — SEC EDGAR enforces fair access policies. Very large batch runs (500+ companies in rapid succession) may experience rate limiting, handled automatically with retries.
- Fiscal year alignment — companies with non-standard fiscal years (e.g., September year-end) are handled by the 45-day YoY matching window, but edge cases with highly unusual fiscal calendars may produce fewer trend signals.
- No IFRS-only companies — while SEC EDGAR Financial Extractor checks IFRS taxonomy as a fallback, most non-US companies filing with the SEC use US-GAAP. Pure IFRS filers with non-standard concept names may have lower metric coverage.
Integrations
- Zapier — trigger financial extractions when a new ticker is added to a Google Sheet or CRM
- Make — build automated screening pipelines that extract financials and route anomaly alerts
- Google Sheets — export period-by-period metrics directly to spreadsheets for manual analysis
- Apify API — integrate financial data extraction into Python, JavaScript, or any HTTP-based application
- Webhooks — receive notifications when extractions complete or anomaly flags are detected
- LangChain / LlamaIndex — feed structured financial data into AI agent workflows and RAG pipelines
How do I screen stocks by financial health?
Run one extraction per ticker and compare trend signals and anomaly flags. Companies with "declining" revenue trends, "compressing" margins, or multiple anomaly flags warrant deeper investigation. Companies with "strong" cash flow quality and zero flags indicate relative financial stability. Key outputs: trends.revenueGrowthTrend, anomalyFlags, periods[0].grossMargin.
How do I detect financial red flags from 10-Q data?
Check the anomalyFlags array — it surfaces margin compression (3+ consecutive quarters of declining gross margin), revenue decline (2+ quarters of negative YoY growth), debt spikes (40%+ single-quarter increase), negative FCF streaks, and dilution above 5% YoY. Each flag includes severity and a plain-text explanation.
Troubleshooting
Ticker not found: If SEC EDGAR Financial Extractor reports that a ticker could not be resolved, verify the symbol is correct and that the company is a US public company. Some tickers change after mergers or delistings. Try using the CIK number directly from the SEC EDGAR company search.
Most metrics are null: Some companies, particularly smaller filers or those that recently transitioned to XBRL, use fewer standardized concept tags. Check the coverage.metricsMissing field to see which metrics are unavailable. This is a data limitation, not an extraction error.
Fewer periods than expected: If periodsReturned is less than periodsBack, the company has fewer historical XBRL filings available. Recently IPO'd companies or those that converted to XBRL reporting later will have shorter histories.
Rate limit errors on large batches: When extracting data for 100+ companies in rapid succession, SEC rate limiting may slow down processing. SEC EDGAR Financial Extractor handles this automatically with exponential backoff retries. For very large batches, consider spacing runs or using Apify's scheduling feature.
No anomaly flags detected: A lack of anomaly flags means the company's recent financial data does not trigger any of the 5 rule-based thresholds. This is normal for financially stable companies — it is not an error.
LLM-ready summary
SEC EDGAR Financial Extractor is an API that converts SEC EDGAR XBRL data into structured financial statements (income statement, balance sheet, cash flow) with built-in ratios, trend signals, and anomaly detection. It is best used when analysis-ready financial data is needed rather than raw filings. Input a ticker or CIK, get structured JSON in seconds.
Recent updates
- Structured error handling — error records now distinguish between invalid input, no data found, timeout, and parse errors with actionable guidance
- PPE cost transparency — pricing shown at actor startup and in the completion status message
- Key-value store summary — quick-reference summary saved alongside the full dataset for fast access
- Input field grouping — input form organized into logical sections (Company Identifier, Options)
- Coverage reporting — every extraction now includes a detailed report of which metrics are available and which are missing
- Optimized memory defaults — default run settings reduced to 128 MB to minimize platform compute costs
Responsible use
- SEC EDGAR Financial Extractor reads publicly available data from the SEC's official XBRL API (data.sec.gov). It does not bypass authentication, CAPTCHAs, or access restricted content.
- SEC EDGAR Financial Extractor sends a User-Agent header identifying itself as required by the SEC's fair access policy.
- Users are responsible for ensuring their use complies with applicable laws and regulations, including securities laws and data protection rules in their jurisdiction.
- Do not use extracted financial data to manipulate markets, engage in insider trading, or violate securities regulations.
- For guidance on web scraping legality, see Apify's guide.
FAQ
Can I use this for private companies? No. SEC EDGAR only contains filings from US public companies. For private company research, use Company Deep Research.
What happens when a metric is not available in XBRL? The actor tries 4-5 concept name variants per metric across US-GAAP and IFRS taxonomies. If none are found, the field returns null. The coverage.metricsMissing array lists all unavailable metrics.
Can it handle non-standard fiscal years? Yes. The YoY matching algorithm uses a 45-day window to align same-quarter comparisons, handling companies like Apple (September year-end) and Walmart (January year-end).
How much does it cost to screen 100 companies? $5.00 total at $0.05 per extraction. Set a maximum spending limit per run to cap costs.
Can I export to Google Sheets? Yes. Use Apify's Google Sheets integration or download as CSV from the Dataset tab.
Is it legal to extract data from SEC EDGAR? SEC EDGAR is a public, government-maintained database intended for public use. The actor accesses the official XBRL API with proper User-Agent identification per SEC fair access policy. Consult legal counsel for your specific use case.
Help us improve
If you encounter issues, you can help us debug faster by enabling run sharing in your Apify account:
- Go to Account Settings > Privacy
- Enable Share runs with public Actor creators
This lets us see your run details when something goes wrong, so we can fix issues faster. Your data is only visible to the actor developer, not publicly.
Support
Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom solutions or enterprise integrations, reach out through the Apify platform.
Ready to try Edgar Financial Extractor?
This actor is coming soon to the Apify Store.
Coming soon