DEVELOPER TOOLSLEAD GENERATION

SEC EDGAR Filing Analyzer

Search SEC filings by ticker, name, or CIK. Extract 10-K, 10-Q, 8-K metadata and structured XBRL financials (revenue, net income, assets, EPS). Covers 10,000+ public companies. Free SEC API, no key needed.

Try on Apify Store
$0.30per event
2
Users (30d)
34
Runs (30d)
93
Actively maintained
Maintenance Pulse
$0.30
Per event

Maintenance Pulse

93/100
Last Build
1d ago
Last Version
5d ago
Builds (30d)
7
Issue Response
8h avg

Cost Estimate

How many results do you need?

company-analyzeds
Estimated cost:$30.00

Pricing

Pay Per Event model. You only pay for what you use.

EventDescriptionPrice
company-analyzedCharged per company analyzed. Includes CIK lookup, SEC submission retrieval, XBRL financial data extraction, and 20+ financial metrics.$0.30

Example: 100 events = $30.00 · 1,000 events = $300.00

Documentation

What does SEC EDGAR Filing Analyzer do?

SEC EDGAR Filing Analyzer is an Apify actor that searches and analyzes SEC EDGAR filings for any U.S. public company by ticker symbol, company name, or CIK number. It retrieves filing metadata (10-K, 10-Q, 8-K, and more) along with structured XBRL financial data including revenue, net income, total assets, earnings per share, and other key metrics. It covers over 10,000 publicly traded companies using the free SEC EDGAR API -- no API key required.

For each company you get a complete profile (name, CIK, ticker, exchange, SIC code, state of incorporation, fiscal year end), a list of matching filings with direct URLs to the full documents on SEC.gov, and an optional financial snapshot extracted from machine-readable XBRL data.

Why use SEC EDGAR Filing Analyzer on Apify?

Navigating the SEC EDGAR website to find and extract filing data is tedious. The search interface is dated, financial data is buried in XBRL taxonomies that vary by company, and there is no built-in way to export structured data or monitor filings over time.

The raw SEC EDGAR API is free but complex: you need to handle rate limiting (10 requests/second), look up companies by CIK from a separate tickers file, parse nested submission JSON, and map XBRL concept names to financial metrics. This actor handles all of that:

  • No API key required -- The SEC EDGAR API is completely free and public. No authentication needed.
  • Flexible company lookup -- Search by ticker (AAPL), company name (Apple), or CIK number (0000320193).
  • Automatic financial extraction -- Pulls 10 key financial metrics from XBRL data using multiple concept name mappings to handle different companies' reporting styles.
  • Date range filtering -- Narrow results to a specific time window.
  • Batch processing -- Analyze multiple companies in a single run with built-in rate limiting.
  • Scheduled monitoring -- Track new filings daily with Apify's scheduler.

Key features

  • All SEC filing types -- Retrieve 10-K annual reports, 10-Q quarterly reports, 8-K current reports, proxy statements (DEF 14A), insider trading forms (Form 4), S-1 registrations, 13F institutional holdings, and any other filing type.
  • Structured XBRL financial extraction -- Automatically pulls the latest revenue, net income, total assets, total liabilities, shareholders' equity, EPS, operating income, cash, debt, and gross profit from machine-readable XBRL data.
  • US-GAAP and IFRS support -- Financial extraction works with both US-GAAP and IFRS reporting standards, handling the different concept names used by each.
  • Company profile data -- Returns SIC code, entity type, state of incorporation, fiscal year end, exchange listings, and filer category.
  • Direct filing links -- Every filing includes a direct URL to the full document on SEC.gov.
  • Date range filtering -- Narrow filings to a specific time window using dateFrom and dateTo parameters.

Use cases

Financial analyst workflow -- An equity analyst tracks quarterly earnings for 20 portfolio companies. They run the actor weekly with filingTypes: ["10-K", "10-Q"] and export financials to Google Sheets. When a new filing appears, they compare revenue and net income against prior periods without opening EDGAR.

Compliance monitoring -- A corporate compliance team monitors 8-K filings for material events across 50 companies in their supply chain. They schedule daily runs and send results to Slack, alerting the team to any unexpected disclosures or change-of-control events.

