SEC Financial Statement Extractor avatar

SEC Financial Statement Extractor

Pricing

Pay per usage

Go to Apify Store
SEC Financial Statement Extractor

SEC Financial Statement Extractor

Extract SEC 10-K/10-Q financial statements — income statement, balance sheet, cash flow — as flat CSV/JSON rows by period. Resolves filings via the public SEC submissions feed or accession number; parses SEC Archives HTML. Public SEC data only; default: Apple's latest 10-K (~14s). FREE listing.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Valunex

Valunex

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Categories

Security

Limited permissions

Share

SEC Financial Statement Extractor — 10-K / 10-Q income statement, balance sheet and cash-flow statement to CSV/JSON

Bring a public SEC 10-K or 10-Q filing (CIK, accession number or filing URL) and get back the income statement, balance sheet and cash-flow statement as flat CSV/JSON rows by period — analysis-ready financial statements instead of raw HTML.

Actor: apex-nexus~sec-financial-statement-extractor (Actor id ZHy5UPYG5SUhAgE5e, account apex-nexus, owner userId cgh1CqgRIRsjx7PlQ) Store page: https://apify.com/apex-nexus/sec-financial-statement-extractor — public, isPublic = true, notice = NONE, categories [BUSINESS], FREE listing (FREE since 2026-11-04T10:29:16Z, margin 0), PUBLIC on the Apify Store since 2026-11-05T08:10 CET. Live metadata (read-only GET /v2/actors/ZHy5UPYG5SUhAgE5e, no flip): isPublic=true, categories [BUSINESS], seoTitle "SEC Financial Statement Extractor — 10-K / 10-Q financials", seoDescription set, exampleRunInput {"cik":"0000320193","form":"10-K"} (real CIK example, not a placeholder). Effective pricing record: FREE (margin 0) — the only pricingInfos record; no per-start or per-item charge to buyers. Actor source: actor/ (main.py, requirements.txt) + product-root .actor/ (actor.json, input_schema.json, output_schema.json, dataset_schema.json), Dockerfile, tests/, tools/ Example inputs: examples/ — none shipped; see the 3 pairs below Output contract: .actor/output_schema.json and .actor/dataset_schema.json Competitor comparison: knowledge/competitor-comparison-sec-financial-statement-extractor.md (5 Apify Store competitors, pricing, README structure, example inputs)

What it is for

