SEC EDGAR Filings Scraper - 10-K, 8-K, 13F avatar

SEC EDGAR Filings Scraper - 10-K, 8-K, 13F

Pricing

from $20.00 / 1,000 filing extracteds

Go to Apify Store
SEC EDGAR Filings Scraper - 10-K, 8-K, 13F

SEC EDGAR Filings Scraper - 10-K, 8-K, 13F

Pull SEC EDGAR filings (10-K, 10-Q, 8-K, 13F) for any US-listed ticker and structure them to JSON: filing metadata, sectioned document text, risk factors and LLM-ready summaries. Official SEC full-text search API, no API key required.

Pricing

from $20.00 / 1,000 filing extracteds

Rating

0.0

(0)

Developer

Oaida Adrian

Oaida Adrian

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 hours ago

Last modified

Share

SEC EDGAR Filings & Financial Corpus Scraper

Pull SEC EDGAR filings — 10-K, 10-Q, 8-K and 13F-HR — for any US-listed ticker and get each filing structured to JSON: filing metadata, sectioned document text, 10-K risk factors (Item 1A), 13F holdings tables, and an optional LLM-ready summary. Built on the SEC's official full-text search API — no API key, no third-party data vendor.

Why

EDGAR is the canonical source of US public-company disclosures, but the raw archive is hostile to analysis: filings are HTML documents with table-heavy layouts, and the full-text search UI is built for humans, not pipelines. This actor turns a ticker + form-type + date window into a clean corpus of JSON records — one per filing — ready for financial alt-data pipelines, sentiment/risk analysis, RAG corpora, or LLM fine-tuning datasets.

How it works

  1. Ticker → CIK — resolves the ticker against the official SEC company list (company_tickers.json); falls back to display-name search for delisted or foreign-format tickers.
  2. Full-text search — queries the official EDGAR full-text search JSON API (efts.sec.gov/LATEST/search-index) with the ticker, form types and date window, paginated at 100 hits per page, deduplicated by accession number, and filtered to each filing's primary document (exhibits are excluded; their URLs remain reachable via the filing index link).
  3. Document extraction — fetches each primary document from the SEC Archives and converts HTML to clean text (scripts/styles stripped, tables preserved, entities decoded, whitespace normalised).
  4. Structuring — splits documents into Item sections (Item 1., Item 1A., Item 7., Item 2.02, ...), extracts risk factors from 10-K/10-Q Item 1A, and parses 13F-HR XML InfoTables into holding records (issuer, CUSIP, value, shares, voting authority).
  5. Summary — when summarize is enabled, emits a deterministic markdown summary per filing (metadata, section map, risk-factor excerpt, holdings preview) designed for direct LLM consumption — no external LLM call, no extra cost.

SEC fair-access policy is respected: a descriptive User-Agent (Darknezz Research admin@adrianhomelab.com) and polite pacing (~5 requests/second, well under the 10 rps limit) with 429 backoff.

Input

FieldTypeDefaultDescription
tickerstringStock ticker, e.g. AAPL, MSFT, TSLA (required)
formTypesstring[]["10-K","10-Q","8-K","13-F"]Form types to pull; 13-F maps to 13F-HR
periodstringemptyDate window: 2023-2026, 2024, or 2023-01-01:2026-12-31
summarizebooleantrueAdd the LLM-ready summary per filing
maxItemsinteger50Max filings to extract (1–500)

Example:

{
"ticker": "AAPL",
"formTypes": ["10-K", "8-K"],
"period": "2023-2026",
"summarize": true
}

Output

One dataset item per filing:

  • MetadataaccessionNumber, ticker, companyName, cik, formType, filingDate, periodEnding, event items (8-K), file details, documentUrl, sourceUrl (filing index).
  • sections — array of {heading, item, text} for each Item section (per-section cap 60k chars; full text stays at the source URL).
  • riskFactors — 10-K/10-Q Item 1A text (or any "Risk Factors" heading), empty for 8-K.
  • holdings — 13F positions: nameOfIssuer, titleOfClass, cusip, value, shares, sharesType, putCall, investmentDiscretion, otherManager, votingSole/Shared/None. Mega-manager filings are capped at 20,000 positions with holdingsCount + holdingsTruncated flags.
  • summary — LLM-ready markdown when summarize is true.
  • charCount, scrapedAt.

Use cases

  • Financial alt-data — monitor 8-K event items (2.02 results, 1.01 agreements, 9.01 exhibits) across a watchlist.
  • Risk analysis — 10-K Item 1A risk-factor corpus for sector risk benchmarking or LLM risk-extraction pipelines.
  • 13F tracking — institutional holdings snapshots (quarterly) for fund-flow and positioning analysis.
  • Vertical AI corpus — clean, sectioned regulatory text for fine-tuning, RAG, or evaluation datasets.
  • Fundamental screening — 10-Q/10-K MD&A text for narrative trend analysis over time.

Run from the API

curl -X POST "https://api.apify.com/v2/acts/darknezz~sec-edgar-filings-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ticker":"AAPL","formTypes":["8-K"],"period":"2024-2026","summarize":true,"maxItems":5}'

Pricing

Pay-per-event — charged per filing extracted (result event). Pricing is finalised at publication; this actor is currently held private.

FAQ

Do I need an API key? No — EDGAR is a free public API. Only a descriptive User-Agent is required, which the actor sets automatically.

Rate limits? SEC's fair-access policy allows 10 requests/second; the actor stays at ~5 and backs off on 429s.

Why are exhibits missing from sections? Each filing yields its primary document only; exhibit files (EX-99.1 press releases, EX-10 contracts) are one click away via sourceUrl (the filing index).

Amendments? /A variants are included when the form-type filter matches (e.g. 10-K/A); use the exact form code to narrow.

What about delisted tickers? If the ticker is absent from the SEC company list, the actor falls back to display-name full-text search, which covers most historical filers.