SEC EDGAR Filing Extractor for AI Agents avatar

SEC EDGAR Filing Extractor for AI Agents

Pricing

Pay per usage

Go to Apify Store
SEC EDGAR Filing Extractor for AI Agents

SEC EDGAR Filing Extractor for AI Agents

SEC EDGAR Filing Extractor for AI Agents: citation-ready chunks (company, form, filing date, SEC document URL, excerpt) from public EDGAR filings. Stateless — no tracker/checkpoints. Public SEC data only — no credentials, proxies, or LLMs. 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

4 minutes ago

Last modified

Categories

Share

Stateless SEC EDGAR filing extractor optimized for AI-agent consumption. The user brings tickers, CIKs, and/or company names plus form types; the Actor returns parsed, citation-ready chunks of recent EDGAR filings — company name, form, filing date, report date, accession number, primary document, document URL, text excerpt, item section, and text length — ready to paste into an AI assistant.

What it is for

Concrete workflows the Actor supports:

  • Equity analyst — peer risk-factor comparison. Pull the latest 10-K for each company in a peer group (tickers or company names), then read the textChunk of each filing side by side. Each chunk starts at an Item heading (e.g. Item 1 Business, Item 1A Risk Factors, Item 7 MD&A) when one appears early in the document, and every chunk carries its documentUrl so the analyst can cite the exact SEC source.
  • Compliance desk — material-event watchlist alerting. Feed a watchlist of CIKs with formTypes: ["8-K"] and a minFilingDate/maxFilingDate window to pull all current reports filed in a period. One structured run returns every matching filing with its excerpt; nothing is stored between runs, so the desk can re-run the same input on a schedule without any watchlist state.
  • AI-assistant builder — citation-ready chunks. A single Actor run returns one dataset item per filing, each with documentUrl (the public SEC Archives URL of the primary document) plus a deterministic excerpt. Paste the chunks into an assistant and cite each one by its documentUrl — an MCP-style data source backed by a single structured run.
  • M&A analyst — insider screening around a deal. Screen Form 4 / 3 / 5 beneficial-ownership filings (plus 8-Ks) for the target and acquirer tickers over the last 30 days to see which insiders bought or sold ahead of or after an announcement. Each item carries the insider-relevant fields (form, filing date, accession, document URL) for follow-up in Form 4 detail.
  • Quant researcher — insider-flow feed. Pull Form 4 filings across a universe of tickers to build an insider buying/selling flow series. One run emits one dataset item per Form 4 with citation-ready excerpt and SEC document URL, ready to load into a spreadsheet or model.

What kind of product this is

  • Kind B agent tool (MCP-style data source): lets an AI assistant pull real EDGAR filing data through a single structured run.
  • Kind A bring-your-own-data extractor: you bring the tickers/CIKs/company names; the Actor does the extraction job on that public data.

What this is NOT

This is explicitly not a tracker: there are no checkpoints, no delta alerts, no watchlist state, and nothing is remembered between runs. Each run is stateless and independent. The Actor is free when there is nothing to return (an empty dataset costs nothing).

Data sources

Public SEC data only, via official SEC endpoints:

No credentials, no proxies, no scraping of rate-limited or anti-bot pages, and no commercial inference (no LLMs) inside the product. Requests are paced to respect SEC rate guidance (~10 requests/s), and one failing ticker, CIK, or company name never aborts the whole run.

Search terms (store discovery)

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

  • SEC EDGAR Filing Extractor for AI Assistants
  • SEC EDGAR filing extractor
  • SEC EDGAR extractor
  • EDGAR extractor
  • SEC filing data for AI assistants
  • EDGAR filing data for AI assistants
  • SEC 10-K 10-Q 8-K extractor
  • SEC filings for AI assistants
  • Form 4 insider filings

The Store title and description carry the core terms ("SEC EDGAR Filing Extractor", "SEC EDGAR filings", "citation-ready chunks for AI assistants"); this section lists them for reference when updating the listing metadata.

Example runs

Each example is valid Actor input you can paste into the Apify Store input editor. Every run emits one dataset item per extracted filing.

Default run — two tickers, default forms (10-K, 10-Q, 8-K), 90-day lookback:

{
"tickers": ["AAPL", "MSFT"],
"formTypes": ["10-K", "10-Q", "8-K"],
"lookbackDays": 90,
"maxResultsPerTicker": 10,
"maxResultsTotal": 200,
"textChunkMaxChars": 1800
}