Bring your own filing and the Actor:

  1. Resolves the filing via the public SEC submissions JSON (https://data.sec.gov/submissions/CIK{CIK}.json) when no accession number is given — latest 10-K (default) or latest 10-Q for the CIK.
  2. Fetches the filing document from the public SEC Archives (https://www.sec.gov/Archives/edgar/data/{CIK}/{accession}/...).
  3. Parses the filing's HTML tables, identifies the income statement, balance sheet and cash-flow statement, and emits one flat row per line item per reporting period: statement, period end, period start, line item, value, form, filing date, accession and source URL.

Typical workflows:

  • Analyst — pull a company's financial statements into a spreadsheet. Run the default input (CIK 0000320193, Apple Inc., latest 10-K) and download the dataset as CSV or JSON; every row carries its period, form, filing date, accession and source URL.
  • Compare periods. periodEnd + periodStart let you join rows across periods and companies; accession + sourceUrl let you verify every value against the source filing.
  • Quarterly reviews. Switch form to 10-Q or bring a specific accession to parse a single filing.

What this is NOT

This is explicitly not a tracker: no watchlist state, no delta alerts, no checkpoints, nothing remembered between runs. Each run is stateless and independent. It is distinct from N1 (SEC filing text chunks for AI assistants), N2 (Form 4/3/5 XML to transaction table) and N3 (SEC Company Facts XBRL to flat rows): this Actor extracts and normalizes the three financial statements from 10-K/10-Q filing documents. The Actor is free when there is nothing to return.

Data sources

Public SEC data only, via official SEC endpoints — no credentials, no proxies, no API keys, no LLMs, no commercial inference:

  • https://data.sec.gov/submissions/CIK{CIK}.json — latest-filing lookup
  • https://www.sec.gov/Archives/edgar/data/{CIK}/{accession}/ — filing documents

One or two requests per run, so SEC rate guidance is respected trivially.

Search terms (Store discovery)

Users find this Actor on the Apify Store with terms such as:

  • 10-K financial statements extractor
  • SEC filing financials to CSV
  • income statement balance sheet extractor
  • 10-Q financial data parser
  • SEC 10-K financial statements to spreadsheet
  • annual statement extractor

The Store title and description carry the core terms ("SEC Financial Statement Extractor", "10-K financial statements extractor", "SEC filing financials to CSV", "income statement balance sheet extractor", "10-Q financial data parser", "annual statement extractor"); this section lists them for reference when updating the listing metadata.

30-second quickstart

Open https://apify.com/apex-nexus/sec-financial-statement-extractor on the Apify Store, paste this into the input editor and run (or POST /v2/actors/ZHy5UPYG5SUhAgE5e/runs with the same body):

{}

The default run resolves CIK 0000320193 (Apple Inc.) to its latest 10-K and returns the income statement, balance sheet and cash-flow statement as flat rows. Typical default run finishes in ~10–15 seconds.

Example input → output pairs

All three pairs below were run on the live Actor against public SEC EDGAR data. Output shown is the first dataset item; full items include periodStart, retrievedAt, and all fields in .actor/output_schema.json.

Pair 1 — default run: Apple Inc. latest 10-K

Input:

{}

Output (first of 197 rows; run RK7rPWgjb0VSxJTqe, SUCCEEDED, ~10s):

{
"statement": "income statement",
"periodEnd": "2026-09-26",
"periodStart": "2025-09-28",
"lineItem": "Products",
"value": 355533,
"form": "10-K",
"filingDate": "2026-11-03",
"accession": "0000320193-26-000026",
"sourceUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000026/aapl-20260926.htm",
"retrievedAt": "2026-11-05T18:34:05.699088+00:00"
}

Full default run: 197 rows — income statement 57, balance sheet 56, cash-flow statement 84 — periods 2024-09-28 through 2026-09-26.

Pair 2 — latest 10-Q for a CIK

Input:

{
"cik": "0000320193",
"form": "10-Q",
"maxRows": 40
}

Output (first of 3 items; run XShGdkThxhg6uqGMx, SUCCEEDED):

{
"statement": "income statement",
"periodEnd": "2026-06-27",
"periodStart": "2025-06-29",
"lineItem": "Products",
"value": 78678,
"form": "10-Q",
"filingDate": "2026-07-31",
"accession": "0000320193-26-000020",
"sourceUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/aapl-20260627.htm",
"retrievedAt": "2026-11-05T19:16:40.990653+00:00"
}

Pair 3 — specific accession (Apple FY2025 10-K)

Input:

{
"accession": "0000320193-25-000079",
"maxRows": 25
}

Output (first of 3 items; run 3jYuw2OGVclipnwTd, SUCCEEDED, ~30s):

{
"statement": "income statement",
"periodEnd": "2025-09-27",
"periodStart": "2024-09-29",
"lineItem": "Products",
"value": 307003,
"form": "10-K",
"filingDate": "2025-10-31",
"accession": "0000320193-25-000079",
"sourceUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/aapl-20250927.htm",
"retrievedAt": "2026-11-05T20:38:40.016563+00:00"
}

Input

See .actor/input_schema.json. Every field is optional; the default run processes Apple Inc.'s latest 10-K (CIK 0000320193).

FieldTypeDefaultDescription
cikstring"0000320193"SEC CIK, up to 10 digits (e.g. "320193" for Apple Inc.). Zero-padded internally.
accessionstring—SEC accession number (e.g. "0000320193-25-000079"). Processes that filing directly when set.
formselect (10-K, 10-Q)"10-K"Latest-filing form type when accession is not set.
maxRowsintegeruncappedHard cap on dataset rows per run (1–50,000).

Output

One dataset item per line item per period. Download the whole dataset as CSV or JSON from the Apify run. See .actor/output_schema.json and .actor/dataset_schema.json.

FieldTypeDescription
statementstring"income statement", "balance sheet" or "cash flow statement"
periodEndstring|nullEnd of the reporting period (YYYY-MM-DD)
periodStartstring|nullStart of the reporting period (YYYY-MM-DD); inferred for duration statements, null for balance-sheet columns
lineItemstringLine item as published (e.g. "Products", "Total assets")
valuenumber|string|nullValue as published by the SEC (typically in millions); parentheses → negative
formstringSEC form type (10-K, 10-Q)
filingDatestringDate filed with EDGAR (YYYY-MM-DD)
accessionstringSEC accession number
sourceUrlstring (uri)URL of the SEC Archives filing document
retrievedAtstringUTC timestamp (ISO 8601)

Limits

  • One filing per run.
  • maxRows caps output at 1–50,000 rows.
  • Values are returned as published (typically in millions); no unit conversion.
  • Invalid or unresolvable input finishes with an empty dataset rather than crashing.
  • Requests are keyless and paced trivially below SEC rate guidance.

Quality gate (POLICY #6, verified live)

Default run (input {}, CIK 0000320193 → latest 10-K): run RK7rPWgjb0VSxJTqe, status SUCCEEDED, runTimeSecs ~10 (< 5 min ✓), default dataset returned 197 rows — income statement 57 / balance sheet 56 / cash-flow statement 84 (≥ 1 row per statement ✓), periods 2024-09-28 through 2026-09-26. Re-verified on the live Actor 2026-11-05 CET (director census previously reported ~14s).

Pricing & positioning vs Store competitors

Competitor scan (Apify Store, 5 closest SEC financial-statement listings):

CompetitorPricingUsers/30dExample inputNotes
eu_open_data/sec-financial-statementsPPE $0.00005/start2placeholder—
bb-tradetec/sec-financial-statement-and-notes-normalizerPPE $0.0004/start + $0.00005/item1real (XBRL query object)README declines to publish lifecycle/price claims
opendata-feeds/sec-edgar-fundamentalsPPE $0.00005/start1placeholder—
nabeelbaghoor/sec-xbrl-fundamentals-apiPPE $0.00005/start1placeholder—
siteverdict/siteverdict-sec-xbrl-financialsPPE $0.00005/start1real ({"companies":[…]})—

Our position: FREE effective listing — all 5 closest competitors charge per start ($0.00005–$0.004) and some per item; FREE is unambiguously the cheapest and removes buyer friction during the kill-test window (signal deadline ≈ 2026-11-19 CET). See the full comparison note linked above.

Pricing decision: keep current effective pricing — no price change without an owner/KYC step (POLICY #5/#6). Pricing/publication flips remain separate scheduled director tasks (Apify cap: 5 publications per rolling 24h).

Build & test

cd products/sec-financial-statement-extractor/actor
python3 -m pytest tests/
python3 tools/smoke_test.py # live smoke test against real SEC data

Build: 1.0.2 (Apify build id hymatKg8jqwyBoeWc, tagged latest); Apify validated the input/output schemas during the build.

Claims statement

All claims in this README are limited to what the product verifiably does: it resolves a public SEC 10-K/10-Q filing (default: Apple Inc., CIK 0000320193), parses the filing's HTML tables, and returns the income statement, balance sheet and cash-flow statement as flat CSV/JSON rows with period, form, filing date, accession and source URL. This README contains no revenue, user, or adoption claims, because none are verified. Current official readings (2026-11-05 CET): totalRuns=15, totalUsers30Days=1, bookmarkCount=0, actorReviewCount=0; every observed run carries owner userId cgh1CqgRIRsjx7PlQ — 0 buyer runs, $0 verified revenue (see knowledge/portfolio.md).