Investment research pipeline -- A quantitative fund builds an automated data pipeline that pulls XBRL financial data for 500 companies quarterly. They feed revenue, EPS, and total assets into their valuation models, eliminating manual data entry.

Competitive intelligence -- A startup CEO monitors their public competitors' SEC filings to track revenue growth, headcount changes (from 10-K employee disclosures), and new risk factors. They combine this with their own Company Deep Research actor for a complete picture.

Journalism and investigation -- A financial reporter searches for all 8-K filings from a specific company in the last 90 days to identify undisclosed material events. They cross-reference filing dates with stock price movements for potential stories.

Academic research -- A finance professor gathers 10-K financial data for 200 companies over a 5-year window for an empirical study on corporate leverage ratios, using the dateFrom/dateTo filters to isolate the study period.

How to use SEC EDGAR Filing Analyzer

  1. Click Try for free on this page.
  2. Enter one or more company tickers, names, or CIK numbers (e.g., AAPL, Tesla, 0000320193).
  3. Optionally filter by filing type (10-K, 10-Q, 8-K, etc.) and date range.
  4. Click Start and wait for the run to finish.
  5. Download results from the Dataset tab in JSON, CSV, or Excel format.

Input parameters

ParameterTypeRequiredDefaultDescription
companiesString[]Yes-Company tickers, names, or CIK numbers to look up (e.g., AAPL, Tesla, 0000320193).
filingTypesString[]NoAllSEC filing types to retrieve. Leave empty for all types. Common: 10-K, 10-Q, 8-K, DEF 14A, 4, S-1, 13F-HR.
maxFilingsPerCompanyIntegerNo20Maximum number of filings to return per company (1-500).
includeFinancialsBooleanNotrueFetch structured XBRL financial data (revenue, net income, assets, EPS, etc.).
dateFromStringNo-Only include filings filed on or after this date (YYYY-MM-DD).
dateToStringNo-Only include filings filed on or before this date (YYYY-MM-DD).

Input examples

Latest annual and quarterly reports for tech companies:

{
    "companies": ["AAPL", "MSFT", "GOOGL", "AMZN", "META"],
    "filingTypes": ["10-K", "10-Q"],
    "maxFilingsPerCompany": 10,
    "includeFinancials": true
}

All 8-K filings from one company in the last 90 days:

{
    "companies": ["TSLA"],
    "filingTypes": ["8-K"],
    "maxFilingsPerCompany": 50,
    "includeFinancials": false,
    "dateFrom": "2025-11-01",
    "dateTo": "2026-02-01"
}

Historical filings for academic research:

{
    "companies": ["JPM", "BAC", "WFC", "C", "GS"],
    "filingTypes": ["10-K"],
    "maxFilingsPerCompany": 20,
    "includeFinancials": true,
    "dateFrom": "2020-01-01",
    "dateTo": "2024-12-31"
}

Insider trading forms for a specific company:

{
    "companies": ["NVDA"],
    "filingTypes": ["4"],
    "maxFilingsPerCompany": 100,
    "includeFinancials": false
}

Input tips

  • Use ticker symbols for best results -- Searching by ticker (e.g., MSFT) is the most reliable lookup method. Company name searches work but may match unexpected entities if the name is common.
  • Filter filing types to reduce noise -- If you only need annual reports, set filingTypes to ["10-K"] to skip the hundreds of other filing types.
  • Set includeFinancials to false for filing types without XBRL data (Form 4, proxy statements) to speed up the run.
  • CIK numbers work with or without leading zeros -- Both 320193 and 0000320193 resolve to Apple Inc.

Output example

The actor returns one result per company:

{
  "query": "AAPL",
  "found": true,
  "company": {
    "name": "Apple Inc.",
    "cik": "0000320193",
    "tickers": ["AAPL"],
    "exchanges": ["Nasdaq"],
    "sic": "3571",
    "sicDescription": "ELECTRONIC COMPUTERS",
    "entityType": "operating",
    "stateOfIncorporation": "CA",
    "fiscalYearEnd": "0928",
    "category": "Large accelerated filer"
  },
  "filingCount": 3,
  "filings": [
    {
      "type": "10-K",
      "filingDate": "2024-11-01",
      "reportDate": "2024-09-28",
      "description": "Form 10-K",
      "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm",
      "accessionNumber": "0000320193-24-000123",
      "primaryDocument": "aapl-20240928.htm",
      "isXBRL": true
    }
  ],
  "financials": {
    "revenue": {
      "label": "Revenue from Contract with Customer, Excluding Assessed Tax",
      "value": 391035000000,
      "period": "2024-09-28",
      "filed": "2024-11-01",
      "form": "10-K",
      "unit": "USD"
    },
    "netIncome": {
      "label": "Net Income (Loss)",
      "value": 93736000000,
      "period": "2024-09-28",
      "filed": "2024-11-01",
      "form": "10-K",
      "unit": "USD"
    },
    "earningsPerShare": {
      "label": "Earnings Per Share, Basic",
      "value": 6.11,
      "period": "2024-09-28",
      "filed": "2024-11-01",
      "form": "10-K",
      "unit": "USD/shares"
    }
  },
  "analyzedAt": "2025-01-15T14:30:00.000Z"
}

Output fields -- company level

FieldTypeDescription
queryStringThe original search query (ticker, name, or CIK)
foundBooleanWhether a matching company was found in SEC records
company.nameStringOfficial company name
company.cikStringCentral Index Key (10-digit, zero-padded)
company.tickersString[]Stock ticker symbols
company.exchangesString[]Stock exchanges where the company is listed
company.sicStringStandard Industrial Classification code
company.sicDescriptionStringHuman-readable SIC industry description
company.entityTypeStringSEC entity type (e.g., operating)
company.stateOfIncorporationStringTwo-letter state code
company.fiscalYearEndStringFiscal year end date (MMDD format, e.g., 0928 = September 28)
company.categoryStringSEC filer category (e.g., Large accelerated filer)

Output fields -- filing level

FieldTypeDescription
typeStringSEC form type (10-K, 10-Q, 8-K, etc.)
filingDateStringDate the filing was submitted to the SEC
reportDateStringPeriod end date for the report
descriptionStringFiling description from SEC
urlStringDirect URL to the full document on SEC.gov
accessionNumberStringUnique SEC accession number
primaryDocumentStringPrimary document filename
isXBRLBooleanWhether the filing includes machine-readable XBRL data

Output fields -- financial metrics

Each metric (when available) includes:

FieldTypeDescription
labelStringXBRL concept label (human-readable name)
valueNumberFinancial value (in the currency/unit specified)
periodStringReporting period end date
filedStringDate the filing was submitted
formStringFiling type the data came from (10-K or 10-Q)
unitStringUnit of measurement (USD, USD/shares, etc.)

Available financial metrics: revenue, netIncome, totalAssets, totalLiabilities, shareholdersEquity, earningsPerShare, operatingIncome, cashAndEquivalents, totalDebt, grossProfit.

How to use the API programmatically

Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_API_TOKEN")

run_input = {
    "companies": ["AAPL", "MSFT", "GOOGL"],
    "filingTypes": ["10-K", "10-Q"],
    "maxFilingsPerCompany": 10,
    "includeFinancials": True,
}

run = client.actor("ryanclinton/sec-edgar-filing-analyzer").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    company = item["company"]
    financials = item.get("financials", {})
    revenue = financials.get("revenue", {}).get("value", "N/A")
    print(f"{company['name']} ({company['tickers'][0]}): Revenue = {revenue}")

JavaScript

import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "YOUR_APIFY_API_TOKEN" });

const run = await client.actor("ryanclinton/sec-edgar-filing-analyzer").call({
    companies: ["AAPL", "MSFT", "GOOGL"],
    filingTypes: ["10-K", "10-Q"],
    maxFilingsPerCompany: 10,
    includeFinancials: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    const revenue = item.financials?.revenue?.value ?? "N/A";
    console.log(`${item.company.name}: Revenue = ${revenue}`);
});

cURL

# Start the actor
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~sec-edgar-filing-analyzer/runs?token=YOUR_APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "companies": ["AAPL", "MSFT"],
    "filingTypes": ["10-K"],
    "maxFilingsPerCompany": 5,
    "includeFinancials": true
  }'

# Retrieve results
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_APIFY_API_TOKEN&format=json"