Watchlist of tickers and CIKs — one record per filing. Pull recent filings for a mixed watchlist (tickers plus raw CIKs), capping output at 50 items:

{
"tickers": ["AAPL", "MSFT", "BRK.A"],
"ciks": ["0000320193", "0000789019"],
"formTypes": ["10-K", "10-Q", "8-K"],
"lookbackDays": 90,
"maxResultsTotal": 50
}

Company names with a date window. Resolve company names to CIKs via company_tickers.json and pull all 8-Ks in a calendar month:

{
"companyNames": ["Apple Inc.", "Microsoft Corp"],
"formTypes": ["8-K"],
"minFilingDate": "2026-10-01",
"maxFilingDate": "2026-10-31",
"maxResultsTotal": 50
}

Compliance desk — material-event watchlist alerting. All current reports for a CIK watchlist in a period; stateless, so the desk re-runs the same input on a schedule with no stored watchlist state:

{
"ciks": ["0000320193", "0000789019", "0001067983"],
"formTypes": ["8-K"],
"minFilingDate": "2026-10-01",
"maxFilingDate": "2026-10-31",
"maxResultsTotal": 100
}

M&A — insider screening around a deal. Form 4 / 3 / 5 beneficial-ownership filings plus 8-Ks for target and acquirer tickers over the last 30 days:

{
"tickers": ["TGT", "ACQR"],
"formTypes": ["4", "3", "5", "8-K"],
"lookbackDays": 30,
"maxResultsPerTicker": 25,
"maxResultsTotal": 100
}

Quant — insider-flow feed. Form 4 filings across a universe of tickers for insider buying/selling flow analysis:

{
"tickers": ["AAPL", "MSFT", "GOOGL", "AMZN", "META", "BRK.A", "JPM", "V", "UNH", "XOM"],
"formTypes": ["4"],
"lookbackDays": 90,
"maxResultsPerTicker": 100,
"maxResultsTotal": 1000
}

Input

See actor/input-schema.json and .actor/input_schema.json. Provide at least one of tickers, ciks, or companyNames.

FieldTypeDefaultDescription
tickersarray of strings—SEC tickers, e.g. ["AAPL", "MSFT", "BRK.A"] (max 100)
ciksarray of strings—SEC CIKs, up to 10 digits, e.g. ["0000320193"] (max 100)
formTypesarray of strings["10-K","10-Q","8-K"]10-K, 10-Q, 8-K, 13F-HR, 4, 3, 5, SD, 10-KT, 10-QT
companyNamesarray of strings—Company names resolved to CIKs via company_tickers.json (case-insensitive exact match on the registered title; prefix match fallback; first match wins). Max 25. Can be combined with or replace tickers/ciks.
lookbackDaysinteger90Days back from today (1-365). Ignored when minFilingDate and maxFilingDate are both set.
minFilingDate / maxFilingDatestring (YYYY-MM-DD)—Date range replacing lookbackDays when both are given.
maxResultsTotalinteger200Hard cap on total dataset items per run (1-1000).
maxResultsPerTickerinteger10Max chunks per ticker/CIK per run (1-100).
textChunkMaxCharsinteger1800Max excerpt size per filing (500-8000).

Example (default run):

{
"tickers": ["AAPL", "MSFT"],
"formTypes": ["10-K", "10-Q", "8-K"],
"lookbackDays": 90,
"maxResultsPerTicker": 10,
"maxResultsTotal": 200,
"textChunkMaxChars": 1800
}

Example (company names → CIK resolution, date range):

{
"companyNames": ["Apple Inc.", "Microsoft Corp"],
"formTypes": ["8-K"],
"minFilingDate": "2026-10-01",
"maxFilingDate": "2026-10-31",
"maxResultsTotal": 50
}

Output

One dataset item per extracted filing. See actor/output-schema.json and .actor/dataset_schema.json.

Fields per item:

FieldTypeDescription
tickerstring|nullUser-supplied ticker (only for ticker-driven runs)
cikstring10-digit zero-padded SEC CIK
companyNamestringCompany name from the SEC submissions feed
formstringSEC form type
filingDatestringFiling date (YYYY-MM-DD)
reportDatestring|nullReport period date (YYYY-MM-DD)
accessionNumberstringSEC accession number
primaryDocumentstringPrimary document filename
documentUrlstring (uri)Public SEC Archives URL of the primary document — cite this
textChunkstringDeterministic excerpt, HTML stripped, capped at textChunkMaxChars
textLengthintegerLength of the full stripped document text before excerpting
itemSectionstring|nullItem heading the excerpt starts at (Item 1, Item 1A, Item 7, …), or null
retrievedAtstringUTC extraction timestamp (ISO 8601)

documentUrl is the public SEC Archives URL of the filing's primary document — cite it alongside the chunk. textChunk is a deterministic excerpt: it starts at an Item heading (Item 1, Item 1A, Item 7, …) when one appears early in the document, otherwise at the document opening. It is empty when the document could not be read; the item is still emitted with its citation fields. itemSection names the heading the chunk starts at, and textLength gives the full document length before excerpting.

Example output items

10-K (Apple Inc.):

{
"ticker": "AAPL",
"cik": "0000320193",
"companyName": "Apple Inc.",
"form": "10-K",
"filingDate": "2026-10-27",
"reportDate": "2026-09-26",
"accessionNumber": "0000320193-26-000123",
"primaryDocument": "aapl-20260926.htm",
"documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000123/aapl-20260926.htm",
"textChunk": "Item 1. Business. Apple Inc. designs, manufactures and markets smartphones, personal computers, tablets, wearables and accessories, and sells a variety of related services.",
"textLength": 245010,
"itemSection": "Item 1",
"retrievedAt": "2026-11-03T04:00:00+00:00"
}

8-K (Apple Inc., real output from live run E8BNXP5lgBiNWafr2, build 0.1.23):

{
"ticker": "AAPL",
"cik": "0000320193",
"companyName": "Apple Inc.",
"form": "8-K",
"filingDate": "2026-11-02",
"reportDate": "2026-11-02",
"accessionNumber": "0000320193-26-000024",
"primaryDocument": "aapl-20261102.htm",
"documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000024/aapl-20261102.htm",
"textChunk": "aapl-20261102 false 0000320193 0000320193 2026-11-02 2026-11-02 0000320193 us-gaap:CommonStockMember ... UNITED STATES SECURITIES AND EXCHANGE COMMISSION ... FORM 8-K CURRENT REPORT ... Apple Inc. ...",
"textLength": 3987,
"itemSection": null,
"retrievedAt": "2026-11-03T06:17:35+00:00"
}

Company-name resolution example: input "companyNames": ["Apple Inc."] resolves via company_tickers.json (exact case-insensitive title match) to CIK 0000320193; output items carry ticker: null (company-name-driven) and cik: "0000320193".

All dates and chunks above are illustrative examples of the output shape; they are not verified adoption or revenue claims. The E8BNXP5lgBiNWafr2 item above is truncated for readability; the full item is in that run's default dataset.

Limits

  • Max 100 tickers/CIKs per run (combined tickers + ciks); max 25 companyNames.
  • Max 100 chunks per ticker/CIK per run; hard cap of 200 total items per run.
  • Lookback window 1-365 days (default 90). Only filings in the SEC's recent submissions feed are scanned — very old filings outside that feed are not covered.
  • Date range (minFilingDate/maxFilingDate) replaces lookbackDays when both are given.
  • Requests are paced at ~8 requests/s; runs fan out across at most 3 concurrent requests.
  • Excerpts are capped at textChunkMaxChars (default 1,800; allowed 500-8,000).

Monetization decision (documented)

Decision: pay-per-event (PPE) pricing enabled via the Apify API on 2026-11-03 CET.

