SEC EDGAR Filings Monitor (8-K, 10-K, 10-Q, Form 4)
Pricing
from $1.00 / 1,000 results
SEC EDGAR Filings Monitor (8-K, 10-K, 10-Q, Form 4)
Track SEC EDGAR filings (8-K, 10-K, 10-Q, Form 4, 13D/G and more) for any tickers or CIKs from the official SEC API. Monitor mode delivers only new filings, so scheduled runs cost almost nothing when nothing new is filed.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Agent Factory
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share
SEC EDGAR Filings Monitor: 8-K, 10-K, 10-Q, Form 4, 13D/G alerts from the official SEC API
Give it tickers or CIKs. It returns their SEC EDGAR filings, one clean row per filing, straight from the SEC's official data.sec.gov API: form type, filed and report dates, accession number, links to the main document and the filing index, and 8-K item numbers with plain-English descriptions.
Turn on monitor mode and schedule it. Each run delivers only filings it hasn't delivered before. Runs with nothing new cost only the $0.00005 start fee, so you can watch a list of companies every 15 minutes for about $0.15 a month in start fees, plus $0.001 per new filing.
- ✅ Built for frequent schedules: pay only for new filings, and a near-zero cost when there are none.
- ✅ Safe monitor state: if a run is cut short (max items, spending limit, SEC hiccup), the undelivered filings come back next run. Nothing is silently lost or double-billed.
- ✅ Official SEC data only: data.sec.gov submissions + company_tickers.json. No scraping, no API key, no proxies.
- ✅ 8-K items decoded: filter for earnings (2.02), executive changes (5.02), cybersecurity incidents (1.05), material agreements (1.01) and more.
- ✅ One row per filing, nothing else. No summary or error rows in your dataset.
What can I use it for?
- Event alerts: 8-K item 2.02 (results), 5.02 (CEO/CFO/director changes), 1.05 (cyber incidents), 1.01/2.01 (deals), sent to Slack, email, Sheets or a webhook through Apify integrations.
- Insider activity: Form 4 filings on a watchlist.
- Ownership changes: Schedule 13D / 13G (activist and 5%+ holder) filings.
- Research and compliance archives: every 10-K/10-Q for a list of companies in a date window, with direct document links.
Input
| Field | Type | Description |
|---|---|---|
companies (required) | array | Tickers (AAPL, BRK.B) or CIKs (320193, 0000320193) |
forms | array | e.g. 8-K, 10-K, 10-Q, 4, S-1, SC 13D, SC 13G, DEF 14A. Default 8-K, 10-K, 10-Q (add 4 for Form 4). Empty list = all forms |
includeAmendments | boolean (default true) | 8-K also matches 8-K/A, 10-K matches 10-K/A, and so on |
items8K | array | Keep only 8-Ks with at least one of these items (e.g. 2.02, 5.02). Other forms are unaffected |
dateFrom / dateTo | string | Filing-date window, inclusive: YYYY-MM-DD or relative 30d, 12w, 1y |
onlyNewSinceLastRun | boolean | Monitor mode: deliver only filings not delivered before |
stateKey | string | Monitor name, one per schedule/watchlist (default default) |
skipExistingOnFirstRun | boolean | Monitor mode: the first run records existing filings without delivering or charging for them |
maxItemsPerCompany | integer (default 100) | Newest N matching filings per company per run |
maxItems | integer | Hard cap per run. Use it to control cost |
userAgent | string | Optional SEC User-Agent, e.g. Your Name your@email.com. Default: BrainBait unrealevents22@gmail.com |
Amendments: a base form matches its amendments by default (8-K → 8-K and 8-K/A). Every row has
isAmendment and baseForm, so you can split them later. Set includeAmendments: false to drop
amendments, or list 8-K/A to get only amendments.
Schedules 13D/13G: EDGAR renamed these from SC 13D/SC 13G to SCHEDULE 13D/SCHEDULE 13G in December 2024. Either spelling (or 13D, 13G, 13D/G) matches both.
Examples:
{ "companies": ["AAPL", "MSFT", "TSLA"], "forms": ["8-K", "10-K", "10-Q"], "dateFrom": "2026-01-01" }
{ "companies": ["NVDA", "JPM", "BRK.B"], "forms": ["8-K"], "items8K": ["5.02", "1.05"],"onlyNewSinceLastRun": true, "skipExistingOnFirstRun": true, "stateKey": "exec-and-cyber-alerts" }
Output
One dataset item per filing:
{"type": "filing","companyName": "Apple Inc.","cik": "0000320193","ticker": "AAPL","form": "8-K","baseForm": "8-K","isAmendment": false,"filedDate": "2026-07-30","acceptedAt": "2026-07-31T00:30:28.000Z","reportDate": "2026-07-30","accessionNumber": "0000320193-26-000018","primaryDocumentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/aapl-20260730.htm","filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/0000320193-26-000018-index.htm","description": "8-K","items": ["2.02", "9.01"],"itemDescriptions": ["Results of Operations and Financial Condition", "Financial Statements and Exhibits"],"fileNumber": "001-36743","act": "34","sizeBytes": 417360,"isXBRL": true,"isInlineXBRL": true,"exchanges": ["Nasdaq"],"input": "AAPL","scrapedAt": "2026-10-08T13:15:37.210Z"}
| Field | Notes |
|---|---|
filedDate | EDGAR filing date (YYYY-MM-DD) |
acceptedAt | EDGAR acceptance timestamp, exactly as published by the SEC |
reportDate | Period of report (10-K/10-Q) or event date (8-K); null when the form has none |
items, itemDescriptions | 8-K / 8-K/A only; empty for other forms. Pre-2004 legacy item numbers have a null description |
description | The SEC's description of the primary document, when provided |
primaryDocumentUrl | Main document. For Forms 3/4/5 and new Schedules 13D/G, this is the SEC's rendered (XSL) view |
changeType, firstSeenAt | Monitor mode only ("new") |
input | The ticker/CIK you entered |
Each run also writes an OUTPUT record to the default key-value store (free, not a dataset row): per company,
the resolved CIK and name, matched and delivered counts, already-delivered and capped counts, older pages used,
monitor baseline/state status, and errors such as "Unknown ticker" or "CIK not found".
Monitor mode
Set onlyNewSinceLastRun: true and schedule the Actor.
- First run = baseline: matching filings in your window are delivered with
changeType: "new". Or setskipExistingOnFirstRun: trueto start silently and pay nothing for history. - Later runs deliver only matching filings this monitor hasn't delivered yet. Each company + filter combination has its own history, keyed by your
stateKey. Relative windows like30dkeep the same history from run to run. - Cut-short safe: if
maxItems, your spending limit or an SEC error stops a run, the undelivered filings are offered again next run. A company whose data failed to load keeps its previous state. - Filings beyond
maxItemsPerCompanyare skipped on purpose and not delivered later (the cap is your window).OUTPUTreports how many. - State lives in the named key-value store
sec-edgar-filings-monitor-stateand holds only accession numbers and dates. - New filings usually appear in the SEC API within seconds to minutes of being accepted. EDGAR accepts filings on business days, 6:00 a.m.–10:00 p.m. ET.
Pricing
$1 per 1,000 results ($0.001 per result), plus a $0.00005 start fee per run.
- One result = one filing = one dataset row. Nothing else is ever written to the dataset.
- Errors, unknown tickers, duplicates, already-delivered filings and baseline-skipped filings produce no rows and cost nothing.
Examples:
- 10 companies × all 10-K/10-Q/8-K filings for a year (≈ 150 filings) ≈ $0.15.
- A 25-company watchlist checked every 15 minutes (≈ 2,900 runs a month) costs ≈ $0.15/month in start fees, plus $0.001 per new filing delivered. 200 new filings a month ≈ $0.35/month in total.
Use maxItems and maxItemsPerCompany to cap any run. The Actor also stops cleanly at your run's maximum charge limit.
Limits
- A company's filing list on EDGAR includes filings where it is the filer or the subject. So you get Form 4s filed by its insiders and 13D/G filed by its holders, and also 13D/G or Form 4 filings the company itself made about other issuers (e.g. Berkshire Hathaway). Check
primaryDocumentUrlwhen that distinction matters. - Tickers are resolved with SEC's
company_tickers.json, which covers current exchange-listed tickers. For delisted companies, funds or individuals, use the CIK (find it with EDGAR company search). - This Actor returns filing metadata and links, not the document text or XBRL financials.
- Full-text search (searching inside filings) isn't included yet.
Data source and compliance
- Uses only the SEC's free, official APIs:
https://data.sec.gov/submissions/CIK##########.json(plus its older-filings pages when your window needs them) andhttps://www.sec.gov/files/company_tickers.json(EDGAR APIs). - Follows SEC's fair-access policy: a declared User-Agent with a contact email (SEC asks heavy users to identify themselves, so if you run large or frequent jobs, set
userAgentto your own name and email), and at most 5 requests per second with 2 at a time across all SEC hosts (SEC's ceiling is 10 per second). It backs off on 403/429/5xx and downloads only what you ask for. - SEC: "Information presented on sec.gov is considered public information and may be copied or further distributed by users of the web site without the SEC's permission" (SEC privacy and dissemination). This Actor is not affiliated with or endorsed by the SEC.
FAQ
My ticker wasn't found. It isn't in SEC's current ticker file. Use the CIK instead.
Why do I see filings by other companies under Berkshire (or another investor)? EDGAR lists filings where the company is the filer or the subject. See Limits.
How fast are new filings picked up? The SEC API updates in real time as filings are disseminated. Your schedule sets the delay.
A run reported "SEC is rate-limiting this IP". SEC blocks an IP for about 10 minutes after more than 10 requests per second. The Actor stays well below that on its own, but other traffic from the same IP counts too. Re-run later.
Contact
Questions, bugs or feature requests: unrealevents22@gmail.com, or open an issue on the Actor's Issues tab.
Run locally (no Apify account needed)
npm installmkdir -p storage/key_value_stores/defaultecho '{"companies":["AAPL","MSFT"],"forms":["8-K"],"dateFrom":"90d"}' > storage/key_value_stores/default/INPUT.jsonnode src/main.js # results in storage/datasets/default, OUTPUT in storage/key_value_stores/defaultnpm test # offline tests on recorded SEC responses