How it works

  1. Company lookup -- The actor loads the SEC's complete company tickers file (10,000+ entries) and searches for your query. It tries exact CIK match first, then exact ticker match, then company name substring match. The tickers file is cached in memory for batch runs.

  2. Submission retrieval -- For each matched company, the actor fetches the full submissions JSON from data.sec.gov/submissions/CIK{cik}.json. This contains the company profile and an array of recent filings with metadata (form type, dates, accession numbers, document names).

  3. Filing filtering -- The submissions array is filtered by filing type (if specified) and date range (if specified), then capped at maxFilingsPerCompany. Each filing gets a direct URL constructed from the CIK, accession number, and primary document name.

  4. XBRL financial extraction -- If includeFinancials is enabled, the actor fetches the company's XBRL facts from data.sec.gov/api/xbrl/companyfacts/CIK{cik}.json. It then searches for 10 financial metrics across both US-GAAP and IFRS taxonomies. For each metric, it tries multiple XBRL concept names (e.g., revenue might be reported as RevenueFromContractWithCustomerExcludingAssessedTax, Revenues, or SalesRevenueNet depending on the company). It prefers 10-K (annual) data over 10-Q (quarterly) and returns the most recent value.

  5. Rate limiting -- The actor throttles requests to 5 per second (200ms interval), staying conservatively below the SEC's 10 req/sec limit. This ensures reliable access even for large batch runs.

  6. Output -- One result per company is pushed to the Apify dataset with company profile, filtered filings, and financial snapshot.

XBRL concept mapping

The actor maps financial metrics to multiple XBRL taxonomy concepts because different companies use different terms:

MetricXBRL Concepts Tried (in order)
RevenueRevenueFromContractWithCustomerExcludingAssessedTax, Revenues, SalesRevenueNet, SalesRevenueGoodsNet
Net IncomeNetIncomeLoss, NetIncomeLossAvailableToCommonStockholdersBasic, ProfitLoss
Total AssetsAssets
Total LiabilitiesLiabilities, LiabilitiesAndStockholdersEquity
Shareholders' EquityStockholdersEquity, StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
EPSEarningsPerShareBasic, EarningsPerShareDiluted
Operating IncomeOperatingIncomeLoss
CashCashAndCashEquivalentsAtCarryingValue, CashCashEquivalentsAndShortTermInvestments
Total DebtLongTermDebt, LongTermDebtAndCapitalLeaseObligations, DebtCurrent
Gross ProfitGrossProfit

Common filing types reference

TypeNameDescription
10-KAnnual ReportComprehensive annual financial report with audited statements
10-QQuarterly ReportUnaudited quarterly financial report
8-KCurrent ReportReport of material events (earnings, M&A, leadership changes)
DEF 14AProxy StatementExecutive compensation, board nominees, shareholder votes
4Insider TradingStatement of changes in beneficial ownership (stock trades by insiders)
S-1RegistrationIPO registration statement
13F-HRInstitutional HoldingsQuarterly report of institutional investment managers' holdings
SC 13DBeneficial OwnershipReport by 5%+ shareholders
20-FForeign Annual ReportAnnual report for foreign private issuers

How much does it cost?

ScenarioCompaniesEst. RuntimeEst. Cost
Single company with financials1~3 sec~$0.001
5 companies with financials5~15 sec~$0.005
20 companies, all filing types20~1 min~$0.02
100 companies batch100~5 min~$0.08

Apify Free Tier: $5 of free monthly credits -- enough to analyze thousands of companies per month.

SEC EDGAR API: Completely free. No API key, no charges, no quotas.

Combine with other actors

  • EDGAR Filing Search -- Full-text search across all SEC EDGAR filings with keyword matching. Use when you need to find filings by content rather than by company.
  • SEC Insider Trading -- Track insider stock transactions (Form 4 filings) for any public company. Complements this actor's filing metadata with detailed transaction data.
  • SEC 13F Holdings -- Search institutional investment manager holdings from 13F filings. See which funds hold positions in the companies you analyze.
  • Congressional Stock Trade Tracker -- Monitor stock trades reported by members of Congress. Cross-reference with SEC filings for complete transparency.
  • Finnhub Stock Market Data -- Get real-time stock quotes, company profiles, and market data to complement SEC filing analysis.
  • Company Deep Research Agent -- Comprehensive company intelligence combining multiple data sources for a complete picture beyond SEC filings.
  • OFAC Sanctions Search -- Screen companies and their officers against OFAC sanctions lists for compliance due diligence.