Verification (via PUT + GET /v2/actors/BoRHIjgH4qa9XzdvK, HTTP 200 both):

  • isPublic: true, listing public and live, notice: NONE.
  • pricingModel: PAY_PER_EVENT with pricingInfos:
    • apify-actor-start $0.0001 per run
    • apify-default-dataset-item $0.005 per extracted filing, primary event, title "SEC filing alert"
    • apifyMarginPercentage: 0.2 (Apify share)
  • Payout/billing is not configured on this account; KYC/payout is an owner step at payout time (POLICY #3). No account creation, payment, or KYC was performed by the builder.

No revenue or adoption claims. Verified revenue is $0 and unverified until a payout ledger shows otherwise (recorded as "unverified"). The 14-day kill test (baseline below) measures whether the listing earns its first external user/bookmark or paid run from a non-owner buyer by ~2026-11-17 CET; otherwise the product is killed or pivoted.

Owner step (not done by the builder): complete payout/billing setup at https://console.apify.com/actors/BoRHIjgH4qa9XzdvK/publication when the owner is ready to receive payouts. KYC happens only at payout time.

Quality gate (live, verified)

Run the public default input {"tickers": ["AAPL", "MSFT"], "formTypes": ["10-K", "10-Q", "8-K"], "lookbackDays": 90} on the live public listing:

  • Run id: lfMEGUPzk9HTgUxEo (Actor BoRHIjgH4qa9XzdvK, build 0.1.26 / latest, started 2026-11-03T06:44:21.141Z, finished 2026-11-03T06:44:24.859Z)
  • Status: SUCCEEDED, exit code 0, build 0.1.26
  • Dataset items: 5 (> 0), fetched from defaultDatasetId
  • Server runtime: 3.718s — well under the 5-minute bound

Verified 2026-11-03 CET via the Apify API (POST /v2/actors/BoRHIjgH4qa9XzdvK/runs, GET /v2/actor-runs/lfMEGUPzk9HTgUxEo, GET /v2/datasets/{defaultDatasetId}/items).

Prior gate run (build 0.1.25, then-latest): i27849uaTvEzOGdzf — SUCCEEDED, 5 items, 3.842s (2026-11-03T06:34:12Z).

Fixes in build 0.1.25:

  • The failed run mubbEyyZ0lkz4EDok (build 0.1.21, exit code 91): its INPUT record nested the real fields under an "input" key, so tickers was invisible and _normalize_input raised ValueError. The Actor now unwraps a nested "input" — run jM1qFYXCX6jze0S3O with that exact input now SUCCEEDS and returns AAPL + MSFT filings; this task's own double-wrapped-input check O3oOceKneFRC0HW1q (build 0.1.26) SUCCEEDED with 5 items too.
  • Run-wide maxResultsTotal cap now counts only emitted items (previously scanned-but-filtered entries burned cap slots).

Every schema input variant was verified live on build 0.1.26 under task t_bd9e95f7 — tickers, ciks, companyNames (→ CIK resolution), formTypes incl. 13F-HR/4/3/5/SD, min/max filing-date range (empty and hitting windows), maxResultsTotal cap, textChunkMaxChars — all SUCCEEDED; run IDs and outcomes are recorded in that task's completion comment. Not reproducible with well-formed input; every run on builds 0.1.23–0.1.26 since 05:50 CET succeeded.

Local checks (no network, deterministic):

pytest actor/tests # 36 passed
ruff check actor/ # clean

14-day kill test (falsifiable experiment)

Goal: prove or disprove external demand for this non-tracker product before any monetization or further investment.

  • Start: 2026-11-03 CET (day 0).
  • End: 2026-11-17 CET (14-day observation window).
  • Baseline recorded at start (2026-11-03 CET): totalUsers=2, users30d=1 (owner only), bookmarkCount=0, totalRuns=50, lastRunStartedAt=2026-11-03T06:16:46.584Z (pre gate run).
  • Re-measured at start of task t_bd9e95f7 (2026-11-03 CET): totalRuns=79, users30d=1 (owner only, unverified), bookmarkCount=0, revenue $0 (unverified — no payout ledger), lastRunStartedAt=2026-11-03T06:34:54Z. Listing is now PAY_PER_EVENT (pricing set via Apify API, see Monetization decision above).
  • Tracked (read-only via GET /v2/actors/BoRHIjgH4qa9XzdvK, no new accounts):
    • users30d / totalUsers — any increase above the owner signals an external user.
    • bookmarkCount — any bookmark ≥ 1 signals external interest.
    • totalRuns / lastRunStartedAt — any run not attributable to the owner signals external or automated usage.
  • Pass criterion: ≥ 1 external user/bookmark OR ≥ 1 paid run within 14 days.
  • Fail criterion: none of the above by 2026-11-17 CET → kill or re-price.
  • Checkpoints: day 7 (2026-11-10 CET) and day 14 (2026-11-17 CET) — record users/bookmarks/runs each time.

Claims statement

All claims in this README are limited to what the product verifiably does: it reads public SEC EDGAR data through official endpoints and returns citation-ready chunks. This README contains no revenue, user, or adoption claims, because none are verified.