📄 SEC EDGAR Filings Monitor
Pricing
from $3.50 / 1,000 sec filing records
📄 SEC EDGAR Filings Monitor
Monitor SEC EDGAR filings (10-K, 10-Q, 8-K, S-1) for any public company by ticker or CIK, via SEC's official structured-data API. For equity analysts, journalists, and AI agents tracking corporate disclosures. Export, run via API, schedule, or integrate with other tools.
Pricing
from $3.50 / 1,000 sec filing records
Rating
0.0
(0)
Developer
Skootle
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 days ago
Last modified
Categories
Share

TL;DR
Equity research analysts, hedge fund quants, M&A desks, and fintech compliance teams refresh EDGAR for filings on 50+ tickers daily. This monitors SEC EDGAR filings for any public company by ticker or CIK and returns one clean structured record per filing: form name, form-category enum (10-K, 10-Q, 8-K, S-1, DEF 14A, Form 4, 13F, more), ISO 8601 filing/period/acceptance timestamps, direct primary-document URL, items list, XBRL flags, plus a joined company snapshot (name, ticker, exchange, SIC). Watchlist mode emits only NEW filings since the previous run, so a daily schedule becomes a clean diff feed of new disclosures for portfolio monitoring, insider-signal pipelines, 13F tracking, IPO desks, and proxy-season research.
Try it on a small dataset, then let us know what you think in a review.
What does SEC EDGAR Filings Monitor do?
SEC EDGAR Filings Monitor extracts SEC filings for any public company. Pass a list of stock tickers (or CIKs for funds, insiders, and foreign issuers); get back one record per filing with form name, a normalized form-category, filing and period dates, the primary document URL, 8-K item codes, XBRL flags, plus a joined snapshot of company metadata (name, ticker, exchange, SIC code, fiscal year end).
Reads EDGAR live with no delay, so a filing shows up minutes after the SEC accepts it. Same uptime as the EDGAR website itself.
Watchlist mode (watchlistMode: true) makes this scraper schedulable. State persists across runs in the actor's key-value store, so a daily cron only emits filings NEW since the last run.
Why scrape SEC EDGAR?
EDGAR is the canonical source of public-company financial disclosures, and every 10-K, 10-Q, 8-K, S-1, proxy filing, insider Form 4, and 13F lands there minutes after the SEC accepts it. Equity research analysts, hedge fund quants, M&A desks, and fintech compliance teams all need to know when a filing drops on a watchlist of 50+ tickers, but the EDGAR UI is one company at a time. The manual workflow is refreshing the same 50 company pages every morning.
This actor delivers a watchlist diff feed: feed it the tickers, schedule it daily, get only the filings that are new since yesterday. Each record carries the company snapshot inline (name, ticker, exchange, SIC) and a clean form category, so a portfolio-monitoring pipeline or insider-signal scanner can filter on one field instead of mapping 200+ raw form names by hand.
Who needs this?
- Equity research analysts monitoring a portfolio of tickers for new 10-K, 10-Q, and 8-K disclosures
- Insider-trading signal pipelines filtering
formCategory: 'insider_transaction'(Form 4, 5, 3) on watchlist tickers - 13F-tracking quants monitoring institutional holders (Berkshire, Renaissance, Citadel, hedge funds)
- IPO and capital-markets desks filtering
formCategory: 'registration'andprospectusfor S-1, S-1/A, 424B filings - Compliance and corporate-actions desks watching 8-K events for material developments
- Proxy-season governance researchers filtering DEF 14A across the S&P 500 in March-May
- AI agents and LLM apps ingesting filings as a structured feed for downstream summarization, sentiment, or alerting
- Financial-news aggregators breaking stories minutes after EDGAR posts
How to use SEC EDGAR Filings Monitor
- Open the Input tab on the actor page
- Add tickers (e.g.,
AAPL,MSFT,NVDA) to thetickersfield, OR raw CIKs tociksfor filers without tickers - Optionally set
formFilterto specific forms (e.g.,["10-K", "10-Q", "8-K"]) orformCategoryFilterto category enums (e.g.,["annual_report", "current_report"]) - Set
filingsPerCompany(default 20) andmaxItems(default 50, conservative for the 5-minute auto-test) - Optionally set
daysLookbackto limit to recent filings (e.g.,daysLookback: 30for last 30 days) - Optionally enable
watchlistModefor daily scheduled runs that only return new filings - Click Start or call via the Apify REST API or CLI
You can run on demand from the Console, schedule it with Apify's cron, call via API, or integrate with Make, Zapier, n8n, Slack, Google Sheets.
How much will scraping SEC EDGAR cost?
This actor is priced per event:
- Actor Start: $0.01 once per run
- SEC filing record: tiered, charged per record written
| Apify plan | $/1000 records |
|---|---|
| FREE | $30.00 |
| BRONZE | $25.50 |
| SILVER | $21.00 |
| GOLD | $18.00 |
| PLATINUM | $18.00 |
| DIAMOND | $16.20 |
A typical daily portfolio watchlist on 25 tickers with filingsPerCompany: 20 returns ~50-100 records on day 1, then 5-20 per day in watchlist mode. Roughly $0.90-$1.80 per daily run on the GOLD plan. Premium tier matches the value: this is real-time financial intelligence, not a commodity scrape.
Is it legal to scrape SEC EDGAR?
Yes, EDGAR is explicitly designed for public access. The SEC publishes API access guidelines requesting only that callers send a User-Agent with a contact email and stay under 10 requests/second. This actor honors both: the User-Agent includes the maintainer's email by default (override via contactEmail input), and rate-limiting keeps it well under the 10/s ceiling.
There is no copyright on the filings themselves, they are public-record disclosures filed by registrants with the SEC, and federal law explicitly puts them in the public domain. Use the data freely for research, analytics, AI training, or commercial products.
Examples
Example 1: Daily watchlist on Apple
{"tickers": ["AAPL"],"filingsPerCompany": 20,"watchlistMode": true,"maxItems": 20}
Example 2: 10-K and 10-Q filings only across the FAANG portfolio
{"tickers": ["META", "AMZN", "AAPL", "NFLX", "GOOGL"],"formFilter": ["10-K", "10-K/A", "10-Q", "10-Q/A"],"filingsPerCompany": 10,"maxItems": 50}
Example 3: Insider Form 4 monitoring on the S&P-50 mega-caps
{"tickers": ["AAPL", "MSFT", "NVDA", "GOOGL", "AMZN", "META", "TSLA", "BRK.B", "JPM", "JNJ"],"formCategoryFilter": ["insider_transaction"],"filingsPerCompany": 50,"watchlistMode": true,"maxItems": 500}
Example 4: 13F holdings disclosures for top hedge funds (CIKs)
{"ciks": ["1067983", "1029160", "1336528", "1167483"],"formFilter": ["13F-HR", "13F-HR/A"],"filingsPerCompany": 5,"maxItems": 20}
CIK 1067983 is Berkshire Hathaway. Use SEC's EDGAR full-text search to find any filer's CIK.
Example 5: 8-K material-events monitoring (M&A, exec changes, restatements)
{"tickers": ["MSFT", "GOOGL", "META", "AAPL", "NVDA", "TSLA"],"formCategoryFilter": ["current_report"],"watchlistMode": true,"filingsPerCompany": 30}
Example 6: IPO-pipeline monitoring (S-1 and S-1/A across recent filers)
{"tickers": ["RDDT", "ARM", "INSM", "BRK.B"],"formCategoryFilter": ["registration", "prospectus"],"daysLookback": 365,"filingsPerCompany": 20}
Example 7: Proxy-season DEF 14A scrape
{"tickers": ["AAPL", "MSFT", "GOOGL", "AMZN", "META", "JPM", "BAC", "WFC"],"formCategoryFilter": ["proxy"],"daysLookback": 120,"filingsPerCompany": 5}
Example 8: Last 7 days of any filings, any company, premium token
{"tickers": ["AAPL"],"daysLookback": 7,"filingsPerCompany": 100}
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
tickers | string[] | ["AAPL"] | Stock tickers. Resolved to CIK via SEC's official ticker map. |
ciks | string[] | [] | Use for filers without tickers (private filers, funds, insiders). |
formFilter | string[] | [] | Exact-match form names. Empty = all. |
formCategoryFilter | string[] | [] | Filter by category enum. Empty = all. |
filingsPerCompany | int | 20 | 1-1000 |
daysLookback | int | 0 | 0 = no date filter; otherwise only filings on or after (today - N days). |
watchlistMode | bool | false | Idempotent diff against KV-stored seen accession numbers. |
maxItems | int | 50 | Hard cap on total filings. |
contactEmail | string | maintainer | Sent in the SEC User-Agent header per SEC requirements. |
Form category enum
Each filing carries formCategory from this enum (so you don't have to map 200+ form names downstream):
| Category | Forms it covers |
|---|---|
annual_report | 10-K, 10-K/A, 20-F, 40-F |
quarterly_report | 10-Q, 10-Q/A |
current_report | 8-K, 8-K/A, 6-K |
registration | S-1, S-1/A, S-3, S-4, F-1 |
prospectus | 424B1, 424B2, 424B3, 424B4, 424B5 |
proxy | DEF 14A, DEFA14A, PRE14A |
insider_transaction | 3, 4, 4/A, 5 |
institutional_holdings | 13F-HR, 13F-HR/A, 13D, 13G, SC13D, SC13G |
amendment | any form ending in /A not classified above |
other | every other form on EDGAR |
SEC EDGAR output format
sec_filing
| Field | Type | Description |
|---|---|---|
outputSchemaVersion | string | Versioned literal ('2026-05-08') |
recordType | literal | 'sec_filing' |
recordId | string | sec:filing:<accession-clean> (idempotent, cross-run dedupe-friendly) |
accessionNumber, accessionNumberClean | string | SEC's official ID (with dashes + cleaned) |
url, primaryDocumentUrl, filingIndexUrl | string | Direct links to the document and EDGAR index |
form, formCategory, isAmendment | string/enum/bool | Form identity + classification |
filingDate, reportDate, acceptanceDateTime | ISO 8601 | All timestamps standardized |
primaryDocument, primaryDocDescription | string | Filename + SEC-supplied description |
fileNumber, filmNumber | string | EDGAR file/film IDs |
items | string[] | 8-K item codes (e.g., ["2.02", "9.01"]) |
isXBRL, isInlineXBRL | bool | XBRL availability flags |
size | int | Bytes |
company | object | Joined company metadata: cik, cikPadded, name, ticker, exchange, sicCode, sicDescription, fiscalYearEnd |
fieldCompletenessScore | int 0-100 | Self-filtering signal |
agentMarkdown | string | 300-500 char LLM-ready summary |
SEC EDGAR scraper output example
{"outputSchemaVersion": "2026-05-08","recordType": "sec_filing","recordId": "sec:filing:000032019325000118","accessionNumber": "0000320193-25-000118","form": "10-K","formCategory": "annual_report","isAmendment": false,"filingDate": "2025-11-01","reportDate": "2025-09-28","primaryDocDescription": "10-K","primaryDocumentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000118/aapl-20250928.htm","items": [],"isXBRL": true,"company": {"cik": "320193","cikPadded": "0000320193","name": "Apple Inc.","ticker": "AAPL","exchange": "Nasdaq","sicCode": "3571","sicDescription": "Electronic Computers","fiscalYearEnd": "0928"},"fieldCompletenessScore": 100,"agentMarkdown": "**📄 10-K · $AAPL · Apple Inc.**\n> 10-K\n- 🗂 form: 10-K (annual_report)\n- 📅 filed: 2025-11-01 · period: 2025-09-28\n- 🏢 Electronic Computers · Nasdaq\n- 🔗 https://www.sec.gov/Archives/edgar/data/320193/000032019325000118/aapl-20250928.htm"}
During the Actor run
No authentication required beyond a contact email in the User-Agent (SEC's own guideline). The actor stays well under SEC's 10/s rate ceiling and reads filings live, with no delay vs the EDGAR website itself. A typical 25-ticker portfolio watchlist completes in under a minute.
A run summary lands at the OUTPUT key, a markdown digest with form-mix counts and the top 10 material filings at AGENT_BRIEFING, and (with watchlistMode: true) seen accession numbers at WATCHLIST_STATE (capped at 10,000).
FAQ
How does SEC EDGAR Filings Monitor work?
Input: a list of tickers (or raw CIKs for filers without tickers), optional form filters (10-K, 10-Q, 8-K, S-1, 13F, Form 4, DEF 14A, more), and a lookback window. Output: one structured record per filing in your Apify dataset, exportable as JSON, CSV, or Excel. Reads EDGAR live with no delay, so a filing shows up minutes after the SEC accepts it. Turn on watchlist mode and the next run only emits what's new.
Can I monitor filings for new disclosures only?
Yes. Set watchlistMode: true. The first run emits everything; subsequent runs emit only filings new since the previous run. Schedule with the Apify cron scheduler.
Can I filter to specific form types?
Two ways: formFilter for exact-match form names (e.g., ["10-K", "10-Q"]), or formCategoryFilter for category groupings (e.g., ["annual_report", "quarterly_report"]). Combine both for narrow filters.
Can I use this with the Apify API?
Yes. POST to https://api.apify.com/v2/acts/skootle~sec-edgar-filings/runs with your input as JSON body and your Apify token as the Authorization: Bearer header.
Can I integrate with Make / Zapier / n8n / Slack?
Yes. From the actor page, click Integrations and pick your destination.
Can I get filings from before EDGAR's recent window?
This actor returns the most recent ~1,000 filings per company (the submissions/recent window EDGAR exposes). For deeper historical pulls, use SEC's full-index files at https://www.sec.gov/Archives/edgar/full-index/.
Can I get the full text of each filing?
This actor returns metadata + a direct URL to the primary document. To download document contents, pipe the primaryDocumentUrl to a downstream HTTP fetcher (e.g., the Apify Web Crawler or a Make.com HTTP step).
Can I find a CIK by company name?
This actor accepts both tickers and CIKs as input. To look up a CIK by name, use SEC's EDGAR full-text search or the company_tickers.json map (also fetched by this actor when you supply tickers).
Is the data delayed?
No, EDGAR exposes filings as soon as the SEC accepts them, typically within minutes of the filer's submission. This actor reads the live API, not a delayed cache.
Why does this actor cost more than free EDGAR scrapers?
Free actors trade reliability and feature depth for cost. This actor ships a versioned schema, idempotent record IDs, the joined company metadata, the formCategory enum (saves you from mapping 200+ form names), agentMarkdown per filing, watchlist diff mode, and continuous maintenance. If you're feeding the data into a portfolio-monitoring pipeline or AI agent, those features pay back the per-record cost in saved engineering time.
Your feedback
Hit a bug or want a feature? Open an issue on the Issues tab rather than the reviews page, and we'll fix it fast (typically within 48 hours).
Why choose SEC EDGAR Filings Monitor
- Filter by form type in one field, 10-K, 10-Q, 8-K, S-1, 13F, Form 4, DEF 14A, mapped into nine clean category enums so you skip mapping 200+ raw form names by hand
- Watchlist mode emits only what's new since last run, schedule daily across 50+ tickers without paying for duplicates or re-ingesting yesterday's 10-Qs
- 50+ ticker watchlists in one run, pass the list, get the diff feed back
- Joined company metadata per filing, name, ticker, exchange, SIC, fiscal year end. No second query
- Live, not delayed, filings show up minutes after the SEC accepts them
- AI agents can self-filter sparse rows and paste the per-filing markdown summary straight into Claude or ChatGPT
- Hand-tuned for this source. Fixes ship the same week the source changes, typically within 24-48 hours
- Safe to dedupe across re-runs, stable
sec:filing:<accession>IDs upsert cleanly - Schema doesn't break your pipeline, versioned and date-stamped on every record
- SEC-compliant from day one, User-Agent with contact email, sub-second rate limit, follows SEC's published API guidelines
Other Skootle actors you might want to check
- Hacker News Watchlist, same agent-grade pattern for tech discourse
- Reddit Subreddit Scraper, sentiment + brand monitoring on subreddits
- GitHub Trending Repos, daily/weekly/monthly trending dev repos with API enrichment
- Apple App Store Reviews Monitor, App Store reviews with watchlist mode
- Shopify App Store Scraper, Shopify app listings with rating + pricing tiers
- SAM.gov + USAspending Federal Contracts, federal contract opportunities + historical award context
Support and contact
File issues on this actor's page (Issues tab), replies within 48 hours. For feature requests, drop them in the same tracker tagged enhancement.