SEC Financial Statements XBRL Data Scraper avatar

SEC Financial Statements XBRL Data Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
SEC Financial Statements XBRL Data Scraper

SEC Financial Statements XBRL Data Scraper

Extract SEC XBRL financial statement data by concept (Revenues, Assets, Net Income) and fiscal year across all public companies. Filter by company, value range. No API key.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Compute Edge

Compute Edge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Extract 10+ million financial data points from SEC XBRL filings. Scrape Revenues, Assets, Liabilities, Net Income, and any other US-GAAP concept reported by public companies across decades of historical data. Perfect for financial analysis, investment research, SEC compliance, and economic modeling.

What This Actor Does

This Actor provides direct access to the SEC's official XBRL "frames" API, which contains every financial metric reported by every US public company across multiple fiscal years.

Instead of manually downloading 10-K filings and parsing HTML, you get:

  • Structured JSON output — All companies reporting a concept for a given year in one API response
  • Zero setup required — No API keys, no login, no authentication
  • Historical depth — Data from 2009 to 2025 for most concepts
  • Instant results — Response times under 5 seconds

Key Features

  • 800,000+ Financial Metrics (US-GAAP concepts) — Revenues, Assets, Liabilities, Operating Income, Stockholders' Equity, Cash Flow, and more
  • Flexible filtering — Filter by company name, value range, and apply strict upper/lower bounds
  • XBRL Taxonomy Support — Use any valid US-GAAP concept tag from the FASB taxonomy
  • Balance Sheet & Income Statement Data — Support for both instant (Q4I suffix for balance sheet) and duration (annual/quarterly) concepts
  • 10-digit CIK codes — Every company includes a link to their SEC EDGAR filings
  • Zero API authentication — Free public API with no quotas
  • Sorted by Value — Results ranked largest-to-smallest for quick top-company insights

Most-Requested Concepts

ConceptUS-GAAP TagTypeUnitsUse Case
RevenuesRevenuesDurationUSDTotal annual sales; trending by company
Net IncomeNetIncomeLossDurationUSDProfitability; earnings rankings
Total AssetsAssetsInstant (Q4I)USDCompany size; balance sheet snapshot
Total LiabilitiesLiabilitiesInstant (Q4I)USDLeverage analysis
Operating IncomeOperatingIncomeLossDurationUSDCore business profitability
Stockholders' EquityStockholdersEquityInstant (Q4I)USDBook value; valuation baseline
Cash & EquivalentsCashAndCashEquivalentsAtCarryingValueInstant (Q4I)USDLiquidity; short-term solvency
Accounts ReceivableAccountsReceivableInstant (Q4I)USDCredit quality; collection analysis

Getting Started — 3 Steps

Step 1: Choose a Concept

Visit https://xbrl.fasb.org/us-gaap/ to explore the full US-GAAP taxonomy. Popular starting points:

  • Income Statement (duration): Revenues, NetIncomeLoss, OperatingIncomeLoss, CostOfRevenue
  • Balance Sheet (instant): Assets, Liabilities, StockholdersEquity, CommonStockSharesIssued, Cash...
  • Cash Flow (duration): NetCashProvidedByOperatingActivities, CapitalExpenditures

Step 2: Decide: Duration or Instant?

Duration concepts (Income Statement, Cash Flow) use annual/quarterly data:

  • For annual 2023 data: Leave frameSuffix empty (default)
  • API URL: https://data.sec.gov/api/xbrl/frames/us-gaap/Revenues/USD/CY2023.json

Instant concepts (Balance Sheet) require a suffix for the specific date:

  • For Q4 (December 31, 2023): Set frameSuffix to "Q4I"
  • API URL: https://data.sec.gov/api/xbrl/frames/us-gaap/Assets/USD/CY2023Q4I.json

If you choose a balance-sheet concept without the suffix, the Actor will gracefully return no data with a clear warning.