Limitations

  • Financial data coverage -- XBRL financial extraction works best for recent filings (post-2009). Older filings may not have machine-readable financial data. The actor automatically extracts the most recent available data point for each metric.
  • Concept name variations -- Different companies use different XBRL concept names for the same financial metric. The actor maps 10 metrics across multiple concept names, but some companies may use unusual concepts that are not covered.
  • Recent filings only -- The SEC submissions endpoint returns the most recent ~1,000 filings. For very old filing history, you may need to use the EDGAR full-text search API separately.
  • Company name ambiguity -- Searching by company name uses substring matching. Common names (e.g., "United") may match an unexpected entity. Use ticker symbols for reliable lookups.
  • Rate limiting -- The actor conservatively limits to 5 requests/second. Very large batches (500+ companies) will take proportionally longer.
  • No document content -- The actor returns filing metadata and XBRL financial data, but does not parse the full text content of filing documents. Use the direct URL to access the complete document on SEC.gov.

Responsible use

  • Public data -- All data comes from the SEC's public EDGAR system, a government database specifically designed for public access. The SEC actively encourages programmatic access.
  • Rate limiting -- The actor stays within SEC's published rate limits (10 req/sec) with a conservative 5 req/sec throttle. Do not modify or bypass this rate limiting.
  • SEC fair access -- Avoid scheduling unnecessarily frequent runs. Daily monitoring is appropriate; running every minute is excessive.
  • Data accuracy -- XBRL financial data is extracted directly from company filings. Always verify critical financial data against the primary filing documents on SEC.gov before making investment decisions.

FAQ

Do I need an API key? No. The SEC EDGAR API is completely free and does not require authentication.

What financial metrics are extracted? Up to 10 key metrics: revenue, net income, total assets, total liabilities, shareholders' equity, earnings per share, operating income, cash and equivalents, total debt, and gross profit. The actor pulls the most recent reported value from 10-K or 10-Q filings.

How current is the filing data? The actor queries the SEC EDGAR API in real time. Filing data is available as soon as the SEC processes and publishes it, typically within minutes of submission.

Can I search for non-US companies? Yes, if the company files with the SEC. Many foreign companies that trade on US exchanges (via ADRs or direct listings) file reports with the SEC. The actor supports both US-GAAP and IFRS reporting standards.

What is a CIK number? CIK (Central Index Key) is a unique 10-digit identifier assigned by the SEC to every entity that files with them. Apple Inc.'s CIK is 0000320193. You can search by CIK, ticker symbol, or company name.

How many companies can I analyze in a single run? There is no hard limit. Each company requires several API calls, so large batches (100+ companies) take longer. The actor includes built-in rate limiting to stay within SEC guidelines.

Can I get results in CSV or Excel format? Yes. After the actor completes, click "Export" on the dataset page and choose your format. The Apify API also supports format=csv and format=xlsx query parameters.

Why is a financial metric missing for some companies? Not all companies report every metric, and some use non-standard XBRL concept names. The actor tries multiple concept names for each metric but may not cover every variation. Companies that have only recently gone public may have limited XBRL history.

Integrations

  • Google Sheets -- Export filing data and financials directly to spreadsheets for analysis.
  • Slack / Email -- Get notifications about new filings for companies you track.
  • Webhooks -- Push results to your data warehouse, CRM, or custom pipeline.
  • Zapier / Make -- Build complex automations combining SEC data with other sources.
  • REST API -- Call the actor programmatically from any language or platform.

How it works

01

Configure

Set your parameters in the Apify Console or pass them via API.

02

Run

Click Start, trigger via API, webhook, or set up a schedule.

03

Get results

Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.

Use cases

Sales Teams

Build targeted lead lists with verified contact data.

Marketing

Research competitors and identify outreach opportunities.

Data Teams

Automate data collection pipelines with scheduled runs.

Developers

Integrate via REST API or use as an MCP tool in AI workflows.

Ready to try SEC EDGAR Filing Analyzer?

Start for free on Apify. No credit card required.

Open on Apify Store