Step 3: Run the Actor

  1. Paste your desired concept (e.g., Revenues)
  2. Optionally filter by company name (e.g., "Apple" for Apple Inc.)
  3. Set value filters (e.g., "Show only companies with >$1B revenue")
  4. Click Start

How to scrape SEC financial statement data

Tutorial 1: Top 100 Revenue-Generating Companies in 2023

Goal: Find the 100 largest US public companies by annual revenue in fiscal year 2023.

Input configuration:

  • Concept: Revenues
  • Unit: USD
  • Year: 2023
  • Frame Suffix: `` (empty, for annual data)
  • Entity Name Filter: `` (empty, include all)
  • Min Value: 0
  • Max Value: 0 (no cap)
  • Max Results: 100

Expected output:

[
{
"cik": "0000320193",
"entityName": "Apple Inc.",
"concept": "Revenues",
"label": "Revenues",
"unit": "USD",
"fiscalYear": "2023",
"value": 383285000000,
"periodStart": "2022-09-25",
"periodEnd": "2023-09-30",
"accession": "0000320193-23-000106",
"secFilingsUrl": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000320193&type=10-K"
},
{
"cik": "0001018724",
"entityName": "Amazon.com Inc.",
"concept": "Revenues",
"label": "Revenues",
"unit": "USD",
"fiscalYear": "2023",
"value": 574785000000,
"periodStart": "2023-01-01",
"periodEnd": "2023-12-31",
"accession": "0001018724-24-000004",
"secFilingsUrl": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0001018724&type=10-K"
},
...
]

Use case: Build a market-cap proxy by summing revenues per company. Identify industry leaders. Track market shifts year-over-year.


Tutorial 2: Find Profitable Companies (Positive Net Income) in a Specific Year

Goal: Extract all US public companies with positive net income in 2023 to screen for profitable businesses.

Input configuration:

  • Concept: NetIncomeLoss
  • Unit: USD
  • Year: 2023
  • Frame Suffix: `` (empty)
  • Entity Name Filter: `` (empty)
  • Min Value: 1 (only positive income)
  • Max Value: 0 (no cap)
  • Max Results: 5000 (expect ~3000-4000 profitable companies)

Expected output:

[
{
"cik": "0000320193",
"entityName": "Apple Inc.",
"concept": "NetIncomeLoss",
"label": "Net Income (Loss)",
"unit": "USD",
"fiscalYear": "2023",
"value": 96995000000,
"periodStart": "2022-09-25",
"periodEnd": "2023-09-30",
"accession": "0000320193-23-000106",
"secFilingsUrl": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000320193&type=10-K"
},
...
]

Use case: Screen for profitable companies. Calculate profit margin (NetIncome / Revenues). Identify undervalued profitable businesses.


Tutorial 3: Compare Balance Sheet Assets Across Years (Instant Concept)

Goal: Extract total assets for a specific company (e.g., Microsoft) for Q4 2022 and Q4 2023 to analyze growth.

Input configuration:

  • Concept: Assets
  • Unit: USD
  • Year: 2023
  • Frame Suffix: Q4I (Q4 instant for balance sheet)
  • Entity Name Filter: Microsoft (case-insensitive partial match)
  • Min Value: 0
  • Max Value: 0
  • Max Results: 10

Expected output:

[
{
"cik": "0000789019",
"entityName": "MICROSOFT CORPORATION",
"concept": "Assets",
"label": "Assets",
"unit": "USD",
"fiscalYear": "2023",
"value": 411975000000,
"periodStart": "",
"periodEnd": "2023-06-30",
"accession": "0000789019-23-000067",
"secFilingsUrl": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000789019&type=10-K"
}
]

Note: For instant concepts, periodStart is empty ("") and periodEnd is the snapshot date (e.g., Q4 fiscal year-end).

Use case: Track asset growth. Compare balance sheet snapshots quarter-over-quarter or year-over-year. Analyze business expansion.


Input Parameters

ParameterTypeDefaultDescription
conceptstringRevenuesUS-GAAP concept name (e.g., "Assets", "NetIncomeLoss"). Visit https://xbrl.fasb.org/us-gaap/
unitstringUSDReporting unit. Most concepts use "USD". Some use "shares", "percent", etc.
yearinteger2023Fiscal year (2009-2025)
frameSuffixstring`` (empty)For instant (balance sheet) concepts, append the suffix. Examples: "Q4I" (Dec 31), "Q1I", "Q2I", "Q3I"
entityNameFilterstring`` (empty)Filter by company name (case-insensitive partial match). Example: "apple" matches "Apple Inc."
minValuenumber0Exclude records with values below this threshold
maxValuenumber0Exclude records with values above this threshold. 0 = no upper limit
maxResultsinteger1000Maximum records to return (1-50,000)

Output Fields

Every record includes:

FieldTypeDescription
cikstringCentral Index Key (10-digit, zero-padded). Unique SEC identifier for the company.
entityNamestringOfficial company name as reported to the SEC.
conceptstringThe US-GAAP concept tag you requested (e.g., "Revenues").
labelstringHuman-readable label from the FASB taxonomy (e.g., "Revenues" → "Revenues")
unitstringReporting unit (usually "USD").
fiscalYearstringThe fiscal year (e.g., "2023").
valuenumberThe reported financial value (e.g., 383,285,000,000 for Apple's 2023 revenue in USD).
periodStartstringISO date when the fiscal period begins (empty for instant concepts).
periodEndstringISO date when the fiscal period ends.
accessionstringSEC accession number for the filing containing this data.
secFilingsUrlstringDirect link to browse that company's SEC EDGAR filings.

Output Examples

Example 1: Duration Concept (Revenues)

{
"cik": "0000320193",
"entityName": "Apple Inc.",
"concept": "Revenues",
"label": "Revenues",
"unit": "USD",
"fiscalYear": "2023",
"value": 383285000000,
"periodStart": "2022-09-25",
"periodEnd": "2023-09-30",
"accession": "0000320193-23-000106",
"secFilingsUrl": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000320193&type=10-K"
}

Example 2: Instant Concept (Assets)

{
"cik": "0000789019",
"entityName": "MICROSOFT CORPORATION",
"concept": "Assets",
"label": "Assets",
"unit": "USD",
"fiscalYear": "2023",
"value": 411975000000,
"periodStart": "",
"periodEnd": "2023-06-30",
"accession": "0000789019-23-000067",
"secFilingsUrl": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000789019&type=10-K"
}

Advanced: Understanding XBRL Concepts

Duration vs. Instant Concepts

Duration concepts measure activity over a period (e.g., "How much did you earn this year?"):

  • Examples: Revenues, Net Income, Operating Cash Flow
  • Frame format: CY{year} (e.g., CY2023)
  • Leave frameSuffix empty

Instant concepts measure a snapshot at a point in time (e.g., "What did you own on Dec 31?"):

  • Examples: Assets, Liabilities, Cash, Inventory
  • Frame format: CY{year}{Quarter}I (e.g., CY2023Q4I)
  • Set frameSuffix to the quarter suffix (Q1I, Q2I, Q3I, Q4I)

How to Find a Concept

  1. Visit https://xbrl.fasb.org/us-gaap/
  2. Search for the metric you want (e.g., "cash flow")
  3. Copy the concept name (e.g., NetCashProvidedByOperatingActivities)
  4. Paste into the Actor's Concept field

Common Concept Groups

Income Statement (Duration)

  • Revenues
  • CostOfRevenue
  • GrossProfit
  • OperatingExpenses
  • OperatingIncomeLoss
  • InterestExpense
  • IncomeTaxExpense
  • NetIncomeLoss

Balance Sheet (Instant — use "Q4I" suffix)

  • Assets
  • CurrentAssets
  • Liabilities
  • CurrentLiabilities
  • StockholdersEquity
  • CashAndCashEquivalentsAtCarryingValue
  • AccountsReceivable
  • Inventory

Cash Flow (Duration)

  • NetCashProvidedByOperatingActivities
  • NetCashUsedInInvestingActivities
  • NetCashUsedInFinancingActivities
  • CapitalExpenditures

Pricing

This Actor uses the free SEC XBRL API (no usage limits, no API key required). You pay only for Apify compute time.

  • Compute cost: ~$0.0001-0.001 per run (typically <5 second latency)
  • Typical batch: 100-10,000 records per run = $0.01-0.10
  • Bulk runs: 1000+ records = $0.10-0.50 per run

The SEC API itself is completely free and public domain.


Troubleshooting

"Frame not found" Error (404)

This means the requested concept/year combination doesn't exist in that frame format.

Solutions:

  1. Check if it's an instant concept — Try adding a frameSuffix like "Q4I". Example: Assets requires "Q4I" for balance sheet data.
  2. Verify the concept name — Visit https://xbrl.fasb.org/us-gaap/ to confirm the exact spelling.
  3. Check the year range — The SEC XBRL API covers 2009-2025. Some older concepts may not have data for all years.

"No records found" for a Concept

The concept exists but returned zero data points.

Possible causes:

  • The concept is very specialized (e.g., a small subset of companies report it)
  • The entity name filter is too restrictive
  • The value filters eliminated all results

Solution: Run with no filters to see the full dataset, then narrow down.

Empty periodStart for Duration Concepts

For balance-sheet-only concepts (instant concepts), periodStart will be empty (""). This is normal.


FAQ

Q: Do I need an API key? A: No. The SEC XBRL API is completely free and public. Zero authentication required.

Q: Can I download all 800,000 concepts? A: Yes, but one at a time. Each run fetches one concept for one year. To fetch multiple concepts, run the Actor multiple times with different inputs.

Q: How often is the SEC XBRL data updated? A: The SEC publishes XBRL data quarterly as companies file 10-Q and 10-K reports. Most recent data is current to the previous quarter.

Q: What's the difference between CIK and accession number? A: CIK is the company's unique 10-digit SEC identifier (e.g., 0000320193 for Apple). Accession is the unique identifier for a specific filing (e.g., 0000320193-23-000106 for Apple's 2023 10-K).

Q: Can I export the data to Excel? A: Yes. After the run completes, click the Dataset tab → Export → Choose CSV or JSON.

Q: How do I find the right frameSuffix for my concept? A: If you get a "404 not found" error, try appending "Q4I" (for Q4 balance sheet data). If that fails, the concept may only report as a duration concept (no suffix needed). See the "Understanding XBRL Concepts" section above.


Scraping more financial data? Check out these complementary tools:

  • FRED Economic Data Scraper — Extract macroeconomic time series (GDP, unemployment, inflation)
  • SEC EDGAR Filings Scraper — Download full 10-K/10-Q text documents
  • Stock Market Data Scraper — Real-time and historical price data
  • Company Financial Ratios Calculator — Build custom financial metrics from SEC data

Important Disclaimer:

This Actor fetches data from the SEC's public XBRL API. The data is:

  • Public domain — Published by the SEC under a Creative Commons license
  • Accurate as filed — We report exactly what companies filed; data quality depends on filer accuracy
  • Not investment advice — Do not use this data alone for investment decisions

Terms of Use:

  • Respect the SEC's API rate limits (typically very generous for bulk downloads)
  • Include attribution if republishing data
  • See https://www.sec.gov/cgi-bin/viewer for SEC's data terms

Support:

  1. Verify your concept exists at https://xbrl.fasb.org/us-gaap/
  2. Test the SEC API directly: curl "https://data.sec.gov/api/xbrl/frames/us-gaap/{concept}/USD/CY2023.json"
  3. Check SEC documentation: https://www.sec.gov/cgi-bin/viewer

Built with ❤️ for investors, researchers, and financial analysts.